import { useCallback, useState } 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, ShareIcon, UploadIcon } from '../../components/Icons'; import { useAuth } from '../../context/AuthContext'; import { useRSForm } from '../../context/RSFormContext'; import useDropdown from '../../hooks/useDropdown'; import { claimOwnershipProc, deleteRSFormProc, downloadRSFormProc, shareCurrentURLProc } from '../../utils/procedures'; import DlgCloneRSForm from './DlgCloneRSForm'; import DlgUploadRSForm from './DlgUploadRSForm'; function RSTabsMenu() { const navigate = useNavigate(); const { user } = useAuth(); const { schema, isOwned, isEditable, isTracking, isReadonly: readonly, isForceAdmin: forceAdmin, toggleTracking, toggleForceAdmin, toggleReadonly, claim, destroy, download } = useRSForm(); const schemaMenu = useDropdown(); const editMenu = useDropdown(); const [showUploadDialog, setShowUploadDialog] = useState(false); const [showCloneDialog, setShowCloneDialogl] = useState(false); const handleClaimOwner = useCallback(() => { editMenu.hide(); claimOwnershipProc(claim) }, [claim, editMenu]); const handleDelete = useCallback(() => { schemaMenu.hide(); deleteRSFormProc(destroy, navigate); }, [destroy, navigate, schemaMenu]); const handleDownload = useCallback(() => { schemaMenu.hide(); const fileName = (schema?.alias ?? 'Schema') + '.trs'; downloadRSFormProc(download, fileName); }, [schemaMenu, download, schema?.alias]); const handleUpload = useCallback(() => { schemaMenu.hide(); setShowUploadDialog(true); }, [schemaMenu]); const handleClone = useCallback(() => { schemaMenu.hide(); setShowCloneDialogl(true); }, [schemaMenu]); const handleShare = useCallback(() => { schemaMenu.hide(); shareCurrentURLProc(); }, [schemaMenu]); return ( <> { setShowUploadDialog(false); }} /> { setShowCloneDialogl(false); }} />
); } export default RSTabsMenu