import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../core/providers/activity_provider.dart'; class ActivityGrid extends ConsumerWidget { const ActivityGrid({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final activitiesAsync = ref.watch(activitiesProvider); final selected = ref.watch(selectedActivitiesProvider); return activitiesAsync.when( data: (activities) => Wrap( spacing: 8, runSpacing: 8, children: activities.map((a) { final isSelected = selected.contains(a.id); return FilterChip( avatar: Text( String.fromCharCode(a.iconCodepoint), style: const TextStyle(fontFamily: 'MaterialIcons'), ), label: Text(a.name), selected: isSelected, onSelected: (_) => ref.read(selectedActivitiesProvider.notifier).toggle(a.id), selectedColor: Color( int.parse(a.colourHex.replaceFirst('#', '0xFF')), ).withOpacity(0.2), checkmarkColor: Color( int.parse(a.colourHex.replaceFirst('#', '0xFF')), ), ); }).toList(), ), loading: () => const Center(child: CircularProgressIndicator()), error: (e, _) => Text('Error loading activities: $e'), ); } }