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 && ( - - )} - + }> + + ); }