diff --git a/components/rating/rating-modal.tsx b/components/rating/rating-modal.tsx index 20292686..28fbd3e5 100644 --- a/components/rating/rating-modal.tsx +++ b/components/rating/rating-modal.tsx @@ -1,5 +1,17 @@ -import React, { useState } from 'react'; -import { RatingStars } from './rating-stars'; +"use client"; + +import { useState } from "react"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; +import { Button } from "@/components/ui/button"; +import { Textarea } from "@/components/ui/textarea"; +import { RatingStars } from "./rating-stars"; interface RatingModalProps { contributor: { @@ -15,16 +27,21 @@ interface RatingModalProps { onClose: () => void; } -export const RatingModal: React.FC = ({ contributor, bounty, onSubmit, onClose }) => { +export const RatingModal = ({ + contributor, + bounty, + onSubmit, + onClose, +}: RatingModalProps) => { const [rating, setRating] = useState(0); - const [feedback, setFeedback] = useState(''); + const [feedback, setFeedback] = useState(""); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [success, setSuccess] = useState(false); const handleSubmit = async () => { if (rating < 1 || rating > 5) { - setError('Please select a rating between 1 and 5.'); + setError("Please select a rating between 1 and 5."); return; } setLoading(true); @@ -33,50 +50,84 @@ export const RatingModal: React.FC = ({ contributor, bounty, o await onSubmit(rating, feedback); setSuccess(true); } catch (err) { - console.error(err) - setError('Failed to submit rating. Please try again.'); + console.error(err); + setError("Failed to submit rating. Please try again."); } finally { setLoading(false); } }; - if (success) { - return ( -
-

Success!

-

Rating submitted. Contributor reputation updated.

- -
- ); - } - return ( -
-

Rate Contributor

-
- Bounty: {bounty.title} -
-
- Contributor: {contributor.name} -
-
- Current Reputation: {contributor.reputation} -
-
- -
-