import { BadgeHelp, HelpTopic } from '@/features/help'; import { useRoleStore, UserRole } from '@/features/users'; import { Overlay } from '@/components/Container'; import { MiniButton } from '@/components/Control'; import { VisibilityIcon } from '@/components/DomainIcons'; import { IconImmutable, IconMutable } from '@/components/Icons'; import { Label } from '@/components/Input'; import { PARAMETER } from '@/utils/constants'; import { AccessPolicy } from '../backend/types'; import { useMutatingLibrary } from '../backend/useMutatingLibrary'; import { useSetAccessPolicy } from '../backend/useSetAccessPolicy'; import { ILibraryItemEditor } from './EditorLibraryItem'; import { SelectAccessPolicy } from './SelectAccessPolicy'; interface ToolbarItemAccessProps { visible: boolean; toggleVisible: () => void; readOnly: boolean; toggleReadOnly: () => void; controller: ILibraryItemEditor; } export function ToolbarItemAccess({ visible, toggleVisible, readOnly, toggleReadOnly, controller }: ToolbarItemAccessProps) { const role = useRoleStore(state => state.role); const isProcessing = useMutatingLibrary(); const policy = controller.schema.access_policy; const { setAccessPolicy } = useSetAccessPolicy(); function handleSetAccessPolicy(newPolicy: AccessPolicy) { void setAccessPolicy({ itemID: controller.schema.id, policy: newPolicy }); } return ( ); }