From 7f1a3932b835d3e06a55636731fa3ce6e460f541 Mon Sep 17 00:00:00 2001 From: junjeong Date: Thu, 17 Apr 2025 15:38:30 +0900 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20=EB=8C=80=ED=99=94=EA=BF=80?= =?UTF-8?q?=ED=8C=81=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 4 +-- src/pages/ChatTips.tsx | 63 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 64 insertions(+), 3 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index b2de307..a1d95e8 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -78,13 +78,13 @@ const App = () => { } /> } /> } /> - } /> + } /> } /> } /> } /> } /> } /> - } /> + } /> } /> } /> diff --git a/src/pages/ChatTips.tsx b/src/pages/ChatTips.tsx index 41678e2..1f85b2e 100644 --- a/src/pages/ChatTips.tsx +++ b/src/pages/ChatTips.tsx @@ -1,5 +1,66 @@ +import { useEffect, useState } from "react"; +import { useParams } from "react-router-dom"; +import { Mbti } from "@/types/mbti"; +import Header from "@/components/header/Header"; +import instance from "@/api/axios"; +import pickMbtiImage from "@/utils/pickMbtiImage"; + +interface VirtualFriendResponse { + mbti: string; +} + +interface ChatTipsResponse { + data: string; +} + const ChatTips = () => { - return
대화 꿀팁 페이지!
; + const { virtualFriendId } = useParams(); + const [virtualFrinedInfo, setVirtualFrinedInfo] = useState({ + mbti: "", + tips: "" + }); + const mbtiImage = pickMbtiImage(virtualFrinedInfo.mbti as Mbti); + const mbti = virtualFrinedInfo.mbti; + const tips = virtualFrinedInfo.tips; + + useEffect(() => { + const fetchData = async () => { + try { + const [friendInfoRes, tipsRes] = await Promise.all([ + instance.get( + `/api/virtual-friend/${virtualFriendId}` + ), + instance.get( + `/api/addition/tips/${virtualFriendId}` + ) + ]); + + setVirtualFrinedInfo({ + mbti: friendInfoRes.data.mbti, + tips: tipsRes.data.data + }); + } catch (error) { + console.error("데이터를 가져오는 중 오류가 발생했습니다:", error); + } + }; + + fetchData(); + }, []); + + return ( +
+
+
+ mbti 이미지 +

{mbti}와 나눌 대화 주제 추천

+ {tips} +
+
+ ); }; export default ChatTips; From 0241868caef82be82489550778856ec4e48689a9 Mon Sep 17 00:00:00 2001 From: junjeong Date: Thu, 17 Apr 2025 15:41:25 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20=EB=8C=80=ED=99=94=20=EC=A3=BC?= =?UTF-8?q?=EC=A0=9C=20=EC=B6=94=EC=B2=9C=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 7 ++-- src/pages/ChatRecommend.tsx | 67 ++++++++++++++++++++++++++++++++++++- 2 files changed, 71 insertions(+), 3 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index a1d95e8..96d161d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -77,8 +77,11 @@ const App = () => { } /> } /> } /> - } /> - } /> + } + /> + } /> } /> } /> } /> diff --git a/src/pages/ChatRecommend.tsx b/src/pages/ChatRecommend.tsx index 3c1e04b..9651742 100644 --- a/src/pages/ChatRecommend.tsx +++ b/src/pages/ChatRecommend.tsx @@ -1,5 +1,70 @@ +import { useEffect, useState } from "react"; +import { useParams } from "react-router-dom"; +import { Mbti } from "@/types/mbti"; +import Header from "@/components/header/Header"; +import instance from "@/api/axios"; +import pickMbtiImage from "@/utils/pickMbtiImage"; + +interface VirtualFriendResponse { + mbti: string; +} + +interface ChatTipsResponse { + data: string; +} + const ChatRecommend = () => { - return
대화 주제 추천 페이지!
; + const { virtualFriendId } = useParams(); + const [virtualFrinedInfo, setVirtualFrinedInfo] = useState({ + mbti: "", + tips: "" + }); + const mbtiImage = pickMbtiImage(virtualFrinedInfo.mbti as Mbti); + const mbti = virtualFrinedInfo.mbti; + const tips = virtualFrinedInfo.tips; + + useEffect(() => { + const fetchData = async () => { + try { + const [friendInfoRes, tipsRes] = await Promise.all([ + instance.get( + `/api/virtual-friend/${virtualFriendId}` + ), + instance.get( + `/api/addition/recommendtopic/${virtualFriendId}` + ) + ]); + + setVirtualFrinedInfo({ + mbti: friendInfoRes.data.mbti, + tips: tipsRes.data.data + }); + } catch (error) { + console.error("데이터를 가져오는 중 오류가 발생했습니다:", error); + } + }; + + fetchData(); + }, []); + + return ( +
+
+
+ mbti 이미지 +

{mbti}와 나눌 대화 주제 추천

+ {tips} +
+
+ ); }; export default ChatRecommend; From 6363ed73e5bc9902dac90f51e8db502ab793d1c5 Mon Sep 17 00:00:00 2001 From: junjeong Date: Thu, 17 Apr 2025 15:50:22 +0900 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20=EB=8C=80=ED=99=94=20=EC=98=A8?= =?UTF-8?q?=EB=8F=84=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EA=B0=9C=EB=B0=9C,?= =?UTF-8?q?=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=A6=AC=EB=8B=A4=EC=9D=B4?= =?UTF-8?q?=EB=A0=89=ED=8A=B8url=20=EC=88=98=EC=A0=95=EB=90=98=EB=A9=B4=20?= =?UTF-8?q?=EB=A1=9C=EC=BB=AC=EC=97=90=EC=84=9C=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=98=88=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ChatTemporature.tsx | 62 ++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/src/pages/ChatTemporature.tsx b/src/pages/ChatTemporature.tsx index 498244c..27a6ee9 100644 --- a/src/pages/ChatTemporature.tsx +++ b/src/pages/ChatTemporature.tsx @@ -1,5 +1,65 @@ +import { useEffect, useState } from "react"; +import { useParams } from "react-router-dom"; +import instance from "@/api/axios"; +import Header from "@/components/header/Header"; + +interface mbtiResProps { + mbti: string; +} + +interface tempResProps { + data: string; +} + const ChatTemporature = () => { - return
대화 온도 측정 페이지!
; + const { conversationId } = useParams(); + const [virtualFrinedInfo, setVirtualFrinedInfo] = useState({ + mbti: "", + temporature: "" + }); + const temporature = virtualFrinedInfo.temporature; + const mbti = virtualFrinedInfo.mbti; + + useEffect(() => { + const fetchData = async () => { + try { + const [mbtiRes, tempRes] = await Promise.all([ + instance.get(`/api/virtual-friend/${conversationId}`), + instance.get( + `/api/addition/temporature/${conversationId}` + ) + ]); + + setVirtualFrinedInfo({ + mbti: mbtiRes.data.mbti, + temporature: tempRes.data.data + }); + } catch (error) { + console.error("데이터를 가져오는 중 오류가 발생했습니다:", error); + } + }; + + fetchData(); + }, []); + + return ( +
+
+
+ mbti 온도 이미지 +

+ 방금까지 나눈 대화로 온도를 측정했어요! +

+ + 현재 {mbti}와 나눈 대화의 온도는 {temporature}도에요 + +
+
+ ); }; export default ChatTemporature; From 035a1a5f9becfdf6576c13d169ae63a02a85a09b Mon Sep 17 00:00:00 2001 From: junjeong Date: Tue, 22 Apr 2025 13:08:32 +0900 Subject: [PATCH 4/6] =?UTF-8?q?chore:=20TipsMenuContainer=EA=B0=80=20vertu?= =?UTF-8?q?ialFreindID=EB=A5=BC=20=EB=B0=9B=EB=8F=84=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/tips/TipsMenu.tsx | 12 +++++++----- src/components/tips/TipsMenuContainer.tsx | 8 ++++---- src/pages/Chat.tsx | 2 +- src/pages/ChatRecommend.tsx | 2 +- src/pages/ChatTips.tsx | 3 +-- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/components/tips/TipsMenu.tsx b/src/components/tips/TipsMenu.tsx index bfd5e8b..561a24b 100644 --- a/src/components/tips/TipsMenu.tsx +++ b/src/components/tips/TipsMenu.tsx @@ -1,9 +1,11 @@ import { Link } from "react-router-dom"; const TipsMenu = ({ - mode + mode, + conversationId }: { mode: "topic" | "conversation" | "temporature"; + conversationId: string; }) => { let text = ""; let imageUrl = ""; @@ -12,18 +14,18 @@ const TipsMenu = ({ switch (mode) { case "topic": text = "대화 주제 추천"; - imageUrl = "/icon/starbubble.svg"; - href = "/chat-recommend"; + imageUrl = "/icon/starbubb₩le.svg"; + href = `/chat-recommend/${conversationId}`; break; case "conversation": text = "대화 꿀팁"; imageUrl = "/icon/lightbulb.svg"; - href = "/chat-tips"; + href = `/chat-tips/${conversationId}`; break; case "temporature": text = "현재 대화의 온도 측정하기"; imageUrl = "/icon/thermometer.svg"; - href = "/chat-temporature"; + href = `/chat-temporature/${conversationId}`; break; default: return; diff --git a/src/components/tips/TipsMenuContainer.tsx b/src/components/tips/TipsMenuContainer.tsx index 4a70d98..5cbc01d 100644 --- a/src/components/tips/TipsMenuContainer.tsx +++ b/src/components/tips/TipsMenuContainer.tsx @@ -1,11 +1,11 @@ import TipsMenu from "@/components/tips/TipsMenu"; -const TipsMenuContainer = () => { +const TipsMenuContainer = ({ conversationId }: { conversationId: string }) => { return ( <> - - - + + + ); }; diff --git a/src/pages/Chat.tsx b/src/pages/Chat.tsx index a47b0ef..d57ccb9 100644 --- a/src/pages/Chat.tsx +++ b/src/pages/Chat.tsx @@ -142,7 +142,7 @@ const Chat = () => { onSend={() => handleSend(input)} /> - {isOpen && } + {isOpen && } ); }; diff --git a/src/pages/ChatRecommend.tsx b/src/pages/ChatRecommend.tsx index 9651742..b3ea6b4 100644 --- a/src/pages/ChatRecommend.tsx +++ b/src/pages/ChatRecommend.tsx @@ -19,9 +19,9 @@ const ChatRecommend = () => { mbti: "", tips: "" }); - const mbtiImage = pickMbtiImage(virtualFrinedInfo.mbti as Mbti); const mbti = virtualFrinedInfo.mbti; const tips = virtualFrinedInfo.tips; + const mbtiImage = pickMbtiImage(mbti as Mbti); useEffect(() => { const fetchData = async () => { diff --git a/src/pages/ChatTips.tsx b/src/pages/ChatTips.tsx index 1f85b2e..c0e255b 100644 --- a/src/pages/ChatTips.tsx +++ b/src/pages/ChatTips.tsx @@ -19,9 +19,9 @@ const ChatTips = () => { mbti: "", tips: "" }); - const mbtiImage = pickMbtiImage(virtualFrinedInfo.mbti as Mbti); const mbti = virtualFrinedInfo.mbti; const tips = virtualFrinedInfo.tips; + const mbtiImage = pickMbtiImage(mbti as Mbti); useEffect(() => { const fetchData = async () => { @@ -34,7 +34,6 @@ const ChatTips = () => { `/api/addition/tips/${virtualFriendId}` ) ]); - setVirtualFrinedInfo({ mbti: friendInfoRes.data.mbti, tips: tipsRes.data.data From a65d60715acf6d3d0c036f260dfaf443e5262b65 Mon Sep 17 00:00:00 2001 From: junjeong Date: Thu, 24 Apr 2025 18:20:14 +0900 Subject: [PATCH 5/6] =?UTF-8?q?=EC=9E=91=EC=97=85=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 7 ++++++- src/api/axios.ts | 4 ++-- src/components/tips/TipsMenu.tsx | 2 +- src/index.css | 1 + src/pages/ChatRecommend.tsx | 9 +++++---- src/pages/ChatTips.tsx | 2 +- src/store/useAuthStore.ts | 6 +++--- 7 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 0b07641..98e0637 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -33,7 +33,12 @@ const PageTracker = () => { { path: "/my-info", page: "내 정보" }, { path: "/chat", page: "채팅방" }, { path: "/select-info", page: "빠른 대화 설정" }, - { path: "/select-info", page: "친구 저장" } + { path: "/mbti-test", page: "Mbti 테스트 첫 화면" }, + { path: "/mbti-result", page: "Mbti 테스트 결과" }, + { path: "/chat-recommend", page: "대화 주제 추천" }, + { path: "/chat-tips", page: "대화 꿀팁" }, + { path: "/chat-temporature", page: "대화 온도 측정" } + // { path: "/mbti-progress", page: "Mbti 테스트 진행중" } -> progress 페이지는 상태에 따라 달라지는 SPA 페이지이기 떄문에 페이지 컴포넌트에서 이벤트 관리, ]; useEffect(() => { diff --git a/src/api/axios.ts b/src/api/axios.ts index 8e6c154..392b431 100644 --- a/src/api/axios.ts +++ b/src/api/axios.ts @@ -3,7 +3,7 @@ import useAuthStore from "@/store/useAuthStore"; const instance = axios.create({ baseURL: import.meta.env.VITE_API_BASE_URL, - timeout: 10000, + timeout: 100000, headers: { "Content-Type": "application/json" } @@ -12,7 +12,7 @@ const instance = axios.create({ // 인증 절차가 필요한 API는 authInstance로 HTTP요청 const authInstance = axios.create({ baseURL: import.meta.env.VITE_API_BASE_URL, - timeout: 10000, + timeout: 100000, headers: { "Content-Type": "application/json" } diff --git a/src/components/tips/TipsMenu.tsx b/src/components/tips/TipsMenu.tsx index 561a24b..9b34b15 100644 --- a/src/components/tips/TipsMenu.tsx +++ b/src/components/tips/TipsMenu.tsx @@ -14,7 +14,7 @@ const TipsMenu = ({ switch (mode) { case "topic": text = "대화 주제 추천"; - imageUrl = "/icon/starbubb₩le.svg"; + imageUrl = "/icon/starbubble.svg"; href = `/chat-recommend/${conversationId}`; break; case "conversation": diff --git a/src/index.css b/src/index.css index 6b64713..311dbdd 100644 --- a/src/index.css +++ b/src/index.css @@ -30,6 +30,7 @@ body { main { @media screen and (min-width: 360px) { + background-color: white; font-size: 14px; width: 360px; } diff --git a/src/pages/ChatRecommend.tsx b/src/pages/ChatRecommend.tsx index b3ea6b4..209c9cc 100644 --- a/src/pages/ChatRecommend.tsx +++ b/src/pages/ChatRecommend.tsx @@ -2,7 +2,7 @@ import { useEffect, useState } from "react"; import { useParams } from "react-router-dom"; import { Mbti } from "@/types/mbti"; import Header from "@/components/header/Header"; -import instance from "@/api/axios"; +import instance, { authInstance } from "@/api/axios"; import pickMbtiImage from "@/utils/pickMbtiImage"; interface VirtualFriendResponse { @@ -27,16 +27,17 @@ const ChatRecommend = () => { const fetchData = async () => { try { const [friendInfoRes, tipsRes] = await Promise.all([ - instance.get( + authInstance.get( `/api/virtual-friend/${virtualFriendId}` ), instance.get( `/api/addition/recommendtopic/${virtualFriendId}` ) ]); + console.log(tipsRes.data.data); setVirtualFrinedInfo({ - mbti: friendInfoRes.data.mbti, + mbti: friendInfoRes.data.data.mbti, tips: tipsRes.data.data }); } catch (error) { @@ -54,7 +55,7 @@ const ChatRecommend = () => { showPreviousIcon={true} showShareIcon={true} /> -
+
mbti 이미지 { return (
-
+
mbti 이미지 { try { const res = await instance.get( - `/api/kakao/login?code=${code}` - // + "&redirectUrl=https://localhost:5173/kakao-login" + `/api/kakao/login?code=${code}` + + "&redirectUrl=https://localhost:5173/kakao-login" ); set({ isLoggedIn: true, - accessToken: res.data as string + accessToken: res.data.data as string }); return { ok: true From 6f62bf5e0a2d2100a7f850fcc3ccb434431601c6 Mon Sep 17 00:00:00 2001 From: junjeong Date: Wed, 30 Apr 2025 03:20:11 +0900 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20=EB=8C=80=ED=99=94=20=EC=A3=BC?= =?UTF-8?q?=EC=A0=9C=20=EC=B6=94=EC=B2=9C,=20=EB=8C=80=ED=99=94=20?= =?UTF-8?q?=EA=BF=80=ED=8C=81=20=ED=8E=98=EC=9D=B4=EC=A7=80=20->=20?= =?UTF-8?q?=EC=A0=95=EC=A0=81=20=ED=8E=98=EC=9D=B4=EC=A7=80=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20+=20=EB=8C=80=ED=99=94=20=EC=98=A8?= =?UTF-8?q?=EB=8F=84=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20=EC=98=A4=ED=83=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 8 +- src/components/tips/TipsMenu.tsx | 6 +- src/components/tips/TipsMenuContainer.tsx | 2 +- src/mock/chatTips.ts | 160 ---------------------- src/mock/tips.ts | 159 +++++++++++++++++++++ src/pages/ChatTemperature.tsx | 59 ++++++++ src/pages/ChatTemporature.tsx | 65 --------- src/pages/ChatTips.tsx | 2 +- vite.config.ts | 4 + 9 files changed, 231 insertions(+), 234 deletions(-) delete mode 100644 src/mock/chatTips.ts create mode 100644 src/mock/tips.ts create mode 100644 src/pages/ChatTemperature.tsx delete mode 100644 src/pages/ChatTemporature.tsx diff --git a/src/App.tsx b/src/App.tsx index a37e608..1b01b28 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -5,12 +5,13 @@ import { Route, useLocation } from "react-router-dom"; +import { initGA, trackPageView } from "@/libs/analytics"; import Home from "@/pages/Home"; import SelectInfo from "@/pages/SelectInfo"; import Chat from "@/pages/Chat"; import ChatRecommend from "@/pages/ChatRecommend"; import ChatTips from "@/pages/ChatTips"; -import ChatTemporature from "@/pages/ChatTemporature"; +import ChatTemperature from "@/pages/ChatTemperature"; import Content from "@/pages/Content"; import Login from "@/pages/Login"; import MyInfo from "@/pages/MyInfo"; @@ -19,7 +20,6 @@ import MbtiTestIntro from "@/pages/MbtiTestIntro"; import MbtiTestQuestions from "@/pages/MbtiTestQuestions"; import MbtiTestResult from "@/pages/MbtiTestResult"; import CenteredLayout from "@/components/CenteredLayout"; -import { initGA, trackPageView } from "@/libs/analytics"; import Error from "@/pages/Error"; const PageTracker = () => { @@ -85,8 +85,8 @@ const App = () => { } /> } /> } + path="/chat-temperature/:conversationId" + element={} /> } /> } /> diff --git a/src/components/tips/TipsMenu.tsx b/src/components/tips/TipsMenu.tsx index bcc4bc4..d161df7 100644 --- a/src/components/tips/TipsMenu.tsx +++ b/src/components/tips/TipsMenu.tsx @@ -5,7 +5,7 @@ const TipsMenu = ({ mbti, conversationId }: { - mode: "topic" | "conversation" | "temporature"; + mode: "topic" | "conversation" | "temperature"; mbti?: string; conversationId?: string; }) => { @@ -24,10 +24,10 @@ const TipsMenu = ({ imageUrl = "/icon/lightbulb.svg"; href = `/chat-tips/${mbti}`; break; - case "temporature": + case "temperature": text = "현재 대화의 온도 측정하기"; imageUrl = "/icon/thermometer.svg"; - href = `/chat-temporature/${conversationId}`; + href = `/chat-temperature/${conversationId}`; break; default: return; diff --git a/src/components/tips/TipsMenuContainer.tsx b/src/components/tips/TipsMenuContainer.tsx index 7e4bac3..3f5eebb 100644 --- a/src/components/tips/TipsMenuContainer.tsx +++ b/src/components/tips/TipsMenuContainer.tsx @@ -11,7 +11,7 @@ const TipsMenuContainer = ({ <> - + ); }; diff --git a/src/mock/chatTips.ts b/src/mock/chatTips.ts deleted file mode 100644 index 374843e..0000000 --- a/src/mock/chatTips.ts +++ /dev/null @@ -1,160 +0,0 @@ -export const chatTips: Record = - { - INTJ: { - title: "INTJ (용의주도한 전략가)", - description: `INTJ는 독립적이고 전략적인 사고를 중시해서, 비효율적이거나 맥락 없는 대화를 싫어해요. - 1. 논리적으로 말하기 – 감정보다는 구조와 근거가 있는 말을 선호해. - 2. 쓸데없는 소리는 줄이기 – small talk보다 실속 있는 이야기 좋아해. - 3. 미래 지향적인 주제 던지기 – 목표, 비전, 전략 이야기엔 눈빛이 반짝! - 4. 지적인 도전 환영하기 – 반박이나 다른 시각도 논리적이면 좋아함. - 5. 결정권 존중하기 – 자기 기준이 명확하니, 무시받는 느낌은 싫어해.` - }, - INTP: { - title: "INTP (논리적인 사색가)", - description: `INTP는 지적인 호기심이 강하고 자유로운 사고를 중시해요. 감정에 너무 치우친 대화는 금방 피곤해져요. - - 1. “왜 그렇게 생각해?” 자주 물어보기 – 개념 설명할 기회를 좋아해. - 2. 논쟁해도 감정 안 섞기 – 논리는 논리, 감정은 감정! 구분 중요함. - 3. 아이디어 존중하기 – 엉뚱한 얘기도 무시하지 말고 재미있게 받아줘. - 4. 답 없는 질문 던지기 – 철학적 질문 좋아함. “자아란 무엇인가?” 같은. - 5. 혼자만의 시간도 존중하기 – 과하게 밀어붙이면 부담스러워져.` - }, - ENTJ: { - title: "ENTJ (결단력 있는 리더)", - description: `ENTJ는 목표 중심적이고 리더 기질이 강해서, 생산적인 대화를 선호하고 감정적인 접근에 거리를 두는 편이에요. - - 1. 주제 중심적으로 말하기 – 핵심만 콕콕! 잡담보단 생산적인 대화 선호. - 2. 효율성과 논리 강조하기 – “그게 왜 낫다고 생각해?”에 근거를 줘야 함. - 3. 주도권 다툼 피하기 – 자기 결정에 간섭받는 걸 싫어해. - 4. 자기계발, 성과 이야기하면 잘 통해 – 동기부여나 성취에 대한 대화에 반응 좋아. - 5. 시간 낭비처럼 느끼지 않게 – 너무 감정적이거나 돌려 말하는 건 피하기.` - }, - ENTP: { - title: "ENTP (아이디어 뿜뿜형 도전가)", - description: `ENTP는 대화가 아이디어 배틀처럼 흘러가는 걸 즐겨요. 틀에 박힌 얘기보다 신박한 접근을 좋아해요. - 1. 제한 두지 말고 대화 열어두기 – “근데 이건 어때?” “그럼 이런 경우는?” 좋아함. - 2. 논리적이되 너무 틀에 박히지 않게 – 자유롭게 생각 튀는 걸 좋아해. - 3. 즉흥적 반응도 즐김 – 리액션 좋으면 더 신나함. - 4. 이견에 강함 – 토론 좋아해서 반대 의견도 논리적으로 말하면 좋아해. - 5. 질문 많이 하기 – 생각 펼칠 기회를 자주 주면 대화가 팡팡 터짐.` - }, - INFJ: { - title: "INFJ (통찰력 있는 조언자)", - description: `INFJ는 깊이 있고 의미 있는 연결을 중요시해요. 피상적인 말은 오히려 신뢰를 떨어뜨릴 수 있어요. - 1. 깊은 감정, 의미 묻기 – “넌 그때 어떤 감정이었어?” 같은 질문 좋아해. - 2. 진심 어린 말투 – 말투에서 진정성을 느껴야 마음을 열어. - 3. 과도한 개그보단 섬세한 공감 – 분위기 흐리는 유머는 오히려 차가워짐. - 4. 직설적인 충고보단 우회적인 표현 – 배려 섞인 언어 좋아함. - 5. 시간 들여 천천히 다가가기 – 겉과 속이 다른 편이라 쉽게 열지 않음.` - }, - INFP: { - title: "INFP (감성 충만한 이상주의자)", - description: `INFP는 자신만의 세계관과 감정이 뚜렷해요. 무시당하는 느낌이나 감정 무시당하는 걸 힘들어해요. - - 1. 감정 중심의 대화 선호 – “넌 어떻게 느꼈어?” 질문에 반응 잘함. - 2. 판단보단 공감 – “그랬구나, 힘들었겠다” 같은 말이 위로가 됨. - 3. 자율성 존중해주기 – 설득보단 스스로 마음을 열 기회를 줘야 해. - 4. 서정적인 표현 좋아함 – 감성적인 대화 톤이 잘 맞아. - 5. 비판은 조심조심 – 정곡을 찌르는 말에 쉽게 상처받을 수 있어.` - }, - ENFJ: { - title: "ENFJ (사람 좋아하는 카리스마)", - description: `ENFJ는 대인관계에서 에너지를 받고, 감정적 피드백을 중요하게 여겨요. 진심을 주면 진심으로 돌아와요. - - 1. “넌 어떻게 생각해?” 질문 자주 던지기 – 상대에게 관심 많은 성향이야. - 2. 감정 잘 읽는 편이니 솔직하게 표현하기 – 억지로 숨기면 다 느껴버림. - 3. 공감 섞인 리액션 – “와~ 진짜 그랬겠네” 같은 리액션 좋아해. - 4. 관계 중심 이야기 좋아함 – 팀워크, 리더십, 인간관계 등. - 5. 감사와 칭찬은 확실하게 – 표현을 많이 하고, 받는 것도 중요하게 여겨.` - }, - ENFP: { - title: "ENFP (열정 넘치는 자유인)", - description: `ENFP는 에너지 넘치고 감정 표현이 풍부해서, 억누르거나 통제하는 대화보단 열린 흐름을 선호해요. - - 1. 경청보다 리액션! – “헐 진짜?”, “그거 완전 너 스타일이네!” 리액션이 중요해. - 2. 새로운 경험 물어보기 – “최근 제일 신났던 일 뭐야?” 같은 질문 좋아해. - 3. 감정 표현에 거리낌 없음 – 같이 웃고 울어주면 금방 가까워져. - 4. 자유롭게 이야기 흐르게 두기 – 주제 뛰어넘어도 그냥 따라가 주기. - 5. 기분 존중해주기 – 감정 기복이 있으니 강요보단 분위기 타기.` - }, - ISTJ: { - title: "ISTJ (현실적인 관리자)", - description: `ISTJ는 안정과 신뢰를 중시해서, 예상 불가한 감정 중심 대화에 쉽게 피곤해해요. - - 1. 사실 기반 대화 선호 – 구체적이고 실질적인 정보에 반응해. - 2. 계획적이고 질서 있는 이야기 전개 – 말에 체계가 있어야 편함. - 3. 약속과 신뢰 중요시 – 말보다 행동이 중요해. - 4. 감정 과잉 피하기 – 감정으로 휘몰아치는 대화는 부담스러움. - 5. 천천히 신뢰 쌓기 – 믿음을 주면 진국으로 다가와.` - }, - ISFJ: { - title: "ISFJ (조용한 배려자)", - description: `ISFJ는 관계를 유지하고 싶은 마음이 강해요. 단, 섬세한 감정선이 있어서 거칠게 접근하면 금방 거리 둬요. - - 1. 따뜻한 분위기 유지 – 공격적인 대화는 쉽게 닫히게 해. - 2. 예의와 배려 표현 중요 – 사소한 존중 표현에 민감해. - 3. 조용히 들어주는 태도에 익숙함 – 말이 적다고 무시하면 안 돼. - 4. 감사 표현 자주 하기 – “덕분에…” “고마워!” 이런 말 좋아해. - 5. 천천히 마음 여는 스타일 – 조급하면 오히려 멀어짐.` - }, - ESTJ: { - title: "ESTJ (정리정돈형 현실주의자)", - description: `ESTJ는 현실적이고 목표지향적이에요. 지나친 감성적 접근은 비효율적으로 느껴질 수 있어요. - - 1. 핵심만 콕 집어 말하기 – 장황한 말 싫어함. - 2. 논리적이고 사실 기반 접근 – “그게 맞는 이유는?” 설명해줘야 함. - 3. 일, 목표 관련 대화 선호 – 구체적인 계획과 성과 이야기 좋아함. - 4. 감정보다 해결책 제시 – 위로보단 “그래서 어떻게 할 건데?” 스타일. - 5. 빠른 피드백 선호 – 기다리는 거 싫어해. 바로 반응해주기.` - }, - ESFJ: { - title: "ESFJ (사람 챙기는 따뜻한 리더)", - description: `ESFJ는 조화로운 분위기를 중시해요. 무례하거나 차가운 말은 관계에 큰 영향을 줘요. - - 1. 예의 있고 따뜻한 말투 – 말투 하나에 마음 열고 닫음. - 2. 감정 공감 자주 해주기 – “그 마음 이해돼” 한 마디가 효과 만점. - 3. 주변 사람 이야기 좋아함 – 인간관계 이야기 잘 통함. - 4. 칭찬 아끼지 않기 – “네가 있어서 분위기가 좋아” 같은 말 굿! - 5. 함께 하려는 의도 보여주기 – “같이 하자”, “같이 생각해보자” 좋아함.` - }, - ISFP: { - title: "ISFP (예술 감성 충만한 잔잔한 자유인)", - description: `ISFP는 내면이 섬세하고, 자유로운 감성을 추구해서 부담 없는 자연스러운 대화에 편안함을 느껴요. - - 1. 감정 존중해주기 – 겉으로는 조용해도 속으론 감정이 깊은 편이야. - 2. 편안한 분위기 만들기 – 긴장하거나 평가받는 느낌 싫어해. - 3. 강요 없이 의견 들어주기 – “나는 이렇게 생각해” 식으로 말하면 더 열려. - 4. 감각적인 주제에 관심 많음 – 음악, 미술, 공간 등 취향 얘기 좋아함. - 5. 말보단 행동으로 소통 – 말 많지 않아도 따뜻하게 표현할 줄 아는 스타일.` - }, - ISTP: { - title: "ISTP (논리적인 장인, 말보다 행동형)", - description: `ISTP는 실용적이고 독립적인 성향이라, 감정 중심 대화보다 구조적이고 해결 중심적인 대화를 선호해요. - - 1. 핵심 위주로 간결하게 말하기 – 불필요한 수다는 피곤함! - 2. 문제 해결형 대화 선호 – “이거 어떻게 고치지?” 같이 실용적인 얘기 좋아해. - 3. 감정보단 사실 기반 말하기 – 감정적인 얘기엔 공감이 느릴 수 있어. - 4. 취미/기술 중심 이야기 잘 통해 – 기계, 스포츠, 도전적인 취미 좋아해. - 5. 혼자 있는 시간 존중해주기 – 갑작스러운 감정공세는 거리감만 생겨.` - }, - ESFP: { - title: "ESFP (즉흥적이고 유쾌한 감각러)", - description: `ESFP는 사람들과 즉흥적으로 즐기는 걸 좋아하고, 분위기를 타는 감정형이에요. 긍정적인 에너지가 핵심! - - 1. 리액션 풍부하게 하기 – “헐 진짜?” 같은 반응에 에너지 받음. - 2. 지금 이 순간에 집중하는 이야기 – “지금 제일 재밌는 거 뭐야?” 같은 질문 좋아함. - 3. 칭찬은 과하게 해도 좋아함 – 눈에 띄는 센스, 스타일 등도 언급해줘. - 4. 감정 표현 자유롭게 하기 – 즐거움, 슬픔 다 잘 나누는 타입. - 5. 너무 무거운 주제는 가볍게 풀기 – 너무 진지하게 가면 흥미를 잃어버려.` - }, - ESTP: { - title: "ESTP (액션파 현실주의자)", - description: `ESTP는 에너지 넘치고 현실적인 행동파에요. 말보다 행동, 고민보단 해결! 빠르고 직설적인 스타일이 잘 맞아요. - - 1. 지루하면 바로 딴 데 봄 – 흥미로운 소재로 빠르게 접근하기! - 2. 농담이나 위트 있는 대화 잘 통해 – 긴장 푸는 유머에 강함. - 3. 경험 위주의 대화 선호 – "그거 실제로 해봤어?" 같은 이야기 좋아함. - 4. 즉각적인 반응 중요 – 너무 뜸 들이면 흥미를 잃어버려. - 5. 결론 없는 대화 피하기 – 실질적이고 결과 중심적인 대화를 선호해.` - } - }; diff --git a/src/mock/tips.ts b/src/mock/tips.ts new file mode 100644 index 0000000..bb776ad --- /dev/null +++ b/src/mock/tips.ts @@ -0,0 +1,159 @@ +export const tips: Record = { + INTJ: { + title: "INTJ (용의주도한 전략가)", + description: `INTJ는 독립적이고 전략적인 사고를 중시해서, 비효율적이거나 맥락 없는 대화를 싫어해요. + 1. 논리적으로 말하기 – 감정보다는 구조와 근거가 있는 말을 선호해. + 2. 쓸데없는 소리는 줄이기 – small talk보다 실속 있는 이야기 좋아해. + 3. 미래 지향적인 주제 던지기 – 목표, 비전, 전략 이야기엔 눈빛이 반짝! + 4. 지적인 도전 환영하기 – 반박이나 다른 시각도 논리적이면 좋아함. + 5. 결정권 존중하기 – 자기 기준이 명확하니, 무시받는 느낌은 싫어해.` + }, + INTP: { + title: "INTP (논리적인 사색가)", + description: `INTP는 지적인 호기심이 강하고 자유로운 사고를 중시해요. 감정에 너무 치우친 대화는 금방 피곤해져요. + + 1. “왜 그렇게 생각해?” 자주 물어보기 – 개념 설명할 기회를 좋아해. + 2. 논쟁해도 감정 안 섞기 – 논리는 논리, 감정은 감정! 구분 중요함. + 3. 아이디어 존중하기 – 엉뚱한 얘기도 무시하지 말고 재미있게 받아줘. + 4. 답 없는 질문 던지기 – 철학적 질문 좋아함. “자아란 무엇인가?” 같은. + 5. 혼자만의 시간도 존중하기 – 과하게 밀어붙이면 부담스러워져.` + }, + ENTJ: { + title: "ENTJ (결단력 있는 리더)", + description: `ENTJ는 목표 중심적이고 리더 기질이 강해서, 생산적인 대화를 선호하고 감정적인 접근에 거리를 두는 편이에요. + + 1. 주제 중심적으로 말하기 – 핵심만 콕콕! 잡담보단 생산적인 대화 선호. + 2. 효율성과 논리 강조하기 – “그게 왜 낫다고 생각해?”에 근거를 줘야 함. + 3. 주도권 다툼 피하기 – 자기 결정에 간섭받는 걸 싫어해. + 4. 자기계발, 성과 이야기하면 잘 통해 – 동기부여나 성취에 대한 대화에 반응 좋아. + 5. 시간 낭비처럼 느끼지 않게 – 너무 감정적이거나 돌려 말하는 건 피하기.` + }, + ENTP: { + title: "ENTP (아이디어 뿜뿜형 도전가)", + description: `ENTP는 대화가 아이디어 배틀처럼 흘러가는 걸 즐겨요. 틀에 박힌 얘기보다 신박한 접근을 좋아해요. + 1. 제한 두지 말고 대화 열어두기 – “근데 이건 어때?” “그럼 이런 경우는?” 좋아함. + 2. 논리적이되 너무 틀에 박히지 않게 – 자유롭게 생각 튀는 걸 좋아해. + 3. 즉흥적 반응도 즐김 – 리액션 좋으면 더 신나함. + 4. 이견에 강함 – 토론 좋아해서 반대 의견도 논리적으로 말하면 좋아해. + 5. 질문 많이 하기 – 생각 펼칠 기회를 자주 주면 대화가 팡팡 터짐.` + }, + INFJ: { + title: "INFJ (통찰력 있는 조언자)", + description: `INFJ는 깊이 있고 의미 있는 연결을 중요시해요. 피상적인 말은 오히려 신뢰를 떨어뜨릴 수 있어요. + 1. 깊은 감정, 의미 묻기 – “넌 그때 어떤 감정이었어?” 같은 질문 좋아해. + 2. 진심 어린 말투 – 말투에서 진정성을 느껴야 마음을 열어. + 3. 과도한 개그보단 섬세한 공감 – 분위기 흐리는 유머는 오히려 차가워짐. + 4. 직설적인 충고보단 우회적인 표현 – 배려 섞인 언어 좋아함. + 5. 시간 들여 천천히 다가가기 – 겉과 속이 다른 편이라 쉽게 열지 않음.` + }, + INFP: { + title: "INFP (감성 충만한 이상주의자)", + description: `INFP는 자신만의 세계관과 감정이 뚜렷해요. 무시당하는 느낌이나 감정 무시당하는 걸 힘들어해요. + + 1. 감정 중심의 대화 선호 – “넌 어떻게 느꼈어?” 질문에 반응 잘함. + 2. 판단보단 공감 – “그랬구나, 힘들었겠다” 같은 말이 위로가 됨. + 3. 자율성 존중해주기 – 설득보단 스스로 마음을 열 기회를 줘야 해. + 4. 서정적인 표현 좋아함 – 감성적인 대화 톤이 잘 맞아. + 5. 비판은 조심조심 – 정곡을 찌르는 말에 쉽게 상처받을 수 있어.` + }, + ENFJ: { + title: "ENFJ (사람 좋아하는 카리스마)", + description: `ENFJ는 대인관계에서 에너지를 받고, 감정적 피드백을 중요하게 여겨요. 진심을 주면 진심으로 돌아와요. + + 1. “넌 어떻게 생각해?” 질문 자주 던지기 – 상대에게 관심 많은 성향이야. + 2. 감정 잘 읽는 편이니 솔직하게 표현하기 – 억지로 숨기면 다 느껴버림. + 3. 공감 섞인 리액션 – “와~ 진짜 그랬겠네” 같은 리액션 좋아해. + 4. 관계 중심 이야기 좋아함 – 팀워크, 리더십, 인간관계 등. + 5. 감사와 칭찬은 확실하게 – 표현을 많이 하고, 받는 것도 중요하게 여겨.` + }, + ENFP: { + title: "ENFP (열정 넘치는 자유인)", + description: `ENFP는 에너지 넘치고 감정 표현이 풍부해서, 억누르거나 통제하는 대화보단 열린 흐름을 선호해요. + + 1. 경청보다 리액션! – “헐 진짜?”, “그거 완전 너 스타일이네!” 리액션이 중요해. + 2. 새로운 경험 물어보기 – “최근 제일 신났던 일 뭐야?” 같은 질문 좋아해. + 3. 감정 표현에 거리낌 없음 – 같이 웃고 울어주면 금방 가까워져. + 4. 자유롭게 이야기 흐르게 두기 – 주제 뛰어넘어도 그냥 따라가 주기. + 5. 기분 존중해주기 – 감정 기복이 있으니 강요보단 분위기 타기.` + }, + ISTJ: { + title: "ISTJ (현실적인 관리자)", + description: `ISTJ는 안정과 신뢰를 중시해서, 예상 불가한 감정 중심 대화에 쉽게 피곤해해요. + + 1. 사실 기반 대화 선호 – 구체적이고 실질적인 정보에 반응해. + 2. 계획적이고 질서 있는 이야기 전개 – 말에 체계가 있어야 편함. + 3. 약속과 신뢰 중요시 – 말보다 행동이 중요해. + 4. 감정 과잉 피하기 – 감정으로 휘몰아치는 대화는 부담스러움. + 5. 천천히 신뢰 쌓기 – 믿음을 주면 진국으로 다가와.` + }, + ISFJ: { + title: "ISFJ (조용한 배려자)", + description: `ISFJ는 관계를 유지하고 싶은 마음이 강해요. 단, 섬세한 감정선이 있어서 거칠게 접근하면 금방 거리 둬요. + + 1. 따뜻한 분위기 유지 – 공격적인 대화는 쉽게 닫히게 해. + 2. 예의와 배려 표현 중요 – 사소한 존중 표현에 민감해. + 3. 조용히 들어주는 태도에 익숙함 – 말이 적다고 무시하면 안 돼. + 4. 감사 표현 자주 하기 – “덕분에…” “고마워!” 이런 말 좋아해. + 5. 천천히 마음 여는 스타일 – 조급하면 오히려 멀어짐.` + }, + ESTJ: { + title: "ESTJ (정리정돈형 현실주의자)", + description: `ESTJ는 현실적이고 목표지향적이에요. 지나친 감성적 접근은 비효율적으로 느껴질 수 있어요. + + 1. 핵심만 콕 집어 말하기 – 장황한 말 싫어함. + 2. 논리적이고 사실 기반 접근 – “그게 맞는 이유는?” 설명해줘야 함. + 3. 일, 목표 관련 대화 선호 – 구체적인 계획과 성과 이야기 좋아함. + 4. 감정보다 해결책 제시 – 위로보단 “그래서 어떻게 할 건데?” 스타일. + 5. 빠른 피드백 선호 – 기다리는 거 싫어해. 바로 반응해주기.` + }, + ESFJ: { + title: "ESFJ (사람 챙기는 따뜻한 리더)", + description: `ESFJ는 조화로운 분위기를 중시해요. 무례하거나 차가운 말은 관계에 큰 영향을 줘요. + + 1. 예의 있고 따뜻한 말투 – 말투 하나에 마음 열고 닫음. + 2. 감정 공감 자주 해주기 – “그 마음 이해돼” 한 마디가 효과 만점. + 3. 주변 사람 이야기 좋아함 – 인간관계 이야기 잘 통함. + 4. 칭찬 아끼지 않기 – “네가 있어서 분위기가 좋아” 같은 말 굿! + 5. 함께 하려는 의도 보여주기 – “같이 하자”, “같이 생각해보자” 좋아함.` + }, + ISFP: { + title: "ISFP (예술 감성 충만한 잔잔한 자유인)", + description: `ISFP는 내면이 섬세하고, 자유로운 감성을 추구해서 부담 없는 자연스러운 대화에 편안함을 느껴요. + + 1. 감정 존중해주기 – 겉으로는 조용해도 속으론 감정이 깊은 편이야. + 2. 편안한 분위기 만들기 – 긴장하거나 평가받는 느낌 싫어해. + 3. 강요 없이 의견 들어주기 – “나는 이렇게 생각해” 식으로 말하면 더 열려. + 4. 감각적인 주제에 관심 많음 – 음악, 미술, 공간 등 취향 얘기 좋아함. + 5. 말보단 행동으로 소통 – 말 많지 않아도 따뜻하게 표현할 줄 아는 스타일.` + }, + ISTP: { + title: "ISTP (논리적인 장인, 말보다 행동형)", + description: `ISTP는 실용적이고 독립적인 성향이라, 감정 중심 대화보다 구조적이고 해결 중심적인 대화를 선호해요. + + 1. 핵심 위주로 간결하게 말하기 – 불필요한 수다는 피곤함! + 2. 문제 해결형 대화 선호 – “이거 어떻게 고치지?” 같이 실용적인 얘기 좋아해. + 3. 감정보단 사실 기반 말하기 – 감정적인 얘기엔 공감이 느릴 수 있어. + 4. 취미/기술 중심 이야기 잘 통해 – 기계, 스포츠, 도전적인 취미 좋아해. + 5. 혼자 있는 시간 존중해주기 – 갑작스러운 감정공세는 거리감만 생겨.` + }, + ESFP: { + title: "ESFP (즉흥적이고 유쾌한 감각러)", + description: `ESFP는 사람들과 즉흥적으로 즐기는 걸 좋아하고, 분위기를 타는 감정형이에요. 긍정적인 에너지가 핵심! + + 1. 리액션 풍부하게 하기 – “헐 진짜?” 같은 반응에 에너지 받음. + 2. 지금 이 순간에 집중하는 이야기 – “지금 제일 재밌는 거 뭐야?” 같은 질문 좋아함. + 3. 칭찬은 과하게 해도 좋아함 – 눈에 띄는 센스, 스타일 등도 언급해줘. + 4. 감정 표현 자유롭게 하기 – 즐거움, 슬픔 다 잘 나누는 타입. + 5. 너무 무거운 주제는 가볍게 풀기 – 너무 진지하게 가면 흥미를 잃어버려.` + }, + ESTP: { + title: "ESTP (액션파 현실주의자)", + description: `ESTP는 에너지 넘치고 현실적인 행동파에요. 말보다 행동, 고민보단 해결! 빠르고 직설적인 스타일이 잘 맞아요. + + 1. 지루하면 바로 딴 데 봄 – 흥미로운 소재로 빠르게 접근하기! + 2. 농담이나 위트 있는 대화 잘 통해 – 긴장 푸는 유머에 강함. + 3. 경험 위주의 대화 선호 – "그거 실제로 해봤어?" 같은 이야기 좋아함. + 4. 즉각적인 반응 중요 – 너무 뜸 들이면 흥미를 잃어버려. + 5. 결론 없는 대화 피하기 – 실질적이고 결과 중심적인 대화를 선호해.` + } +}; diff --git a/src/pages/ChatTemperature.tsx b/src/pages/ChatTemperature.tsx new file mode 100644 index 0000000..abd74a9 --- /dev/null +++ b/src/pages/ChatTemperature.tsx @@ -0,0 +1,59 @@ +import { useEffect, useState } from "react"; +import { useParams } from "react-router-dom"; +import instance from "@/api/axios"; +import Header from "@/components/header/Header"; + +interface TemperatureResponse { + header: { + code: number; + message: string; + }; + data: string; +} + +const ChatTemperature = () => { + const { conversationId } = useParams(); + const [temperature, setTemperature] = useState(""); + + useEffect(() => { + const getTemporature = async () => { + try { + const res = await instance.get( + `/api/addition/temperature/${conversationId}` + ); + setTemperature(res.data.data); + } catch (error) { + console.error("온도 데이터를 가져오는 중 문제가 발생했습니다:", error); + } + }; + + getTemporature(); + }, []); + + return ( +
+
+
+ mbti 온도 이미지 +

+ 방금까지 나눈 대화로 온도를 측정했어요! +

+ {temperature ? ( + + 현재까지 나눈 대화의 온도는 {temperature}도에요 + + ) : ( + + ...대화의 온도를 불러오는 중 + + )} +
+
+ ); +}; + +export default ChatTemperature; diff --git a/src/pages/ChatTemporature.tsx b/src/pages/ChatTemporature.tsx deleted file mode 100644 index 27a6ee9..0000000 --- a/src/pages/ChatTemporature.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import { useEffect, useState } from "react"; -import { useParams } from "react-router-dom"; -import instance from "@/api/axios"; -import Header from "@/components/header/Header"; - -interface mbtiResProps { - mbti: string; -} - -interface tempResProps { - data: string; -} - -const ChatTemporature = () => { - const { conversationId } = useParams(); - const [virtualFrinedInfo, setVirtualFrinedInfo] = useState({ - mbti: "", - temporature: "" - }); - const temporature = virtualFrinedInfo.temporature; - const mbti = virtualFrinedInfo.mbti; - - useEffect(() => { - const fetchData = async () => { - try { - const [mbtiRes, tempRes] = await Promise.all([ - instance.get(`/api/virtual-friend/${conversationId}`), - instance.get( - `/api/addition/temporature/${conversationId}` - ) - ]); - - setVirtualFrinedInfo({ - mbti: mbtiRes.data.mbti, - temporature: tempRes.data.data - }); - } catch (error) { - console.error("데이터를 가져오는 중 오류가 발생했습니다:", error); - } - }; - - fetchData(); - }, []); - - return ( -
-
-
- mbti 온도 이미지 -

- 방금까지 나눈 대화로 온도를 측정했어요! -

- - 현재 {mbti}와 나눈 대화의 온도는 {temporature}도에요 - -
-
- ); -}; - -export default ChatTemporature; diff --git a/src/pages/ChatTips.tsx b/src/pages/ChatTips.tsx index 81ca1ab..1264cf9 100644 --- a/src/pages/ChatTips.tsx +++ b/src/pages/ChatTips.tsx @@ -1,8 +1,8 @@ import { useParams } from "react-router-dom"; import { Mbti } from "@/types/mbti"; +import { tips } from "@/mock/tips"; import Header from "@/components/header/Header"; import pickMbtiImage from "@/utils/pickMbtiImage"; -import { tips } from "@/mock/chatTips"; import Error from "@/pages/Error"; const ChatTips = () => { diff --git a/vite.config.ts b/vite.config.ts index da11d29..72847d0 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -54,6 +54,10 @@ export default defineConfig(({ mode }: { mode: string }) => { { find: "@/libs", replacement: path.resolve(__dirname, "src/libs") + }, + { + find: "@/mock", + replacement: path.resolve(__dirname, "src/mock") } ] }