'use client'; import { useCallback } from 'react'; import Dropdown from '@/components/ui/Dropdown'; import SelectorButton from '@/components/ui/SelectorButton'; import useDropdown from '@/hooks/useDropdown'; import useWindowSize from '@/hooks/useWindowSize'; import { CstMatchMode } from '@/models/miscellaneous'; import { prefixes } from '@/utils/constants'; import { describeCstMatchMode, labelCstMatchMode } from '@/utils/labels'; import { MatchModeIcon } from '../DomainIcons'; import { CProps } from '../props'; import DropdownButton from '../ui/DropdownButton'; interface SelectMatchModeProps extends CProps.Styling { value: CstMatchMode; dense?: boolean; onChange: (value: CstMatchMode) => void; } function SelectMatchMode({ value, dense, onChange, ...restProps }: SelectMatchModeProps) { const menu = useDropdown(); const size = useWindowSize(); const handleChange = useCallback( (newValue: CstMatchMode) => { menu.hide(); onChange(newValue); }, [menu, onChange] ); return (