From 8302d386b6eb3322beebc3b178736d4ea5c07acf Mon Sep 17 00:00:00 2001 From: llmojoll Date: Sun, 27 Jul 2025 04:19:24 +0900 Subject: [PATCH 1/6] =?UTF-8?q?Feat=20:=20=EB=A6=AC=EB=B7=B0=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=EB=AA=A8=EB=8B=AC=20=EA=B8=81=EC=96=B4=EC=98=A4?= =?UTF-8?q?=EB=8A=94=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Modal/ReviewModal/EditReviewModal.tsx | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/components/Modal/ReviewModal/EditReviewModal.tsx diff --git a/src/components/Modal/ReviewModal/EditReviewModal.tsx b/src/components/Modal/ReviewModal/EditReviewModal.tsx new file mode 100644 index 0000000..e69de29 From daca2ae2804e60e85ce2ddd1abd771c711e24196 Mon Sep 17 00:00:00 2001 From: llmojoll Date: Sun, 27 Jul 2025 04:43:30 +0900 Subject: [PATCH 2/6] =?UTF-8?q?Feat=20:=20addreview=20=EB=B8=8C=EB=9E=9C?= =?UTF-8?q?=EC=B9=98=EC=97=90=EC=84=9C=20=ED=8F=B4=EB=8D=94,=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC,=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EA=B0=80=EC=A7=80?= =?UTF-8?q?=EA=B3=A0=EC=98=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/editreview.ts | 0 src/assets/ratingstar.svg | 3 + .../Modal/ReviewModal/EditReviewModal.tsx | 303 ++++++++++++++++++ .../Modal/ReviewModal/StarRating.tsx | 31 ++ 4 files changed, 337 insertions(+) create mode 100644 src/api/editreview.ts create mode 100644 src/assets/ratingstar.svg create mode 100644 src/components/Modal/ReviewModal/StarRating.tsx diff --git a/src/api/editreview.ts b/src/api/editreview.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/ratingstar.svg b/src/assets/ratingstar.svg new file mode 100644 index 0000000..e83c2d8 --- /dev/null +++ b/src/assets/ratingstar.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Modal/ReviewModal/EditReviewModal.tsx b/src/components/Modal/ReviewModal/EditReviewModal.tsx index e69de29..b435a32 100644 --- a/src/components/Modal/ReviewModal/EditReviewModal.tsx +++ b/src/components/Modal/ReviewModal/EditReviewModal.tsx @@ -0,0 +1,303 @@ +// import React, { useState } from 'react'; + +// import Image from 'next/image'; +// import { useForm } from 'react-hook-form'; + +// import { putReview } from '@/api/editreview'; +// import { cn } from '@/lib/utils'; + +// import StarRating from '@/components/Modal/ReviewModal/StarRating'; +// import BasicModal from '@/components/common/Modal/BasicModal'; +// import FlavorSlider from '../../common/slider/FlavorSlider'; +// import { Badge } from '../../ui/badge'; +// import { Button } from '../../ui/button'; + +// interface ReviewForm { +// rating: number; +// sliderLightBold: number; +// sliderSmoothTanic: number; +// sliderdrySweet: number; +// slidersoftAcidic: number; +// aroma: Array; +// content: string; +// } + +// interface ReviewData { +// reviewId: number; +// rating: number; +// sliderLightBold: number; +// sliderSmoothTanic: number; +// sliderdrySweet: number; +// slidersoftAcidic: number; +// aroma: string[]; +// content: string; +// } + +// const aromaOptions = [ +// '체리', +// '베리', +// '오크', +// '바닐라', +// '후추', +// '제빵', +// '풀', +// '사과', +// '복숭아', +// '시트러스', +// '트로피컬', +// '미네랄', +// '꽃', +// '담뱃잎', +// '흙', +// '초콜릿', +// '스파이스', +// '카라멜', +// '가죽', +// ]; + +// const aromaMap: Record = { +// 체리: 'CHERRY', +// 베리: 'BERRY', +// 오크: 'OAK', +// 바닐라: 'VANILLA', +// 후추: 'PEPPER', +// 제빵: 'BAKERY', +// 풀: 'GRASS', +// 사과: 'APPLE', +// 복숭아: 'PEACH', +// 시트러스: 'CITRUS', +// 트로피컬: 'TROPICAL', +// 미네랄: 'MINERAL', +// 꽃: 'FLOWER', +// 담뱃잎: 'TOBACCO', +// 흙: 'EARTH', +// 초콜릿: 'CHOCOLATE', +// 스파이스: 'SPICE', +// 카라멜: 'CARAMEL', +// 가죽: 'LEATHER', +// }; + +// const EditReviewModal = ({ +// wineId, +// wineName, +// reviewData, +// }: { +// wineId: number; +// wineName: string; +// reviewData: ReviewData; +// }) => { +// const [showEditModal, setShowEditModal] = useState(false); + +// const { +// register, +// handleSubmit, +// formState: { errors }, +// clearErrors, +// reset, +// watch, +// setValue, +// setError, +// } = useForm({ +// defaultValues: { +// rating: reviewData.rating, +// sliderLightBold: reviewData.sliderLightBold, +// sliderSmoothTanic: reviewData.sliderSmoothTanic, +// sliderdrySweet: reviewData.sliderdrySweet, +// slidersoftAcidic: reviewData.slidersoftAcidic, +// content: reviewData.content, +// aroma: reviewData.aroma.map((eng) => { +// const kor = Object.keys(aromaMap).find((key) => aromaMap[key] === eng); +// return kor || eng; +// }), +// }, +// }); + +// const aroma = watch('aroma'); +// const isSelected = (item: string) => aroma?.includes(item); + +// const toggleAroma = (item: string) => { +// if (!aroma) return; +// if (aroma.includes(item)) { +// setValue( +// 'aroma', +// aroma.filter((a) => a !== item), +// ); +// } else { +// setValue('aroma', [...aroma, item]); +// } +// clearErrors('aroma'); +// }; + +// const onSubmit = async (data: ReviewForm) => { +// if (!data.aroma || data.aroma.length === 0) { +// setError('aroma', { type: 'errmsg', message: '최소 하나의 향을 선택해주세요.' }); +// return; +// } + +// try { +// const fullData = { +// reviewId: reviewData.reviewId, +// wineId, +// rating: data.rating, +// lightBold: data.sliderLightBold, +// smoothTannic: data.sliderSmoothTanic, +// drySweet: data.sliderdrySweet, +// softAcidic: data.slidersoftAcidic, +// aroma: data.aroma.map((a) => aromaMap[a]).filter(Boolean), +// content: data.content, +// }; +// console.log('리뷰 수정 요청 데이터:', fullData); +// await updateReview(fullData); +// console.log('리뷰 수정 완료'); +// reset(fullData); +// setShowEditModal(false); +// } catch (error) { +// console.error('리뷰 수정 실패', error); +// } +// }; + +// const closeModalReset = (isOpen: boolean) => { +// setShowEditModal(isOpen); +// if (!isOpen) { +// reset(); +// } +// }; + +// return ( +//
+// +// +// 수정 완료 +// +// } +// > +//
+//
+// 리뷰 아이콘 +//
+// {wineName} +//
+// setValue('rating', val)} /> +//
+//
+//
+ +//