"use client" 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, CheckCircle } from "lucide-react" import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "@/components/ui/sheet" import Link from "next/link" import Image from "next/image" import { useAuth } from "@/lib/hooks/use-auth" import { useRouter } from "next/navigation" import { ProtectedRoute } from "@/components/protected-route" 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 = () => { logout() 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) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsDropdownOpen(false) } } if (isDropdownOpen) { document.addEventListener('mousedown', handleClickOutside) } return () => { document.removeEventListener('mousedown', handleClickOutside) } }, [isDropdownOpen]) // 調試信息 console.log("Current user:", user) return (
{/* Header */}

HR 評估系統

員工能力測評平台

{/* Desktop Navigation */}
{/* Navigation Links */}
{user?.role === "admin" && ( <> 所有測試結果 部門分析 )}
{/* 自定義下拉選單 */}
{isDropdownOpen && (
{user?.role === "admin" && ( <> setIsDropdownOpen(false)} > 帳戶設定 setIsDropdownOpen(false)} > 用戶管理 setIsDropdownOpen(false)} > 題目管理 setIsDropdownOpen(false)} > 測驗連結
)}
)}
選單

{user?.name}

{user?.department}

{/* Navigation Links */} {user?.role === "admin" && ( <> )} {user?.role === "admin" && ( <> )}
{/* Hero Section */}

歡迎回來,{user?.name}

透過科學的邏輯思維測試和創意能力評估,全面了解您的綜合素質

{/* Test Cards / Admin Info Cards */}
{user?.role === "admin" ? ( // 管理者看到的介紹卡片
{/* 邏輯思維測試介紹 */}
邏輯思維測試 評估邏輯推理、分析判斷和問題解決能力
題目數量 10題
題目類型 單選題
預計時間 15-20分鐘
{/* 創意能力測試介紹 */}
創意能力測試 評估創新思維、想像力和創造性解決問題的能力
題目數量 20題
題目類型 5級量表
預計時間 25-30分鐘
{/* 綜合測試介紹 */}
綜合測試 完整的邏輯思維 + 創意能力雙重評估,獲得全面的能力報告
總題目數 30題
預計時間 45分鐘
) : ( // 一般用戶看到的測試功能
{/* Logic Test */}
邏輯思維測試 評估邏輯推理能力
{isLoadingTests ? ( ) : testCompletionStatus.logic ? ( ) : ( )}
{/* Creative Test */}
創意能力測試 評估創新思維能力
{isLoadingTests ? ( ) : testCompletionStatus.creative ? ( ) : ( )}
{/* Combined Test */}
綜合測試 完整能力評估
{isLoadingTests ? ( ) : testCompletionStatus.combined ? ( ) : ( )}
)}
{/* Footer */}
) }