import { useState } from 'react'; import { useTheme } from '@emotion/react'; import { useRecoilValue } from 'recoil'; import { useFilteredSearchCompanyQuery } from '@/companies/services'; import { useScopedHotkeys } from '@/lib/hotkeys/hooks/useScopedHotkeys'; import { AppHotkeyScope } from '@/lib/hotkeys/types/AppHotkeyScope'; import { useFilteredSearchPeopleQuery } from '@/people/services'; import { Avatar } from '@/users/components/Avatar'; import { useCommandMenu } from '../hooks/useCommandMenu'; import { isCommandMenuOpenedState } from '../states/isCommandMenuOpenedState'; import { CommandMenuItem } from './CommandMenuItem'; import { StyledDialog, StyledEmpty, StyledGroup, StyledInput, StyledList, } from './CommandMenuStyles'; export function CommandMenu() { const { openCommandMenu, closeCommandMenu } = useCommandMenu(); const isCommandMenuOpened = useRecoilValue(isCommandMenuOpenedState); const [search, setSearch] = useState(''); useScopedHotkeys( 'ctrl+k,meta+k', () => { openCommandMenu(); }, AppHotkeyScope.CommandMenu, [openCommandMenu], ); const people = useFilteredSearchPeopleQuery({ searchFilter: search, selectedIds: [], limit: 3, }); const companies = useFilteredSearchCompanyQuery({ searchFilter: search, selectedIds: [], limit: 3, }); /* TODO: Allow performing actions on page through CommandBar import { useMatch, useResolvedPath } from 'react-router-dom'; import { IconBuildingSkyscraper, IconUser } from '@/ui/icons'; const createSection = ( } shortcuts={ !!useMatch({ path: useResolvedPath('/people').pathname, end: true, }) ? ['C'] : [] } /> } shortcuts={ !!useMatch({ path: useResolvedPath('/companies').pathname, end: true, }) ? ['C'] : [] } /> );*/ const theme = useTheme(); return ( { if (!opened) { closeCommandMenu(); } }} label="Global Command Menu" shouldFilter={false} > No results found. {!!people.entitiesToSelect.length && ( {people.entitiesToSelect.map((person) => ( } /> ))} )} {!!companies.entitiesToSelect.length && ( {companies.entitiesToSelect.map((company) => ( } /> ))} )} ); }