'use client'; import { urls } from '@/app/urls'; import { IconAdmin, IconAlert, IconChild, IconDestroy, IconEdit2, IconEditor, IconLibrary, IconMenu, IconNewItem, IconOwner, IconReader, IconShare } from '@/components/Icons'; import Button from '@/components/ui/Button'; import Dropdown from '@/components/ui/Dropdown'; import DropdownButton from '@/components/ui/DropdownButton'; import DropdownDivider from '@/components/ui/DropdownDivider'; import { useAccessMode } from '@/context/AccessModeContext'; import { useAuth } from '@/context/AuthContext'; import { useConceptNavigation } from '@/context/NavigationContext'; import { useOSS } from '@/context/OssContext'; import useDropdown from '@/hooks/useDropdown'; import { UserLevel } from '@/models/user'; import { describeAccessMode, labelAccessMode } from '@/utils/labels'; import { useOssEdit } from './OssEditContext'; interface MenuOssTabsProps { onDestroy: () => void; } function MenuOssTabs({ onDestroy }: MenuOssTabsProps) { const controller = useOssEdit(); const router = useConceptNavigation(); const { user } = useAuth(); const model = useOSS(); const { accessLevel, setAccessLevel } = useAccessMode(); const schemaMenu = useDropdown(); const editMenu = useDropdown(); const accessMenu = useDropdown(); function handleDelete() { schemaMenu.hide(); onDestroy(); } function handleShare() { schemaMenu.hide(); controller.share(); } function handleChangeMode(newMode: UserLevel) { accessMenu.hide(); setAccessLevel(newMode); } function handleCreateNew() { router.push(urls.create_schema); } function handleLogin() { router.push(urls.login); } function handleRelocate() { editMenu.hide(); controller.promptRelocateConstituents(undefined, []); } return (