/** * 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"; // ui import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; import { Breadcrumbs, Header } from "@plane/ui"; // components import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; import { InboxIssueCreateModalRoot } from "@/components/inbox/modals/create-modal"; // hooks import { useProject } from "@/hooks/store/use-project"; import { useProjectInbox } from "@/hooks/store/use-project-inbox"; import { useUserPermissions } from "@/hooks/store/user"; // plane web imports import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; import { IntakeIcon } from "@plane/propel/icons"; export const ProjectInboxHeader = observer(function ProjectInboxHeader() { // states const [createIssueModal, setCreateIssueModal] = useState(false); // router const { workspaceSlug, projectId } = useParams(); // store hooks const { allowPermissions } = useUserPermissions(); const { t } = useTranslation(); const { currentProjectDetails, loader: currentProjectDetailsLoader } = useProject(); const { loader } = useProjectInbox(); // derived value const isAuthorized = allowPermissions( [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST], EUserPermissionsLevel.PROJECT ); return (
} isLast /> } isLast /> {loader === "pagination-loading" && (

{t("syncing")}...

)}
{currentProjectDetails?.inbox_view && workspaceSlug && projectId && isAuthorized ? (
setCreateIssueModal(false)} />
) : ( <> )}
); });