Skip to content
Open
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
24 changes: 16 additions & 8 deletions src/components/Router/router.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Route, Routes } from "react-router-dom";
import { Route, Routes, Navigate } from "react-router-dom";
import HomePage from "pages/Home/page";
import PageTemplate from "components/Common/PageTemplate";
import { DodamNotFoundPage } from "@b1nd/dds-web";
Expand All @@ -11,19 +11,27 @@ const ProtectedManagePage = () => {
boolean | null
>(null);

const getDormitoryManageMemberCheckData = async () => {
const data = await studentRepository.checkDormitoryManager();
setIsDormitoryManageMember(data.data);
};

useEffect(() => {
getDormitoryManageMemberCheckData();
const checkPermission = async () => {
try {
const data = await studentRepository.checkDormitoryManager();
setIsDormitoryManageMember(data.data);
} catch (error) {
setIsDormitoryManageMember(false);
}
};

checkPermission();
}, []);

if (isDormitoryManageMember === null || !isDormitoryManageMember) {
if (isDormitoryManageMember === null) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if (!isDormitoryManageMember) {
는 어떨까요

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기에 덧붙여서 isDomitoryManageMember의 값이 null이거나 빈문자열 등등으로 올 때 자바스크립트에서는 falsy라고 판단하여서 !연산자 하나로만 if절을 완성시켜도 될듯 합니다.

그럼 수정된 코드는

if (!isDomitoryManageMember) {
  return <Navigate to "/" replace />
}

가 되는게 맞을 것 같습니다.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 처음에는 !isDormitoryManageMember만으로 조건을 처리했었는데, 로딩 중(null 상태)에도 /nightstudy로 리다이렉트되는 이슈가 있어서 null 체크를 추가해서 로딩 상태를 별도로 처리하게 되었습니다.

return null;
}

if (!isDormitoryManageMember) {
return <Navigate to="/" replace />;
}

return <ManagePage />;
};

Expand Down