import { useState } from "react"; import { observer } from "mobx-react"; import { useRouter } from "next/router"; import { Trash2 } from "lucide-react"; // ui import { ArchiveIcon, Checkbox, Tooltip } from "@plane/ui"; // components import { BulkArchiveConfirmationModal, BulkDeleteConfirmationModal, IssueBulkOperationsProperties, } from "@/components/issues"; // helpers import { cn } from "@/helpers/common.helper"; // hooks import { TSelectionHelper, TSelectionSnapshot } from "@/hooks/use-multiple-select"; import { useMultipleSelectStore } from "@/hooks/store"; type Props = { className?: string; selectionHelpers: TSelectionHelper; }; export const IssueBulkOperationsRoot: React.FC = observer((props) => { const { className, selectionHelpers } = props; // states const [isBulkArchiveModalOpen, setIsBulkArchiveModalOpen] = useState(false); const [isBulkDeleteModalOpen, setIsBulkDeleteModalOpen] = useState(false); // router const router = useRouter(); const { workspaceSlug, projectId } = router.query; // serviced values const { isSelectionActive, selectedEntityIds } = useMultipleSelectStore(); const { handleClearSelection } = selectionHelpers; if (!isSelectionActive) return null; return (
{workspaceSlug && projectId && ( <> setIsBulkArchiveModalOpen(false)} issueIds={selectedEntityIds} onSubmit={handleClearSelection} projectId={projectId.toString()} workspaceSlug={workspaceSlug.toString()} /> setIsBulkDeleteModalOpen(false)} issueIds={selectedEntityIds} onSubmit={handleClearSelection} projectId={projectId.toString()} workspaceSlug={workspaceSlug.toString()} /> )}
{selectedEntityIds.length} selected
); });