Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
4b6181d
design: 홈 페이지 에셋 추가
tifsy Feb 20, 2025
04bbbea
design: 홈 페이지 퍼블리싱
tifsy Feb 20, 2025
0e3f25f
design: 홈 페이지 모달 퍼블리싱
tifsy Feb 20, 2025
c16c1bd
design: 홈 페이지 퍼블리싱
tifsy Feb 20, 2025
5465dc5
design: 홈 페이지 모달 퍼블리싱
tifsy Feb 20, 2025
535782f
Merge branch '4-design-home' of https://github.com/prgrms-web-devcour…
tifsy Feb 20, 2025
f37f950
refactor: package-json 삭제
tifsy Feb 20, 2025
8b6c011
refactor: ModalOverlay 컴포넌트 새 속성에 맞춰 모달 정리
tifsy Feb 20, 2025
2621f47
Merge branch 'develop' into 4-design-home
tifsy Feb 20, 2025
01a3856
fix: import 오류 해결
tifsy Feb 20, 2025
8957b0f
refactor: SpecialLetterBanner 애니메이션 animation.css로 분리
tifsy Feb 20, 2025
29956e2
design: Home에서 grow 적용으로 불필요한 h-screen 제거
tifsy Feb 20, 2025
7f0a102
rename: 에셋 파일명을 케밥 케이스로 변경
tifsy Feb 20, 2025
59020e6
remove: 필요없는 에셋 삭제
tifsy Feb 20, 2025
dbcc80f
fix: 이미지 경로 import 방식 수정
tifsy Feb 20, 2025
1ae90fb
refactor: 버튼 컴포넌트 반복 로직 개선
tifsy Feb 20, 2025
ef72e2e
style: HomeRight 레이아웃 수정
tifsy Feb 20, 2025
c642d81
refactor: max-w 값 수정 및 불필요한 삼항 연산자 제거
tifsy Feb 20, 2025
26ff140
Merge branch '4-design-home' of https://github.com/prgrms-web-devcour…
tifsy Feb 20, 2025
e735722
rename: Navbar를 HomeHeader로 대체
tifsy Feb 20, 2025
3dc606d
rename: 홈 페이지 배경 이미지 업데이트
tifsy Feb 20, 2025
ce5ef44
fix: 모바일 및 웹에서 레이아웃 오류 해결, 홈 페이지 구조 리팩토링
tifsy Feb 20, 2025
6755831
design: 홈 페이지 왼쪽 배경 width 조정
tifsy Feb 20, 2025
0a80cb9
design: SpecialLetterBanner width 조정
tifsy Feb 20, 2025
d223843
design: 게시판 이미지 버튼 width 조정
tifsy Feb 20, 2025
e80b0e2
Merge branch 'develop' into 4-design-home
tifsy Feb 20, 2025
c1240e7
fix: coflict 오류 해결
tifsy Feb 21, 2025
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
7 changes: 6 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,22 @@
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"dev": "vite --host 0.0.0.0",
"build": "tsc -b && vite build",
"lint": "eslint .",
"preview": "vite preview"
},
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
"@egjs/react-infinitegrid": "^4.12.0",
"@mui/icons-material": "^6.4.4",
"@mui/material": "^6.4.4",
"@tailwindcss/vite": "^4.0.6",
"@tanstack/react-query": "^5.66.0",
"axios": "^1.7.9",
"gsap": "^3.12.7",
"pnpm": "^10.4.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router": "^7.1.5",
Expand Down
205 changes: 196 additions & 9 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

Binary file added src/assets/go_to_letter_board.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/go_to_letter_box.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/go_to_letter_box_new_letters.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/go_to_random_letter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/go_to_write.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/home_left.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/home_left_mountain.png
Copy link
Collaborator

Choose a reason for hiding this comment

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

home_left.png랑 home_left_mountain.png가 배경 유무만 다른 것 같은데 둘 다 있는 이유가 있을까요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

