import { useCallback } from 'react'; 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, 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 { 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]); const handleShare = useCallback(() => { schemaMenu.hide(); shareCurrentURLProc(); }, [schemaMenu]); return (
); } export default RSTabsMenu