'use client'; import { urls, useConceptNavigation } from '@/app'; import { useAuthSuspense } from '@/features/auth'; import { useRoleStore, UserRole } from '@/features/users'; import { Divider } from '@/components/Container'; import { Button } from '@/components/Control'; import { Dropdown, DropdownButton, useDropdown } from '@/components/Dropdown'; import { IconAdmin, IconAlert, IconChild, IconDestroy, IconEdit2, IconEditor, IconLibrary, IconMenu, IconNewItem, IconOwner, IconReader, IconShare } from '@/components/Icons'; import { describeAccessMode as describeUserRole, labelAccessMode as labelUserRole } from '@/utils/labels'; import { sharePage } from '@/utils/utils'; import { useMutatingOss } from '../../backend/useMutatingOss'; import { useOssEdit } from './OssEditContext'; function MenuOssTabs() { const controller = useOssEdit(); const router = useConceptNavigation(); const { user, isAnonymous } = useAuthSuspense(); const isProcessing = useMutatingOss(); const role = useRoleStore(state => state.role); const setRole = useRoleStore(state => state.setRole); const schemaMenu = useDropdown(); const editMenu = useDropdown(); const accessMenu = useDropdown(); function handleDelete() { schemaMenu.hide(); controller.deleteSchema(); } function handleShare() { schemaMenu.hide(); sharePage(); } function handleChangeRole(newMode: UserRole) { accessMenu.hide(); setRole(newMode); } function handleCreateNew() { router.push(urls.create_schema); } function handleLogin() { router.push(urls.login); } function handleRelocate() { editMenu.hide(); controller.promptRelocateConstituents(undefined, []); } return (