home_left.png는 필요없는 파일이라 삭제했습니다!

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/home_right.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/home_right_mountain_bottom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/home_right_mountain_top.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/letter_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/letter_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/letter_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/letter_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/random_cheer_bird.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 15 additions & 0 deletions src/components/HomeButton.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import HomeOutlinedIcon from '@mui/icons-material/HomeOutlined';
import { Link } from 'react-router';

export default function HomeButton() {
return (
<>
<Link
to="/"
className="bg-primary-3 absolute right-5 bottom-[30px] z-50 flex h-13 w-13 items-center justify-center rounded-full text-white transition-all duration-200 hover:scale-105 active:scale-90"
>
<HomeOutlinedIcon />
</Link>
</>
);
}
41 changes: 41 additions & 0 deletions src/pages/Home/components/FloatingLetters.tsx
Copy link
Collaborator

Choose a reason for hiding this comment

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

여기서 걱정이 되는게 있습니다!
지난 번에 제가 말씀드렸듯이 모바일의 vh랑 웹의 vh를 좀 다르게 다룰 필요가 있어요.
그래서 일반적인 vh를 사용하면 웹과 모바일에서 차이가 발생할 것 같아요. 물론 그 차이가 미세할 수도 있지많요!
그래서 만약 vh를 사용해야 한다면 제가 스타일 변수로 --vh를 만들어뒀는데 이걸 사용하거나 1vh window.innerHeight * 0.01로 계산해서 하면 어떨까 해요!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

편지 이미지들이 웹과 모바일에서 같은 높이 내에서 움직인다면, 화면 높이가 큰 웹에서는 빈 공간이 너무 많아질 것 같아요😲 그래서 움직일 수 있는 높이에 일부러 차이를 두는 게 어떨까 합니다!

Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import { useEffect, useRef } from 'react';
import gsap from 'gsap';
const FloatingLetters = () => {
const lettersRef = useRef<HTMLImageElement[]>([]);
useEffect(() => {
if (!lettersRef.current) return;

lettersRef.current.forEach((letter, index) => {
gsap.to(letter, {
// x: Math.random() * 50 - 40,
y: Math.random() * 20 - 25 + 'vh', // 위아래 이동
rotation: Math.random() * 50 - 25, // 회전
duration: Math.random() * 3 + 2, // 지속 시간
repeat: -1, // 무한 반복
yoyo: true, // 왕복
ease: 'power1.inOut',
delay: index * 1, // 편지마다 시차
});
});
}, []);
return (
<>
{Array.from({ length: 4 }).map((_, index) => (
<img
key={index}
src={`/src/assets/letter_${index + 1}.png`}
ref={(el) => {
if (el) lettersRef.current[index] = el;
}}
className="absolute w-20 opacity-90"
style={{
left: `${index * 30 + 30}px`, // 편지지 간격
top: '60vh',
}}
/>
))}
</>
);
};

export default FloatingLetters;
20 changes: 20 additions & 0 deletions src/pages/Home/components/GoToLetterBoard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { Link } from 'react-router';

const GoToLetterBoard = () => {
return (
<div className="absolute right-[-30px] bottom-48 z-20 flex w-fit">
<div className="text-left">
<p className="text-gray-60 body-r mb-1 ml-2">게시판</p>
<Link to="/letter/board">
<img
src="/src/assets/go_to_letter_board.png"
alt="go to letter board"
className="w-[177px]"
/>
</Link>
</div>
</div>
);
};

export default GoToLetterBoard;
26 changes: 26 additions & 0 deletions src/pages/Home/components/GoToLetterBox.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { Link } from 'react-router';

const GoToLetterBox = () => {
//TODO : hasNewLetters 전역으로 상태 관리하기
let hasNewLetters = true;
return (
<div className="absolute bottom-10 left-5 z-30 flex w-fit">
<div className="text-left">
<p className="text-gray-60 body-r mb-1 ml-2">내 편지함</p>
<Link to="/letter/box">
<img
src={
hasNewLetters
? 'src/assets/go_to_letter_box_new_letters.png'
: '/src/assets/go_to_letter_box.png'
}
alt="go to letter box"
className="w-[206.5px]"
/>
</Link>
</div>
</div>
);
};

