import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import '../../core/constants.dart'; import '../../providers/auth_provider.dart'; import '../../providers/settings_provider.dart'; class SettingsScreen extends ConsumerWidget { const SettingsScreen({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final serverUrl = ref.watch(serverUrlProvider); final themeMode = ref.watch(themeModeProvider); return Scaffold( appBar: AppBar(title: const Text('Settings')), body: ListView( children: [ ListTile( title: const Text('Server URL'), subtitle: Text(serverUrl ?? 'Not configured'), leading: const Icon(Icons.dns), onTap: () => context.go(Routes.setup), ), const Divider(), ListTile( title: const Text('Appearance'), leading: const Icon(Icons.brightness_6), trailing: SegmentedButton( segments: const [ ButtonSegment( value: ThemeMode.system, icon: Icon(Icons.brightness_auto), tooltip: 'System', ), ButtonSegment( value: ThemeMode.light, icon: Icon(Icons.light_mode), tooltip: 'Light', ), ButtonSegment( value: ThemeMode.dark, icon: Icon(Icons.dark_mode), tooltip: 'Dark', ), ], selected: {themeMode}, onSelectionChanged: (modes) => ref.read(themeModeProvider.notifier).setMode(modes.first), ), ), const Divider(), ListTile( title: const Text('Sign Out'), leading: const Icon(Icons.logout), onTap: () async { await ref.read(authProvider.notifier).logout(); if (context.mounted) context.go(Routes.login); }, ), ], ), ); } }