diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-06-27 01:16:20 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-06-27 01:16:20 +0000 |
| commit | e9897d416b3e7327bbd4d4aef887eee37751ae82 (patch) | |
| tree | bd20ce6eadf9b21755bd7425492d2d31c7700a0e /components/login/InvalidTokenPage.tsx | |
| parent | 3bf1952c1dad9d479bb8b22031b06a7434d37c37 (diff) | |
(대표님) 20250627 오전 10시 작업사항
Diffstat (limited to 'components/login/InvalidTokenPage.tsx')
| -rw-r--r-- | components/login/InvalidTokenPage.tsx | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/components/login/InvalidTokenPage.tsx b/components/login/InvalidTokenPage.tsx new file mode 100644 index 00000000..da97a568 --- /dev/null +++ b/components/login/InvalidTokenPage.tsx @@ -0,0 +1,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> + ); +}
\ No newline at end of file |
