Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use client";

import { useRouter } from "next/navigation";
import { useRouter, useSearchParams } from "next/navigation";
import { useEffect, useMemo, useState } from "react";
import { useGetMyInfo, usePostConfirmSchoolEmail, usePostSchoolEmail } from "@/apis/MyPage";
import BlockBtn from "@/components/button/BlockBtn";
Expand All @@ -25,6 +25,7 @@ const formatTime = (seconds: number) => {

const SchoolEmailVerificationContent = () => {
const router = useRouter();
const searchParams = useSearchParams();
const { data: myInfo } = useGetMyInfo();
const postSchoolEmailMutation = usePostSchoolEmail();
const postConfirmSchoolEmailMutation = usePostConfirmSchoolEmail();
Expand All @@ -42,6 +43,7 @@ const SchoolEmailVerificationContent = () => {
const isCodeInputValid = code.length === CODE_LENGTH;
const isTimerExpired = remainingSeconds <= 0;
const progressValue = step === "email" ? 0 : step === "code" ? 50 : 100;
const shouldReturnToApply = searchParams?.get("returnTo") === "applicationApply";

useEffect(() => {
if (step !== "code" || remainingSeconds <= 0) return;
Expand Down Expand Up @@ -132,7 +134,9 @@ const SchoolEmailVerificationContent = () => {

<div className="fixed bottom-14 left-0 right-0 w-full bg-white">
<div className="mx-auto mb-[37px] w-full max-w-app px-5">
<BlockBtn onClick={() => router.replace("/")}>홈으로</BlockBtn>
<BlockBtn onClick={() => router.replace(shouldReturnToApply ? "/university/application/apply" : "/")}>
{shouldReturnToApply ? "지원하기로 돌아가기" : "홈으로"}
</BlockBtn>
</div>
</div>
</div>
Expand Down
6 changes: 5 additions & 1 deletion apps/web/src/app/my/school-email/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import type { Metadata } from "next";
import { Suspense } from "react";

import TopDetailNavigation from "@/components/layout/TopDetailNavigation";
import CloudSpinnerPage from "@/components/ui/CloudSpinnerPage";
import { NO_INDEX_ROBOTS } from "@/utils/seo";

import SchoolEmailVerificationContent from "./_ui/SchoolEmailVerificationContent";
Expand All @@ -14,7 +16,9 @@ const SchoolEmailVerificationPage = () => {
return (
<>
<TopDetailNavigation title="학교 인증하기" />
<SchoolEmailVerificationContent />
<Suspense fallback={<CloudSpinnerPage />}>
<SchoolEmailVerificationContent />
</Suspense>
</>
);
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use client";

import { useRouter } from "next/navigation";
import { useMemo, useState } from "react";
import { useEffect, useMemo, useState } from "react";
import { usePostSubmitApplication } from "@/apis/applications";
import { useGetMyGpaScore, useGetMyLanguageTestScore } from "@/apis/Scores";
import { useUniversitySearch } from "@/apis/universities";
Expand All @@ -23,6 +23,8 @@ const APPLY_PROGRESS_TOTAL_STEPS = 5;
const ApplyPageContent = () => {
const router = useRouter();
const homeUniversityId = useAuthStore((state) => state.homeUniversityId);
const isAuthInitialized = useAuthStore((state) => state.isInitialized);
const isAuthenticated = useAuthStore((state) => state.isAuthenticated);
const [step, setStep] = useState<number>(1);
const maxChoiceCount = getHomeUniversityById(homeUniversityId)?.maxChoiceCount ?? DEFAULT_MAX_CHOICE_COUNT;
const universitySearchOptions = useMemo(
Expand All @@ -46,6 +48,14 @@ const ApplyPageContent = () => {
const [curGpaScore, setCurGpaScore] = useState<number | null>(null);
const [curUniversityList, setCurUniversityList] = useState<number[]>([]);

useEffect(() => {
if (!isAuthInitialized || !isAuthenticated || homeUniversityId !== null) {
return;
}

router.replace("/my/school-email?returnTo=applicationApply");
Comment thread
yoonc01 marked this conversation as resolved.
}, [homeUniversityId, isAuthInitialized, isAuthenticated, router]);

Comment thread
coderabbitai[bot] marked this conversation as resolved.
// 다음 스텝으로 넘어가기
const goNextStep = () => setStep((prev) => prev + 1);
// 이전 스텝으로 돌아가기
Expand Down Expand Up @@ -89,6 +99,10 @@ const ApplyPageContent = () => {
const hasSelectedUniversity = curUniversityList.some((universityId) => universityId > 0);
const progressStep = step === 3 && hasSelectedUniversity ? APPLY_PROGRESS_TOTAL_STEPS : step + 1;

if (isAuthInitialized && isAuthenticated && homeUniversityId === null) {
return null;
}

return (
<>
<TopDetailNavigation title="지원하기" handleBack={goPrevStep} />
Expand Down
Loading