import { Tooltip } from '@chakra-ui/react'; import { MultiSelect, MultiSelectProps } from '@mantine/core'; import { useAppDispatch } from 'app/store/storeHooks'; import { shiftKeyPressed } from 'features/ui/store/hotkeysSlice'; import { useMantineMultiSelectStyles } from 'mantine-theme/hooks/useMantineMultiSelectStyles'; import { KeyboardEvent, RefObject, memo, useCallback } from 'react'; type IAIMultiSelectProps = MultiSelectProps & { tooltip?: string; inputRef?: RefObject; }; const IAIMantineMultiSelect = (props: IAIMultiSelectProps) => { const { searchable = true, tooltip, inputRef, ...rest } = props; const dispatch = useAppDispatch(); const handleKeyDown = useCallback( (e: KeyboardEvent) => { if (e.shiftKey) { dispatch(shiftKeyPressed(true)); } }, [dispatch] ); const handleKeyUp = useCallback( (e: KeyboardEvent) => { if (!e.shiftKey) { dispatch(shiftKeyPressed(false)); } }, [dispatch] ); const styles = useMantineMultiSelectStyles(); return ( ); }; export default memo(IAIMantineMultiSelect);