'use client'; import { useCallback } from 'react'; import Dropdown from '@/components/ui/Dropdown'; import useDropdown from '@/hooks/useDropdown'; import { AccessPolicy } from '@/models/library'; import { prefixes } from '@/utils/constants'; import { describeAccessPolicy, labelAccessPolicy } from '@/utils/labels'; import { PolicyIcon } from '../DomainIcons'; import DropdownButton from '../ui/DropdownButton'; import MiniButton from '../ui/MiniButton'; interface SelectAccessPolicyProps { value: AccessPolicy; onChange: (value: AccessPolicy) => void; disabled?: boolean; stretchLeft?: boolean; } function SelectAccessPolicy({ value, disabled, stretchLeft, onChange }: SelectAccessPolicyProps) { const menu = useDropdown(); const handleChange = useCallback( (newValue: AccessPolicy) => { menu.hide(); if (newValue !== value) { onChange(newValue); } }, [menu, value, onChange] ); return (
} onClick={menu.toggle} disabled={disabled} /> {Object.values(AccessPolicy).map((item, index) => ( } onClick={() => handleChange(item)} /> ))}
); } export default SelectAccessPolicy;