import { KeyboardEvent, useRef } from "react"; import { useAtom, useAtomValue } from "jotai"; import { settingsAtom } from "lib/state/settings"; import { queryAtom } from "lib/state/query"; import { selectedSuggestionAtom } from "lib/state/suggestionSelection"; import handleEnter from "lib/onesearch/handleEnter"; import { suggestionAtom } from "lib/state/suggestion"; import { useTranslation } from "react-i18next"; export default function Search(props: { onFocus: () => void }) { const { t } = useTranslation(); const settings = useAtomValue(settingsAtom); const [query, setQuery] = useAtom(queryAtom); const [selectedSuggestion, setSelected] = useAtom(selectedSuggestionAtom); const suggestions = useAtomValue(suggestionAtom); const searchBoxRef = useRef(null); const style = "default"; function handleKeydown(e: KeyboardEvent) { if (e.key == "Enter") { e.preventDefault(); handleEnter(selectedSuggestion, suggestions, query, settings, searchBoxRef); return; } else if (e.key == "ArrowUp") { e.preventDefault(); const len = suggestions.length; setSelected((selectedSuggestion - 1 + len) % len); } else if (e.key == "ArrowDown") { e.preventDefault(); const len = suggestions.length; setSelected((selectedSuggestion + 1) % len); } } if (style === "default") { return ( // 祖传样式,勿动
setQuery(() => { return e.target.value; }) } autoComplete="off" autoCorrect="off" autoCapitalize="off" spellCheck="false" ref={searchBoxRef} value={query} />
); } else if (style == "image") { return ( // 祖传样式,勿动
); } }