From 44ef13ec56345591f023c95b559b5fe9fa282c1f Mon Sep 17 00:00:00 2001 From: jungsunbeen Date: Fri, 30 May 2025 15:14:38 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=EC=9D=BC=EA=B8=B0=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80=20=EB=B0=8F?= =?UTF-8?q?=20=EC=A0=9C=EC=B6=9C=20=ED=95=B8=EB=93=A4=EB=9F=AC=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/writing/WritingPage.tsx | 21 ++++++++++++++++++++- src/services/apis/diary/writing.ts | 15 +++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/services/apis/diary/writing.ts diff --git a/src/pages/writing/WritingPage.tsx b/src/pages/writing/WritingPage.tsx index 6eace6d..7a1947a 100644 --- a/src/pages/writing/WritingPage.tsx +++ b/src/pages/writing/WritingPage.tsx @@ -3,6 +3,7 @@ import styled from "styled-components"; import { BsArrowRight } from "react-icons/bs"; import { IoHomeOutline } from "react-icons/io5"; import { useNavigate } from "react-router-dom"; +import { postWritingDiary } from "../../services/apis/diary/writing"; const WritingPage = () => { const [title, setTitle] = useState(""); @@ -10,12 +11,30 @@ const WritingPage = () => { const [content, setContent] = useState(""); const navigate = useNavigate(); + const handleSubmit = async () => { + try { + const response = await postWritingDiary({ + date: "2025-05-30", + title, + content, + hashtag: tags, + character: "앙글이", + }); + + // 예: 생성된 일기의 ID가 response.data.id에 있다고 가정 + navigate(`/diary/${response.data.id}`); + } catch (error) { + console.error("일기 저장 실패:", error); + alert("일기 저장 중 오류가 발생했습니다."); + } + }; + return (
navigate("/")} /> 2025.05.01. - navigate("/diary/1")} /> +
Date: Fri, 30 May 2025 15:19:39 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=EC=9D=BC=EA=B8=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=B0=8F=20=EB=9D=BC?= =?UTF-8?q?=EC=9A=B0=ED=8C=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 2 ++ src/pages/DiaryDetail.tsx | 16 ++++++++++++++-- src/pages/writing/EditPage.tsx | 9 +++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 src/pages/writing/EditPage.tsx diff --git a/src/App.tsx b/src/App.tsx index 3d55f46..a45430c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -11,6 +11,7 @@ import ChatPage from "./pages/chatting/ChatPage"; import styled from "styled-components"; import WritingPage from "./pages/writing/WritingPage"; import Testpage from "./pages/Testpage"; +import EditPage from "./pages/writing/EditPage"; function App() { return ( @@ -24,6 +25,7 @@ function App() { } /> } /> } /> + } /> } /> } /> diff --git a/src/pages/DiaryDetail.tsx b/src/pages/DiaryDetail.tsx index ca72115..d0fe4ed 100644 --- a/src/pages/DiaryDetail.tsx +++ b/src/pages/DiaryDetail.tsx @@ -1,5 +1,5 @@ import styled from "styled-components"; -import { IoHomeOutline } from "react-icons/io5"; +import { IoHomeOutline, IoTrashBinOutline } from "react-icons/io5"; import { BsPencil } from "react-icons/bs"; import { useNavigate, useParams } from "react-router-dom"; import { useEffect, useState } from "react"; @@ -62,7 +62,9 @@ const DiaryDetail = () => {
navigate("/")} /> {formatDate(diary.date)} - navigate(`/edit/${diary.id}`)} /> + alert("삭제 기능은 준비 중입니다.")} /> + alert("수정 기능은 준비 중입니다.")} /> + {/* navigate(`/edit/${diary.id}`)} /> */}
@@ -127,6 +129,16 @@ const HomeIcon = styled(IoHomeOutline)` color: #1e2a52; `; +const TrashIcon = styled(IoTrashBinOutline)` + position: absolute; + top: 50%; + right: 56px; + transform: translateY(-50%); + font-size: 20px; + color: #1e2a52; + size: 40px; +`; + const EditIcon = styled(BsPencil)` position: absolute; top: 50%; diff --git a/src/pages/writing/EditPage.tsx b/src/pages/writing/EditPage.tsx new file mode 100644 index 0000000..8d99aaf --- /dev/null +++ b/src/pages/writing/EditPage.tsx @@ -0,0 +1,9 @@ +const EditPage = () => { + return ( +
+ 일기 수정 기능은 준비 중입니다. +
+ ) +} + +export default EditPage From 8e3a76bec4a6d62123fb32f0619ad83e70cf7527 Mon Sep 17 00:00:00 2001 From: jungsunbeen Date: Fri, 30 May 2025 15:21:36 +0900 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=EB=A9=94=ED=83=80=20=ED=83=9C?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=9D=BC=EA=B8=B0?= =?UTF-8?q?=20=EC=9E=91=EC=84=B1=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C=20=ED=99=95=EC=9D=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 9 ++++++--- src/pages/writing/EditPage.tsx | 10 +++------- src/pages/writing/WritingPage.tsx | 4 +++- src/services/apis/diary/writing.ts | 10 ++++++++-- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/index.html b/index.html index ae8ce52..ce6c111 100644 --- a/index.html +++ b/index.html @@ -4,9 +4,12 @@ - - - + + + { - return ( -
- 일기 수정 기능은 준비 중입니다. -
- ) -} + return
일기 수정 기능은 준비 중입니다.
; +}; -export default EditPage +export default EditPage; diff --git a/src/pages/writing/WritingPage.tsx b/src/pages/writing/WritingPage.tsx index 7a1947a..e771221 100644 --- a/src/pages/writing/WritingPage.tsx +++ b/src/pages/writing/WritingPage.tsx @@ -11,7 +11,9 @@ const WritingPage = () => { const [content, setContent] = useState(""); const navigate = useNavigate(); - const handleSubmit = async () => { + const handleSubmit = async () => { + const confirmed = window.confirm("작성을 종료하시겠습니까?"); + if (!confirmed) return; try { const response = await postWritingDiary({ date: "2025-05-30", diff --git a/src/services/apis/diary/writing.ts b/src/services/apis/diary/writing.ts index 317db70..dd2f87c 100644 --- a/src/services/apis/diary/writing.ts +++ b/src/services/apis/diary/writing.ts @@ -2,11 +2,17 @@ import { CreateAxiosInstanceWithToken } from "../axiosInstanceWithToken"; const axiosInstanceWithToken = CreateAxiosInstanceWithToken(); -export async function postWritingDiary(diaryData: { date: string; title: string; content: string; hashtag: string; character: string; }) { +export async function postWritingDiary(diaryData: { + date: string; + title: string; + content: string; + hashtag: string; + character: string; +}) { try { const response = await axiosInstanceWithToken.post( `/api/diary/create`, - diaryData + diaryData, ); return response; } catch (error) {