summaryrefslogtreecommitdiff
path: root/components/login/InvalidTokenPage.tsx
blob: da97a568762287a5042f1c9c3626e6d67fe678c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// app/[lng]/auth/reset-password/components/InvalidTokenPage.tsx

import { Button } from '@/components/ui/button';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { XCircle } from 'lucide-react';
import Link from 'next/link';

interface Props {
  expired: boolean;
  error?: string;
}

export default function InvalidTokenPage({ expired, error }: Props) {
  return (
    <div className="min-h-screen flex items-center justify-center bg-gray-50 py-12 px-4 sm:px-6 lg:px-8">
      <Card className="w-full max-w-md">
        <CardHeader className="text-center">
          <div className="mx-auto flex items-center justify-center w-12 h-12 rounded-full bg-red-100 mb-4">
            <XCircle className="w-6 h-6 text-red-600" />
          </div>
          <CardTitle className="text-2xl">링크 오류</CardTitle>
          <CardDescription>
            {expired 
              ? '재설정 링크가 만료되었습니다. 새로운 재설정 요청을 해주세요.' 
              : error || '유효하지 않은 재설정 링크입니다.'}
          </CardDescription>
        </CardHeader>
        <CardContent>
          <div className="space-y-4">
            <Link href="/auth/forgot-password">
              <Button className="w-full">
                새로운 재설정 링크 요청
              </Button>
            </Link>
            <Link href="/auth/login">
              <Button variant="outline" className="w-full">
                로그인 페이지로 돌아가기
              </Button>
            </Link>
          </div>
        </CardContent>
      </Card>
    </div>
  );
}