"use client" import { useEffect, useState } from "react" import { ProtectedRoute } from "@/components/protected-route" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Badge } from "@/components/ui/badge" import { Progress } from "@/components/ui/progress" import { Brain, Lightbulb, BarChart3, Calendar, TrendingUp, Users, Eye, ArrowLeft } from "lucide-react" import Link from "next/link" import { useAuth } from "@/lib/hooks/use-auth" interface TestResult { type: "logic" | "creative" | "combined" score: number completedAt: string testCount?: number details?: any } export default function ResultsPage() { return ( ) } function ResultsContent() { const { user } = useAuth() const [results, setResults] = useState([]) const [stats, setStats] = useState({ totalTests: 0, averageScore: 0, bestScore: 0, lastTestDate: null as string | null, testCounts: { logic: 0, creative: 0, combined: 0 } }) useEffect(() => { const loadUserResults = async () => { if (!user) return try { const response = await fetch(`/api/user/test-results?userId=${user.id}`) const data = await response.json() if (data.success) { setResults(data.data.results) setStats(data.data.stats) } else { console.error('Failed to load user results:', data.error) } } catch (error) { console.error('Error loading user results:', error) } } loadUserResults() }, [user]) const getTestTypeInfo = (type: string) => { switch (type) { case "logic": return { name: "邏輯思維測試", icon: Brain, color: "bg-primary", textColor: "text-primary", link: "/results/logic", } case "creative": return { name: "創意能力測試", icon: Lightbulb, color: "bg-accent", textColor: "text-accent", link: "/results/creative", } case "combined": return { name: "綜合能力測試", icon: BarChart3, color: "bg-gradient-to-r from-primary to-accent", textColor: "text-primary", link: "/results/combined", } default: return { name: "未知測試", icon: BarChart3, color: "bg-muted", textColor: "text-muted-foreground", link: "#", } } } const getScoreLevel = (score: number) => { if (score >= 90) return { level: "優秀", color: "bg-green-500" } if (score >= 80) return { level: "良好", color: "bg-blue-500" } if (score >= 70) return { level: "中等", color: "bg-yellow-500" } if (score >= 60) return { level: "及格", color: "bg-orange-500" } return { level: "不及格", color: "bg-red-500" } } if (results.length === 0) { return (
{/* Header */}

我的測試結果

查看您的測試歷史和成績分析

暫無測試記錄

您還沒有完成任何測試,開始您的第一次評估吧!

) } return (
{/* Header */}

我的測試結果

查看您的測試歷史和成績分析

{/* User Info */} {user && (

{user.name}

{user.department} • {user.role === "admin" ? "管理員" : "一般用戶"}

)} {/* Statistics Overview */}
{stats.totalTests}
完成測試
{stats.averageScore}
平均分數
{stats.bestScore}
最高分數
{stats.lastTestDate ? new Date(stats.lastTestDate).toLocaleDateString("zh-TW", { timeZone: "Asia/Taipei" }) : "無"}
最近測試
{/* Test History */} 測試歷史
{results.map((result, index) => { const testInfo = getTestTypeInfo(result.type) const scoreLevel = getScoreLevel(result.score) const Icon = testInfo.icon return (

{testInfo.name}

完成時間:{new Date(result.completedAt).toLocaleString("zh-TW")}

{result.testCount && result.testCount > 1 && (

已測驗 {result.testCount} 次

)}
{result.score}
{scoreLevel.level}
) })}
{/* Performance Chart */} 成績趨勢
{results.map((result, index) => { const testInfo = getTestTypeInfo(result.type) return (
{testInfo.name} {result.score}分
) })}
{/* Quick Actions */} 繼續測試
) }