// * Helper class for displaying confirmation dialogs // * Used when viewing and managing database entries // * Provides dialogs for deleting entries and templates import 'package:fforte/enums/databases.dart'; import 'package:fforte/l10n/app_localizations.dart'; import 'package:fforte/screens/sharedMethods/delete_main_entries.dart'; import 'package:fforte/screens/sharedMethods/delete_templates.dart'; import 'package:flutter/material.dart'; /// Helper class for managing confirmation dialogs /// Contains static methods for showing delete confirmation dialogs class ViewEntriesDialogHelper { /// Show confirmation dialog for deleting all main entries /// @param context The BuildContext to show the dialog in /// @param dbType The type of database (place/excursion) to delete from static Future deleteAllMainEntries( BuildContext context, DatabasesEnum dbType, ) async { return showDialog( context: context, barrierDismissible: false, // User must make a choice builder: (BuildContext context) { return AlertDialog( title: Text(AppLocalizations.of(context)!.deleteEverything), content: SingleChildScrollView( child: ListBody( children: [ Text(AppLocalizations.of(context)!.deleteEverythingContent), ], ), ), actions: [ // Delete confirmation button TextButton( onPressed: () async { await DeleteMainEntries.deleteAll(dbType); if (context.mounted) Navigator.of(context).pop(); }, child: Text(AppLocalizations.of(context)!.deleteEverything), ), // Cancel button TextButton( onPressed: () { Navigator.of(context).pop(); }, child: Text(AppLocalizations.of(context)!.cancel), ), ], ); }, ); } /// Show confirmation dialog for deleting all templates /// @param context The BuildContext to show the dialog in /// @param dbType The type of database (place/excursion) to delete from static Future deleteAllTemplates( BuildContext context, DatabasesEnum dbType, ) async { return showDialog( context: context, barrierDismissible: false, // User must make a choice builder: (BuildContext context) { return AlertDialog( title: Text(AppLocalizations.of(context)!.deleteEverything), content: SingleChildScrollView( child: ListBody( children: [ Text(AppLocalizations.of(context)!.deleteEverythingContent), ], ), ), actions: [ // Delete confirmation button TextButton( onPressed: () async { await DeleteTemplates.deleteAll(dbType); if (context.mounted) Navigator.of(context).pop(); }, child: Text(AppLocalizations.of(context)!.deleteEverything), ), // Cancel button TextButton( onPressed: () { Navigator.of(context).pop(); }, child: Text(AppLocalizations.of(context)!.cancel), ), ], ); }, ); } }