"use client"; import { AppLink } from "../../navigation"; import { useQuery } from "@tanstack/react-query"; import { issueListOptions, issueDetailOptions } from "@multica/core/issues/queries"; import { useWorkspaceId } from "@multica/core/hooks"; import { useWorkspacePaths } from "@multica/core/paths"; import { StatusIcon } from "./status-icon"; interface IssueMentionCardProps { issueId: string; /** Fallback text when issue is not in store (e.g. "MUL-7") */ fallbackLabel?: string; } export function IssueMentionCard({ issueId, fallbackLabel }: IssueMentionCardProps) { const wsId = useWorkspaceId(); const p = useWorkspacePaths(); const { data: issues = [] } = useQuery(issueListOptions(wsId)); const listIssue = issues.find((i) => i.id === issueId); // Fetch individual issue when not found in the list (e.g. done issues beyond // the first page). Only fires when listIssue is undefined. const { data: detailIssue } = useQuery({ ...issueDetailOptions(wsId, issueId), enabled: !listIssue, }); const issue = listIssue ?? detailIssue; if (!issue) { return ( {fallbackLabel ?? issueId.slice(0, 8)} ); } return ( {issue.identifier} {issue.title} ); }