import { Box, Divider, Modal, ModalHeader, ModalContent, ModalCloseButton, ModalBody, ModalOverlay, UnorderedList, } from "@chakra-ui/react"; import { FormEventHandler, FunctionComponent, useCallback, useRef, } from "react"; import { useHistory } from "react-router-dom"; import { SearchInput } from "./SearchInput"; import { SearchItem } from "../../../components/SearchItem"; export interface SearchModalProps { inputValue: string; isOpen: boolean; onClose: () => void; onInputChange: (s: string) => void; submodules: { name: string; to: string }[]; } export const SearchModal: FunctionComponent = ({ inputValue, isOpen, onClose, onInputChange, submodules, }) => { const inputRef = useRef(null); const { push } = useHistory(); const navigate = useCallback( (to: string) => { onClose(); push(to); }, [onClose, push] ); const onSubmit = useCallback>( (e) => { e.preventDefault(); if (!submodules.length) return; const { to } = submodules[0]; navigate(to); }, [navigate, submodules] ); return ( Choose a submodule {submodules.map(({ name, to }) => ( navigate(to)} /> ))} ); };