Skip to content

Commit 28ea4e2

Browse files
committed
feat : 임시저장 데이터 바인딩 및 임시저장 덮어씌우기 작업 완료
1 parent 6059368 commit 28ea4e2

File tree

4 files changed

+26
-8
lines changed

4 files changed

+26
-8
lines changed

src/pages/Home/components/ShowDraftModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const ShowDraftModal = ({ onClose }: ShowDraftModalProps) => {
1717
const navigate = useNavigate();
1818

1919
const handleNavigation = (draft: DraftLetter) => {
20-
navigate(`/letter/write/?letterId=${draft.letterId}`, {
20+
navigate(`/letter/write/?letterId=${draft.parentLetterId}`, {
2121
state: { draft, isDraft: true },
2222
});
2323
};

src/pages/Write/CategorySelect.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import useWrite from '@/stores/writeStore';
77

88
import ResultLetterAnimation from './components/ResultLetterAnimation';
99
import WritePageButton from './components/WritePageButton';
10+
import useToastStore from '@/stores/toastStore';
1011

1112
export default function CategorySelect({
1213
setStep,
@@ -21,13 +22,17 @@ export default function CategorySelect({
2122
}) {
2223
const letterRequest = useWrite((state) => state.letterRequest);
2324

25+
const setToastActive = useToastStore((state) => state.setToastActive);
26+
2427
const handlePostLetter = async (letterRequest: LetterRequest) => {
2528
const res = await postLetter(letterRequest);
2629
if (res?.status === 200) {
2730
console.log(letterRequest);
2831
setSend(true);
2932
} else {
30-
alert('전송오류(임시)');
33+
// 일단 에러 발생하면 무조건 검열단어라고 토스트를 띄웠는데 후에 에러 처리 수정해야함
34+
setToastActive({ title: '편지에 검열 단어가 포함되어있습니다. ', toastType: 'Error' });
35+
setStep('edit');
3136
}
3237
};
3338

@@ -89,7 +94,7 @@ export default function CategorySelect({
8994
handlePostLetter(letterRequest);
9095
// setSend(true);
9196
} else {
92-
alert('우표 선택을 해주세요');
97+
setToastActive({ title: '카테고리를 선택해주세요.', toastType: 'Warning' });
9398
}
9499
}}
95100
>

src/pages/Write/LetterEditor.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default function LetterEditor({
4343
setSend(true);
4444
setStep('category');
4545
} else {
46-
alert('전송오류 발생(임시)');
46+
setToastActive({ title: '전송중 오류가 발생했습니다.', toastType: 'Error' });
4747
}
4848
};
4949

@@ -55,7 +55,7 @@ export default function LetterEditor({
5555
setSend(true);
5656
setStep('category');
5757
} else {
58-
alert('전송오류(임시)');
58+
setToastActive({ title: '전송중 오류가 발생했습니다.', toastType: 'Error' });
5959
}
6060
};
6161

@@ -79,16 +79,16 @@ export default function LetterEditor({
7979

8080
const handlePostTemporarySave = async () => {
8181
if (!letterId) return alert('임시저장중 오류 발생');
82-
const LETTER_STATE_DUMMY = false;
83-
const requestLetterId = LETTER_STATE_DUMMY || null;
82+
const requestLetterId = location.state?.draft.letterId || null;
8483
// MEMO : 임시저장 전송 방식 : 최초임시저장은 letterId : null, 임시저장 업데이트는 letterId : location state로 받아오는 임시저장편지의 letterId값
8584
const temporaryRequest: TemporaryRequest = { ...letterRequest, letterId: requestLetterId };
8685
const res = await postTemporarySave(temporaryRequest);
8786
if (res?.status === 200) {
8887
console.log(res);
88+
setToastActive({ title: '임시저장을 완료했습니다.', toastType: 'Success' });
8989
navigate('/');
9090
} else {
91-
alert('실패');
91+
setToastActive({ title: '임시저장에 실패했습니다.', toastType: 'Error' });
9292
}
9393
};
9494

@@ -161,6 +161,7 @@ export default function LetterEditor({
161161
<div className="body-b mt-15">TO. 따숨이에게</div>
162162
<input
163163
type="text"
164+
maxLength={50}
164165
placeholder="제목을 입력해주세요."
165166
className="body-sb placeholder:text-gray-40 placeholder:border-0"
166167
onChange={(e) => {
@@ -175,6 +176,7 @@ export default function LetterEditor({
175176
`body-r basic-theme min-h-full w-full resize-none px-6`,
176177
`${FONT_TYPE_OBJ[letterRequest.fontType]}`,
177178
)}
179+
maxLength={1000}
178180
placeholder="클릭해서 내용을 작성하세요"
179181
onChange={(e) => {
180182
setLetterRequest({ ...letterRequest, content: e.target.value });

src/pages/Write/index.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const WritePage = () => {
2121
const [isReply, setIsReply] = useState<boolean>(false);
2222

2323
const letterRequest = useWrite((state) => state.letterRequest);
24+
const setLetterRequest = useWrite((state) => state.setLetterRequest);
2425
const resetLetterRequest = useWrite((state) => state.resetLetterRequest);
2526

2627
const wrapStyle = twMerge(
@@ -54,6 +55,16 @@ const WritePage = () => {
5455
}
5556
};
5657
handleGetPrevLetter(letterId);
58+
if (location.state?.isDraft) {
59+
const draft: TemporaryRequest = location.state.draft;
60+
setLetterRequest({
61+
category: draft.category,
62+
content: draft.content,
63+
fontType: draft.fontType,
64+
paperType: draft.paperType,
65+
title: draft.title,
66+
});
67+
}
5768
}
5869
}, [location.state, prevLetter.length, navigate, letterId]);
5970

0 commit comments

Comments
 (0)