// @flow import { observer } from "mobx-react"; import { transparentize } from "polished"; import * as React from "react"; import { useTranslation } from "react-i18next"; import { Dialog, DialogBackdrop, useDialogState } from "reakit/Dialog"; import styled from "styled-components"; import Template from "components/ContextMenu/Template"; import InputSearch from "components/InputSearch"; import Scrollable from "components/Scrollable"; import usePrevious from "hooks/usePrevious"; import useStores from "hooks/useStores"; import useUnmount from "hooks/useUnmount"; function QuickMenu({ isOpen, requestClose }) { const { quickMenu } = useStores(); const dialog = useDialogState({ modal: true, animated: 250 }); const wasOpen = usePrevious(isOpen); const { t } = useTranslation(); const handleSearchChange = React.useCallback( (event) => { quickMenu.setSearchTerm(event.target.value); }, [quickMenu] ); useUnmount(() => quickMenu.setSearchTerm("")); React.useEffect(() => { if (!wasOpen && isOpen) { dialog.show(); } if (wasOpen && !isOpen) { dialog.hide(); } }, [dialog, wasOpen, isOpen]); return ( {(props) => ( {(props) => (
    {quickMenu.orderedData.map((context) => (

    {context.title}