export default GoToLetterBox;
14 changes: 14 additions & 0 deletions src/pages/Home/components/GoToRandomLetter.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Link } from 'react-router';

const GoToRandomLetter = () => {
return (
<>
<p className="text-gray-60 body-r mb-1 rotate-[-5.277deg] pl-5">고민편지 보러가기</p>
<Link to={'/letter/random'}>
<img src="/src/assets/go_to_random_letter.png" alt="go to random letter" />
</Link>
</>
);
};

export default GoToRandomLetter;
14 changes: 14 additions & 0 deletions src/pages/Home/components/GoToWrite.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Link } from 'react-router';

const GoToWrite = () => {
return (
<div className="h-fit pl-[87px]">
<p className="text-gray-60 body-r mb-1 rotate-[-5.277deg]">속마음 나누기</p>
<Link to={'/letter/write'}>
<img src="/src/assets/go_to_write.png" alt="go to wrte" />
</Link>
</div>
);
};

export default GoToWrite;
25 changes: 25 additions & 0 deletions src/pages/Home/components/HomeLeft.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import RandomCheer from './RandomCheer';
import GoToWrite from './GoToWrite';
import GoToRandomLetter from './GoToRandomLetter';

const HomeLeft = () => {
return (
<div className="flex w-full flex-shrink-0 grow snap-start flex-col justify-between pt-64">
<RandomCheer />
<GoToWrite />

<div className="relative mt-24 flex h-fit w-full flex-col justify-center">
<div className="absolute top-[-94px] z-20 w-full">
<GoToRandomLetter />
</div>
<img
src="/src/assets/home_left_mountain.png"
alt="home left mountain"
className="z-10 w-full max-w-[600px]"
/>
</div>
</div>
);
};

export default HomeLeft;
30 changes: 30 additions & 0 deletions src/pages/Home/components/HomeRight.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import FloatingLetters from './FloatingLetters';
import GoToLetterBoard from './GoToLetterBoard';
import GoToLetterBox from './GoToLetterBox';
import NewLetterModal from './NewLetterModal';

const HomeRight = () => {
//TODO : hasNewLetters 전역으로 상태 관리할지
let hasNewLetters = true;

return (
<div className="relative flex h-screen w-full max-w-[800px] flex-shrink-0 grow snap-start flex-col justify-between overflow-x-hidden pt-5">
Copy link
Collaborator

Choose a reason for hiding this comment

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

저희가 최대 600px로 맞춰서 작업하는 걸로 알고 있는데 max-w-[800px]로 하신 이유가 궁금합니다!

Copy link
Collaborator Author

@tifsy tifsy Feb 20, 2025

Choose a reason for hiding this comment

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

HomeRight.tsx 를 포함한 max-w-[800px]로 되어있던 파일들 수정했습니다 🥲

다만 HomeBackgroundLeft.tsx 에서는 산 이미지들이 연결되는 효과를 위해 min-w-[700px]로 맞춰두었습니다!

{hasNewLetters ? <FloatingLetters /> : null}
<GoToLetterBox />
<GoToLetterBoard />
{hasNewLetters ? <NewLetterModal /> : null}
Copy link
Collaborator

Choose a reason for hiding this comment

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

이건 사소하지만 이렇게 바꿔도 될 것 같아요

Suggested change
{hasNewLetters ? <NewLetterModal /> : null}
{hasNewLetters && <NewLetterModal />}

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

AND 쓰는 게 더 직관적이네요 수정했어요!

<img
src="/src/assets/home_right_mountain_bottom.png"
alt="home right mountain bottom"
className="absolute bottom-0 z-10 w-full"
/>
<img
src="/src/assets/home_right_mountain_top.png"
alt="home right mountain top"
className="absolute bottom-0 w-full"
/>
</div>
);
};

