import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { supabase } from '@/integrations/supabase/client'; import { useAuth } from '@/hooks/useAuth'; import { AppLayout } from '@/components/AppLayout'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Skeleton } from '@/components/ui/skeleton'; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'; import { CurriculumEditor } from '@/components/admin/CurriculumEditor'; import { BookOpen } from 'lucide-react'; interface Product { id: string; title: string; slug: string; } export default function AdminBootcamp() { const { user, isAdmin, loading: authLoading } = useAuth(); const navigate = useNavigate(); const [bootcamps, setBootcamps] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { if (!authLoading) { if (!user) navigate('/auth'); else if (!isAdmin) navigate('/dashboard'); else fetchBootcamps(); } }, [user, isAdmin, authLoading]); const fetchBootcamps = async () => { const { data, error } = await supabase .from('products') .select('id, title, slug') .eq('type', 'bootcamp') .order('created_at', { ascending: false }); if (!error && data) setBootcamps(data); setLoading(false); }; if (authLoading || loading) { return (
); } return (

Manajemen Bootcamp

Kelola kurikulum bootcamp

{bootcamps.length === 0 ? (

Belum ada bootcamp. Buat produk dengan tipe bootcamp terlebih dahulu.

) : ( {bootcamps.map((bootcamp) => ( {bootcamp.title} ))} )}
); }