import { cookies } from 'next/headers' import { redirect } from 'next/navigation' import { supabase } from '@/lib/supabase' import { LogoutButton } from '@/components/logout-button' import { ArrowLeft, User, MapPin, Phone, Baby, Calendar } from 'lucide-react' import Link from 'next/link' import { Mars, Venus } from 'lucide-react' import { HasilStuntingTable } from './HasilStuntingTable' import { PerkembanganChart } from './PerkembanganChart' interface Props { params: Promise<{ id: string }> } function ReadField({ icon, label, value, accent, }: { icon: React.ReactNode label: string value: string | null | undefined accent?: 'blue' | 'pink' }) { return (
{icon} {label}

{value || Tidak ada data}

) } export default async function DetailPenggunaKelolaPage({ params }: Props) { const { id } = await params const cookieStore = await cookies() const sessionCookie = cookieStore.get('user_session') if (!sessionCookie) redirect('/') const session = JSON.parse(sessionCookie.value) if (session.role !== 'admin') redirect('/dashboard') const { data: pengguna, error } = await supabase .from('akun_balita') .select('id, nama_orang_tua, alamat, no_whatsapp, nama_anak, jenis_kelamin, tanggal_lahir, username, password') .eq('id', id) .single() if (error || !pengguna) { return (
Data tidak ditemukan.
) } // Fetch hasil pengukuran stunting milik balita ini const { data: hasilData } = await supabase .from('hasil_stunting_balita') .select('id, tinggi_badan, berat_badan, z_score, status_stunting, pesan_ai, tanggal_upload, nama_posyandu') .eq('id_balita', pengguna.id) .order('tanggal_upload', { ascending: false }) const formatDate = (d: string | null) => { if (!d) return null return new Date(d).toLocaleDateString('id-ID', { day: 'numeric', month: 'long', year: 'numeric' }) } const isLaki = pengguna.jenis_kelamin?.toLowerCase().includes('laki') return (
{/* Header */}
Kembali ke Daftar

Detail Pengguna

REVIEW DATA

{/* Card Hero */}
{pengguna.nama_orang_tua?.charAt(0).toUpperCase() ?? '?'}

{pengguna.nama_orang_tua}

{pengguna.nama_anak ?? '-'}
{/* Section: Data Orang Tua */}

Data Orang Tua

} label="Nama Ibu / Orang Tua" value={pengguna.nama_orang_tua} />
} label="Alamat" value={pengguna.alamat} />
} label="No. WhatsApp" value={pengguna.no_whatsapp} />
{/* Section: Data Anak */}

Data Anak

} label="Nama Anak" value={pengguna.nama_anak} />
: } label="Jenis Kelamin" value={pengguna.jenis_kelamin} accent={isLaki ? 'blue' : 'pink'} /> } label="Tanggal Lahir" value={formatDate(pengguna.tanggal_lahir)} />
{/* Separator: Perkembangan */}
Grafik Perkembangan
{/* Chart Perkembangan Tinggi & Berat */} {/* Professional Separator */}
Riwayat Pengukuran
{/* Tabel Riwayat Hasil Stunting */}
) }