export default HomeRight;
49 changes: 49 additions & 0 deletions src/pages/Home/components/LetterActions.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import { useState } from 'react';
import SendOutlinedIcon from '@mui/icons-material/SendOutlined';
import DriveFileRenameOutlineOutlinedIcon from '@mui/icons-material/DriveFileRenameOutlineOutlined';
import ShareOutlinedIcon from '@mui/icons-material/ShareOutlined';
import ShowIncomingLettersModal from './ShowIncomingLettersModal';
import ShowDraftModal from './ShowDraftModal';
import ShowShareAccessModal from './ShowShareAccessModal';
Comment on lines +1 to +7
Copy link
Collaborator

Choose a reason for hiding this comment

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

오 뭔가... 린트가 반영이 안된 것 같은데 혹시 format on save 설정이 되어 있으신가요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

되어있다고는 뜨는데 계속 import 린트가 반영이 안되는 것 같습니다 🥲


const LetterActions = () => {
const [activeModal, setActiveModal] = useState<
null | 'incomingLetters' | 'draft' | 'shareAccess'
>(null);

return (
<div className="absolute top-24 right-5 z-31 mt-3 flex justify-end">
<div className="flex flex-col gap-y-3">
<button
onClick={() => {
setActiveModal('incomingLetters');
}}
className="flex h-12 w-12 items-center justify-center gap-[10px] rounded-full bg-white/40 text-gray-50 shadow-[inset_0_-2px_2px_0_rgba(208,169,14,0.30),_0_0px_4px_0_rgba(199,164,29,0.30)]"
>
<SendOutlinedIcon />
</button>
<button
onClick={() => setActiveModal('draft')}
className="flex h-12 w-12 items-center justify-center gap-[10px] rounded-full bg-white/40 text-gray-50 shadow-[inset_0_-2px_2px_0_rgba(208,169,14,0.30),_0_0px_4px_0_rgba(199,164,29,0.30)]"
>
<DriveFileRenameOutlineOutlinedIcon />
</button>
<button
onClick={() => setActiveModal('shareAccess')}
className="flex h-12 w-12 items-center justify-center gap-[10px] rounded-full bg-white/40 text-gray-50 shadow-[inset_0_-2px_2px_0_rgba(208,169,14,0.30),_0_0px_4px_0_rgba(199,164,29,0.30)]"
>
<ShareOutlinedIcon />
</button>
Copy link
Collaborator

Choose a reason for hiding this comment

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

이건 필수는 아니지만..! 코드 중복이 꽤 있어보여서 스타일을 클래스로 만들어서 사용하거나 각 버튼 내용을 배열로 만들어서 관리하면 중복되는 코드를 개선할 수 있을 것 같습니다!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

각 버튼의 title과 icon을 배열로 관리해서 코드 구조 개선했습니다!

</div>
{activeModal === 'incomingLetters' && (
<ShowIncomingLettersModal onClose={() => setActiveModal(null)} />
)}
{activeModal === 'draft' && <ShowDraftModal onClose={() => setActiveModal(null)} />}
{activeModal === 'shareAccess' && (
<ShowShareAccessModal onClose={() => setActiveModal(null)} />
)}
</div>
);
};

export default LetterActions;
7 changes: 7 additions & 0 deletions src/pages/Home/components/LetterPreview.tsx
Copy link
Collaborator

Choose a reason for hiding this comment

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

이건 아직 구현이 안된 게 맞을까요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

네~ merge 후에 develop 브랜치 pull 받고 지원님,민하님 컴포넌트 이용해서 구현할 예정이에요!

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import React from 'react';

const LetterPreview = () => {
return <div>LetterPreview</div>;
};

export default LetterPreview;
18 changes: 18 additions & 0 deletions src/pages/Home/components/NavBar.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Link } from 'react-router';
import NotificationsNoneRoundedIcon from '@mui/icons-material/NotificationsNoneRounded';
import PermIdentityRoundedIcon from '@mui/icons-material/PermIdentityRounded';

const NavBar = () => {
return (
<div className="fixed top-[18px] right-5 flex w-full justify-end gap-x-3 text-white">
<Link to={'/mypage/notifications'}>
<NotificationsNoneRoundedIcon />
</Link>
<Link to={'/mypage'}>
<PermIdentityRoundedIcon />
</Link>
</div>
);
};

