import { Box, Input, InputGroup, InputLeftElement, Text, useColorMode, Icon } from "@chakra-ui/core";
import IconList from "./IconList";
import { useEffect, useRef, useState } from "react";
import useSearch from "../lib/search";
import { useRouter } from 'next/router';
import { useDebounce } from '../lib/useDebounce';
import theme from "../lib/theme";
import { Search as SearchIcon } from 'lucide-react';
const IconOverview = ({data}) => {
const router = useRouter();
const { query } = router.query;
const [queryText, setQueryText] = useState(query || '');
const debouncedQuery = useDebounce(queryText, 1000);
const results = useSearch(data, queryText);
const { colorMode } = useColorMode();
const inputElement = useRef(null);
function handleKeyDown(event) {
if (event.key === "/" && inputElement.current !== document.activeElement) {
event.preventDefault();
inputElement.current.focus();
}
}
useEffect(() => {
setQueryText(query || '');
}, [query]);
useEffect(() => {
const { query } = router;
router.push({
query: {
...query,
query: debouncedQuery
},
});
}, [debouncedQuery]);
useEffect(() => {
window.addEventListener('keydown', handleKeyDown);
return () => window.removeEventListener('keydown', handleKeyDown);
}, []);
return (
<>
)} />
setQueryText(event.target.value)}
/>
{results.length > 0 ? (
) : (
No results found for "{query}"
)}
>
);
}
export default IconOverview;