/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import { observer } from "mobx-react"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { TContextMenuItem } from "@plane/ui"; import { CustomMenu } from "@plane/ui"; import { copyUrlToClipboard, cn } from "@plane/utils"; import { useLayoutMenuItems } from "@/components/common/quick-actions-helper"; import { MoreHorizontalOutline } from "@makeplane/propel/icons"; import { IconButton } from "@plane/propel/icon-button"; type Props = { workspaceSlug: string; projectId: string; storeType: "PROJECT" | "EPIC"; }; export const LayoutQuickActions = observer(function LayoutQuickActions(props: Props) { const { workspaceSlug, projectId, storeType } = props; const layoutLink = `${workspaceSlug}/projects/${projectId}/${storeType === "EPIC" ? "epics" : "issues"}`; const handleCopyLink = () => copyUrlToClipboard(layoutLink).then(() => { setToast({ type: TOAST_TYPE.SUCCESS, title: "Link copied", message: `${storeType === "EPIC" ? "Epics" : "Work items"} link copied to clipboard.`, }); }); const handleOpenInNewTab = () => window.open(`/${layoutLink}`, "_blank"); const menuResult = useLayoutMenuItems({ workspaceSlug, projectId, storeType, handleCopyLink, handleOpenInNewTab, }); const MENU_ITEMS: TContextMenuItem[] = Array.isArray(menuResult) ? menuResult : menuResult.items; const additionalModals = Array.isArray(menuResult) ? null : menuResult.modals; return ( <> {additionalModals} } > {MENU_ITEMS.map((item) => { if (item.shouldRender === false) return null; return ( {item.icon && } {item.title} ); })} ); });