This commit is contained in:
2026-05-08 18:51:28 +02:00
parent 42a9506f02
commit c6ef798b22
7 changed files with 120 additions and 75 deletions

View File

@@ -1,7 +1,9 @@
// 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/theme/theme.dart';
import 'package:flux/features/settings/theme_settings_view.dart';
import 'package:go_router/go_router.dart';
class SettingsView extends StatelessWidget {
const SettingsView({super.key});
@@ -15,48 +17,33 @@ class SettingsView extends StatelessWidget {
children: [
_settingsSection('Account', [
_settingsTile(
Icons.person,
'Profilo Utente',
'Configura i tuoi dati',
context,
MaterialPageRoute(
builder: (context) => const ThemeSettingsView(),
),
icon: Icons.person,
title: 'Profilo Utente',
subtitle: 'Configura i tuoi dati',
context: context,
onTap: () {},
),
_settingsTile(
Icons.store,
'Mio Negozio',
'Piacenza Centro',
context,
MaterialPageRoute(
builder: (context) => const ThemeSettingsView(),
),
title: 'Impostazioni Azienda',
icon: Icons.business,
subtitle: 'Configura i dati aziendali',
context: context,
onTap: () => context.push('/master-data/company-settings'),
),
]),
const SizedBox(height: 16),
_settingsSection('Applicazione', [
_settingsTile(
Icons.sync,
'Sincronizzazione',
'Ultima: 5 min fa',
context,
MaterialPageRoute(
builder: (context) => const ThemeSettingsView(),
),
),
_settingsTile(
Icons.dark_mode,
'Tema (FLUX Dark)',
'Configurazione visiva',
context,
MaterialPageRoute(
builder: (context) => const ThemeSettingsView(),
),
icon: Icons.dark_mode,
title: 'Tema (FLUX Dark)',
subtitle: 'Configurazione visiva',
context: context,
onTap: () => context.push('/settings/theme'),
),
]),
const SizedBox(height: 24),
TextButton.icon(
onPressed: () {},
onPressed: () => context.read<SessionCubit>().signOut(),
icon: const Icon(Icons.exit_to_app, color: Colors.red),
label: const Text('Logout', style: TextStyle(color: Colors.red)),
),
@@ -83,22 +70,22 @@ class SettingsView extends StatelessWidget {
);
}
Widget _settingsTile(
IconData icon,
String title,
String subtitle,
BuildContext context,
MaterialPageRoute route,
) {
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),
subtitle: Text(subtitle ?? ''),
trailing: Icon(
Icons.chevron_right,
color: Theme.of(context).textTheme.bodyMedium?.color,
),
onTap: () => Navigator.of(context).push(route),
onTap: onTap,
);
}
}