From b8ca949f2412fb2b860908390947086ec9bcbd0a Mon Sep 17 00:00:00 2001 From: dbstj0403 Date: Mon, 12 May 2025 22:07:00 +0900 Subject: [PATCH 1/7] =?UTF-8?q?Fix:=20=EC=98=81=EC=88=98=EC=A6=9D=20?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20companyId=20=EA=B3=A0=EC=A0=95=EA=B0=92=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/constants/review/companyCategoryMap.js | 12 ++++++++++++ .../map/components/review/ConfirmImage.jsx | 19 ++++++------------- .../components/review/ReviewImageCapture.jsx | 4 +--- 3 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 src/constants/review/companyCategoryMap.js diff --git a/src/constants/review/companyCategoryMap.js b/src/constants/review/companyCategoryMap.js new file mode 100644 index 0000000..7c161de --- /dev/null +++ b/src/constants/review/companyCategoryMap.js @@ -0,0 +1,12 @@ +export const companyCategoryMap = { + ETC: "기타", + SHOPPING: "쇼핑", + COMPLEX_SPACE: "복합공간", + LIVING_SERVICE: "생활서비스", + EDUCATION: "교육/지원", + IT_DIGITAL: "IT/디지털", + RESTAURANT: "음식점", + CAFE: "카페", + MANUFACTURING_TRANSPORTATION: "제조/운송", + CULTURE_ART: "문화/예술", +}; diff --git a/src/pages/map/components/review/ConfirmImage.jsx b/src/pages/map/components/review/ConfirmImage.jsx index e1d860a..870d241 100644 --- a/src/pages/map/components/review/ConfirmImage.jsx +++ b/src/pages/map/components/review/ConfirmImage.jsx @@ -9,24 +9,15 @@ import { formatDateTime } from "@/pages/map/utils/formatDateTime"; import { usePaymentStore } from "@/store/paymentStore"; import { getDistanceDiff } from "@/pages/map/utils/getDistanceDiff"; import { formatToYMDHMS } from "@/store/paymentStore"; +import { companyCategoryMap } from "@/constants/review/companyCategoryMap"; const ConfirmImage = ({ onReject, data, onConfirmComplete }) => { const navigate = useNavigate(); - // 이 화면에서 넘겨야 할 것 -> 시간 정보, 결제승인번호 + console.log("data, ", data); + const setReviewInfo = usePaymentStore((s) => s.setReviewInfo); const { companyId } = usePaymentStore(); - const moveToReviewPage = () => { - onConfirmComplete?.(); - }; - - // const handleClick = () => { - // const newDate = new Date(/* year, month-1, day, hour, minute */); - // setPaymentTime(newDate); - - // navigate("/writereview"); - // }; - const handleClick = () => { const pad = (n) => String(n).padStart(2, "0"); @@ -241,7 +232,9 @@ const ConfirmImage = ({ onReject, data, onConfirmComplete }) => {

{data?.storeName}

-

{data?.companyCategory ?? "기타"}

+

+ {companyCategoryMap[data?.companyCategory] ?? "기타"} +

diff --git a/src/pages/map/components/review/ReviewImageCapture.jsx b/src/pages/map/components/review/ReviewImageCapture.jsx index 9878509..7816f23 100644 --- a/src/pages/map/components/review/ReviewImageCapture.jsx +++ b/src/pages/map/components/review/ReviewImageCapture.jsx @@ -6,8 +6,6 @@ import Modal from "@/pages/map/components/Modal"; import ReceiptErrorModal from "@/pages/map/components/review/ReceiptErrorModal"; import "@/styles/spinner.css"; -import { usePaymentStore } from "@/store/paymentStore"; - import imageCompression from "browser-image-compression"; const ReviewImageCapture = ({ companyId, @@ -170,7 +168,7 @@ const ReviewImageCapture = ({ // FormData 에 file + companyId 담기 const form = new FormData(); form.append("file", compressedFile, compressedFile.name); - form.append("companyId", String(780)); + form.append("companyId", String(companyId)); // 단일 인자로 FormData 전달 mutate(form); From 8f6608ac2f77a42fcc67c3d105bfcb4a319fe78b Mon Sep 17 00:00:00 2001 From: dbstj0403 Date: Tue, 13 May 2025 08:46:03 +0900 Subject: [PATCH 2/7] =?UTF-8?q?Chore:=20=EC=9E=90=EC=9E=98=ED=95=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/assets/svgs/modal/errorIcon.svg | 4 ++++ src/pages/map/components/review/ConfirmImage.jsx | 2 -- src/pages/support/components/step/Step6.jsx | 2 +- src/pages/writeReview/components/WriteText.jsx | 6 +++++- 4 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 src/assets/svgs/modal/errorIcon.svg diff --git a/src/assets/svgs/modal/errorIcon.svg b/src/assets/svgs/modal/errorIcon.svg new file mode 100644 index 0000000..6e4c52e --- /dev/null +++ b/src/assets/svgs/modal/errorIcon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/pages/map/components/review/ConfirmImage.jsx b/src/pages/map/components/review/ConfirmImage.jsx index 870d241..03a8946 100644 --- a/src/pages/map/components/review/ConfirmImage.jsx +++ b/src/pages/map/components/review/ConfirmImage.jsx @@ -13,10 +13,8 @@ import { companyCategoryMap } from "@/constants/review/companyCategoryMap"; const ConfirmImage = ({ onReject, data, onConfirmComplete }) => { const navigate = useNavigate(); - console.log("data, ", data); const setReviewInfo = usePaymentStore((s) => s.setReviewInfo); - const { companyId } = usePaymentStore(); const handleClick = () => { const pad = (n) => String(n).padStart(2, "0"); diff --git a/src/pages/support/components/step/Step6.jsx b/src/pages/support/components/step/Step6.jsx index 02f6bf7..85f32fa 100644 --- a/src/pages/support/components/step/Step6.jsx +++ b/src/pages/support/components/step/Step6.jsx @@ -1,6 +1,6 @@ import { postUserInfo } from "@/apis/recommend/postUserInfo"; import { useState } from "react"; -import "@/styles/spinner.css"; // ✅ 스피너 CSS import +import "@/styles/spinner.css"; const Step6 = ({ onNext, defaultValue, userInfo, setRecommendResult }) => { const [isLoading, setIsLoading] = useState(false); diff --git a/src/pages/writeReview/components/WriteText.jsx b/src/pages/writeReview/components/WriteText.jsx index 8215344..49df524 100644 --- a/src/pages/writeReview/components/WriteText.jsx +++ b/src/pages/writeReview/components/WriteText.jsx @@ -5,6 +5,7 @@ import { useNavigate } from "react-router-dom"; import { profileColorMap } from "@/constants/myPage/profileColorMap"; import { postReview } from "@/apis/review/postReview"; import { useMyProfile } from "@/apis/member/queries"; +import ToastModal from "@/components/common/ToastModal"; const WriteText = ({ onNext, onBack }) => { const navigate = useNavigate(); @@ -13,6 +14,7 @@ const WriteText = ({ onNext, onBack }) => { const companyId = usePaymentStore((s) => s.companyId); const [isUploading, setIsUploading] = useState(false); const { data, isLoading } = useMyProfile(); + const [showToast, setShowToast] = useState(true); const handleClick = async () => { setIsUploading(true); // 모달 띄우기 @@ -24,7 +26,8 @@ const WriteText = ({ onNext, onBack }) => { } catch (e) { console.log(e); setIsUploading(false); // 실패 시도 닫기 - alert("리뷰 등록에 실패했습니다. 다시 시도해 주세요."); + setShowToast(true); + // alert("리뷰 등록에 실패했습니다. 다시 시도해 주세요."); } }; @@ -32,6 +35,7 @@ const WriteText = ({ onNext, onBack }) => {

{isUploading && } + {/* 닫기 버튼 */}
Date: Tue, 13 May 2025 11:17:26 +0900 Subject: [PATCH 3/7] =?UTF-8?q?Feat:=20=EC=BA=A1=EC=B2=98=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20alert=20->=20=ED=86=A0=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=20=EB=AA=A8=EB=8B=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/ToastModal.jsx | 2 +- .../components/review/ReviewImageCapture.jsx | 33 +++++++++++++++---- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/components/common/ToastModal.jsx b/src/components/common/ToastModal.jsx index a12d0e8..7d3b98a 100644 --- a/src/components/common/ToastModal.jsx +++ b/src/components/common/ToastModal.jsx @@ -20,7 +20,7 @@ const ToastModal = ({
- + {message}
diff --git a/src/pages/map/components/review/ReviewImageCapture.jsx b/src/pages/map/components/review/ReviewImageCapture.jsx index 7816f23..00156e5 100644 --- a/src/pages/map/components/review/ReviewImageCapture.jsx +++ b/src/pages/map/components/review/ReviewImageCapture.jsx @@ -1,10 +1,11 @@ import { useState, useRef, useEffect } from "react"; import { useMutation } from "@tanstack/react-query"; import { postRecipt } from "@/apis/review/postRecipt"; -import { useNavigate } from "react-router-dom"; import Modal from "@/pages/map/components/Modal"; import ReceiptErrorModal from "@/pages/map/components/review/ReceiptErrorModal"; import "@/styles/spinner.css"; +import ErrorIcon from "/public/svgs/modal/errorIcon.svg?react"; +import ToastModal from "@/components/common/ToastModal"; import imageCompression from "browser-image-compression"; const ReviewImageCapture = ({ @@ -13,8 +14,6 @@ const ReviewImageCapture = ({ onCloseCamera, onCaptureSuccess, }) => { - const navigate = useNavigate(); - useEffect(() => () => stopCamera(), []); const streamRef = useRef(null); @@ -31,6 +30,17 @@ const ReviewImageCapture = ({ const [showIntroModal, setShowIntroModal] = useState(false); const [showReceiptError, setShowReceiptError] = useState(false); + // 1) 토스트 상태 & 실행 함수 + const [toast, setToast] = useState({ + show: false, + message: "", + icon: null, + }); + const fireToast = (message, icon = ErrorIcon, duration = 2000) => { + setToast({ show: true, message, icon }); + setTimeout(() => setToast((t) => ({ ...t, show: false })), duration); + }; + useEffect(() => { const hasSeenModal = localStorage.getItem("hasSeenCameraIntro"); @@ -53,7 +63,10 @@ const ReviewImageCapture = ({ } } catch (error) { console.log("카메라 접근 실패", error); - alert("카메라 접근에 실패했습니다. 카메라 접근 권한을 확인해 주세요!"); + fireToast( + "카메라 접근에 실패했습니다.\n카메라 권한을 확인해 주세요!", + ErrorIcon + ); } }; @@ -99,7 +112,7 @@ const ReviewImageCapture = ({ const file = e.target.files?.[0]; if (file) { if (!file.type.startsWith("image/")) { - alert("이미지 파일만 선택 가능합니다."); + fireToast("이미지 파일만 선택 가능합니다.", ErrorIcon); e.target.value = ""; fileInputRef.current?.click(); return; @@ -174,7 +187,7 @@ const ReviewImageCapture = ({ mutate(form); } catch (e) { console.error(e); - alert("이미지 압축 실패"); + fireToast("이미지 압축에 실패했습니다. 다시 시도해 주세요!", ErrorIcon); } }; @@ -184,6 +197,14 @@ const ReviewImageCapture = ({ onTouchStart={(e) => e.stopPropagation()} onTouchEnd={(e) => e.stopPropagation()} > + {toast.show && ( + setToast((t) => ({ ...t, show: false }))} + /> + )}
{/* 숨겨진 input */} Date: Tue, 13 May 2025 11:33:54 +0900 Subject: [PATCH 4/7] =?UTF-8?q?Feat:=20=EB=AA=A8=EB=93=A0=20alert=20?= =?UTF-8?q?=ED=86=A0=EC=8A=A4=ED=8A=B8=20=EB=AA=A8=EB=8B=AC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/review/ReviewImageCapture.jsx | 4 +-- src/pages/myPage/MyPage.jsx | 35 +++++++++++++------ src/pages/review/StoreReviewPage.jsx | 2 +- src/pages/support/components/step/Step6.jsx | 22 +++++++++++- .../writeReview/components/WriteText.jsx | 24 +++++++++++-- 5 files changed, 69 insertions(+), 18 deletions(-) diff --git a/src/pages/map/components/review/ReviewImageCapture.jsx b/src/pages/map/components/review/ReviewImageCapture.jsx index 00156e5..3fc6aa4 100644 --- a/src/pages/map/components/review/ReviewImageCapture.jsx +++ b/src/pages/map/components/review/ReviewImageCapture.jsx @@ -36,7 +36,7 @@ const ReviewImageCapture = ({ message: "", icon: null, }); - const fireToast = (message, icon = ErrorIcon, duration = 2000) => { + const fireToast = (message, icon = ErrorIcon, duration = 4000) => { setToast({ show: true, message, icon }); setTimeout(() => setToast((t) => ({ ...t, show: false })), duration); }; @@ -201,7 +201,7 @@ const ReviewImageCapture = ({ setToast((t) => ({ ...t, show: false }))} /> )} diff --git a/src/pages/myPage/MyPage.jsx b/src/pages/myPage/MyPage.jsx index 6d6aa6d..28bbe50 100644 --- a/src/pages/myPage/MyPage.jsx +++ b/src/pages/myPage/MyPage.jsx @@ -7,6 +7,8 @@ import { useGetLikeCountOfMember } from "@/apis/member/queries"; import api from "@/apis/instance/api"; import { useNavigate } from "react-router-dom"; import useAuthStore from "@/store/authStore"; +import ErrorIcon from "/public/svgs/modal/errorIcon.svg?react"; +import ToastModal from "@/components/common/ToastModal"; const LogoutSuccessModal = ({ onClose }) => (
@@ -33,6 +35,16 @@ const MyPage = () => { const [showLogoutModal, setShowLogoutModal] = useState(false); const { logout: setLoggedOut, isLogout } = useAuthStore(); + const [toast, setToast] = useState({ + show: false, + message: "", + icon: null, + }); + const fireToast = (message, icon = ErrorIcon, duration = 4000) => { + setToast({ show: true, message, icon }); + setTimeout(() => setToast((t) => ({ ...t, show: false })), duration); + }; + const nickname = data?.name ?? ""; const location = data?.address ?? ""; const counts = { @@ -53,13 +65,14 @@ const MyPage = () => { setLoggedOut(); setShowLogoutModal(true); } catch (e) { - alert("로그아웃에 실패하였습니다."); + fireToast("로그아웃에 실패하였습니다.", ErrorIcon); } }; + if (isLoading) { return (
-

로딩 중…

+

로딩 중…

); } @@ -78,15 +91,6 @@ const MyPage = () => { return (
- {/* {showLoginModal && ( - {}} // 내부 close는 더 이상 호출되지 않음 - /> - )} */} {/* 로그아웃 완료 모달 */} {showLogoutModal && navigate("/")} />} {/* 카드 */} @@ -129,6 +133,15 @@ const MyPage = () => { 로그아웃
+ + {toast.show && ( + setToast((t) => ({ ...t, show: false }))} + /> + )}
); }; diff --git a/src/pages/review/StoreReviewPage.jsx b/src/pages/review/StoreReviewPage.jsx index ae9b3e6..9cd0f01 100644 --- a/src/pages/review/StoreReviewPage.jsx +++ b/src/pages/review/StoreReviewPage.jsx @@ -47,7 +47,7 @@ const StoreReviewPage = () => { navigate(-1)} + onClick={() => navigate("/")} />
diff --git a/src/pages/support/components/step/Step6.jsx b/src/pages/support/components/step/Step6.jsx index 85f32fa..e590df0 100644 --- a/src/pages/support/components/step/Step6.jsx +++ b/src/pages/support/components/step/Step6.jsx @@ -1,9 +1,20 @@ import { postUserInfo } from "@/apis/recommend/postUserInfo"; import { useState } from "react"; import "@/styles/spinner.css"; +import ErrorIcon from "/public/svgs/modal/errorIcon.svg?react"; +import ToastModal from "@/components/common/ToastModal"; const Step6 = ({ onNext, defaultValue, userInfo, setRecommendResult }) => { const [isLoading, setIsLoading] = useState(false); + const [toast, setToast] = useState({ + show: false, + message: "", + icon: null, + }); + const fireToast = (message, icon = ErrorIcon, duration = 4000) => { + setToast({ show: true, message, icon }); + setTimeout(() => setToast((t) => ({ ...t, show: false })), duration); + }; const handleNext = async () => { try { @@ -13,7 +24,7 @@ const Step6 = ({ onNext, defaultValue, userInfo, setRecommendResult }) => { onNext(); } catch (error) { console.error("추천 요청 실패:", error); - alert("추천 결과를 불러오는 데 실패했어요. 다시 시도해주세요."); + fireToast("추천 결과를 불러오는 데 실패했어요.\n다시 시도해주세요."); } finally { setIsLoading(false); } @@ -49,6 +60,15 @@ const Step6 = ({ onNext, defaultValue, userInfo, setRecommendResult }) => { )}
+ + {toast.show && ( + setToast((t) => ({ ...t, show: false }))} + /> + )}
); }; diff --git a/src/pages/writeReview/components/WriteText.jsx b/src/pages/writeReview/components/WriteText.jsx index 49df524..2f3bcd0 100644 --- a/src/pages/writeReview/components/WriteText.jsx +++ b/src/pages/writeReview/components/WriteText.jsx @@ -5,6 +5,7 @@ import { useNavigate } from "react-router-dom"; import { profileColorMap } from "@/constants/myPage/profileColorMap"; import { postReview } from "@/apis/review/postReview"; import { useMyProfile } from "@/apis/member/queries"; +import ErrorIcon from "/public/svgs/modal/errorIcon.svg?react"; import ToastModal from "@/components/common/ToastModal"; const WriteText = ({ onNext, onBack }) => { @@ -14,7 +15,16 @@ const WriteText = ({ onNext, onBack }) => { const companyId = usePaymentStore((s) => s.companyId); const [isUploading, setIsUploading] = useState(false); const { data, isLoading } = useMyProfile(); - const [showToast, setShowToast] = useState(true); + + const [toast, setToast] = useState({ + show: false, + message: "", + icon: null, + }); + const fireToast = (message, icon = ErrorIcon, duration = 4000) => { + setToast({ show: true, message, icon }); + setTimeout(() => setToast((t) => ({ ...t, show: false })), duration); + }; const handleClick = async () => { setIsUploading(true); // 모달 띄우기 @@ -26,8 +36,7 @@ const WriteText = ({ onNext, onBack }) => { } catch (e) { console.log(e); setIsUploading(false); // 실패 시도 닫기 - setShowToast(true); - // alert("리뷰 등록에 실패했습니다. 다시 시도해 주세요."); + fireToast("리뷰 등록에 실패했습니다.\n다시 시도해 주세요.", ErrorIcon); } }; @@ -95,6 +104,15 @@ const WriteText = ({ onNext, onBack }) => { 다음
+ + {toast.show && ( + setToast((t) => ({ ...t, show: false }))} + /> + )}
); }; From 75745202383dfff69c89cf8a8e98b72f755c3b38 Mon Sep 17 00:00:00 2001 From: dbstj0403 Date: Tue, 13 May 2025 12:37:06 +0900 Subject: [PATCH 5/7] =?UTF-8?q?Chore:=20=EA=B8=B0=EC=97=85=20=EC=B9=B4?= =?UTF-8?q?=ED=85=8C=EA=B3=A0=EB=A6=AC=20=EC=83=81=EC=88=98=20=ED=86=B5?= =?UTF-8?q?=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/review/companyCategoryMap.js | 12 ------------ src/pages/map/components/review/ConfirmImage.jsx | 4 ++-- 2 files changed, 2 insertions(+), 14 deletions(-) delete mode 100644 src/constants/review/companyCategoryMap.js diff --git a/src/constants/review/companyCategoryMap.js b/src/constants/review/companyCategoryMap.js deleted file mode 100644 index 7c161de..0000000 --- a/src/constants/review/companyCategoryMap.js +++ /dev/null @@ -1,12 +0,0 @@ -export const companyCategoryMap = { - ETC: "기타", - SHOPPING: "쇼핑", - COMPLEX_SPACE: "복합공간", - LIVING_SERVICE: "생활서비스", - EDUCATION: "교육/지원", - IT_DIGITAL: "IT/디지털", - RESTAURANT: "음식점", - CAFE: "카페", - MANUFACTURING_TRANSPORTATION: "제조/운송", - CULTURE_ART: "문화/예술", -}; diff --git a/src/pages/map/components/review/ConfirmImage.jsx b/src/pages/map/components/review/ConfirmImage.jsx index 03a8946..0d4a7e9 100644 --- a/src/pages/map/components/review/ConfirmImage.jsx +++ b/src/pages/map/components/review/ConfirmImage.jsx @@ -9,7 +9,7 @@ import { formatDateTime } from "@/pages/map/utils/formatDateTime"; import { usePaymentStore } from "@/store/paymentStore"; import { getDistanceDiff } from "@/pages/map/utils/getDistanceDiff"; import { formatToYMDHMS } from "@/store/paymentStore"; -import { companyCategoryMap } from "@/constants/review/companyCategoryMap"; +import { businessTypeNameMap } from "@/constants/categoryMap"; const ConfirmImage = ({ onReject, data, onConfirmComplete }) => { const navigate = useNavigate(); @@ -231,7 +231,7 @@ const ConfirmImage = ({ onReject, data, onConfirmComplete }) => {

{data?.storeName}

- {companyCategoryMap[data?.companyCategory] ?? "기타"} + {businessTypeNameMap[data?.companyCategory] ?? "기타"}

From c9c948dfc5ac2ebc8fb91bb53fb625c49c0eb8cc Mon Sep 17 00:00:00 2001 From: dbstj0403 Date: Tue, 13 May 2025 14:18:29 +0900 Subject: [PATCH 6/7] =?UTF-8?q?Refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=A0=84=EC=97=AD=20=EC=83=81=ED=83=9C=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/review/reviewData.js | 18 ----------- .../map/components/review/ReviewList.jsx | 1 - src/pages/review/StoreReviewPage.jsx | 1 - .../components/carousel/BestStoryCarousel.jsx | 2 +- src/pages/support/components/step/Step7.jsx | 3 +- .../components/FireTemperatureSlider.jsx | 2 +- .../writeReview/components/SelectTag.jsx | 5 +-- src/store/paymentStore.js | 32 ------------------- 8 files changed, 4 insertions(+), 60 deletions(-) delete mode 100644 src/constants/review/reviewData.js diff --git a/src/constants/review/reviewData.js b/src/constants/review/reviewData.js deleted file mode 100644 index 681154f..0000000 --- a/src/constants/review/reviewData.js +++ /dev/null @@ -1,18 +0,0 @@ -export const reviewData = [ - { - nickname: "윤서", - text: "채움 로렘 지칭하는 시각 지칭하는 모형의 때 입숨은 문장 무언가를 입숨은 그래픽 프로젝트 그래픽 용어로도 공간만 연출을 이런 때로 프로젝트 때 보여줄 들어가는 입숨을 사용된다. 내용이 같은 시각 전에 무언가를 디자인 ", - }, - { - nickname: "찬영", - text: "채움 로렘 지칭하는 시각 지칭하는 모형의 때 입숨은 문장 무언가를 입숨은 그래픽 프로젝트 그래픽 용어로도 공간만 연출을 이런 때로 프로젝트 때 보여줄 들어가는 입숨을 사용된다. 내용이 같은 시각 전에 무언가를 디자인 ", - }, - { - nickname: "승훈", - text: "채움 로렘 지칭하는 시각 지칭하는 모형의 때 입숨은 문장 무언가를 입숨은 그래픽 프로젝트 그래픽 용어로도 공간만 연출을 이런 때로 프로젝트 때 보여줄 들어가는 입숨을 사용된다. 내용이 같은 시각 전에 무언가를 디자인 ", - }, - { - nickname: "명우", - text: "채움 로렘 지칭하는 시각 지칭하는 모형의 때 입숨은 문장 무언가를 입숨은 그래픽 프로젝트 그래픽 용어로도 공간만 연출을 이런 때로 프로젝트 때 보여줄 들어가는 입숨을 사용된다. 내용이 같은 시각 전에 무언가를 디자인 ", - }, -]; diff --git a/src/pages/map/components/review/ReviewList.jsx b/src/pages/map/components/review/ReviewList.jsx index 65c5f2f..016ecc6 100644 --- a/src/pages/map/components/review/ReviewList.jsx +++ b/src/pages/map/components/review/ReviewList.jsx @@ -1,5 +1,4 @@ import { useState } from "react"; -import { reviewData } from "@/constants/review/reviewData"; import ReviewContent from "@/pages/map/components/review/ReviewContent"; import { Link, useNavigate } from "react-router-dom"; import { useGetStoreReviewCount, useStoreReviews } from "@/apis/review/queries"; diff --git a/src/pages/review/StoreReviewPage.jsx b/src/pages/review/StoreReviewPage.jsx index 9cd0f01..50b502a 100644 --- a/src/pages/review/StoreReviewPage.jsx +++ b/src/pages/review/StoreReviewPage.jsx @@ -66,7 +66,6 @@ const StoreReviewPage = () => { onCloseCamera={() => setTurnOnCamera(false)} onCaptureSuccess={(data) => { setCompanyInfo(data); // 즉시 로컬 상태에 저장 - // setReceiptInfo(data); // 전역 상태에도 저장 setShowConfirm(true); // 그다음 Confirm 렌더링 }} /> diff --git a/src/pages/story/components/carousel/BestStoryCarousel.jsx b/src/pages/story/components/carousel/BestStoryCarousel.jsx index 2e2a2f2..926f8a4 100644 --- a/src/pages/story/components/carousel/BestStoryCarousel.jsx +++ b/src/pages/story/components/carousel/BestStoryCarousel.jsx @@ -2,7 +2,7 @@ import { Swiper, SwiperSlide } from "swiper/react"; import { Autoplay, Pagination } from "swiper/modules"; import "swiper/css"; import "swiper/css/pagination"; -import "@/styles/swiper.css"; // 👈 아래의 스타일이 여기에 포함되어야 함 +import "@/styles/swiper.css"; import SlideContent from "@/pages/story/components/content/SlideContent"; const BestStoryCarousel = ({ data, isLoading }) => { diff --git a/src/pages/support/components/step/Step7.jsx b/src/pages/support/components/step/Step7.jsx index 4b3f6a6..8f52a1b 100644 --- a/src/pages/support/components/step/Step7.jsx +++ b/src/pages/support/components/step/Step7.jsx @@ -1,6 +1,5 @@ -import { useState } from "react"; import { useNavigate } from "react-router-dom"; -const Step7 = ({ onNext, defaultValue, userInfo, recommendResult }) => { +const Step7 = ({ recommendResult }) => { const navigate = useNavigate(); return ( diff --git a/src/pages/writeReview/components/FireTemperatureSlider.jsx b/src/pages/writeReview/components/FireTemperatureSlider.jsx index e40c1b6..67a5bb3 100644 --- a/src/pages/writeReview/components/FireTemperatureSlider.jsx +++ b/src/pages/writeReview/components/FireTemperatureSlider.jsx @@ -1,4 +1,4 @@ -import { useState, useRef, useEffect } from "react"; +import { useRef } from "react"; import { motion } from "framer-motion"; const FireTemperatureSlider = ({ temperature, setTemperature }) => { diff --git a/src/pages/writeReview/components/SelectTag.jsx b/src/pages/writeReview/components/SelectTag.jsx index 97cc261..4225bd1 100644 --- a/src/pages/writeReview/components/SelectTag.jsx +++ b/src/pages/writeReview/components/SelectTag.jsx @@ -1,4 +1,4 @@ -import { useState, useEffect } from "react"; +import { useState } from "react"; import { tagList } from "@/constants/review/tagList"; import { usePaymentStore } from "@/store/paymentStore"; import { useNavigate } from "react-router-dom"; @@ -8,7 +8,6 @@ const SelectTag = ({ onNext }) => { const navigate = useNavigate(); const setReviewInfo = usePaymentStore((s) => s.setReviewInfo); - const { reviewInfo } = usePaymentStore(); const [selectedTags, setSelectedTags] = useState([]); const [temperature, setTemperature] = useState(50); @@ -58,8 +57,6 @@ const SelectTag = ({ onNext }) => { 슬라이드하여 온도를 남겨 보세요.

- {/*

0도

*/} - {/* */} { }; export const usePaymentStore = create((set) => ({ - // 상태 필드 - paymentTime: "", // "yyyy/MM/dd HH:mm:ss" companyId: "", // 회사 ID - receiptInfo: null, // OCR 결과 전체 보관 reviewInfo: null, // 🆕 리뷰 정보 객체 setReviewInfo: (info) => @@ -32,35 +28,7 @@ export const usePaymentStore = create((set) => ({ set({ reviewInfo: null }); }, - // 액션들 - setPaymentTime: (raw) => { - const dateObj = raw instanceof Date ? raw : new Date(raw); - if (isNaN(dateObj.getTime())) { - console.warn("[paymentStore] Invalid date:", raw); - return; - } - set({ paymentTime: formatToYMDHMS(dateObj) }); - }, - setCompanyId: (id) => { set({ companyId: String(id) }); }, - - setReceiptInfo: (info) => { - if (!info || typeof info !== "object") { - console.warn("[paymentStore] Invalid receiptInfo:", info); - return; - } - const updates = { receiptInfo: info }; - - // 날짜 있으면 paymentTime 값도 반영 - if (info.orderDateTime) { - const date = new Date(info.orderDateTime.replace(/[-]/g, "/")); - if (!isNaN(date.getTime())) updates.paymentTime = formatToYMDHMS(date); - } - - if (info.companyId) updates.companyId = String(info.companyId); - - set(updates); - }, })); From c6b34e4144f2c7f94baad49ae4d6e9a8681447be Mon Sep 17 00:00:00 2001 From: dbstj0403 Date: Tue, 13 May 2025 15:49:16 +0900 Subject: [PATCH 7/7] =?UTF-8?q?Chore:=20=EB=AA=A8=EB=8B=AC=20duration=2020?= =?UTF-8?q?00=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/map/components/review/ReviewImageCapture.jsx | 2 +- src/pages/myPage/MyPage.jsx | 2 +- src/pages/support/components/step/Step6.jsx | 2 +- src/pages/writeReview/components/WriteText.jsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pages/map/components/review/ReviewImageCapture.jsx b/src/pages/map/components/review/ReviewImageCapture.jsx index 3fc6aa4..dda4a6a 100644 --- a/src/pages/map/components/review/ReviewImageCapture.jsx +++ b/src/pages/map/components/review/ReviewImageCapture.jsx @@ -201,7 +201,7 @@ const ReviewImageCapture = ({ setToast((t) => ({ ...t, show: false }))} /> )} diff --git a/src/pages/myPage/MyPage.jsx b/src/pages/myPage/MyPage.jsx index 28bbe50..54118ff 100644 --- a/src/pages/myPage/MyPage.jsx +++ b/src/pages/myPage/MyPage.jsx @@ -138,7 +138,7 @@ const MyPage = () => { setToast((t) => ({ ...t, show: false }))} /> )} diff --git a/src/pages/support/components/step/Step6.jsx b/src/pages/support/components/step/Step6.jsx index e590df0..550c23c 100644 --- a/src/pages/support/components/step/Step6.jsx +++ b/src/pages/support/components/step/Step6.jsx @@ -65,7 +65,7 @@ const Step6 = ({ onNext, defaultValue, userInfo, setRecommendResult }) => { setToast((t) => ({ ...t, show: false }))} /> )} diff --git a/src/pages/writeReview/components/WriteText.jsx b/src/pages/writeReview/components/WriteText.jsx index 2f3bcd0..a2019e1 100644 --- a/src/pages/writeReview/components/WriteText.jsx +++ b/src/pages/writeReview/components/WriteText.jsx @@ -109,7 +109,7 @@ const WriteText = ({ onNext, onBack }) => { setToast((t) => ({ ...t, show: false }))} /> )}