fix(ui): address review feedback for URL param handling
- Fix race condition: only set hasAutoTriggeredRef after successful execution - Add URL mode validation: ensure mode is either 'search' or 'ask'
This commit is contained in:
parent
33be80ab7c
commit
d8e61c6b5b
1 changed files with 6 additions and 4 deletions
|
|
@ -27,7 +27,8 @@ export default function SearchPage() {
|
||||||
// URL params
|
// URL params
|
||||||
const searchParams = useSearchParams()
|
const searchParams = useSearchParams()
|
||||||
const urlQuery = searchParams.get('q') || ''
|
const urlQuery = searchParams.get('q') || ''
|
||||||
const urlMode = searchParams.get('mode') || 'ask'
|
const rawMode = searchParams.get('mode')
|
||||||
|
const urlMode = rawMode === 'search' ? 'search' : 'ask'
|
||||||
|
|
||||||
// Tab state (controlled)
|
// Tab state (controlled)
|
||||||
const [activeTab, setActiveTab] = useState<'ask' | 'search'>(
|
const [activeTab, setActiveTab] = useState<'ask' | 'search'>(
|
||||||
|
|
@ -118,19 +119,20 @@ export default function SearchPage() {
|
||||||
// Wait for models to load before triggering ask
|
// Wait for models to load before triggering ask
|
||||||
if (urlMode === 'ask' && modelsLoading) return
|
if (urlMode === 'ask' && modelsLoading) return
|
||||||
|
|
||||||
hasAutoTriggeredRef.current = true
|
|
||||||
|
|
||||||
if (urlMode === 'search') {
|
if (urlMode === 'search') {
|
||||||
handleSearch()
|
handleSearch()
|
||||||
|
hasAutoTriggeredRef.current = true
|
||||||
} else if (urlMode === 'ask' && modelDefaults?.default_chat_model) {
|
} else if (urlMode === 'ask' && modelDefaults?.default_chat_model) {
|
||||||
handleAsk()
|
handleAsk()
|
||||||
|
hasAutoTriggeredRef.current = true
|
||||||
}
|
}
|
||||||
}, [urlQuery, urlMode, modelsLoading, modelDefaults, handleSearch, handleAsk])
|
}, [urlQuery, urlMode, modelsLoading, modelDefaults, handleSearch, handleAsk])
|
||||||
|
|
||||||
// Handle URL param changes while on page (e.g., from command palette again)
|
// Handle URL param changes while on page (e.g., from command palette again)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const currentQ = searchParams.get('q') || ''
|
const currentQ = searchParams.get('q') || ''
|
||||||
const currentMode = searchParams.get('mode') || 'ask'
|
const rawCurrentMode = searchParams.get('mode')
|
||||||
|
const currentMode = rawCurrentMode === 'search' ? 'search' : 'ask'
|
||||||
|
|
||||||
// Check if URL params have changed
|
// Check if URL params have changed
|
||||||
if (currentQ !== lastUrlParamsRef.current.q || currentMode !== lastUrlParamsRef.current.mode) {
|
if (currentQ !== lastUrlParamsRef.current.q || currentMode !== lastUrlParamsRef.current.mode) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue