'use client'; import { useEffect, useState } from 'react'; import { useSearchParams } from 'next/navigation'; import { loadComponent } from '@/lib/material-components'; import { useOptimizedFetch } from '@/hooks/useOptimizedFetch'; export default function ChildrenProgressPage() { const searchParams = useSearchParams(); const childId = searchParams.get('child'); const [componentsLoaded, setComponentsLoaded] = useState(false); useEffect(() => { Promise.all([ loadComponent('elevated-card'), loadComponent('circular-progress'), loadComponent('icon'), ]).then(() => { setComponentsLoaded(true); }).catch((err) => { console.error('Error loading components:', err); setComponentsLoaded(true); }); }, []); const { data: progressData, loading } = useOptimizedFetch({ url: childId ? `/users/student-progress/?child_id=${childId}` : '/users/student-progress/', cacheKey: `child_progress_${childId}`, cacheTTL: 5 * 60 * 1000, // 5 минут enabled: !!childId, }); if (!componentsLoaded) { return (
Выберите ребенка для просмотра прогресса