diff --git a/src/pages/Home/components/GoToLetterBoard.tsx b/src/pages/Home/components/GoToLetterBoard.tsx index 41d54cb..329307b 100644 --- a/src/pages/Home/components/GoToLetterBoard.tsx +++ b/src/pages/Home/components/GoToLetterBoard.tsx @@ -6,7 +6,7 @@ const GoToLetterBoard = () => {

게시판

- + go to letter board
diff --git a/src/pages/Home/components/RandomCheer.tsx b/src/pages/Home/components/RandomCheer.tsx index 758ff82..d0c4668 100644 --- a/src/pages/Home/components/RandomCheer.tsx +++ b/src/pages/Home/components/RandomCheer.tsx @@ -11,7 +11,7 @@ const RandomCheer = () => { const [randomCheer, setRandomCheer] = useState(getRandomCheer()); return ( -
+
setRandomCheer(getRandomCheer())} diff --git a/src/pages/Home/components/ShowShareAccessModal.tsx b/src/pages/Home/components/ShowShareAccessModal.tsx index 0c86e2b..504a460 100644 --- a/src/pages/Home/components/ShowShareAccessModal.tsx +++ b/src/pages/Home/components/ShowShareAccessModal.tsx @@ -1,6 +1,7 @@ import React from 'react'; import ModalBg from '@/assets/images/modal-yellow.png'; import ModalOverlay from '@/components/ModalOverlay'; +import { useNavigate } from 'react-router'; interface ShowShareAccessModalProps { children?: React.ReactNode; @@ -15,6 +16,13 @@ const DUMMY_SHARE_ACCESS = [ ]; const ShowShareAccessModal = ({ onClose }: ShowShareAccessModalProps) => { + const navigate = useNavigate(); + + const handleNavigation = (accessId: number) => { + navigate(`/board/letter/${accessId}`, { + state: { isShareLetterPreview: true }, + }); + }; return (
@@ -33,13 +41,13 @@ const ShowShareAccessModal = ({ onClose }: ShowShareAccessModalProps) => {
{DUMMY_SHARE_ACCESS.map((access) => ( -
handleNavigation(access.id)} >

{access.zip_code}님의 공유 요청

-
+ ))}
diff --git a/src/pages/LetterBoardDetail/components/Header.tsx b/src/pages/LetterBoardDetail/components/Header.tsx index f2a791f..f1e15f9 100644 --- a/src/pages/LetterBoardDetail/components/Header.tsx +++ b/src/pages/LetterBoardDetail/components/Header.tsx @@ -1,4 +1,4 @@ -import { Link } from 'react-router'; +import { Link, useNavigate } from 'react-router'; import { ArrowLeftIcon, @@ -14,34 +14,53 @@ interface HeaderProps { isWriter: boolean; onToggleLike: () => void; onOpenReportModal: () => void; + isShareLetterPreview?: boolean; } -const Header = ({ likeCount, isLike, isWriter, onToggleLike, onOpenReportModal }: HeaderProps) => { +const Header = ({ + likeCount, + isLike, + isWriter, + onToggleLike, + onOpenReportModal, + isShareLetterPreview = false, +}: HeaderProps) => { + const navigate = useNavigate(); + return (
- - - -
-
- -

{likeCount}

+ {isShareLetterPreview ? ( + + ) : ( + + + + )} + + {!isShareLetterPreview && ( +
+
+ +

{likeCount}

+
+ {isWriter ? ( + + ) : ( + + )}
- {isWriter ? ( - - ) : ( - - )} -
+ )}
diff --git a/src/pages/LetterBoardDetail/index.tsx b/src/pages/LetterBoardDetail/index.tsx index 2292ff9..35abe1c 100644 --- a/src/pages/LetterBoardDetail/index.tsx +++ b/src/pages/LetterBoardDetail/index.tsx @@ -1,4 +1,6 @@ import { useState } from 'react'; +import { useLocation } from 'react-router'; + import { twMerge } from 'tailwind-merge'; import ReportModal from '@/components/ReportModal'; @@ -6,6 +8,7 @@ import ReportModal from '@/components/ReportModal'; import Header from './components/Header'; import Letter from './components/Letter'; +import BlurImg from '@/assets/images/landing-blur.png'; const DUMMY_LETTER = { receiver: '12E21', content: @@ -13,7 +16,18 @@ const DUMMY_LETTER = { sender: '12345', }; -const LetterBoardDetailPage = () => { +interface ShareLetterPreviewProps { + confirmDisabled?: boolean; + children?: React.ReactNode; + onCancel?: () => void; + onConfirm?: () => void; +} + +const LetterBoardDetailPage = ({ + confirmDisabled, + onCancel, + onConfirm, +}: ShareLetterPreviewProps) => { const [likeCount, setLikeCount] = useState(122); const [isLike, setIsLike] = useState(false); const isWriter = false; @@ -24,6 +38,11 @@ const LetterBoardDetailPage = () => { setIsLike((prev) => !prev); }; + const location = useLocation(); + + const isShareLetterPreview = location.state?.isShareLetterPreview || false; // state가 없다면 false로 기본값 설정 + console.log(location); + return ( <> {activeReportModal && setActiveReportModal(false)} />} @@ -34,6 +53,7 @@ const LetterBoardDetailPage = () => { isWriter={isWriter} onToggleLike={handleToggleLike} onOpenReportModal={() => setActiveReportModal(true)} + isShareLetterPreview={isShareLetterPreview} />

FROM. 12E31

@@ -56,6 +76,29 @@ const LetterBoardDetailPage = () => { + + {isShareLetterPreview && ( + <> + landing blur +
+ + +
+ + )}