import { useDocsSearch, type DocsSearchResult } from 'common'
import { Book, Github, Loader2 } from 'lucide-react'
import { cn } from 'ui'
import { useChangedSync } from '@/hooks/misc/useChanged'
import { DOCS_URL } from '@/lib/constants'
function useDocsSuggestions(subject: string) {
const { handleDocsSearchDebounced, resetSearch, searchState } = useDocsSearch()
const trimmedSubject = subject.trim()
const subjectChanged = useChangedSync(trimmedSubject)
if (subjectChanged && trimmedSubject) {
handleDocsSearchDebounced(trimmedSubject)
} else if (subjectChanged && !trimmedSubject) {
resetSearch()
}
return searchState
}
interface DocsSuggestionsProps {
searchString: string
}
export function DocsSuggestions({ searchString }: DocsSuggestionsProps) {
const searchState = useDocsSuggestions(searchString)
const results =
'results' in searchState
? searchState.results
: 'staleResults' in searchState
? searchState.staleResults
: []
const resultsStale = searchState.status === 'loading'
return (
<>
{searchState.status === 'loading' &&