import {useRouter} from "next/router"; import {useState} from "react"; import styles from './shop-search.module.scss'; import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; import {faMagnifyingGlass} from "@fortawesome/free-solid-svg-icons"; import {buildShopParamsGET, findQueryParamsValue} from "../../libs/utils"; /* eslint-disable-next-line */ export interface ShopSearchProps { queries: { param: string, value: any }[]; } export function ShopSearch({queries = []}: ShopSearchProps) { const router = useRouter(); const [search, setSearch] = useState(findQueryParamsValue(queries, 'search') || ''); /*useEffect(() => { if (subject === null) { const sub = new BehaviorSubject(''); const client = new MeiliSearch({ host: environment.meiliUrl, apiKey: environment.meiliApiKey }) setSubject(sub); setClient(client); } else { subject.pipe( map((s: string) => s.trim()), distinctUntilChanged(), filter((s: string) => s.length >= 2), debounceTime(200), map((value) => { setLoading(true); return value; }), delay(2000), switchMap(async (value: string) => { const index = await client.getIndex('product'); const products = await index.search(value); setLoading(false); await router.push('/search'); dispatch(setShopSearchState(products.hits)); }), catchError((err) => of(false)) ).subscribe(() => setLoading(false)); } }, [subject]);*/ const onSearchChange = (e) => setSearch(e.target.value); const validSearch = (event) => { router.push(`${router.pathname}${buildShopParamsGET( findQueryParamsValue(queries, 'sort'), findQueryParamsValue(queries, 'page'), findQueryParamsValue(queries, 'range'), findQueryParamsValue(queries, 'cat'), findQueryParamsValue(queries, 'filters'), search, )}`); event.stopPropagation(); } return (
); } export default ShopSearch;