From 053829f82450f8b9091013b73f0fbcee54f6b1ef Mon Sep 17 00:00:00 2001 From: ohamin26 Date: Sat, 7 Jun 2025 18:32:56 +0900 Subject: [PATCH] =?UTF-8?q?fix=20:=20=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85?= =?UTF-8?q?=20=EB=A6=AC=EB=8B=A4=EC=9D=B4=EB=A0=89=ED=8A=B8=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20=EB=88=84?= =?UTF-8?q?=EB=9D=BD=20=ED=95=AD=EB=AA=A9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 회원가입 리다리엑트 페이지 변경 - 누락 항목 추가 ( 이메일 ) --- src/app/(view)/(auth)/sign-up/page.tsx | 85 +++++++++++++++++ .../(view)/(auth)/sign-up/redirect/page.tsx | 91 ++++--------------- 2 files changed, 102 insertions(+), 74 deletions(-) create mode 100644 src/app/(view)/(auth)/sign-up/page.tsx diff --git a/src/app/(view)/(auth)/sign-up/page.tsx b/src/app/(view)/(auth)/sign-up/page.tsx new file mode 100644 index 0000000..4161b8a --- /dev/null +++ b/src/app/(view)/(auth)/sign-up/page.tsx @@ -0,0 +1,85 @@ +"use client"; + +import { useRouter } from "next/navigation"; +import { useEffect, useState } from "react"; +import RegisterSetup from "@/_components/auth/register/RegisterSetup"; +import ConfirmModal from "@/_common/ConfirmModal"; +import TopHeader from "@/_common/TopHeader"; +import useFunnel from "@/_utils/hooks/useFunnel"; + +const STEPS = ["약관동의", "닉네임", "가입정보"]; + +export default function Page() { + const { Funnel, currentStep, setStep } = useFunnel(STEPS[0]); + const router = useRouter(); + const step = STEPS.indexOf(currentStep) + 1; + const [registerCancelModalOpen, setRegisterCancelModalOpen] = + useState(false); + + const handleRegisterCancelModalOpen = () => { + setRegisterCancelModalOpen(true); + }; + + const handleRegisterCancelModalClose = () => { + setRegisterCancelModalOpen(false); + }; + + const handleStepChange = (newStep: string) => { + if (STEPS.includes(newStep)) { + setStep(newStep); + } + }; + + const handleRegisterCancel = () => { + router.replace("/"); + }; + + const handleBack = () => { + const currentIndex = STEPS.indexOf(currentStep); + if (currentIndex > 0) { + setStep(STEPS[currentIndex - 1]); + } else { + setStep(STEPS[0]); + } + }; + + useEffect(() => { + const handleBeforeUnload = (event: BeforeUnloadEvent) => { + event.preventDefault(); + }; + + window.addEventListener("beforeunload", handleBeforeUnload); + + return () => { + window.removeEventListener("beforeunload", handleBeforeUnload); + }; + }, []); + + return ( + <> + handleBack()} + onClick={handleRegisterCancelModalOpen} + /> + + {registerCancelModalOpen && ( + + )} + + ); +} diff --git a/src/app/(view)/(auth)/sign-up/redirect/page.tsx b/src/app/(view)/(auth)/sign-up/redirect/page.tsx index 4161b8a..de2f1a2 100644 --- a/src/app/(view)/(auth)/sign-up/redirect/page.tsx +++ b/src/app/(view)/(auth)/sign-up/redirect/page.tsx @@ -1,85 +1,28 @@ "use client"; -import { useRouter } from "next/navigation"; -import { useEffect, useState } from "react"; -import RegisterSetup from "@/_components/auth/register/RegisterSetup"; -import ConfirmModal from "@/_common/ConfirmModal"; -import TopHeader from "@/_common/TopHeader"; -import useFunnel from "@/_utils/hooks/useFunnel"; +import { useSearchParams, useRouter } from "next/navigation"; +import { Suspense, useEffect } from "react"; +import LoginLoading from "@/_components/auth/login/LoginLoading"; +import { useRegisterStore } from "@/_store/register"; -const STEPS = ["약관동의", "닉네임", "가입정보"]; - -export default function Page() { - const { Funnel, currentStep, setStep } = useFunnel(STEPS[0]); +function RegisterHandlerComponent() { const router = useRouter(); - const step = STEPS.indexOf(currentStep) + 1; - const [registerCancelModalOpen, setRegisterCancelModalOpen] = - useState(false); - - const handleRegisterCancelModalOpen = () => { - setRegisterCancelModalOpen(true); - }; - - const handleRegisterCancelModalClose = () => { - setRegisterCancelModalOpen(false); - }; - - const handleStepChange = (newStep: string) => { - if (STEPS.includes(newStep)) { - setStep(newStep); - } - }; - - const handleRegisterCancel = () => { - router.replace("/"); - }; - - const handleBack = () => { - const currentIndex = STEPS.indexOf(currentStep); - if (currentIndex > 0) { - setStep(STEPS[currentIndex - 1]); - } else { - setStep(STEPS[0]); - } - }; + const searchParams = useSearchParams(); + const { setEmail } = useRegisterStore(); useEffect(() => { - const handleBeforeUnload = (event: BeforeUnloadEvent) => { - event.preventDefault(); - }; - - window.addEventListener("beforeunload", handleBeforeUnload); - - return () => { - window.removeEventListener("beforeunload", handleBeforeUnload); - }; + const email = searchParams.get("email"); + setEmail(email ?? ""); + router.replace("/sign-up"); }, []); + return null; +} + +export default function Page() { return ( - <> - handleBack()} - onClick={handleRegisterCancelModalOpen} - /> - - {registerCancelModalOpen && ( - - )} - + }> + + ); }