From 7a8c0102958a859c9e7476810d5c9b822f882692 Mon Sep 17 00:00:00 2001 From: "web@ppanel" Date: Mon, 22 Dec 2025 04:26:27 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20Update=20invite=20link=20?= =?UTF-8?q?format=20in=20auth=20forms=20and=20sidebar=20to=20include=20has?= =?UTF-8?q?h=20fragment=20for=20routing.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/user/src/sections/auth/email/auth-form.tsx | 13 +++++++++++-- apps/user/src/sections/auth/phone/auth-form.tsx | 12 ++++++++++-- apps/user/src/sections/user/affiliate/index.tsx | 2 +- apps/user/src/sections/user/sidebar-right.tsx | 2 +- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/apps/user/src/sections/auth/email/auth-form.tsx b/apps/user/src/sections/auth/email/auth-form.tsx index 716a531..e796104 100644 --- a/apps/user/src/sections/auth/email/auth-form.tsx +++ b/apps/user/src/sections/auth/email/auth-form.tsx @@ -1,13 +1,13 @@ "use client"; -import { useNavigate } from "@tanstack/react-router"; +import { useNavigate, useSearch } from "@tanstack/react-router"; import { resetPassword, userLogin, userRegister, } from "@workspace/ui/services/common/auth"; import type { ReactNode } from "react"; -import { useState, useTransition } from "react"; +import { useEffect, useState, useTransition } from "react"; import { useTranslation } from "react-i18next"; import { toast } from "sonner"; import { USER_EMAIL, USER_PASSWORD } from "@/config"; @@ -21,16 +21,25 @@ export default function EmailAuthForm() { const { t } = useTranslation("auth"); const navigate = useNavigate(); const { getUserInfo } = useGlobalStore(); + const searchParams = useSearch({ strict: false }) as { invite?: string }; const [type, setType] = useState<"login" | "register" | "reset">("login"); const [loading, startTransition] = useTransition(); const [initialValues, setInitialValues] = useState<{ email?: string; password?: string; + invite?: string; }>({ email: USER_EMAIL, password: USER_PASSWORD, }); + useEffect(() => { + if (searchParams.invite) { + localStorage.setItem("invite", searchParams.invite); + setInitialValues((prev) => ({ ...prev, invite: searchParams.invite })); + } + }, [searchParams.invite]); + const handleFormSubmit = async (params: any) => { const onLogin = async (token?: string) => { if (!token) return; diff --git a/apps/user/src/sections/auth/phone/auth-form.tsx b/apps/user/src/sections/auth/phone/auth-form.tsx index d24bfef..a6679ea 100644 --- a/apps/user/src/sections/auth/phone/auth-form.tsx +++ b/apps/user/src/sections/auth/phone/auth-form.tsx @@ -1,13 +1,13 @@ "use client"; -import { useNavigate } from "@tanstack/react-router"; +import { useNavigate, useSearch } from "@tanstack/react-router"; import { telephoneLogin, telephoneResetPassword, telephoneUserRegister, } from "@workspace/ui/services/common/auth"; import type { ReactNode } from "react"; -import { useState, useTransition } from "react"; +import { useEffect, useState, useTransition } from "react"; import { useTranslation } from "react-i18next"; import { toast } from "sonner"; import { useGlobalStore } from "@/stores/global"; @@ -20,6 +20,7 @@ export default function PhoneAuthForm() { const { t } = useTranslation("auth"); const navigate = useNavigate(); const { getUserInfo } = useGlobalStore(); + const searchParams = useSearch({ strict: false }) as { invite?: string }; const [type, setType] = useState<"login" | "register" | "reset">("login"); const [loading, startTransition] = useTransition(); const [initialValues, setInitialValues] = useState( @@ -32,6 +33,13 @@ export default function PhoneAuthForm() { } ); + useEffect(() => { + if (searchParams.invite) { + localStorage.setItem("invite", searchParams.invite); + setInitialValues((prev) => ({ ...prev, invite: searchParams.invite })); + } + }, [searchParams.invite]); + const handleFormSubmit = async (params: any) => { const onLogin = async (token?: string) => { if (!token) return; diff --git a/apps/user/src/sections/user/affiliate/index.tsx b/apps/user/src/sections/user/affiliate/index.tsx index 23adbcf..1131f96 100644 --- a/apps/user/src/sections/user/affiliate/index.tsx +++ b/apps/user/src/sections/user/affiliate/index.tsx @@ -72,7 +72,7 @@ export default function Affiliate() { toast.success(t("copySuccess", "Copy Success")); } }} - text={`${location?.origin}/auth?invite=${user?.refer_code}`} + text={`${location?.origin}/#/auth?invite=${user?.refer_code}`} >