import { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { Helmet } from 'react-helmet'; import { Container, Card, Typography, Box, CircularProgress } from '@mui/material'; // Components import Navbar from '../ComponentUtils/Headers/Navbar'; import Footer from '../ComponentUtils/Footer'; import ImageGallery from '../ComponentUtils/ImageGallery'; // Utils import { fetchAllGroups } from '../../Utils/batchUpload'; // Styles import '../../App.css'; function GroupsOverviewPage() { // use CSS classes from GroupsOverviewPage.css const navigate = useNavigate(); const [groups, setGroups] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { loadGroups(); }, []); const loadGroups = async () => { try { setLoading(true); const response = await fetchAllGroups(); setGroups(response.groups || []); setError(null); } catch (err) { setError(err.message); console.error('Error loading groups:', err); } finally { setLoading(false); } }; // previously had handleViewSlideshow but it was not used; removed to satisfy ESLint const handleViewGroup = (groupId) => { navigate(`/groups/${groupId}`); }; const handleCreateNew = () => { navigate('/multi-upload'); }; // removed unused local helpers (formatDate, handleGoHome) to clear ESLint warnings if (loading) { return (