import React, { useState, useEffect } from 'react'; import { participantAPI } from '../services/api.service'; const EventComments = ({ eventId, onScoreUpdate }) => { const [comments, setComments] = useState([]); const [commentText, setCommentText] = useState(''); const [loading, setLoading] = useState(false); const [showCongratsModal, setShowCongratsModal] = useState(false); const [congratsData, setCongratsData] = useState(null); useEffect(() => { loadComments(); }, [eventId]); const loadComments = async () => { try { const response = await participantAPI.getEventComments(eventId); setComments(response.data.data); } catch (err) { console.error('Failed to load comments:', err); } }; const handleSubmit = async (e) => { e.preventDefault(); if (!commentText.trim() || loading) return; setLoading(true); try { const response = await participantAPI.addEventComment(eventId, commentText); // Add comment to list setComments([response.data.data.comment, ...comments]); setCommentText(''); // Check if jackpot was discovered if (response.data.data.jackpotDiscovered) { setCongratsData({ message: response.data.data.congratsMessage, bonusPoints: response.data.data.bonusPoints, xssType: response.data.data.xssType // Track if this is XSS discovery }); setShowCongratsModal(true); } // Notify parent of score update if (onScoreUpdate && response.data.data.totalScore !== undefined) { onScoreUpdate(response.data.data.totalScore); } } catch (err) { console.error('Failed to add comment:', err); } finally { setLoading(false); } }; const closeCongratsModal = () => { setShowCongratsModal(false); setCongratsData(null); }; return ( <>
Share your thoughts on the event
{comments.length > 0 && ({congratsData.message}