import { useCallback } from 'react'; import { useNavigate } from 'react-router-dom'; import Button from '../../components/Common/Button'; import Checkbox from '../../components/Common/Checkbox'; import Dropdown from '../../components/Common/Dropdown'; import DropdownButton from '../../components/Common/DropdownButton'; import { CloneIcon, CrownIcon, DownloadIcon, DumpBinIcon, EyeIcon, EyeOffIcon, MenuIcon, PenIcon, PlusIcon, ShareIcon, UploadIcon } from '../../components/Icons'; import { useAuth } from '../../context/AuthContext'; import { useRSForm } from '../../context/RSFormContext'; import useDropdown from '../../hooks/useDropdown'; import { claimOwnershipProc, downloadRSFormProc, shareCurrentURLProc } from '../../utils/procedures'; interface RSTabsMenuProps { showUploadDialog: () => void showCloneDialog: () => void onDestroy: () => void } function RSTabsMenu({showUploadDialog, showCloneDialog, onDestroy}: RSTabsMenuProps) { const navigate = useNavigate(); const { user } = useAuth(); const { schema, isOwned, isEditable, isTracking, isReadonly: readonly, isForceAdmin: forceAdmin, toggleTracking, toggleForceAdmin, toggleReadonly, claim, download } = useRSForm(); const schemaMenu = useDropdown(); const editMenu = useDropdown(); const handleClaimOwner = useCallback(() => { editMenu.hide(); claimOwnershipProc(claim) }, [claim, editMenu]); const handleDelete = useCallback(() => { schemaMenu.hide(); onDestroy(); }, [onDestroy, schemaMenu]); const handleDownload = useCallback(() => { schemaMenu.hide(); const fileName = (schema?.alias ?? 'Schema') + '.trs'; downloadRSFormProc(download, fileName); }, [schemaMenu, download, schema?.alias]); const handleUpload = useCallback(() => { schemaMenu.hide(); showUploadDialog(); }, [schemaMenu, showUploadDialog]); const handleClone = useCallback(() => { schemaMenu.hide(); showCloneDialog(); }, [schemaMenu, showCloneDialog]); function handleShare() { schemaMenu.hide(); shareCurrentURLProc(); } function handleCreateNew() { navigate('/rsform-create'); } return (
{ isOwned && Владелец схемы } { !isOwned && Стать владельцем }