import React, { useState, useCallback, useEffect, } from 'react'; import Downshift from 'downshift'; import { useRouter } from 'next/router'; import { Modal, ModalBody } from 'reactstrap'; import type { DownshiftItem } from '../interfaces/downshift'; import { useSearchModal } from '../stores/search'; import { SearchForm } from './SearchForm'; import { SearchHelp } from './SearchHelp'; import { SearchMethodMenuItem } from './SearchMethodMenuItem'; import { SearchResultMenuItem } from './SearchResultMenuItem'; const SearchModal = (): JSX.Element => { const [searchKeyword, setSearchKeyword] = useState(''); const { data: searchModalData, close: closeSearchModal } = useSearchModal(); const router = useRouter(); const changeSearchTextHandler = useCallback((searchText: string) => { setSearchKeyword(searchText); }, []); const clickClearButtonHandler = useCallback(() => { setSearchKeyword(''); }, []); const selectSearchMenuItemHandler = useCallback((url: string) => { closeSearchModal(); router.push(url); }, [closeSearchModal, router]); useEffect(() => { if (!searchModalData?.isOpened) { setSearchKeyword(''); } }, [searchModalData?.isOpened]); return ( { selectSearchMenuItemHandler(selectedItem.url) }} > {({ getInputProps, getItemProps, getMenuProps, highlightedIndex, }) => (
)}
); }; export default SearchModal;