"use client"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // icons import { Circle, ExternalLink } from "lucide-react"; import { EIssuesStoreType, EProjectFeatureKey, EUserPermissions, EUserPermissionsLevel, SPACE_BASE_PATH, SPACE_BASE_URL, } from "@plane/constants"; // plane constants import { useTranslation } from "@plane/i18n"; // ui import { Breadcrumbs, Button, Tooltip, Header } from "@plane/ui"; // components import { CountChip } from "@/components/common"; // constants import HeaderFilters from "@/components/issues/filters"; // helpers // 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 { CommonProjectBreadcrumbs } from "../breadcrumbs/common"; 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"} className="flex-grow-0"> {issuesCount && issuesCount > 0 ? ( 1 ? "work items" : "work item"} in this project`} position="bottom" > ) : null}
{currentProjectDetails?.anchor ? ( {t("workspace_projects.network.public.title")} ) : ( <> )}
{canUserCreateIssue ? ( ) : ( <> )}
); });