From 4c8d60f8abf3b89d996928ecea5d6e561a42cd66 Mon Sep 17 00:00:00 2001 From: ryan Date: Wed, 11 Mar 2026 14:06:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E6=B5=81=E7=A8=8B=EF=BC=8C=E6=95=B4=E5=90=88?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=92=8C=E7=A1=AE=E8=AE=A4=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E7=94=A8=E6=88=B7=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- atsf_server/web/app/(public)/reset/page.tsx | 4 ++-- atsf_server/web/app/(public)/user/reset/page.tsx | 4 ++-- atsf_server/web/components/layout/public-shell.tsx | 4 ++-- .../auth/components/password-reset-confirm-form.tsx | 8 ++++++++ .../auth/components/password-reset-flow.tsx | 13 +++++++++++++ 5 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 atsf_server/web/features/auth/components/password-reset-flow.tsx diff --git a/atsf_server/web/app/(public)/reset/page.tsx b/atsf_server/web/app/(public)/reset/page.tsx index b085bb8a..936dd236 100644 --- a/atsf_server/web/app/(public)/reset/page.tsx +++ b/atsf_server/web/app/(public)/reset/page.tsx @@ -1,12 +1,12 @@ import { Suspense } from 'react'; import { LoadingState } from '@/components/feedback/loading-state'; -import { PasswordResetRequestForm } from '@/features/auth/components/password-reset-request-form'; +import { PasswordResetFlow } from '@/features/auth/components/password-reset-flow'; export default function ResetPasswordPage() { return ( }> - + ); } diff --git a/atsf_server/web/app/(public)/user/reset/page.tsx b/atsf_server/web/app/(public)/user/reset/page.tsx index 2c596179..e02019a0 100644 --- a/atsf_server/web/app/(public)/user/reset/page.tsx +++ b/atsf_server/web/app/(public)/user/reset/page.tsx @@ -1,12 +1,12 @@ import { Suspense } from 'react'; import { LoadingState } from '@/components/feedback/loading-state'; -import { PasswordResetConfirmForm } from '@/features/auth/components/password-reset-confirm-form'; +import { PasswordResetFlow } from '@/features/auth/components/password-reset-flow'; export default function LegacyResetPasswordPage() { return ( }> - + ); } diff --git a/atsf_server/web/components/layout/public-shell.tsx b/atsf_server/web/components/layout/public-shell.tsx index 33b6fea4..188438a4 100644 --- a/atsf_server/web/components/layout/public-shell.tsx +++ b/atsf_server/web/components/layout/public-shell.tsx @@ -15,9 +15,9 @@ export function PublicShell({ children }: PublicShellProps) {

ATSFlare

-

管理端改造进行中

+

欢迎使用 ATSFlare 管理端

- 认证流程将在阶段 2 接入。当前页面用于承载入口骨架与路由占位。 + 当前已接入登录、注册、密码重置与 GitHub OAuth 基础流程,后续将继续完善鉴权与业务模块体验。

diff --git a/atsf_server/web/features/auth/components/password-reset-confirm-form.tsx b/atsf_server/web/features/auth/components/password-reset-confirm-form.tsx index 1cea5411..855cc56b 100644 --- a/atsf_server/web/features/auth/components/password-reset-confirm-form.tsx +++ b/atsf_server/web/features/auth/components/password-reset-confirm-form.tsx @@ -1,6 +1,7 @@ 'use client'; import { useMutation } from '@tanstack/react-query'; +import Link from 'next/link'; import { useSearchParams } from 'next/navigation'; import { useState } from 'react'; @@ -68,6 +69,13 @@ export function PasswordResetConfirmForm() { ) : null}
+ +
+ 处理完成后可返回 + + 登录页 + +
); diff --git a/atsf_server/web/features/auth/components/password-reset-flow.tsx b/atsf_server/web/features/auth/components/password-reset-flow.tsx new file mode 100644 index 00000000..47e04fc7 --- /dev/null +++ b/atsf_server/web/features/auth/components/password-reset-flow.tsx @@ -0,0 +1,13 @@ +'use client'; + +import { useSearchParams } from 'next/navigation'; + +import { PasswordResetConfirmForm } from '@/features/auth/components/password-reset-confirm-form'; +import { PasswordResetRequestForm } from '@/features/auth/components/password-reset-request-form'; + +export function PasswordResetFlow() { + const searchParams = useSearchParams(); + const hasConfirmationParams = Boolean(searchParams?.get('email') && searchParams?.get('token')); + + return hasConfirmationParams ? : ; +} \ No newline at end of file