"use client"; import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; import { useAnalysisContext } from "@/context/AnalysisContext"; import { PriceChart } from "@/components/analysis/PriceChart"; import { Button } from "@/components/ui/button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; import { ChevronLeft } from "lucide-react"; const ANALYSTS = [ { key: "market", label: "市場分析師", reportKey: "market_report" }, { key: "social", label: "社群媒體分析師", reportKey: "sentiment_report" }, { key: "news", label: "新聞分析師", reportKey: "news_report" }, { key: "fundamentals", label: "基本面分析師", reportKey: "fundamentals_report" }, ]; export default function AnalysisResultsPage() { const router = useRouter(); const { analysisResult } = useAnalysisContext(); const [selectedAnalyst, setSelectedAnalyst] = useState("market"); // 如果沒有結果,重定向到分析頁面 useEffect(() => { if (!analysisResult) { router.push("/analysis"); } }, [analysisResult, router]); if (!analysisResult) { return (

沒有分析結果

請先執行分析

); } const currentAnalyst = ANALYSTS.find(a => a.key === selectedAnalyst); const currentReport = analysisResult.reports?.[currentAnalyst?.reportKey || ""]; return (
{/* Header */}

{analysisResult.ticker} 詳細分析結果

分析日期:{analysisResult.analysis_date}

{/* 分析師選擇 Tabs */} {ANALYSTS.map(analyst => ( {analyst.label} ))} {ANALYSTS.map(analyst => (
{/* 價格圖表 - 每個分析師都有 */} {analysisResult.price_data && analysisResult.price_stats && ( )} {/* 分析師報告 */} {analyst.label} 報告 {analyst.key === "market" && "技術分析與市場趨勢評估"} {analyst.key === "social" && "社群情緒與市場氛圍分析"} {analyst.key === "news" && "新聞事件與影響分析"} {analyst.key === "fundamentals" && "財務數據與基本面分析"} {currentReport ? (
{currentReport}
) : (

此分析師沒有生成報告

可能此分析師未被選擇或分析過程中未產生報告

)}
))}
); }