import { Box, Card, Group, Loader, Stack, Text, Title, useMantineColorScheme, } from "@mantine/core"; import dayjs from "dayjs"; import { Calendar } from "lucide-react"; import { useEffect, useState } from "react"; import { apiClient } from "@/utils/api-client"; interface EventData { date: string; title: string; } export function ActivityList() { const { colorScheme } = useMantineColorScheme(); const dark = colorScheme === "dark"; const [data, setData] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { async function fetchEvents() { try { const res = await apiClient.GET("/api/event/"); if (res.data?.data) { setData( (res.data.data as { startDate: string; title: string }[]).map( (e) => ({ date: dayjs(e.startDate).format("D MMMM YYYY"), title: e.title, }), ), ); } } catch (error) { console.error("Failed to fetch events", error); } finally { setLoading(false); } } fetchEvents(); }, []); return ( Kalender & Kegiatan Mendatang {loading ? ( ) : data.length > 0 ? ( data.map((event) => ( {event.date} {event.title} )) ) : ( Tidak ada kegiatan mendatang )} ); }