diff --git a/app/home/page.tsx b/app/home/page.tsx index 0c744c4..b3e1105 100644 --- a/app/home/page.tsx +++ b/app/home/page.tsx @@ -3,7 +3,7 @@ import { useState, useEffect, useRef } from "react" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Button } from "@/components/ui/button" -import { Brain, Lightbulb, BarChart3, Users, Settings, Menu, ChevronDown, Link as LinkIcon } from "lucide-react" +import { Brain, Lightbulb, BarChart3, Users, Settings, Menu, ChevronDown, Link as LinkIcon, CheckCircle } from "lucide-react" import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "@/components/ui/sheet" import Link from "next/link" import Image from "next/image" @@ -15,6 +15,12 @@ export default function HomePage() { const { user, logout } = useAuth() const router = useRouter() const [isDropdownOpen, setIsDropdownOpen] = useState(false) + const [testCompletionStatus, setTestCompletionStatus] = useState({ + logic: false, + creative: false, + combined: false + }) + const [isLoadingTests, setIsLoadingTests] = useState(true) const dropdownRef = useRef(null) const handleLogout = () => { @@ -22,6 +28,47 @@ export default function HomePage() { router.push("/") } + // 檢查用戶測驗完成狀態 + const checkTestCompletionStatus = async () => { + if (!user) return + + try { + setIsLoadingTests(true) + + // 檢查邏輯測試 + const logicResponse = await fetch(`/api/test-results/logic?userId=${user.id}`) + const logicData = await logicResponse.json() + const hasLogicTest = logicData.success && logicData.data && logicData.data.length > 0 + + // 檢查創意測試 + const creativeResponse = await fetch(`/api/test-results/creative?userId=${user.id}`) + const creativeData = await creativeResponse.json() + const hasCreativeTest = creativeData.success && creativeData.data && creativeData.data.length > 0 + + // 檢查綜合測試 + const combinedResponse = await fetch(`/api/test-results/combined?userId=${user.id}`) + const combinedData = await combinedResponse.json() + const hasCombinedTest = combinedData.success && combinedData.data && combinedData.data.length > 0 + + setTestCompletionStatus({ + logic: hasLogicTest, + creative: hasCreativeTest, + combined: hasCombinedTest + }) + } catch (error) { + console.error('Error checking test completion status:', error) + } finally { + setIsLoadingTests(false) + } + } + + // 檢查測驗完成狀態 + useEffect(() => { + if (user) { + checkTestCompletionStatus() + } + }, [user]) + // 點擊外部關閉下拉選單 useEffect(() => { const handleClickOutside = (event: MouseEvent) => { @@ -334,9 +381,23 @@ export default function HomePage() { 評估邏輯推理能力 - + {isLoadingTests ? ( + + ) : testCompletionStatus.logic ? ( + + ) : ( + + )} @@ -350,13 +411,27 @@ export default function HomePage() { 評估創新思維能力 - + {isLoadingTests ? ( + + ) : testCompletionStatus.creative ? ( + + ) : ( + + )} @@ -370,9 +445,23 @@ export default function HomePage() { 完整能力評估 - + {isLoadingTests ? ( + + ) : testCompletionStatus.combined ? ( + + ) : ( + + )}