{
);
};
-export default DepartmentSkeleton;
+export default DepartmentListSkeleton;
const ListWrapper = styled.div`
display: flex;
diff --git a/src/components/List/DepartmentList/index.test.tsx b/src/components/List/DepartmentList/index.test.tsx
index 6a231171..6b0cd067 100644
--- a/src/components/List/DepartmentList/index.test.tsx
+++ b/src/components/List/DepartmentList/index.test.tsx
@@ -1,7 +1,7 @@
+import ConfirmModal from '@components/Common/Modal/ConfirmModal';
import DepartmentList from '@components/List/DepartmentList';
-import MajorProvider from '@components/MajorProvider';
-import ConfirmModal from '@components/Modal/ConfirmModal';
-import ModalsProvider from '@components/ModalsProvider';
+import MajorProvider from '@components/Providers/MajorProvider';
+import ModalsProvider from '@components/Providers/ModalsProvider';
import { MODAL_MESSAGE } from '@constants/modal-messages';
import useMajor from '@hooks/useMajor';
import useModals from '@hooks/useModals';
diff --git a/src/components/List/DepartmentList/index.tsx b/src/components/List/DepartmentList/index.tsx
index b3d4b8e6..424e4194 100644
--- a/src/components/List/DepartmentList/index.tsx
+++ b/src/components/List/DepartmentList/index.tsx
@@ -6,7 +6,7 @@ import React, { Suspense } from 'react';
import { useParams } from 'react-router-dom';
import DepartmentItem from './DepartmentItem';
-import DepartmentSkeleton from '../Skeleton/department';
+import DepartmentSkeleton from './Skeleton';
const DepartmentList = () => {
const { college } = useParams();
diff --git a/src/components/MajorProvider/index.tsx b/src/components/Providers/MajorProvider/index.tsx
similarity index 100%
rename from src/components/MajorProvider/index.tsx
rename to src/components/Providers/MajorProvider/index.tsx
diff --git a/src/components/ModalsProvider/index.tsx b/src/components/Providers/ModalsProvider/index.tsx
similarity index 100%
rename from src/components/ModalsProvider/index.tsx
rename to src/components/Providers/ModalsProvider/index.tsx
diff --git a/src/pages/Map/Provider/index.tsx b/src/components/Providers/OverlayProvider/index.tsx
similarity index 83%
rename from src/pages/Map/Provider/index.tsx
rename to src/components/Providers/OverlayProvider/index.tsx
index d2500d18..191d1037 100644
--- a/src/pages/Map/Provider/index.tsx
+++ b/src/components/Providers/OverlayProvider/index.tsx
@@ -4,9 +4,9 @@ import useUserLocation from '@hooks/useUserLocation';
import React from 'react';
import { Outlet } from 'react-router-dom';
-import { CustomOverlay } from '../handlers';
+import CustomOverlay from './overlay';
-const MapProvider = () => {
+const OverlayProvider = () => {
const { openModal, closeModal } = useModals();
const userLocation = useUserLocation();
const customOverlay = new CustomOverlay(openModal, closeModal, userLocation);
@@ -18,4 +18,4 @@ const MapProvider = () => {
);
};
-export default MapProvider;
+export default OverlayProvider;
diff --git a/src/pages/Map/handlers/overlays.ts b/src/components/Providers/OverlayProvider/overlay.ts
similarity index 100%
rename from src/pages/Map/handlers/overlays.ts
rename to src/components/Providers/OverlayProvider/overlay.ts
diff --git a/src/components/Provider/Toast/index.tsx b/src/components/Providers/ToastsProvider/index.tsx
similarity index 84%
rename from src/components/Provider/Toast/index.tsx
rename to src/components/Providers/ToastsProvider/index.tsx
index 9702e611..e9a3287a 100644
--- a/src/components/Provider/Toast/index.tsx
+++ b/src/components/Providers/ToastsProvider/index.tsx
@@ -6,7 +6,7 @@ interface ToastProviderProps {
children: React.ReactNode;
}
-const ToastProvider = ({ children }: ToastProviderProps) => {
+const ToastsProvider = ({ children }: ToastProviderProps) => {
const [toasts, setToasts] = useState
([]);
return (
@@ -18,4 +18,4 @@ const ToastProvider = ({ children }: ToastProviderProps) => {
);
};
-export default ToastProvider;
+export default ToastsProvider;
diff --git a/src/components/Providers/index.ts b/src/components/Providers/index.ts
new file mode 100644
index 00000000..3c0ba549
--- /dev/null
+++ b/src/components/Providers/index.ts
@@ -0,0 +1,4 @@
+export { default as MajorProvider } from './MajorProvider/index';
+export { default as ModalsProvider } from './ModalsProvider/index';
+export { default as ToastsProvider } from './ToastsProvider/index';
+export { default as OverlayProvider } from './OverlayProvider/index';
diff --git a/src/components/SideBar/Content/index.tsx b/src/components/SideBar/Content/index.tsx
index ef466cc0..d0f5335f 100644
--- a/src/components/SideBar/Content/index.tsx
+++ b/src/components/SideBar/Content/index.tsx
@@ -1,4 +1,4 @@
-import Icon from '@components/Icon';
+import Icon from '@components/Common/Icon';
import SIDEBAR_CONTENT from '@constants/sidebar';
import styled from '@emotion/styled';
import useRouter from '@hooks/useRouter';
diff --git a/src/components/SideBar/index.tsx b/src/components/SideBar/index.tsx
index b8108179..af574ae9 100644
--- a/src/components/SideBar/index.tsx
+++ b/src/components/SideBar/index.tsx
@@ -1,5 +1,5 @@
-import Icon from '@components/Icon';
-import Image from '@components/Image';
+import Icon from '@components/Common/Icon';
+import Image from '@components/Common/Image';
import ASSET_PATH from '@constants/assets-path';
import { css, keyframes } from '@emotion/react';
import styled from '@emotion/styled';
diff --git a/src/contexts/.gitkeep b/src/contexts/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/hooks/useModals.ts b/src/hooks/useModals.ts
index 0fdc32ac..d8b87b65 100644
--- a/src/hooks/useModals.ts
+++ b/src/hooks/useModals.ts
@@ -1,6 +1,6 @@
-import AlertModal from '@components/Modal/AlertModal';
-import ConfirmModal from '@components/Modal/ConfirmModal';
-import SuggestionModal from '@components/Modal/SuggestionModal';
+import AlertModal from '@components/Common/Modal/AlertModal';
+import ConfirmModal from '@components/Common/Modal/ConfirmModal';
+import SuggestionModal from '@components/Common/Modal/SuggestionModal';
import ModalsContext from '@contexts/modals';
import {
ComponentProps,
diff --git a/src/main.tsx b/src/main.tsx
index 315ffdfa..ba9a15dd 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -1,8 +1,10 @@
-import MajorProvider from '@components/MajorProvider';
-import Modals from '@components/Modal/Modals';
-import ModalsProvider from '@components/ModalsProvider';
-import ToastProvider from '@components/Provider/Toast';
-import Toasts from '@components/Toast/Toasts';
+import Modals from '@components/Common/Modal/Modals';
+import Toasts from '@components/Common/Toast/Toasts';
+import {
+ MajorProvider,
+ ModalsProvider,
+ ToastsProvider,
+} from '@components/Providers';
import ThemeProvider from '@styles/ThemeProvider';
import React from 'react';
import ReactDOM from 'react-dom/client';
@@ -29,11 +31,11 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
-
+
-
+
diff --git a/src/pages/Announcement/components/AnnounceContainer.tsx b/src/pages/Announcement/components/AnnounceContainer.tsx
index dd8bedce..36f693f8 100644
--- a/src/pages/Announcement/components/AnnounceContainer.tsx
+++ b/src/pages/Announcement/components/AnnounceContainer.tsx
@@ -1,6 +1,6 @@
import fetchAnnounceList from '@apis/Suspense/fetch-announce-list';
-import AnnounceList from '@components/Card/AnnounceCard/AnnounceList';
-import AnnounceCardSkeleton from '@components/Card/AnnounceCard/Skeleton';
+import AnnounceList from '@components/List/AnnounceList';
+import AnnounceCardSkeleton from '@components/List/AnnounceList/Skeleton';
import { ANNOUNCEMENT_TYPE } from '@constants/announcement';
import PATH from '@constants/path';
import { keyframes } from '@emotion/react';
diff --git a/src/pages/Announcement/components/AnnounceNotFound.tsx b/src/pages/Announcement/components/AnnounceNotFound.tsx
index 4a7def4a..6a391392 100644
--- a/src/pages/Announcement/components/AnnounceNotFound.tsx
+++ b/src/pages/Announcement/components/AnnounceNotFound.tsx
@@ -1,4 +1,4 @@
-import Icon from '@components/Icon';
+import Icon from '@components/Common/Icon';
import styled from '@emotion/styled';
import { THEME } from '@styles/ThemeProvider/theme';
import React from 'react';
diff --git a/src/pages/Announcement/components/AnnounceSearch.tsx b/src/pages/Announcement/components/AnnounceSearch.tsx
index 79cca090..08e1804a 100644
--- a/src/pages/Announcement/components/AnnounceSearch.tsx
+++ b/src/pages/Announcement/components/AnnounceSearch.tsx
@@ -1,4 +1,4 @@
-import Icon from '@components/Icon';
+import Icon from '@components/Common/Icon';
import PATH from '@constants/path';
import PLCACEHOLDER_MESSAGES from '@constants/placeholder-message';
import TOAST_MESSAGES from '@constants/toast-message';
diff --git a/src/pages/Announcement/components/AnnounceTypeButtons.tsx b/src/pages/Announcement/components/AnnounceTypeButtons.tsx
index 1b309767..2a2c1323 100644
--- a/src/pages/Announcement/components/AnnounceTypeButtons.tsx
+++ b/src/pages/Announcement/components/AnnounceTypeButtons.tsx
@@ -1,4 +1,4 @@
-import Button from '@components/Button';
+import Button from '@components/Common/Button';
import { css } from '@emotion/react';
import { THEME } from '@styles/ThemeProvider/theme';
import React from 'react';
diff --git a/src/pages/Home/Home.test.tsx b/src/pages/Home/Home.test.tsx
index 1cc65f48..54523aba 100644
--- a/src/pages/Home/Home.test.tsx
+++ b/src/pages/Home/Home.test.tsx
@@ -1,5 +1,5 @@
-import MajorProvider from '@components/MajorProvider';
-import ModalsProvier from '@components/ModalsProvider';
+import MajorProvider from '@components/Providers/MajorProvider';
+import ModalsProvider from '@components/Providers/ModalsProvider';
import { render, screen } from '@testing-library/react';
import { MemoryRouter } from 'react-router-dom';
import '@testing-library/jest-dom';
@@ -10,9 +10,9 @@ describe('Home Page 컴포넌트 테스트', () => {
it('페이지에 공지사항 및 졸업요건 컴포넌트가 렌더링된다.', () => {
render(
-
+
-
+
,
{
wrapper: MemoryRouter,
diff --git a/src/pages/MajorDecision/index.test.tsx b/src/pages/MajorDecision/index.test.tsx
index 301c8177..32caf253 100644
--- a/src/pages/MajorDecision/index.test.tsx
+++ b/src/pages/MajorDecision/index.test.tsx
@@ -1,4 +1,4 @@
-import MajorProvider from '@components/MajorProvider';
+import MajorProvider from '@components/Providers/MajorProvider';
import MajorContext from '@contexts/major';
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
diff --git a/src/pages/Map/components/MapHeader.tsx b/src/pages/Map/components/MapHeader.tsx
index 6fd03dad..1c3fb276 100644
--- a/src/pages/Map/components/MapHeader.tsx
+++ b/src/pages/Map/components/MapHeader.tsx
@@ -1,4 +1,4 @@
-import Icon from '@components/Icon';
+import Icon from '@components/Common/Icon';
import { MODAL_BUTTON_MESSAGE, MODAL_MESSAGE } from '@constants/modal-messages';
import { PKNU_BUILDINGS } from '@constants/pknu-map';
import PLCACEHOLDER_MESSAGES from '@constants/placeholder-message';
diff --git a/src/pages/Map/components/RefreshButtons.tsx b/src/pages/Map/components/RefreshButtons.tsx
index cea14d5d..615b0581 100644
--- a/src/pages/Map/components/RefreshButtons.tsx
+++ b/src/pages/Map/components/RefreshButtons.tsx
@@ -1,4 +1,4 @@
-import Icon from '@components/Icon';
+import Icon from '@components/Common/Icon';
import { PKNU_MAP_CENTER } from '@constants/pknu-map';
import TOAST_MESSAGES from '@constants/toast-message';
import styled from '@emotion/styled';
diff --git a/src/pages/Map/handlers/index.ts b/src/pages/Map/handlers/index.ts
index c8a69a58..1849389b 100644
--- a/src/pages/Map/handlers/index.ts
+++ b/src/pages/Map/handlers/index.ts
@@ -1,3 +1,2 @@
export { default as getHaversineDistance } from './distance';
export { default as handleMapBoundary } from './boundary';
-export { default as CustomOverlay } from './overlays';
diff --git a/src/pages/My/index.test.tsx b/src/pages/My/index.test.tsx
index 70edbfc1..4ff828cd 100644
--- a/src/pages/My/index.test.tsx
+++ b/src/pages/My/index.test.tsx
@@ -1,5 +1,5 @@
-import MajorProvider from '@components/MajorProvider';
-import ModalsProvider from '@components/ModalsProvider';
+import MajorProvider from '@components/Providers/MajorProvider';
+import ModalsProvider from '@components/Providers/ModalsProvider';
import useModals, { modals } from '@hooks/useModals';
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
diff --git a/src/pages/My/index.tsx b/src/pages/My/index.tsx
index ce1e6f39..45ed7baa 100644
--- a/src/pages/My/index.tsx
+++ b/src/pages/My/index.tsx
@@ -1,7 +1,7 @@
import http from '@apis/http';
-import Button from '@components/Button';
-import ToggleButton from '@components/Button/Toggle';
-import Icon from '@components/Icon';
+import Button from '@components/Common/Button';
+import ToggleButton from '@components/Common/Button/Toggle';
+import Icon from '@components/Common/Icon';
import { SERVER_URL } from '@config/index';
import { MODAL_BUTTON_MESSAGE, MODAL_MESSAGE } from '@constants/modal-messages';
import { css } from '@emotion/react';
diff --git a/src/pages/Tip/index.tsx b/src/pages/Tip/index.tsx
index ef525383..2e22085f 100644
--- a/src/pages/Tip/index.tsx
+++ b/src/pages/Tip/index.tsx
@@ -1,5 +1,5 @@
-import Icon from '@components/Icon';
-import Image from '@components/Image';
+import Icon from '@components/Common/Icon';
+import Image from '@components/Common/Image';
import TIP_CONTENT from '@constants/tip';
import { css } from '@emotion/react';
import styled from '@emotion/styled';
diff --git a/src/styles/.gitkeep b/src/styles/.gitkeep
deleted file mode 100644
index e69de29b..00000000