Skip to content

Commit 7c75e65

Browse files
authored
Merge pull request #332 from devpalsPlus/feat/#331
관리자 공지사항 페이지, 컴포넌트 분리 (#issue 331)
2 parents 0958d33 + 072a70a commit 7c75e65

File tree

18 files changed

+71
-44
lines changed

18 files changed

+71
-44
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import styled from 'styled-components';
2+
import { SpinnerWrapperStyled } from '../../user/mypage/Spinner.styled';
3+
4+
export const SpinnerWrapper = styled(SpinnerWrapperStyled)`
5+
width: 100%;
6+
`;
7+
8+
export const NoticeItemWrapper = styled.section`
9+
display: flex;
10+
justify-content: center;
11+
`;

src/pages/admin/adminNotice/adminNoticeList/AdminNoticeList.tsx renamed to src/components/admin/adminNotice/AdminNoticeList.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { useEffect, useState } from 'react';
2-
import SearchBar from '../../../../components/admin/searchBar/SearchBar';
3-
import NoticeItem from '../../../user/customerService/notice/noticeItem/NoticeItem';
2+
import SearchBar from '../../../components/common/admin/searchBar/SearchBar';
43
import * as S from './AdminNoticeList.styled';
5-
import type { NoticeSearch } from '../../../../models/customerService';
6-
import { useGetNotice } from '../../../../hooks/user/useGetNotice';
4+
import type { NoticeSearch } from '../../../models/customerService';
5+
import { useGetNotice } from '../../../hooks/user/useGetNotice';
76
import { useSearchParams } from 'react-router-dom';
8-
import { Spinner } from '../../../../components/common/loadingSpinner/LoadingSpinner.styled';
9-
import Pagination from '../../../../components/common/pagination/Pagination';
7+
import Pagination from '../../../components/common/pagination/Pagination';
8+
import Spinner from '../../../components/user/mypage/Spinner';
9+
import NoticeItem from '../../../pages/user/customerService/notice/noticeItem/NoticeItem';
1010

1111
export default function AdminNoticeList() {
1212
const [noticeSearch, setNoticeSearch] = useState<NoticeSearch>({

src/pages/admin/adminNotice/adminNoticeWrite/AdminNoticeWrite.styled.ts renamed to src/components/admin/adminNotice/AdminNoticeWrite.styled.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import {
99
Content,
1010
SendButtonWrapper,
1111
SendButton,
12-
} from '../../../../components/user/customerService/inquiry/Inquiry.styled';
13-
import { SpinnerWrapperStyled } from '../../../../components/user/mypage/Spinner.styled';
12+
} from '../../../components/user/customerService/inquiry/Inquiry.styled';
13+
import { SpinnerWrapperStyled } from '../../../components/user/mypage/Spinner.styled';
1414

1515
export const SpinnerWrapper = styled(SpinnerWrapperStyled)``;
1616

src/pages/admin/adminNotice/adminNoticeWrite/AdminNoticeWrite.tsx renamed to src/components/admin/adminNotice/AdminNoticeWrite.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import { INQUIRY_MESSAGE } from '../../../../constants/user/customerService';
1+
import { INQUIRY_MESSAGE } from '../../../constants/user/customerService';
22
import * as S from './AdminNoticeWrite.styled';
33
import React, { useEffect, useState } from 'react';
44
import { useLocation, useParams } from 'react-router-dom';
5-
import { useModal } from '../../../../hooks/useModal';
6-
import Modal from '../../../../components/common/modal/Modal';
7-
import type { WriteBody } from '../../../../models/customerService';
8-
import { useAdminNotice } from '../../../../hooks/admin/useAdminNotice';
9-
import { useGetNoticeDetail } from '../../../../hooks/user/useGetNoticeDetail';
10-
import Spinner from '../../../../components/user/mypage/Spinner';
5+
import { useModal } from '../../../hooks/useModal';
6+
import Modal from '../../../components/common/modal/Modal';
7+
import type { WriteBody } from '../../../models/customerService';
8+
import { useAdminNotice } from '../../../hooks/admin/useAdminNotice';
9+
import { useGetNoticeDetail } from '../../../hooks/user/useGetNoticeDetail';
10+
import Spinner from '../../../components/user/mypage/Spinner';
1111

1212
export default function AdminNoticeWrite() {
1313
const location = useLocation();

src/components/admin/searchBar/SearchBar.styled.ts renamed to src/components/common/admin/searchBar/SearchBar.styled.ts

File renamed without changes.

src/components/admin/searchBar/SearchBar.tsx renamed to src/components/common/admin/searchBar/SearchBar.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { XMarkIcon } from '@heroicons/react/24/outline';
2-
import { MODAL_MESSAGE_CUSTOMER_SERVICE } from '../../../constants/user/customerService';
2+
import { MODAL_MESSAGE_CUSTOMER_SERVICE } from '../../../../constants/user/customerService';
33
import * as S from './SearchBar.styled';
44
import { useState } from 'react';
55
import { useLocation, useSearchParams } from 'react-router-dom';
6-
import { useModal } from '../../../hooks/useModal';
7-
import Modal from '../../common/modal/Modal';
8-
import { ADMIN_ROUTE } from '../../../constants/routes';
6+
import { useModal } from '../../../../hooks/useModal';
7+
import Modal from '../../modal/Modal';
8+
import { ADMIN_ROUTE } from '../../../../constants/routes';
99

1010
interface SearchBarProps {
1111
onGetKeyword: (keyword: string) => void;

src/components/user/customerService/noticeDetail/NoticeDetailBundle.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ import ListButton from './bottom/button/ListButton';
99

1010
interface NoticeDetailBundleProps {
1111
$width: string;
12+
$isAdmin?: boolean;
1213
}
1314

1415
export default function NoticeDetailBundle({
1516
$width,
17+
$isAdmin = false,
1618
}: NoticeDetailBundleProps) {
1719
const location = useLocation();
1820
const { noticeId } = useParams();
@@ -24,7 +26,7 @@ export default function NoticeDetailBundle({
2426

2527
if (isLoading) {
2628
return (
27-
<S.SpinnerWrapper>
29+
<S.SpinnerWrapper $isAdmin={$isAdmin}>
2830
<Spinner />
2931
</S.SpinnerWrapper>
3032
);

src/components/user/mypage/Spinner.styled.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ export const Circle = styled.div<{ $size: string; $color: string }>`
2626
animation: ${spin} 1s linear infinite;
2727
`;
2828

29-
export const SpinnerWrapperStyled = styled.div`
30-
width: 100vw;
29+
export const SpinnerWrapperStyled = styled.div<{ $isAdmin?: boolean }>`
30+
width: ${({ $isAdmin }) => ($isAdmin ? '100%' : '100vw')};
3131
height: 60vh;
3232
display: flex;
3333
justify-content: center;

src/pages/admin/adminNotice/AdminNotice.styled.ts renamed to src/pages/admin/CommonAdminPage.styled.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import styled from 'styled-components';
2-
import { SpinnerWrapperStyled } from '../../../components/user/mypage/Spinner.styled';
2+
import { SpinnerWrapperStyled } from '../../components/user/mypage/Spinner.styled';
33

44
export const SpinnerWrapper = styled(SpinnerWrapperStyled)``;
55

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { Outlet } from 'react-router-dom';
2+
import AdminTitle from '../../components/common/admin/title/AdminTitle';
3+
import * as S from './CommonAdminPage.styled';
4+
5+
interface CommonAdminPageProps {
6+
title: string;
7+
}
8+
9+
export default function CommonAdminPage({ title }: CommonAdminPageProps) {
10+
return (
11+
<S.AdminNoticeContainer>
12+
<AdminTitle title={title} />
13+
<Outlet />
14+
</S.AdminNoticeContainer>
15+
);
16+
}

0 commit comments

Comments
 (0)