/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import { useState, useRef } from "react"; import { useNavigate } from "react-router"; import { ArchiveOutline, LinkOutline, LogOutOutline, MoreHorizontalOutline, SettingsOutline, ShareAltOutline, } from "@makeplane/propel/icons"; // plane imports import { useTranslation } from "@plane/i18n"; import { CustomMenu } from "@plane/ui"; type Props = { workspaceSlug: string; project: { id: string; }; isAdmin: boolean; isAuthorized: boolean; onCopyText: () => void; onLeaveProject: () => void; onPublishModal: () => void; }; export function ProjectActionsMenu({ workspaceSlug, project, isAdmin, isAuthorized, onCopyText, onLeaveProject, onPublishModal, }: Props) { // states const [isMenuActive, setIsMenuActive] = useState(false); // translation const { t } = useTranslation(); // refs const actionSectionRef = useRef(null); // router const navigate = useNavigate(); return ( setIsMenuActive(!isMenuActive)} > } className="flex-shrink-0" customButtonClassName="grid place-items-center" placement="bottom-start" ariaLabel={t("aria_labels.projects_sidebar.toggle_quick_actions_menu")} useCaptureForOutsideClick closeOnSelect onMenuClose={() => setIsMenuActive(false)} > {/* Publish project settings */} {isAdmin && (
{t("publish_project")}
)} {t("copy_link")} {isAuthorized && ( { navigate(`/${workspaceSlug}/projects/${project?.id}/archives/issues`); }} >
{t("archives")}
)} { navigate(`/${workspaceSlug}/settings/projects/${project?.id}`); }} >
{t("settings")}
{/* Leave project */} {!isAuthorized && (
{t("leave_project")}
)}
); }