From dabeb3bccd302af8259c8b2468f01ecc99b5f9da Mon Sep 17 00:00:00 2001 From: "songhj10207@naver.com" Date: Sat, 16 Nov 2024 01:06:00 +0900 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8?= =?UTF-8?q?=20=EB=AA=85=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20=20=EB=AC=B4?= =?UTF-8?q?=ED=95=9C=20=EB=A0=8C=EB=8D=94=EB=A7=81=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storeCard/{StoreCard.jsx => TopStoreCard.jsx} | 13 ++++++++----- src/components/storeCard/index.js | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) rename src/components/storeCard/{StoreCard.jsx => TopStoreCard.jsx} (92%) diff --git a/src/components/storeCard/StoreCard.jsx b/src/components/storeCard/TopStoreCard.jsx similarity index 92% rename from src/components/storeCard/StoreCard.jsx rename to src/components/storeCard/TopStoreCard.jsx index 6525e4a..a87f4cd 100644 --- a/src/components/storeCard/StoreCard.jsx +++ b/src/components/storeCard/TopStoreCard.jsx @@ -3,17 +3,20 @@ import { useNavigate } from 'react-router-dom'; import { Orange, Grey, DarkGrey } from '../../color'; import Bookmark from '../common/bookmark/BookmarkContainer'; import { useSaveBookmarkId } from '../../store'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; const TopStoreCard = ({ image, alt, bookmarkId, id, address, name, positiveRatio, keyword }) => { const navigate = useNavigate(); const { savedStores } = useSaveBookmarkId(); const [savedId, setSavedId] = useState(bookmarkId ? bookmarkId : null); - if (!bookmarkId) { - const bookmarkId = savedStores.filter((store) => store.storeResponseDto.storeId === id); - setSavedId(bookmarkId); - } + useEffect(() => { + if (!bookmarkId) { + const bookmarkId = savedStores.filter((store) => store.storeResponseDto.storeId === id); + setSavedId(bookmarkId); + } + // eslint-disable-next-line + }, []); const cardClickHandler = (id) => { navigate(`/webmap/storeDetail/${id}`, { state: { detailVisible: true } }); diff --git a/src/components/storeCard/index.js b/src/components/storeCard/index.js index 4d0cbe6..45d7f84 100644 --- a/src/components/storeCard/index.js +++ b/src/components/storeCard/index.js @@ -1,3 +1,3 @@ -import TopStoreCard from './StoreCard'; +import TopStoreCard from './TopStoreCard'; export { TopStoreCard }; From 05201aa607ba0ade81045b95c6bab52d91ab1cfb Mon Sep 17 00:00:00 2001 From: "songhj10207@naver.com" Date: Sat, 16 Nov 2024 01:15:22 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20bookmark=20id=20=ED=95=A0=EB=8B=B9?= =?UTF-8?q?=20=ED=95=A8=EC=88=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/store/StoreCard.jsx | 3 ++- src/components/storeCard/TopStoreCard.jsx | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/common/store/StoreCard.jsx b/src/components/common/store/StoreCard.jsx index 12533bc..01ec274 100644 --- a/src/components/common/store/StoreCard.jsx +++ b/src/components/common/store/StoreCard.jsx @@ -10,7 +10,8 @@ const StoreListCard = ({ image, alt, id, name, address, rating, positiveRatio, p const navigate = useNavigate(); const { savedStores } = useSaveBookmarkId(); - const bookmarkId = savedStores.filter((store) => store.storeResponseDto.storeId === id).bookmarkId; + const bookmark = savedStores.find((store) => store.storeResponseDto.storeId === id); + const bookmarkId = bookmark?.bookmarkId; const cardClickHandler = () => { navigate(`/webmap/storeDetail/${id}`); diff --git a/src/components/storeCard/TopStoreCard.jsx b/src/components/storeCard/TopStoreCard.jsx index a87f4cd..3000631 100644 --- a/src/components/storeCard/TopStoreCard.jsx +++ b/src/components/storeCard/TopStoreCard.jsx @@ -12,7 +12,8 @@ const TopStoreCard = ({ image, alt, bookmarkId, id, address, name, positiveRatio useEffect(() => { if (!bookmarkId) { - const bookmarkId = savedStores.filter((store) => store.storeResponseDto.storeId === id); + const bookmark = savedStores.find((store) => store.storeResponseDto.storeId === id); + const bookmarkId = bookmark?.bookmarkId; setSavedId(bookmarkId); } // eslint-disable-next-line From fb6e8875ebc00aede07af8146520768527d73daf Mon Sep 17 00:00:00 2001 From: "songhj10207@naver.com" Date: Sat, 16 Nov 2024 01:24:04 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=EB=B6=81=EB=A7=88=ED=81=AC=20?= =?UTF-8?q?=ED=9B=84=20=EB=A6=AC=EB=A0=8C=EB=8D=94=EB=A7=81=20=EB=90=98?= =?UTF-8?q?=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/bookmark/BookmarkContainer.jsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/common/bookmark/BookmarkContainer.jsx b/src/components/common/bookmark/BookmarkContainer.jsx index d15ec5b..3651e9a 100644 --- a/src/components/common/bookmark/BookmarkContainer.jsx +++ b/src/components/common/bookmark/BookmarkContainer.jsx @@ -4,13 +4,13 @@ import { deleteBookmarkStore, postBookmarkStore } from '../../../apis/api/bookma import { useNavigate } from 'react-router-dom'; import styled from 'styled-components'; import { useSaveBookmarkId } from '../../../store'; +import { useState } from 'react'; const BookmarkContainer = ({ bookmarkId, storeId }) => { const { savedId } = useSaveBookmarkId(); const auth = JSON.parse(localStorage.getItem('auth')) || {}; - const isSaved = savedId.includes(bookmarkId) && auth.state.isLoggedIn; - + const [isSaved, setIsSaved] = useState(savedId.includes(bookmarkId) && auth.state.isLoggedIn); const navigate = useNavigate(); const handleClickBookmarks = async (e) => { @@ -24,11 +24,12 @@ const BookmarkContainer = ({ bookmarkId, storeId }) => { const response = await deleteBookmarkStore(bookmarkId); if (response.status === 204) { console.log('success delete'); + setIsSaved(false); } } else { const response = await postBookmarkStore(storeId); if (response.status === 201) { - navigate('/bookmark'); + setIsSaved(true); } else { console.log(response.error); }