import React, {
useState, useCallback, useEffect,
} from 'react';
import Select, { components, SelectComponentsConfig } from 'react-select';
import AsyncSelect from 'react-select/async';
import { Modal, ModalBody } from 'reactstrap';
import { useDebounce } from 'usehooks-ts';
import { useSWRxSearch } from '~/stores/search';
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 changeSearchTextHandler = useCallback((searchText: string) => {
setSearchKeyword(searchText);
}, []);
const clickClearButtonHandler = useCallback(() => {
setSearchKeyword('');
}, []);
// search result
// -----------------------------------------------------------------------------------------------------------------------------------------------
const debouncedKeyword = useDebounce(searchKeyword, 500);
const isEmptyKeyword = debouncedKeyword.trim() === '';
const { data: searchResult, isLoading } = useSWRxSearch(isEmptyKeyword ? null : searchKeyword, null, { limit: 10 });
// const options = searchResult?.data.map(pageWithMeta => ({ label: pageWithMeta.data.path }));
// -----------------------------------------------------------------------------------------------------------------------------------------------
// search method
// -----------------------------------------------------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------------------------------------
// react-select settings
// -----------------------------------------------------------------------------------------------------------------------------------------------
// const components = {
// IndicatorSeparator: () => null,
// IndicatorsContainer: () => null,
// DropdownIndicator: () => null,
// MenuList: (props) => {
// return (
//
//
//
//
// );
// },
// };
// -----------------------------------------------------------------------------------------------------------------------------------------------
useEffect(() => {
if (!searchModalData?.isOpened) {
setSearchKeyword('');
}
}, [searchModalData?.isOpened]);
return (
);
};
export default SearchModal;