import React from 'react' import Selector, { Option } from '@/components/ui/Selector' export interface Role { id: number value: string label: string [key: string]: string | number } interface RoleSelectorProps { name: string value: string handleChange: (e: { target: { id: string value: string selectedOption?: Option } }) => void label?: string tooltip?: string | React.ReactNode placeholder?: string } const ROLES = [ { id: 1, value: 'engineer', label: 'Инженер' }, { id: 2, value: 'operator', label: 'Оператор' }, { id: 3, value: 'admin', label: 'Администратор' }, ] const RoleSelector: React.FC = ({ name, value, handleChange, label, tooltip, placeholder, }) => { const handleSelectorChange = (e: { target: { id: string value: Option | null selectedOption?: Option } }) => { const selectedOption = e.target.value handleChange({ target: { id: name, value: selectedOption?.value || '', selectedOption: selectedOption || undefined, }, }) } // Находим текущее значение в списке для отображения const currentValue = ROLES.find(role => role.value === value) return ( name={name} value={currentValue} handleChange={handleSelectorChange} label={label} tooltip={tooltip} placeholder={placeholder} mapDataToOptions={role => ({ id: role.id, value: role.value, label: role.label, })} staticOptions={ROLES} /> ) } export default RoleSelector