diff --git a/src/components/common/admin/sidebar/AdminSidebar.styled.ts b/src/components/common/admin/sidebar/AdminSidebar.styled.ts
index f6de17c5..bdbea3d5 100644
--- a/src/components/common/admin/sidebar/AdminSidebar.styled.ts
+++ b/src/components/common/admin/sidebar/AdminSidebar.styled.ts
@@ -1,7 +1,16 @@
import styled from 'styled-components';
-export const SidebarContainer = styled.section`
+export const LayoutContainer = styled.div`
height: 100vh;
+ display: flex;
+`;
+
+export const ContainerArea = styled.section`
+ flex: 1;
+ padding: 2rem;
+`;
+
+export const SidebarContainer = styled.section`
padding: 1rem;
width: 15rem;
border-right: 1px solid ${({ theme }) => theme.color.grey};
diff --git a/src/components/common/admin/sidebar/AdminSidebar.tsx b/src/components/common/admin/sidebar/AdminSidebar.tsx
index e91064f6..1048c626 100644
--- a/src/components/common/admin/sidebar/AdminSidebar.tsx
+++ b/src/components/common/admin/sidebar/AdminSidebar.tsx
@@ -5,40 +5,53 @@ import logoutIcon from '../../../../assets/logout.svg';
import AdminSidebarList from './sidebarList/AdminSidebarList';
import ContentBorder from '../../contentBorder/ContentBorder';
import useAuthStore from '../../../../store/authStore';
-import { useNavigate } from 'react-router-dom';
+import { Outlet, useNavigate } from 'react-router-dom';
import { ROUTES } from '../../../../constants/routes';
+import { useModal } from '../../../../hooks/useModal';
+import Modal from '../../modal/Modal';
+import { MODAL_MESSAGE } from '../../../../constants/user/modalMessage';
export default function AdminSidebar() {
const navigate = useNavigate();
const logout = useAuthStore((state) => state.logout);
+ const { isOpen, message, handleModalOpen, handleModalClose } = useModal();
const handleClickLogout = () => {
- logout();
+ handleModalOpen(MODAL_MESSAGE.needAuth);
setTimeout(() => {
+ logout();
navigate(ROUTES.main);
}, 1000);
};
return (
-
-
-
-
-
- Logout
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ Logout
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {message}
+
+
);
}
diff --git a/src/components/common/admin/title/AdminTitle.styled.ts b/src/components/common/admin/title/AdminTitle.styled.ts
new file mode 100644
index 00000000..6a12e940
--- /dev/null
+++ b/src/components/common/admin/title/AdminTitle.styled.ts
@@ -0,0 +1,9 @@
+import styled from 'styled-components';
+
+export const TitleContainer = styled.header``;
+
+export const TitleWrapper = styled.div`
+ margin-bottom: 2rem;
+`;
+
+export const Title = styled.h1``;
diff --git a/src/components/common/admin/title/AdminTitle.tsx b/src/components/common/admin/title/AdminTitle.tsx
new file mode 100644
index 00000000..ddacc5ea
--- /dev/null
+++ b/src/components/common/admin/title/AdminTitle.tsx
@@ -0,0 +1,17 @@
+import ContentBorder from '../../contentBorder/ContentBorder';
+import * as S from './AdminTitle.styled';
+
+interface AdminTitleProps {
+ title: string;
+}
+
+export default function AdminTitle({ title }: AdminTitleProps) {
+ return (
+
+
+ {title}
+
+
+
+ );
+}
diff --git a/src/components/user/customerService/CustomerServiceHeader.tsx b/src/components/user/customerService/CustomerServiceHeader.tsx
index 2eca5341..59e79f47 100644
--- a/src/components/user/customerService/CustomerServiceHeader.tsx
+++ b/src/components/user/customerService/CustomerServiceHeader.tsx
@@ -1,8 +1,8 @@
import { MagnifyingGlassIcon, XCircleIcon } from '@heroicons/react/24/outline';
import * as S from './CustomerServiceHeader.styled';
import MovedInquiredLink from './MoveInquiredLink';
-import { Outlet, useLocation, useSearchParams } from 'react-router-dom';
-import { useEffect, useState } from 'react';
+import { Outlet, useSearchParams } from 'react-router-dom';
+import { useState } from 'react';
import Modal from '../../common/modal/Modal';
import { useModal } from '../../../hooks/useModal';
import { MODAL_MESSAGE_CUSTOMER_SERVICE } from '../../../constants/user/customerService';
diff --git a/src/components/user/customerService/noticeDetail/NoticeDetailBundle.tsx b/src/components/user/customerService/noticeDetail/NoticeDetailBundle.tsx
index cf77fa0b..f9f6dd0a 100644
--- a/src/components/user/customerService/noticeDetail/NoticeDetailBundle.tsx
+++ b/src/components/user/customerService/noticeDetail/NoticeDetailBundle.tsx
@@ -33,7 +33,7 @@ export default function NoticeDetailBundle() {
createdAt=''
viewCount={0}
/>
-
+
);
}
diff --git a/src/pages/admin/adminAllUser/AdminAllUser.tsx b/src/pages/admin/adminAllUser/AdminAllUser.tsx
new file mode 100644
index 00000000..c2e5ee24
--- /dev/null
+++ b/src/pages/admin/adminAllUser/AdminAllUser.tsx
@@ -0,0 +1,3 @@
+export default function AdminAllUser() {
+ return
;
+}
diff --git a/src/pages/admin/adminBanner/AdminBanner.tsx b/src/pages/admin/adminBanner/AdminBanner.tsx
new file mode 100644
index 00000000..a1812dec
--- /dev/null
+++ b/src/pages/admin/adminBanner/AdminBanner.tsx
@@ -0,0 +1,3 @@
+export default function AdminBanner() {
+ return ;
+}
diff --git a/src/pages/admin/adminInquiries/AdminInquiries.styled.ts b/src/pages/admin/adminInquiries/AdminInquiries.styled.ts
new file mode 100644
index 00000000..ce147df6
--- /dev/null
+++ b/src/pages/admin/adminInquiries/AdminInquiries.styled.ts
@@ -0,0 +1,3 @@
+import styled from 'styled-components';
+
+export const AdminInquiriesContainer = styled.div``;
diff --git a/src/pages/admin/adminInquiries/AdminInquiries.tsx b/src/pages/admin/adminInquiries/AdminInquiries.tsx
new file mode 100644
index 00000000..2d180680
--- /dev/null
+++ b/src/pages/admin/adminInquiries/AdminInquiries.tsx
@@ -0,0 +1,5 @@
+import * as S from './AdminInquires.styled';
+
+export default function AdminInquires() {
+ return ;
+}
diff --git a/src/pages/admin/adminMain/AdminMain.tsx b/src/pages/admin/adminMain/AdminMain.tsx
new file mode 100644
index 00000000..c0ccc4cf
--- /dev/null
+++ b/src/pages/admin/adminMain/AdminMain.tsx
@@ -0,0 +1,3 @@
+export default function AdminMain() {
+ return ;
+}
diff --git a/src/pages/admin/adminManage/AdminManage.tsx b/src/pages/admin/adminManage/AdminManage.tsx
new file mode 100644
index 00000000..c4afcf56
--- /dev/null
+++ b/src/pages/admin/adminManage/AdminManage.tsx
@@ -0,0 +1,3 @@
+export default function AdminManage() {
+ return ;
+}
diff --git a/src/pages/admin/adminNotice/AdminNotice.styled.ts b/src/pages/admin/adminNotice/AdminNotice.styled.ts
new file mode 100644
index 00000000..c3389834
--- /dev/null
+++ b/src/pages/admin/adminNotice/AdminNotice.styled.ts
@@ -0,0 +1,3 @@
+import styled from 'styled-components';
+
+export const Container = styled.div``;
diff --git a/src/pages/admin/adminNotice/AdminNotice.tsx b/src/pages/admin/adminNotice/AdminNotice.tsx
new file mode 100644
index 00000000..9a760a49
--- /dev/null
+++ b/src/pages/admin/adminNotice/AdminNotice.tsx
@@ -0,0 +1,12 @@
+import AdminTitle from '../../../components/common/admin/title/AdminTitle';
+import * as S from './AdminNotice.styled';
+
+export default function AdminNotice() {
+ console.log('공지사항 렌더');
+
+ return (
+
+
+
+ );
+}
diff --git a/src/pages/admin/adminReports/AdminReports.tsx b/src/pages/admin/adminReports/AdminReports.tsx
new file mode 100644
index 00000000..2d5490d9
--- /dev/null
+++ b/src/pages/admin/adminReports/AdminReports.tsx
@@ -0,0 +1,3 @@
+export default function AdminReports() {
+ return ;
+}
diff --git a/src/pages/admin/adminTags/AdminTags.tsx b/src/pages/admin/adminTags/AdminTags.tsx
new file mode 100644
index 00000000..b8bd4f27
--- /dev/null
+++ b/src/pages/admin/adminTags/AdminTags.tsx
@@ -0,0 +1,3 @@
+export default function AdminTags() {
+ return ;
+}
diff --git a/src/routes/AdminRoutes.tsx b/src/routes/AdminRoutes.tsx
index 00efc712..29431060 100644
--- a/src/routes/AdminRoutes.tsx
+++ b/src/routes/AdminRoutes.tsx
@@ -6,6 +6,16 @@ import ProtectAdminRoute from './ProtectAdminRoute';
const Sidebar = lazy(
() => import('../components/common/admin/sidebar/AdminSidebar')
);
+const Main = lazy(() => import('../pages/admin/adminMain/AdminMain'));
+const Notice = lazy(() => import('../pages/admin/adminNotice/AdminNotice'));
+const Banner = lazy(() => import('../pages/admin/adminBanner/AdminBanner'));
+const Tags = lazy(() => import('../pages/admin/adminTags/AdminTags'));
+const AllUser = lazy(() => import('../pages/admin/adminAllUser/AdminAllUser'));
+const Reports = lazy(() => import('../pages/admin/adminReports/AdminReports'));
+const Inquiries = lazy(
+ () => import('../pages/admin/adminInquiries/AdminInquiries')
+);
+const Manage = lazy(() => import('../pages/admin/adminManage/AdminManage'));
export const AdminRoutes = () => {
const routeList = [
@@ -16,6 +26,37 @@ export const AdminRoutes = () => {
),
+ children: [
+ { index: true, element: },
+ {
+ path: ADMIN_ROUTE.notice,
+ element: ,
+ },
+ {
+ path: ADMIN_ROUTE.banner,
+ element: ,
+ },
+ {
+ path: ADMIN_ROUTE.tags,
+ element: ,
+ },
+ {
+ path: ADMIN_ROUTE.allUser,
+ element: ,
+ },
+ {
+ path: ADMIN_ROUTE.reports,
+ element: ,
+ },
+ {
+ path: ADMIN_ROUTE.inquiries,
+ element: ,
+ },
+ {
+ path: ADMIN_ROUTE.manage,
+ element: ,
+ },
+ ],
},
];