From 8f3171ef73406e9daff3983cf435c4b6450abfb8 Mon Sep 17 00:00:00 2001 From: "songhj10207@naver.com" Date: Sun, 17 Nov 2024 13:04:26 +0900 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20=EC=82=AD=EC=A0=9C,=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EA=B8=B0=EB=8A=A5=20=ED=9B=84=20=EB=B6=81=EB=A7=88?= =?UTF-8?q?=ED=81=AC=20=EC=9A=94=EC=B2=AD=ED=95=98=EB=8A=94=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/bookmark/BookmarkContainer.jsx | 30 +++++++++++++++---- src/components/storeCard/TopStoreCard.jsx | 2 +- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/components/common/bookmark/BookmarkContainer.jsx b/src/components/common/bookmark/BookmarkContainer.jsx index 3651e9a..b36a083 100644 --- a/src/components/common/bookmark/BookmarkContainer.jsx +++ b/src/components/common/bookmark/BookmarkContainer.jsx @@ -3,14 +3,14 @@ import { ReactComponent as SavedBookmarkIcon } from '../../../assets/Icon/detail import { deleteBookmarkStore, postBookmarkStore } from '../../../apis/api/bookmarks'; import { useNavigate } from 'react-router-dom'; import styled from 'styled-components'; +import { getBookmarksStores } from '../../../apis/api/bookmarks'; import { useSaveBookmarkId } from '../../../store'; -import { useState } from 'react'; const BookmarkContainer = ({ bookmarkId, storeId }) => { - const { savedId } = useSaveBookmarkId(); + const { savedId, setBookmarkStore } = useSaveBookmarkId(); const auth = JSON.parse(localStorage.getItem('auth')) || {}; - const [isSaved, setIsSaved] = useState(savedId.includes(bookmarkId) && auth.state.isLoggedIn); + const isSaved = savedId.includes(bookmarkId) && auth.state.isLoggedIn; const navigate = useNavigate(); const handleClickBookmarks = async (e) => { @@ -24,12 +24,12 @@ const BookmarkContainer = ({ bookmarkId, storeId }) => { const response = await deleteBookmarkStore(bookmarkId); if (response.status === 204) { console.log('success delete'); - setIsSaved(false); + fetchBookmarkStores(); } } else { const response = await postBookmarkStore(storeId); if (response.status === 201) { - setIsSaved(true); + fetchBookmarkStores(); } else { console.log(response.error); } @@ -39,6 +39,26 @@ const BookmarkContainer = ({ bookmarkId, storeId }) => { } }; + const fetchBookmarkStores = async () => { + const auth = JSON.parse(localStorage.getItem('auth')) || {}; + if (!auth.state.isLoggedIn) { + navigate('/login'); + } + try { + const response = await getBookmarksStores(); + if (response.status === 200) { + const newData = response.data; + setBookmarkStore([...newData]); + } else { + navigate('/login'); + } + } catch (error) { + console.log(error); + } finally { + console.log('success getBookmark'); + } + }; + return ( {!isSaved && } diff --git a/src/components/storeCard/TopStoreCard.jsx b/src/components/storeCard/TopStoreCard.jsx index 3000631..ac1f99e 100644 --- a/src/components/storeCard/TopStoreCard.jsx +++ b/src/components/storeCard/TopStoreCard.jsx @@ -12,7 +12,7 @@ const TopStoreCard = ({ image, alt, bookmarkId, id, address, name, positiveRatio useEffect(() => { if (!bookmarkId) { - const bookmark = savedStores.find((store) => store.storeResponseDto.storeId === id); + const bookmark = savedStores.filter((store) => store.storeResponseDto.storeId === id); const bookmarkId = bookmark?.bookmarkId; setSavedId(bookmarkId); } From 4c7bc0ec52129e8fcd8f99425d7f3101ef7bda47 Mon Sep 17 00:00:00 2001 From: "songhj10207@naver.com" Date: Sun, 17 Nov 2024 13:11:38 +0900 Subject: [PATCH 2/5] =?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 | 2 ++ src/components/common/store/StoreCard.jsx | 6 +++--- src/components/storeCard/TopStoreCard.jsx | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/common/bookmark/BookmarkContainer.jsx b/src/components/common/bookmark/BookmarkContainer.jsx index b36a083..98a5578 100644 --- a/src/components/common/bookmark/BookmarkContainer.jsx +++ b/src/components/common/bookmark/BookmarkContainer.jsx @@ -25,11 +25,13 @@ const BookmarkContainer = ({ bookmarkId, storeId }) => { if (response.status === 204) { console.log('success delete'); fetchBookmarkStores(); + navigate(0); } } else { const response = await postBookmarkStore(storeId); if (response.status === 201) { fetchBookmarkStores(); + navigate(0); } else { console.log(response.error); } diff --git a/src/components/common/store/StoreCard.jsx b/src/components/common/store/StoreCard.jsx index 01ec274..80e8dbc 100644 --- a/src/components/common/store/StoreCard.jsx +++ b/src/components/common/store/StoreCard.jsx @@ -19,13 +19,13 @@ const StoreListCard = ({ image, alt, id, name, address, rating, positiveRatio, p return ( - cardClickHandler(id)}> - + + cardClickHandler(id)}> -

{name}

+

cardClickHandler(id)}>{name}

