Files
juwan-frontend/app/(account)/verify/page.tsx
T
2026-02-21 15:53:46 +08:00

138 lines
5.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use client"
import { CheckCircle, Clock, ShieldCheck, Upload } from "lucide-react"
import { useState } from "react"
import { Badge } from "@/components/ui/badge"
import { Button } from "@/components/ui/button"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Input } from "@/components/ui/input"
import { Label } from "@/components/ui/label"
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@/components/ui/select"
import { Separator } from "@/components/ui/separator"
import { Textarea } from "@/components/ui/textarea"
import type { UserRole } from "@/lib/types"
import { useAuthStore } from "@/store/auth"
export default function VerifyPage() {
const [verifyRole, setVerifyRole] = useState<UserRole | "">("")
const verificationStatus = useAuthStore((state) => state.verificationStatus)
const submitVerification = useAuthStore((state) => state.submitVerification)
const submitted = Object.values(verificationStatus).includes("pending")
if (submitted) {
return (
<div className="max-w-2xl space-y-6">
<h1 className="text-2xl font-bold"></h1>
<Card>
<CardContent className="py-12 text-center space-y-4">
<Clock className="h-12 w-12 mx-auto text-muted-foreground" />
<h2 className="text-xl font-bold"></h2>
<p className="text-sm text-muted-foreground">
1-3
</p>
<Badge variant="outline" className="text-sm">
<Clock className="mr-1 h-3.5 w-3.5" />
</Badge>
</CardContent>
</Card>
</div>
)
}
return (
<div className="max-w-2xl space-y-6">
<h1 className="text-2xl font-bold"></h1>
<Card>
<CardHeader>
<CardTitle className="text-base"></CardTitle>
</CardHeader>
<CardContent className="space-y-3 text-sm text-muted-foreground">
<div className="flex items-start gap-2">
<ShieldCheck className="h-4 w-4 shrink-0 mt-0.5 text-primary" />
<span></span>
</div>
<div className="flex items-start gap-2">
<CheckCircle className="h-4 w-4 shrink-0 mt-0.5 text-primary" />
<span></span>
</div>
</CardContent>
</Card>
<Card>
<CardHeader>
<CardTitle className="text-base"></CardTitle>
</CardHeader>
<CardContent className="space-y-6">
<div className="space-y-2">
<Label></Label>
<Select value={verifyRole} onValueChange={(value) => setVerifyRole(value as UserRole)}>
<SelectTrigger>
<SelectValue placeholder="选择认证类型" />
</SelectTrigger>
<SelectContent>
<SelectItem value="player"></SelectItem>
<SelectItem value="owner"></SelectItem>
</SelectContent>
</Select>
</div>
<div className="space-y-2">
<Label htmlFor="real-name"></Label>
<Input id="real-name" placeholder="请输入真实姓名" />
</div>
<div className="space-y-2">
<Label htmlFor="id-number"></Label>
<Input id="id-number" placeholder="请输入身份证号" />
</div>
<Separator />
<div className="space-y-2">
<Label></Label>
<Textarea placeholder="请描述你的游戏经历、段位、擅长游戏等" rows={3} />
</div>
<div className="space-y-2">
<Label></Label>
<div className="flex gap-2">
<div className="h-24 w-24 rounded-md border-2 border-dashed border-muted-foreground/25 flex flex-col items-center justify-center gap-1 text-muted-foreground cursor-pointer hover:border-muted-foreground/50 transition-colors">
<Upload className="h-5 w-5" />
<span className="text-[10px]"></span>
</div>
<div className="h-24 w-24 rounded-md border-2 border-dashed border-muted-foreground/25 flex flex-col items-center justify-center gap-1 text-muted-foreground cursor-pointer hover:border-muted-foreground/50 transition-colors">
<Upload className="h-5 w-5" />
<span className="text-[10px]"></span>
</div>
<div className="h-24 w-24 rounded-md border-2 border-dashed border-muted-foreground/25 flex flex-col items-center justify-center gap-1 text-muted-foreground cursor-pointer hover:border-muted-foreground/50 transition-colors">
<Upload className="h-5 w-5" />
<span className="text-[10px]"></span>
</div>
</div>
<p className="text-xs text-muted-foreground"> JPGPNG 5MB</p>
</div>
<Button
className="w-full"
disabled={!verifyRole}
onClick={() => {
if (!verifyRole) return
submitVerification(verifyRole)
}}
>
</Button>
</CardContent>
</Card>
</div>
)
}