"use client"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // icons import { Circle, ExternalLink } from "lucide-react"; // plane constants import { EIssuesStoreType, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // ui import { Breadcrumbs, Button, LayersIcon, Tooltip, Header } from "@plane/ui"; // components import { BreadcrumbLink, CountChip } from "@/components/common"; // constants import HeaderFilters from "@/components/issues/filters"; // helpers import { SPACE_BASE_PATH, SPACE_BASE_URL } from "@/helpers/common.helper"; // hooks import { useEventTracker, useProject, useCommandPalette, useUserPermissions } from "@/hooks/store"; import { useIssues } from "@/hooks/store/use-issues"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; export const IssuesHeader = observer(() => { // router const router = useAppRouter(); const { workspaceSlug, projectId } = useParams() as { workspaceSlug: string; projectId: string }; // store hooks const { issues: { getGroupIssueCount }, } = useIssues(EIssuesStoreType.PROJECT); // i18n const { t } = useTranslation(); const { currentProjectDetails, loader } = useProject(); const { toggleCreateIssueModal } = useCommandPalette(); const { setTrackElement } = useEventTracker(); const { allowPermissions } = useUserPermissions(); const { isMobile } = usePlatformOS(); const SPACE_APP_URL = (SPACE_BASE_URL.trim() === "" ? window.location.origin : SPACE_BASE_URL) + SPACE_BASE_PATH; const publishedURL = `${SPACE_APP_URL}/issues/${currentProjectDetails?.anchor}`; const issuesCount = getGroupIssueCount(undefined, undefined, false); const canUserCreateIssue = allowPermissions( [EUserPermissions.ADMIN, EUserPermissions.MEMBER], EUserPermissionsLevel.PROJECT ); return (
router.back()} isLoading={loader === "init-loader"}> } /> } /> {issuesCount && issuesCount > 0 ? ( 1 ? "work items" : "work item"} in this project`} position="bottom" > ) : null}
{currentProjectDetails?.anchor ? ( {t("workspace_projects.network.public.title")} ) : ( <> )}
{canUserCreateIssue ? ( ) : ( <> )}
); });