export default NavBar;
13 changes: 13 additions & 0 deletions src/pages/Home/components/NewLetterModal.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { useState } from 'react';

const NewLetterModal = () => {
const [newLetterCount, setNewLetterCount] = useState(0);

return (
<p className="text-gray-60 body-b relative top-30 mb-10 w-fit animate-pulse self-center rounded-full bg-white px-6 py-4">
{newLetterCount}통의 편지가 도착했어요!
</p>
);
};

export default NewLetterModal;
30 changes: 30 additions & 0 deletions src/pages/Home/components/RandomCheer.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { useState } from 'react';
import { RANDOM_CHEER_LIST } from '../constants';

const RandomCheer = () => {
const getRandomCheer = (): string => {
const randomIndex = Math.floor(Math.random() * RANDOM_CHEER_LIST.length);
return RANDOM_CHEER_LIST[randomIndex];
};

const [randomCheer, setRandomCheer] = useState(getRandomCheer());

return (
<div className="flex flex-col items-end pr-20">
<div
className="relative mb-3 w-fit rounded-lg border-1 border-white bg-white px-6 py-[7px] text-center"
onClick={() => setRandomCheer(getRandomCheer())}
>
<p className="caption-m">{randomCheer}</p>
<div className="absolute right-2 bottom-[-15px] -translate-x-1/2 transform border-x-[10px] border-t-[15px] border-x-transparent border-t-white"></div>
</div>
<img
src="/src/assets/random_cheer_bird.png"
Copy link
Collaborator

@AAminha AAminha Feb 20, 2025

Choose a reason for hiding this comment

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

path를 직접 입력하면 배포할 때 에러가 발생할 것 같아요!! import 방식으로 수정하시면 좋을 것 같습니다

alt="random cheer bird"
className="h-[26.5px] w-[21px] opacity-80"
/>
</div>
);
};

export default RandomCheer;
53 changes: 53 additions & 0 deletions src/pages/Home/components/ShowDraftModal.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import React from 'react';
import ModalBg from '@/assets/images/modal-yellow.png';
import ModalOverlay from '@/components/ModalOverlay';

import DeleteOutlineRoundedIcon from '@mui/icons-material/DeleteOutlineRounded';

interface ShowDraftModalProps {
children?: React.ReactNode;
onClose: () => void;
}

const DUMMY_DRAFT = [
{ id: 1, title: '취업 때문에 고민이 많아요!!' },
{ id: 2, title: '배고파서 죽을 거 같아요 😭' },
{ id: 3, title: '개발하니까 밖에 나갈 일이 없어서 너무 심심하고 피곤해요' },
{ id: 4, title: '마라샹궈 먹고 싶어요' },
];

const ShowDraftModal = ({ onClose }: ShowDraftModalProps) => {
return (
<ModalOverlay closeOnOutsideClick onClose={onClose}>
<div className="flex h-full flex-col items-center justify-center">
<p className="body-sb mb-4 h-fit max-w-[170px] text-center text-white">
임시저장된 편지가 있어요!
</p>
<div className="flex w-73 justify-center">
<section className="relative overflow-hidden rounded-lg p-5">
<img src={ModalBg} className="absolute inset-0 z-[-10] h-full w-full" />
<div className="flex flex-col gap-1">
<p className="body-sb text-gray-80">임시저장 편지</p>
<p className="caption-r text-black">로그아웃 시 임시 저장된 편지는 사라집니다</p>
</div>
<div className="mt-6 flex w-[251px] flex-col gap-[10px]">
{DUMMY_DRAFT.map((draft) => (
<div
className="text-gray-80 body-m flex h-10 w-full items-center justify-between gap-1 rounded-lg bg-white p-3"
key={draft.id}
>
<p className="truncate">{draft.title}</p>
<div className="text-gray-20">
<DeleteOutlineRoundedIcon />
</div>
</div>
))}
</div>
</section>
</div>
</div>
</ModalOverlay>
);
};

export default ShowDraftModal;
Loading