/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import { useRef } from "react"; import { observer } from "mobx-react"; import { Link } from "react-router"; import { useParams, useSearchParams } from "next/navigation"; // plane types import { Tooltip } from "@plane/propel/tooltip"; import type { IIssueDisplayProperties } from "@plane/types"; // plane ui // plane utils import { cn } from "@plane/utils"; // helpers import { queryParamGenerator } from "@/helpers/query-param-generator"; // hooks import { usePublish } from "@/hooks/store/publish"; import { useIssueDetails } from "@/hooks/store/use-issue-details"; // import { IssueProperties } from "../properties/all-properties"; interface IssueBlockProps { issueId: string; groupId: string; displayProperties: IIssueDisplayProperties | undefined; } export const IssueBlock = observer(function IssueBlock(props: IssueBlockProps) { const { anchor } = useParams(); const { issueId, displayProperties } = props; const searchParams = useSearchParams(); // query params const board = searchParams.get("board"); // ref const issueRef = useRef(null); // hooks const { project_details } = usePublish(anchor.toString()); const { getIsIssuePeeked, setPeekId, getIssueById } = useIssueDetails(); const handleIssuePeekOverview = () => { setPeekId(issueId); }; const { queryParam } = queryParamGenerator(board ? { board, peekId: issueId } : { peekId: issueId }); const issue = getIssueById(issueId); if (!issue) return null; const projectIdentifier = project_details?.identifier; return (
{displayProperties && displayProperties?.key && (
{projectIdentifier}-{issue.sequence_id}
)}

{issue.name}

); });