import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; import '../controls/responsive_max_width.dart'; import '../controls/standard_appbar.dart'; import '../routes.dart'; import '../services/connections_manager.dart'; import '../utils/active_profile_selector.dart'; class GroupManagementScreen extends StatelessWidget { const GroupManagementScreen({super.key}); @override Widget build(BuildContext context) { final manager = context .watch>() .activeEntry .value; final groups = manager.getMyGroups(); groups.sort((g1, g2) => g1.name.compareTo(g2.name)); return Scaffold( appBar: StandardAppBar.build( context, 'Groups Management', withHome: false, actions: [ IconButton( onPressed: () => context.push( '${ScreenPaths.groupManagement}/new', ), icon: const Icon(Icons.add), ), ], ), body: Center( child: RefreshIndicator( onRefresh: () async { manager.refreshGroups(); }, child: ResponsiveMaxWidth( child: ListView.separated( physics: const AlwaysScrollableScrollPhysics(), itemBuilder: (context, index) { final group = groups[index]; return ListTile( title: Text(group.name), onTap: () => context.push( '${ScreenPaths.groupManagement}/show/${group.id}'), ); }, separatorBuilder: (_, __) => const Divider(), itemCount: groups.length, ), ), ), )); } }