'use client'; import clsx from 'clsx'; import { useCallback } from 'react'; import useDropdown from '@/hooks/useDropdown'; import { FolderTree } from '@/models/FolderTree'; import { prefixes } from '@/utils/constants'; import { IconFolderTree } from '../Icons'; import { CProps } from '../props'; import Dropdown from '../ui/Dropdown'; import MiniButton from '../ui/MiniButton'; import SelectLocation from './SelectLocation'; interface SelectLocationContextProps extends CProps.Styling { value: string; title?: string; folderTree: FolderTree; stretchTop?: boolean; onChange: (newValue: string) => void; } function SelectLocationContext({ value, title = 'Проводник...', folderTree, onChange, className, style }: SelectLocationContextProps) { const menu = useDropdown(); const handleClick = useCallback( (event: CProps.EventMouse, newValue: string) => { event.preventDefault(); event.stopPropagation(); menu.hide(); onChange(newValue); }, [menu, onChange] ); return (