diff --git a/src/chatbotPage/components/LoadingModal.jsx b/src/chatbotPage/components/LoadingModal.jsx index 791e665..fee9822 100644 --- a/src/chatbotPage/components/LoadingModal.jsx +++ b/src/chatbotPage/components/LoadingModal.jsx @@ -1,44 +1,132 @@ -import React from "react"; +import React, { useEffect, useState } from "react"; import styled from "styled-components"; import loadingImg from "../../asset/Loading/loading.svg"; -import { useNavigate } from "react-router-dom"; -function LoadingModal({ setModalOpen }) { +import { useLocation, useNavigate } from "react-router-dom"; +import postChatSummary from "../../apis/postChatSummary"; +import { useRecoilValue } from "recoil"; +import { tokenState } from "../../atom/atom"; + +// import React, { useState, useEffect } from "react"; +// import { useNavigate } from "react-router-dom"; +// import { useRecoilValue } from "recoil"; +// import { tokenState } from "../recoil/atoms"; +// import { postChatSummary } from "../api"; // Adjust the import path as needed +// import styled from "styled-components"; +// import loadingImg from "../../asset/loading.svg"; // Adjust the import path as needed + +function LoadingModal({ chatId, setModalOpen }) { + const csrfToken = useRecoilValue(tokenState); const navigate = useNavigate(); + const [summaryText, setSummaryText] = useState(""); const closeLoadingModal = () => { setModalOpen(false); - navigate("/summaryEdit"); // navigate하면서 요약된 내용을 보내줘야한다. 여기서 연결해야할 것 같다. - // summaryEdit 링크로 넘겨준 내용을 quill 에디터에 기본값으로 넣어줘야한다. - // -> DiaryBotPage/components/SummaryEdit 로 들어간다 !! + navigate("/summaryEdit", { state: { summaryText } }); }; + + useEffect(() => { + const summaryFetch = async () => { + try { + const summary = await postChatSummary(chatId, csrfToken); + setSummaryText(summary.content); + } catch (error) { + console.error("Error fetching diary detail:", error); + } + }; + summaryFetch(); + }, [chatId, csrfToken]); + + useEffect(() => { + if (summaryText) { + closeLoadingModal(); // Navigate only after summaryText is updated + } + }, [summaryText]); + return ( -
- {/* 사실 사용자가 모달을 닫을 필요는 없어서 나중에 closeLoadingModal부분은 지워주면 된다. */} - - {/* */} - - {/* loading */} - loading -

steppy가 일지를 요약중이에요!

-
- steppy와 대화 중 일지에 추가하고 싶은 내용이 있었나요? -
- 일지 수정하기 페이지에 담아주세요 :) -
-
- {/*
*/} -
-
+ + + loading +

steppy가 일지를 요약중이에요!

+
+ steppy와 대화 중 일지에 추가하고 싶은 내용이 있었나요? +
+ 일지 수정하기 페이지에 담아주세요 :) +
+
+
); } export default LoadingModal; +// function LoadingModal({ chatId, setModalOpen }) { +// const csrfToken = useRecoilValue(tokenState); + +// const navigate = useNavigate(); +// // const location = useLocation(); +// const [summaryText, setSummaryText] = useState(""); +// // const { summary } = location.state; +// const closeLoadingModal = () => { +// setModalOpen(false); +// navigate("/summaryEdit", { state: { summaryText } }); // navigate하면서 요약된 내용을 보내줘야한다. 여기서 연결해야할 것 같다. +// }; + +// useEffect(() => { +// console.log("chatid: ", chatId); + +// const summaryFetch = async () => { +// try { +// const summary = await postChatSummary(chatId, csrfToken); + +// console.log("summary : ", summary); +// // summary = fetchedSummary; +// setSummaryText(summary.content); +// console.log("아아아악summary : ", summary.content); +// closeLoadingModal(); // 일지 받아오고 나면 모달 닫기 +// } catch (error) { +// console.error("Error fetching diary detail:", error); +// console.log("summary AAA"); +// } +// }; +// summaryFetch(); +// }, [chatId, csrfToken]); + +// useEffect(() => { +// if (summaryText) { +// closeLoadingModal(); // Navigate only after summaryText is updated +// } +// }, [summaryText]); // 값 변하면 업데이트 +// return ( +//
+// +// {/* */} +// +// loading +//

steppy가 일지를 요약중이에요!

+//
+// steppy와 대화 중 일지에 추가하고 싶은 내용이 있었나요? +//
+// 일지 수정하기 페이지에 담아주세요 :) +//
+//
+// {/*
*/} +//
+//
+// ); +// } + +// export default LoadingModal; + const modalBase = ` width: 100vw; height: 100vh; diff --git a/src/diaryBotPage/components/SummaryEdit.jsx b/src/diaryBotPage/components/SummaryEdit.jsx index 2878da7..3501387 100644 --- a/src/diaryBotPage/components/SummaryEdit.jsx +++ b/src/diaryBotPage/components/SummaryEdit.jsx @@ -1,32 +1,89 @@ -import React from "react"; +import React, { useEffect, useState } from "react"; import QuillEditor from "../../diaryWritePage/components/QuillEditor"; import styled from "styled-components"; +import ThumbnailModal from "../../diaryWritePage/components/ThumbnailModal"; +import DiaryPostModal from "../../diaryWritePage/components/DiaryPostModal"; +import { useRecoilValue } from "recoil"; +import { tokenState } from "../../atom/atom"; +import { useLocation } from "react-router-dom"; /* 일지 작성하기 버튼을 누르면 여기서 수정한 내용을 */ + function SummaryEdit() { + const location = useLocation(); + const summaryText = location.state?.summaryText || ""; + // console.log("edit page에서 확인하는 summary", summaryText); + const [thumbnailModal, setThumbnailModal] = useState(false); // 썸네일 사진 추가하는 모달 + const [postedModal, setPostedModal] = useState(false); //일지가 추가되었다는 걸 알려주는 모달 + const [formData, setFormData] = useState({ + title: "", + content: "", + }); + const csrfToken = useRecoilValue(tokenState); + const goalId = location.state.goalId; + + const openThumbnailModal = () => { + setThumbnailModal(true); + }; + useEffect(() => { + console.log("formData updated:", formData, csrfToken); + }, [formData]); + return ( steppy와 일지 작성하기 - 일지 수정하기 + 일지 작성하기 - + + setFormData((formData) => ({ + ...formData, + title: e.target.value, + })) + } + > {/* */} - + + setFormData((formData) => ({ + ...formData, + content: content, + })) + } + mainText={summaryText} + /> - + + {thumbnailModal && ( + + )} + {!thumbnailModal && postedModal && ( + + )} );