From ecaeb33d220bb777fc98c0d8dc484c9b67b7f43e Mon Sep 17 00:00:00 2001 From: syddl0 <137189866+shroqkf@users.noreply.github.com> Date: Tue, 20 May 2025 19:30:28 +0900 Subject: [PATCH 1/8] =?UTF-8?q?Feat:=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=EC=9D=98=20=EB=82=B4=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=95=84-=EC=B0=9C=EB=AA=A9=EB=A1=9D=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/myPage/getDetail.js | 5 + src/apis/myPage/queries.js | 11 +- src/pages/myPageDetail/MyPageDetailPage.jsx | 34 +++++- .../myPageDetail/components/HeartItem.jsx | 109 ++++++++++++++++++ 4 files changed, 152 insertions(+), 7 deletions(-) create mode 100644 src/pages/myPageDetail/components/HeartItem.jsx diff --git a/src/apis/myPage/getDetail.js b/src/apis/myPage/getDetail.js index b77835c..cd241be 100644 --- a/src/apis/myPage/getDetail.js +++ b/src/apis/myPage/getDetail.js @@ -1,5 +1,10 @@ import api from "@/apis/instance/api"; +export const getHearts = async () => { + const res = await api.get("/company/member-saves"); + return res.data; +}; + export const getReviews = async () => { const res = await api.get("/reviews/get-all-member-reviews"); return res.data; diff --git a/src/apis/myPage/queries.js b/src/apis/myPage/queries.js index 85049cd..862736f 100644 --- a/src/apis/myPage/queries.js +++ b/src/apis/myPage/queries.js @@ -1,6 +1,13 @@ import { useQuery } from "@tanstack/react-query"; -import { getReviews } from "@/apis/myPage/getDetail"; -import { getCheers } from "@/apis/myPage/getDetail"; +import { getHearts, getReviews, getCheers } from "@/apis/myPage/getDetail"; + +export const useGetHearts = ({ enabled }) => { + return useQuery({ + queryKey: ["userHearts"], + queryFn: getHearts, + enabled, + }); +}; export const useGetReviews = () => { return useQuery({ queryKey: ["userReview"], queryFn: () => getReviews() }); diff --git a/src/pages/myPageDetail/MyPageDetailPage.jsx b/src/pages/myPageDetail/MyPageDetailPage.jsx index b7acf29..7b948ea 100644 --- a/src/pages/myPageDetail/MyPageDetailPage.jsx +++ b/src/pages/myPageDetail/MyPageDetailPage.jsx @@ -2,24 +2,32 @@ import { useNavigate, useLocation } from "react-router-dom"; import heart from "/svgs/myPage/heart.svg"; import cheer from "/svgs/myPage/cheer.svg"; import review from "/svgs/myPage/review.svg"; -import { useGetReviews, useGetCheers } from "@/apis/myPage/queries"; +import { + useGetHearts, + useGetReviews, + useGetCheers, +} from "@/apis/myPage/queries"; import ReviewItem from "@/pages/myPageDetail/components/ReviewItem"; import StoryItem from "@/pages/myPageDetail/components/StoryItem"; import noResult from "/svgs/myPage/noResult.svg"; import Spinner from "@/components/common/Spinner"; +import HeartItem from "./components/HeartItem"; const MyPageDetailPage = () => { const navigate = useNavigate(); const location = useLocation(); const kind = location.state.kind; + const { data: heartsData, isLoading: isLoadingHearts } = useGetHearts({ + enabled: kind === "찜", + }); + const { data: reviewsData, isLoading: isLoadingReviews } = useGetReviews({ enabled: kind === "리뷰", }); const { data: cheersData, isLoading: isLoadingCheers } = useGetCheers({ enabled: kind === "응원", }); - // const { data: heartsData, isLoading: isLoadingHearts } = useGetHearts({ enabled: kind === "찜" }); if (isLoadingReviews || isLoadingCheers) { return ( @@ -47,11 +55,11 @@ const MyPageDetailPage = () => { {kind === "찜" && (
저장한 장소
총 0개
+총 {heartsData?.length}개
+ 아직 저장한 장소가
+
없어요
+
+ {companyName} + + {businessTypeNameMap[companyCategory] ?? companyCategory} + +
+ {formattedDistance && ( ++ {formattedDistance} +
+ )} +{companyLocation}
+{business}
+ + {companyType && ( +로딩 중...
; + + return ( +