import { lazy, Suspense } from "react" import { Search } from "lucide-react" import { useStockSectorMembership } from "@/features/sector-radar/api/sector-radar.query" import { useSelectionChart } from "../api/selection.query" import { Card } from "@/shared/ui/card" import type { SelectionStockResult } from "../api/selection.types" import { PatternScoreDetails } from "./pattern-score" import { PatternCaseImage } from "./pattern-case-image" import { getSelectionStrategyLabel, getStockBasicMetrics, } from "./selection-presentation" const SelectionChart = lazy(() => import("./selection-chart").then((module) => ({ default: module.SelectionChart, })), ) interface SignalDetailPanelProps { stock: SelectionStockResult | undefined } export function SignalDetailPanel({ stock }: SignalDetailPanelProps) { const chartQuery = useSelectionChart( stock?.ts_code, stock?.target_trade_date, stock?.strategy, ) const membershipQuery = useStockSectorMembership( stock?.ts_code, stock?.target_trade_date, ) if (!stock) { return (
) } const metricRows = [ ...getStockBasicMetrics(stock), { key: "target_trade_date", label: "目标交易日", value: stock.target_trade_date, }, { key: "strategy", label: "策略", value: getSelectionStrategyLabel(stock.strategy), }, ] const membership = membershipQuery.data?.status === "success" ? membershipQuery.data : undefined const industries = membership?.industries ?? [] const industrySnapshotTitle = membership?.trade_date != null ? `细分行业成分截至 ${membership.trade_date}` : undefined return ( ) }