import { cookies } from 'next/headers' import { redirect } from 'next/navigation' import { supabase } from '@/lib/supabase' import { LogoutButton } from '@/components/logout-button' import { ArrowLeft } from 'lucide-react' import Link from 'next/link' import { StuntingChart } from './StuntingChart' const START_YEAR = 2026 export default async function UserTrendStuntingPage() { const cookieStore = await cookies() const sessionCookie = cookieStore.get('user_session') if (!sessionCookie) redirect('/') const session = JSON.parse(sessionCookie.value) if (session.role !== 'user' && session.role !== 'admin') redirect('/dashboard') // Fetch all stunting data (all posyandu) for the community trend const { data: rawData, error } = await supabase .from('hasil_stunting_balita') .select('status_stunting, tanggal_upload, nama_posyandu') .not('tanggal_upload', 'is', null) .order('tanggal_upload', { ascending: true }) if (error) { return (
Gagal memuat data stunting.
) } const currentYear = new Date().getFullYear() const dataYears = Array.from( new Set((rawData ?? []).map(d => new Date(d.tanggal_upload).getFullYear())) ) const allYears = Array.from( new Set([ ...Array.from({ length: Math.max(currentYear, ...dataYears) - START_YEAR + 1 }, (_, i) => START_YEAR + i), ...dataYears, ]) ).filter(y => y >= START_YEAR).sort((a, b) => a - b) return (
{/* Header */}
Kembali

Trend stunting Daerah

Analisis Data Semua Posyandu

) }