From 4cdc86d089013bb389dac652503b2bfc9eb65500 Mon Sep 17 00:00:00 2001 From: hwinkr Date: Mon, 11 Dec 2023 11:58:03 +0900 Subject: [PATCH 1/4] =?UTF-8?q?chore(delete=20graduation=20link):=20useMaj?= =?UTF-8?q?or=20=ED=9B=85=EC=97=90=EC=84=9C=20=EC=82=AD=EC=A0=9C=EB=90=9C?= =?UTF-8?q?=20=EC=A1=B8=EC=97=85=EC=9A=94=EA=B1=B4=20=EB=A7=81=ED=81=AC=20?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/List/DepartmentList/index.test.tsx | 2 -- src/pages/MajorDecision/index.test.tsx | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/components/List/DepartmentList/index.test.tsx b/src/components/List/DepartmentList/index.test.tsx index 6b0cd067..f1de6981 100644 --- a/src/components/List/DepartmentList/index.test.tsx +++ b/src/components/List/DepartmentList/index.test.tsx @@ -31,7 +31,6 @@ jest.mock('@hooks/useModals', () => { }); describe.skip('학과선택 테스트', () => { - const mockGraduationLink = 'https://ce.pknu.ac.kr/ce/2889'; const mockUseMajor = useMajor as jest.MockedFunction; const mockSetMajor = jest.fn(); @@ -39,7 +38,6 @@ describe.skip('학과선택 테스트', () => { mockUseMajor.mockReturnValue({ setMajor: mockSetMajor, major: '컴퓨터공학과', - graduationLink: mockGraduationLink, }); }); diff --git a/src/pages/MajorDecision/index.test.tsx b/src/pages/MajorDecision/index.test.tsx index 32caf253..e85d85bd 100644 --- a/src/pages/MajorDecision/index.test.tsx +++ b/src/pages/MajorDecision/index.test.tsx @@ -15,7 +15,6 @@ jest.mock('react-router-dom', () => ({ })); describe.skip('학과선택 페이지 로직 테스트', () => { - const mockGraduationLink = 'https://ce.pknu.ac.kr/ce/2889'; const mockSetMajor = jest.fn(); beforeEach(() => { @@ -36,7 +35,6 @@ describe.skip('학과선택 페이지 로직 테스트', () => { value={{ major: null, setMajor: mockSetMajor, - graduationLink: mockGraduationLink, }} > From 4ebf349c860a811d4b433d83bc94f6fa30539391 Mon Sep 17 00:00:00 2001 From: hwinkr Date: Mon, 11 Dec 2023 11:59:04 +0900 Subject: [PATCH 2/4] =?UTF-8?q?refactor(delete=20graduation=20state):=20Ma?= =?UTF-8?q?jorContext=EC=97=90=EC=84=9C=20=EC=A1=B8=EC=97=85=EC=9A=94?= =?UTF-8?q?=EA=B1=B4=20=EB=A7=81=ED=81=AC=20=EC=83=81=ED=83=9C=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Providers/MajorProvider/index.tsx | 23 ++----------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/src/components/Providers/MajorProvider/index.tsx b/src/components/Providers/MajorProvider/index.tsx index b60ac618..ffe046be 100644 --- a/src/components/Providers/MajorProvider/index.tsx +++ b/src/components/Providers/MajorProvider/index.tsx @@ -1,41 +1,22 @@ -import http from '@apis/http'; import MajorContext from '@contexts/major'; -import { AxiosResponse } from 'axios'; import React, { useEffect, useState } from 'react'; -interface GraduationLink { - department: string; - link: string | null; -} - interface MajorProviderProps { children: React.ReactNode; } const MajorProvider = ({ children }: MajorProviderProps) => { const [major, setMajor] = useState(null); - const [graduationLink, setGraduationLink] = useState(''); useEffect(() => { const storedMajor = localStorage.getItem('major'); if (!storedMajor) return; + setMajor(storedMajor); }, []); - useEffect(() => { - if (!major) return; - - (async () => { - const response: AxiosResponse = await http.get( - `/api/graduation?major=${major}`, - ); - const graduationLink = response.data.link; - setGraduationLink(graduationLink); - })(); - }, [major]); - return ( - + {children} ); From 29a095f4c73304a37874810aa20ad00edf75df2f Mon Sep 17 00:00:00 2001 From: hwinkr Date: Mon, 11 Dec 2023 11:59:41 +0900 Subject: [PATCH 3/4] =?UTF-8?q?refactor(delete=20graduation=20type):=20Maj?= =?UTF-8?q?orContext=20=ED=83=80=EC=9E=85=EC=97=90=EC=84=9C=20=EC=A1=B8?= =?UTF-8?q?=EC=97=85=EC=9A=94=EA=B1=B4=20=EB=A7=81=ED=81=AC=20=ED=83=80?= =?UTF-8?q?=EC=9E=85=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/contexts/major.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/contexts/major.ts b/src/contexts/major.ts index 4cf8a5be..750de426 100644 --- a/src/contexts/major.ts +++ b/src/contexts/major.ts @@ -4,7 +4,6 @@ import { createContext } from 'react'; interface MajorState { major: Major; setMajor: React.Dispatch>; - graduationLink: string | null; } const MajorContext = createContext(null); From bcca8d61bf02287c790e7802a3eef24b888d0ed2 Mon Sep 17 00:00:00 2001 From: hwinkr Date: Mon, 11 Dec 2023 12:00:29 +0900 Subject: [PATCH 4/4] =?UTF-8?q?refactor(add=20graduation=20handle=20logic)?= =?UTF-8?q?:=20=EC=A1=B8=EC=97=85=EC=9A=94=EA=B1=B4=20=EC=B9=B4=EB=93=9C?= =?UTF-8?q?=EB=A5=BC=20=ED=81=B4=EB=A6=AD=ED=95=A0=20=EB=95=8C=EB=A7=88?= =?UTF-8?q?=EB=8B=A4=20=EC=A1=B8=EC=97=85=EC=9A=94=EA=B1=B4=20=EB=A7=81?= =?UTF-8?q?=ED=81=AC=20api=20=EC=9A=94=EC=B2=AD=EC=9D=84=20=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Home/components/InformCardList.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/pages/Home/components/InformCardList.tsx b/src/pages/Home/components/InformCardList.tsx index 28c992f9..603c7ecf 100644 --- a/src/pages/Home/components/InformCardList.tsx +++ b/src/pages/Home/components/InformCardList.tsx @@ -1,15 +1,25 @@ +import http from '@apis/http'; import InformCard from '@components/Card/InformCard'; import { ANNOUNCEMENT_TITLE } from '@constants/announcement'; import PATH from '@constants/path'; import useMajor from '@hooks/useMajor'; import useRouter from '@hooks/useRouter'; import openLink from '@utils/router/openLink'; +import { AxiosResponse } from 'axios'; import React from 'react'; const InformCardList = () => { - const { graduationLink } = useMajor(); + const { major } = useMajor(); const { routerTo } = useRouter(); + const onGraduationCardClick = async () => { + const response: AxiosResponse = await http.get( + `/api/graduation?major=${major}`, + ); + const graduationLink = response.data; + openLink(graduationLink); + }; + return ( <> { icon="school" title="졸업요건" majorRequired={true} - onClick={() => openLink(graduationLink)} + onClick={onGraduationCardClick} /> );