import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:insparkspokalen_ui/services/activityService.dart'; import 'package:insparkspokalen_ui/models/activityModel.dart'; class Calendar extends StatefulWidget { @override State createState() => _CalendarState(); } class _CalendarState extends State { List aktiviteter = []; @override void initState() { super.initState(); _fetchActivities(); } void _fetchActivities() async { try { List fetchedActivities = await ActivityService().fetchActivities(); setState(() { aktiviteter = fetchedActivities; }); } catch (e) { print("Error fetching activities: $e"); } } @override Widget build(BuildContext context) { return ListView.builder( itemCount: aktiviteter.length, itemBuilder: (context, index) { final aktivitet = aktiviteter[index]; final datumStr = DateFormat('yyyy-MM-dd').format(aktivitet.date); final startTidStr = aktivitet.startTime; final slutTidStr = aktivitet.endTime ?? "Sent"; return Card( margin: const EdgeInsets.symmetric(vertical: 8, horizontal: 16), child: ListTile( leading: const Icon(Icons.event, color: Color(0xFFDAA520)), title: Text(aktivitet.name), subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ const Icon(Icons.location_on, color: Colors.grey), const SizedBox(width: 4), Text(aktivitet.place, style: const TextStyle(color: Colors.grey)), ], ), Row( children: [ const Icon(Icons.calendar_today, color: Colors.grey), const SizedBox(width: 4), Text("$datumStr · $startTidStr - $slutTidStr", style: const TextStyle(color: Colors.grey)), ], ), if (aktivitet.description != null) const Text( "Tryck för beskrivning", style: TextStyle(color: Colors.blue, fontStyle: FontStyle.italic), ), ], ), onTap: () { if (aktivitet.description != null) { showDialog( context: context, builder: (context) => AlertDialog( title: Text(aktivitet.name), content: Text(aktivitet.description!), actions: [ TextButton( onPressed: () => Navigator.pop(context), child: const Text("Stäng"), ), ], ), ); } }, ), ); }, ); } }