Merge pull request #1022 from DhruvSingh19/fix/dead-screen-fix

Fix: Dead-Screen Issue is fixed
This commit is contained in:
Roland Geider
2025-12-17 12:40:06 +01:00
committed by GitHub

View File

@@ -19,7 +19,9 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:wger/core/wide_screen_wrapper.dart';
import 'package:wger/exceptions/no_such_entry_exception.dart';
import 'package:wger/l10n/generated/app_localizations.dart';
import 'package:wger/models/measurements/measurement_category.dart';
import 'package:wger/providers/measurement.dart';
import 'package:wger/screens/form_screen.dart';
import 'package:wger/widgets/measurements/entries.dart';
@@ -38,7 +40,19 @@ class MeasurementEntriesScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final categoryId = ModalRoute.of(context)!.settings.arguments as int;
final category = Provider.of<MeasurementProvider>(context).findCategoryById(categoryId);
final provider = Provider.of<MeasurementProvider>(context);
MeasurementCategory? category;
try {
category = provider.findCategoryById(categoryId);
} on NoSuchEntryException {
Future.microtask(() {
if (context.mounted && Navigator.of(context).canPop()) {
Navigator.of(context).pop();
}
});
return const SizedBox(); // Return empty widget until pop happens
}
return Scaffold(
appBar: AppBar(
@@ -65,7 +79,7 @@ class MeasurementEntriesScreen extends StatelessWidget {
builder: (BuildContext contextDialog) {
return AlertDialog(
content: Text(
AppLocalizations.of(context).confirmDelete(category.name),
AppLocalizations.of(context).confirmDelete(category!.name),
),
actions: [
TextButton(
@@ -84,11 +98,12 @@ class MeasurementEntriesScreen extends StatelessWidget {
Provider.of<MeasurementProvider>(
context,
listen: false,
).deleteCategory(category.id!);
).deleteCategory(category!.id!);
// Close the popup
Navigator.of(contextDialog).pop();
Navigator.of(context).pop(); // Exit detail screen
// and inform the user
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
@@ -138,7 +153,7 @@ class MeasurementEntriesScreen extends StatelessWidget {
body: WidescreenWrapper(
child: SingleChildScrollView(
child: Consumer<MeasurementProvider>(
builder: (context, provider, child) => EntriesList(category),
builder: (context, provider, child) => EntriesList(category!),
),
),
),