// lib/ui/impostazioni/impostazioni_view.dart import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flux/core/blocs/session/session_cubit.dart'; import 'package:flux/core/routes/app_router.dart'; import 'package:flux/core/theme/theme.dart'; import 'package:go_router/go_router.dart'; class SettingsView extends StatelessWidget { const SettingsView({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('Impostazioni')), body: ListView( padding: const EdgeInsets.all(16), children: [ _settingsSection('Account', [ _settingsTile( icon: Icons.person, title: 'Profilo Utente', subtitle: 'Configura i tuoi dati', context: context, onTap: () {}, ), _settingsTile( title: 'Impostazioni Azienda', icon: Icons.business, subtitle: 'Configura i dati aziendali', context: context, onTap: () => context.pushNamed(companySettingsRoute), ), ]), const SizedBox(height: 16), _settingsSection('Applicazione', [ _settingsTile( icon: Icons.dark_mode, title: 'Tema (FLUX Dark)', subtitle: 'Configurazione visiva', context: context, onTap: () => context.pushNamed(themeRoute), ), ]), const SizedBox(height: 24), TextButton.icon( onPressed: () => context.read().signOut(), icon: const Icon(Icons.exit_to_app, color: Colors.red), label: const Text('Logout', style: TextStyle(color: Colors.red)), ), ], ), ); } Widget _settingsSection(String title, List tiles) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( title.toUpperCase(), style: const TextStyle( color: FluxColors.accentTurquoise, fontWeight: FontWeight.bold, letterSpacing: 1, ), ), const SizedBox(height: 8), Card(child: Column(children: tiles)), ], ); } Widget _settingsTile({ required BuildContext context, required IconData icon, required String title, String? subtitle, required VoidCallback onTap, }) { return ListTile( leading: Icon(icon, color: FluxColors.primaryBlue), title: Text(title, style: Theme.of(context).textTheme.titleLarge), subtitle: Text(subtitle ?? ''), trailing: Icon( Icons.chevron_right, color: Theme.of(context).textTheme.bodyMedium?.color, ), onTap: onTap, ); } }