diff --git a/src/components/storeCard/TopStoreCard.jsx b/src/components/storeCard/TopStoreCard.jsx index ac1f99e..3000631 100644 --- a/src/components/storeCard/TopStoreCard.jsx +++ b/src/components/storeCard/TopStoreCard.jsx @@ -12,7 +12,7 @@ const TopStoreCard = ({ image, alt, bookmarkId, id, address, name, positiveRatio useEffect(() => { if (!bookmarkId) { - const bookmark = savedStores.filter((store) => store.storeResponseDto.storeId === id); + const bookmark = savedStores.find((store) => store.storeResponseDto.storeId === id); const bookmarkId = bookmark?.bookmarkId; setSavedId(bookmarkId); } From d1b45b7ffc3ab2014bc6dd34598b942c989a807a Mon Sep 17 00:00:00 2001 From: "songhj10207@naver.com" Date: Sun, 17 Nov 2024 13:34:12 +0900 Subject: [PATCH 3/5] =?UTF-8?q?fix:=20=EB=B6=81=EB=A7=88=ED=81=AC=20?= =?UTF-8?q?=EB=A0=8C=EB=8D=94=EB=A7=81=20=EC=8B=9C=EC=A0=90=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/common/bookmark/BookmarkContainer.jsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/common/bookmark/BookmarkContainer.jsx b/src/components/common/bookmark/BookmarkContainer.jsx index 98a5578..67657e5 100644 --- a/src/components/common/bookmark/BookmarkContainer.jsx +++ b/src/components/common/bookmark/BookmarkContainer.jsx @@ -25,13 +25,11 @@ const BookmarkContainer = ({ bookmarkId, storeId }) => { if (response.status === 204) { console.log('success delete'); fetchBookmarkStores(); - navigate(0); } } else { const response = await postBookmarkStore(storeId); if (response.status === 201) { fetchBookmarkStores(); - navigate(0); } else { console.log(response.error); } @@ -51,6 +49,7 @@ const BookmarkContainer = ({ bookmarkId, storeId }) => { if (response.status === 200) { const newData = response.data; setBookmarkStore([...newData]); + navigate(0); } else { navigate('/login'); } From da80587ddb686750600dd839d378372d9e2ffbb9 Mon Sep 17 00:00:00 2001 From: "songhj10207@naver.com" Date: Sun, 17 Nov 2024 13:41:03 +0900 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=EB=B6=81=EB=A7=88=ED=81=AC=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EB=94=94=20=EC=A0=80=EC=9E=A5=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/bookmark/BookmarkContainer.jsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/components/common/bookmark/BookmarkContainer.jsx b/src/components/common/bookmark/BookmarkContainer.jsx index 67657e5..d502661 100644 --- a/src/components/common/bookmark/BookmarkContainer.jsx +++ b/src/components/common/bookmark/BookmarkContainer.jsx @@ -5,14 +5,25 @@ import { useNavigate } from 'react-router-dom'; import styled from 'styled-components'; import { getBookmarksStores } from '../../../apis/api/bookmarks'; import { useSaveBookmarkId } from '../../../store'; +import { useState, useEffect } from 'react'; const BookmarkContainer = ({ bookmarkId, storeId }) => { - const { savedId, setBookmarkStore } = useSaveBookmarkId(); + const [stores, setStores] = useState([]); + const { savedId, setSaveBookmarkId, setBookmarkStore } = useSaveBookmarkId(); const auth = JSON.parse(localStorage.getItem('auth')) || {}; const isSaved = savedId.includes(bookmarkId) && auth.state.isLoggedIn; const navigate = useNavigate(); + useEffect(() => { + if (stores.length > 0) { + const saveBookmarkId = stores.map((store) => store.bookmarkId); + const bookmarkIds = [...new Set(saveBookmarkId)]; + setSaveBookmarkId(bookmarkIds); + } + // eslint-disable-next-line + }, [stores]); + const handleClickBookmarks = async (e) => { e.preventDefault(); if (!auth.state.isLoggedIn) { @@ -48,8 +59,8 @@ const BookmarkContainer = ({ bookmarkId, storeId }) => { const response = await getBookmarksStores(); if (response.status === 200) { const newData = response.data; + setStores([...newData]); setBookmarkStore([...newData]); - navigate(0); } else { navigate('/login'); } From dee4b363b3226448aed55fbbacdf6101b3828907 Mon Sep 17 00:00:00 2001 From: "songhj10207@naver.com" Date: Sun, 17 Nov 2024 14:51:38 +0900 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20=EB=B6=81=EB=A7=88=ED=81=AC=20?= =?UTF-8?q?=ED=9B=84=20=EB=A0=8C=EB=8D=94=EB=A7=81=20=EC=BD=94=EB=93=9C=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 --- src/components/common/bookmark/BookmarkContainer.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/common/bookmark/BookmarkContainer.jsx b/src/components/common/bookmark/BookmarkContainer.jsx index d502661..f39e263 100644 --- a/src/components/common/bookmark/BookmarkContainer.jsx +++ b/src/components/common/bookmark/BookmarkContainer.jsx @@ -61,6 +61,7 @@ const BookmarkContainer = ({ bookmarkId, storeId }) => { const newData = response.data; setStores([...newData]); setBookmarkStore([...newData]); + navigate(0); } else { navigate('/login'); }