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, type ILibraryItem } from '../backend/types'; import { useMutatingLibrary } from '../backend/useMutatingLibrary'; import { useSetAccessPolicy } from '../backend/useSetAccessPolicy'; import { SelectAccessPolicy } from './SelectAccessPolicy'; interface ToolbarItemAccessProps { visible: boolean; toggleVisible: () => void; readOnly: boolean; toggleReadOnly: () => void; schema: ILibraryItem; isAttachedToOSS: boolean; } export function ToolbarItemAccess({ visible, toggleVisible, readOnly, toggleReadOnly, schema, isAttachedToOSS }: ToolbarItemAccessProps) { const role = useRoleStore(state => state.role); const isProcessing = useMutatingLibrary(); const policy = schema.access_policy; const { setAccessPolicy } = useSetAccessPolicy(); function handleSetAccessPolicy(newPolicy: AccessPolicy) { void setAccessPolicy({ itemID: schema.id, policy: newPolicy }); } return ( ); }