Skip to content

Commit ca14967

Browse files
committed
feat [#52] 메시지 삭제 기능 구현
1 parent 68394ca commit ca14967

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

src/features/message/api/messages.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,11 @@ async function getNextPageMessages() {
3737
return data.results;
3838
}
3939

40-
export { getMessages, getNextPageMessages };
40+
async function deleteMessage({ id }) {
41+
const response = await apiClient.delete(`messages/${id}/`);
42+
if (response.status !== 204) {
43+
throw new Error("Message를 삭제하는데 실패했습니다.");
44+
}
45+
}
46+
47+
export { deleteMessage, getMessages, getNextPageMessages };

src/features/message/components/messages-grid.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ function MessagesGrid({ isEditing, messages, onDelete, onInfiniteScroll }) {
4848
key={message.id}
4949
isEditing={isEditing}
5050
message={message}
51-
onDelete={(event) => handleDeleteClick(event, message.id)}
51+
onDelete={() => handleDeleteClick(message.id)}
5252
/>
5353
);
5454

src/pages/messages-page.jsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { OutlinedButton, PrimaryButton } from "../components/button/button";
55
import BUTTON_SIZE from "../components/button/button-size";
66
import BACKGROUND_COLOR from "../components/color/background-color";
77
import {
8+
deleteMessage,
89
getMessages,
910
getNextPageMessages,
1011
} from "../features/message/api/messages";
@@ -77,7 +78,7 @@ function EditingButtons({ onDelete, onCancel }) {
7778
/>
7879
<OutlinedButton
7980
size={BUTTON_SIZE.medium}
80-
title="취소하기"
81+
title="완료하기"
8182
onClick={onCancel}
8283
/>
8384
</ButtonContainer>
@@ -111,9 +112,14 @@ function MessagesPage() {
111112
navigate(-1);
112113
};
113114

114-
const handleMessageDelete = (messageId) => {
115-
// TODO: Message 삭제
116-
console.log(`Delete Message ${messageId}`);
115+
const handleMessageDelete = async (messageId) => {
116+
try {
117+
await deleteMessage({ id: messageId });
118+
setMessages((prev) => prev.filter((message) => message.id !== messageId));
119+
} catch (error) {
120+
// TODO: Error 처리
121+
console.log(error);
122+
}
117123
};
118124

119125
const handleInfiniteScroll = async () => {

0 commit comments

Comments
 (0)