/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import { useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { RefreshCcw } from "lucide-react"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; import { TransferIcon } from "@plane/propel/icons"; import { Breadcrumbs, Header } from "@plane/ui"; import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; import { useProject } from "@/hooks/store/use-project"; import { useProjectExternalContours } from "@/hooks/store/use-project-external-contours"; import { useUserPermissions } from "@/hooks/store/user"; import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; import { ExternalContourCreateModalRoot } from "./create-modal"; export const ProjectExternalContoursHeader = observer(function ProjectExternalContoursHeader() { const [createIssueModal, setCreateIssueModal] = useState(false); const { workspaceSlug, projectId } = useParams(); const { t } = useTranslation(); const { allowPermissions } = useUserPermissions(); const { loader: currentProjectDetailsLoader } = useProject(); const { loader } = useProjectExternalContours(); const isAuthorized = allowPermissions( [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST], EUserPermissionsLevel.PROJECT ); return (
} isLast /> } isLast /> {(loader === "mutation-loading" || loader === "issue-loading") && (

{t("syncing")}...

)}
{workspaceSlug && projectId && isAuthorized ? (
setCreateIssueModal(false)} />
) : null}
); });