'use client'; import { urls } from '@/app/urls'; import { IconAdmin, IconAlert, IconArchive, IconClone, IconDestroy, IconDownload, IconEdit2, IconEditor, IconGenerateNames, IconGenerateStructure, IconInlineSynthesis, IconLibrary, IconMenu, IconNewItem, IconNewVersion, IconOSS, IconOwner, IconReader, IconReplace, IconShare, IconSortList, IconTemplates, IconUpload } from '@/components/Icons'; import Button from '@/components/ui/Button'; import Divider from '@/components/ui/Divider'; import Dropdown from '@/components/ui/Dropdown'; import DropdownButton from '@/components/ui/DropdownButton'; import { useAccessMode } from '@/context/AccessModeContext'; import { useAuth } from '@/context/AuthContext'; import { useGlobalOss } from '@/context/GlobalOssContext'; import { useConceptNavigation } from '@/context/NavigationContext'; import { useRSForm } from '@/context/RSFormContext'; import useDropdown from '@/hooks/useDropdown'; import { AccessPolicy } from '@/models/library'; import { UserLevel } from '@/models/user'; import { describeAccessMode, labelAccessMode, tooltips } from '@/utils/labels'; import { OssTabID } from '../OssPage/OssTabs'; import { useRSEdit } from './RSEditContext'; interface MenuRSTabsProps { onDestroy: () => void; } function MenuRSTabs({ onDestroy }: MenuRSTabsProps) { const controller = useRSEdit(); const router = useConceptNavigation(); const { user } = useAuth(); const model = useRSForm(); const oss = useGlobalOss(); const { accessLevel, setAccessLevel } = useAccessMode(); const schemaMenu = useDropdown(); const editMenu = useDropdown(); const accessMenu = useDropdown(); function handleDelete() { schemaMenu.hide(); onDestroy(); } function handleDownload() { schemaMenu.hide(); controller.download(); } function handleUpload() { schemaMenu.hide(); controller.promptUpload(); } function handleClone() { schemaMenu.hide(); controller.promptClone(); } function handleShare() { schemaMenu.hide(); controller.share(); } function handleCreateVersion() { schemaMenu.hide(); controller.createVersion(); } function handleReindex() { editMenu.hide(); controller.reindex(); } function handleRestoreOrder() { editMenu.hide(); controller.reorder(); } function handleSubstituteCst() { editMenu.hide(); controller.substitute(); } function handleTemplates() { editMenu.hide(); controller.promptTemplate(); } function handleProduceStructure() { editMenu.hide(); controller.produceStructure(); } function handleInlineSynthesis() { editMenu.hide(); controller.inlineSynthesis(); } function handleChangeMode(newMode: UserLevel) { accessMenu.hide(); setAccessLevel(newMode); } function handleCreateNew() { router.push(urls.create_schema); } function handleLogin() { router.push(urls.login); } return (
{!model.isArchive && user ? (
) : null} {model.isArchive && user ? (
) : null} {!user ? (