diff --git a/.kiro/specs/beach-litter-mapping/tasks.md b/.kiro/specs/beach-litter-mapping/tasks.md index 5981bf9..66e8538 100644 --- a/.kiro/specs/beach-litter-mapping/tasks.md +++ b/.kiro/specs/beach-litter-mapping/tasks.md @@ -108,7 +108,7 @@ - Create event detail page with participant count - _Requirements: 4.1, 4.2, 4.3, 4.4_ -- [-] 14. Implement event completion workflow +- [x] 14. Implement event completion workflow - Create event completion form for organizers - Add litter collected quantity input - Implement photo upload for cleanup results diff --git a/src/components/event/EventDetailModal.tsx b/src/components/event/EventDetailModal.tsx index b0541b0..2a220aa 100644 --- a/src/components/event/EventDetailModal.tsx +++ b/src/components/event/EventDetailModal.tsx @@ -42,6 +42,10 @@ export function EventDetailModal({ const mapInstanceRef = useRef(null); const [showCompletionForm, setShowCompletionForm] = useState(false); + // Check if event date has passed + const hasEventPassed = new Date(event.scheduledDate) < new Date(); + const canComplete = isOrganizer && event.status === 'upcoming' && hasEventPassed; + // Initialize map useEffect(() => { if (!mapRef.current || mapInstanceRef.current) return; @@ -241,7 +245,7 @@ export function EventDetailModal({ {/* Completion Form for Organizers */} - {isOrganizer && event.status === 'upcoming' && showCompletionForm && ( + {canComplete && showCompletionForm && (
- {isOrganizer ? ( + {canComplete ? (
+ ) : isOrganizer && !hasEventPassed ? ( +
+
+ + + + + You can complete this event after {format(new Date(event.scheduledDate), 'MMM d, yyyy')} + +
+
) : isRegistered ? (