diff --git a/src/components/my-page/reviewing-modal/button-hearts.tsx b/src/components/my-page/reviewing-modal/button-hearts.tsx new file mode 100644 index 00000000..b9744f1d --- /dev/null +++ b/src/components/my-page/reviewing-modal/button-hearts.tsx @@ -0,0 +1,35 @@ +import { useState } from 'react'; +import Image from 'next/image'; +import activeHeart from '@/public/assets/icons/active-heart.svg'; +import defaultHeart from '@/public/assets/icons/default-heart.svg'; + +interface ButtonHeartsProps { + onChange: (score: number) => void; +} + +export default function ButtonHearts({ onChange }: ButtonHeartsProps) { + const [clickedArray, setClickedArray] = useState(Array(5).fill(false)); + + const handleClick = (index: number) => { + setClickedArray((prev) => prev.map((_, i) => i <= index)); + onChange(index + 1); + }; + + return ( +
+

만족스러운 경험이었나요?

+
+ {Array.from({ length: 5 }).map((_, index) => ( + + ))} +
+
+ ); +} diff --git a/src/components/my-page/reviewing-modal/review-form.tsx b/src/components/my-page/reviewing-modal/review-form.tsx new file mode 100644 index 00000000..441e1162 --- /dev/null +++ b/src/components/my-page/reviewing-modal/review-form.tsx @@ -0,0 +1,70 @@ +import { useState } from 'react'; +import { useForm } from 'react-hook-form'; +import { Button } from '@mantine/core'; +import Textarea from '@/src/components/common/input/textarea'; +import ButtonHearts from './button-hearts'; + +type FormValues = { + reviewText: string; + score: number; +}; + +interface ReviewProps { + onCancel: () => void; +} + +export default function ReviewForm({ onCancel }: ReviewProps) { + const { register, handleSubmit } = useForm(); + const [textReview, setTextReview] = useState(''); + const [point, setPoint] = useState(0); + + // TODO : 주석 부분(api 연결) 수정 + // TODO : form에 넣기: onSubmit={handleSubmit(clickSubmit)} + + const handleTextChange = (e: React.ChangeEvent) => { + setTextReview(e.target.value); + }; + + const handleScoreChange = (newScore: number) => { + setPoint(newScore); + }; + + return ( +
+ +