import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../../../../model/account_data.dart'; import '../../../../state/app/modules/settings/bloc/settings_cubit.dart'; import '../../../../widget/centered_leading.dart'; import '../../../../widget/confirm_dialog.dart'; import '../../../../widget/debug/cache_view.dart'; class AccountSection extends StatelessWidget { const AccountSection({super.key}); @override Widget build(BuildContext context) => ListTile( leading: const CenteredLeading(Icon(Icons.logout_outlined)), title: const Text('Konto abmelden'), subtitle: Text('Angemeldet als ${AccountData().getUsername()}'), onTap: () => _showLogoutDialog(context), ); void _showLogoutDialog(BuildContext context) { showDialog( context: context, builder: (dialogContext) => ConfirmDialog( title: 'Abmelden?', content: 'Möchtest du dich wirklich abmelden?', confirmButton: 'Abmelden', onConfirmAsync: () async { final prefs = await SharedPreferences.getInstance(); await prefs.clear(); PaintingBinding.instance.imageCache.clear(); if (!context.mounted) return; await context.read().reset(); await const CacheView().clear(); if (!context.mounted) return; await AccountData().removeData(context: context); }, ), ); } }