55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import { Suspense } from "react"
|
|
import { Sidebar } from "@/components/sidebar"
|
|
import { Button } from "@/components/ui/button"
|
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
|
|
import { Badge } from "@/components/ui/badge"
|
|
import { Progress } from "@/components/ui/progress"
|
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
|
|
import {
|
|
BarChart,
|
|
Bar,
|
|
XAxis,
|
|
YAxis,
|
|
CartesianGrid,
|
|
Tooltip,
|
|
ResponsiveContainer,
|
|
PieChart,
|
|
Pie,
|
|
Cell,
|
|
RadarChart,
|
|
PolarGrid,
|
|
PolarAngleAxis,
|
|
PolarRadiusAxis,
|
|
Radar,
|
|
} from "recharts"
|
|
import { Download, Share2, TrendingUp, AlertCircle, CheckCircle, Star } from "lucide-react"
|
|
import { useToast } from "@/hooks/use-toast"
|
|
import { ShareModal } from "@/components/share-modal"
|
|
import ResultsContent from "./results-content"
|
|
|
|
// Loading component
|
|
function ResultsLoading() {
|
|
return (
|
|
<div className="min-h-screen bg-background">
|
|
<Sidebar />
|
|
<main className="md:ml-64 p-6">
|
|
<div className="max-w-6xl mx-auto">
|
|
<div className="flex items-center justify-center h-64">
|
|
<div className="text-center">
|
|
<div className="animate-spin rounded-full h-12 w-12 border-b-2 border-primary mx-auto mb-4"></div>
|
|
<p className="text-muted-foreground">載入評審結果中...</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default function ResultsPage() {
|
|
return (
|
|
<Suspense fallback={<ResultsLoading />}>
|
|
<ResultsContent />
|
|
</Suspense>
|
|
)
|
|
} |