mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 00:17:48 +01:00
Allow deleting days from a routine
This commit is contained in:
@@ -441,10 +441,10 @@ class RoutinesProvider with ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> deleteDay(Day day) async {
|
||||
await baseProvider.deleteRequest(_daysUrlPath, day.id!);
|
||||
Future<void> deleteDay(int dayId) async {
|
||||
await baseProvider.deleteRequest(_daysUrlPath, dayId);
|
||||
for (final workout in _routines) {
|
||||
workout.days.removeWhere((element) => element.id == day.id);
|
||||
workout.days.removeWhere((element) => element.id == dayId);
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@@ -19,6 +19,34 @@ class ReorderableDaysList extends StatefulWidget {
|
||||
required this.onDaySelected,
|
||||
});
|
||||
|
||||
void _showDeleteConfirmationDialog(BuildContext context, Day day) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: const Text('Confirm Delete'),
|
||||
content: const Text('Are you sure you want to delete this day?'),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
child: const Text('Cancel'),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () async {
|
||||
days.remove(day);
|
||||
await Provider.of<RoutinesProvider>(context, listen: false).deleteDay(day.id!);
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
child: const Text('Delete'),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
State<ReorderableDaysList> createState() => _ReorderableDaysListState();
|
||||
}
|
||||
@@ -61,13 +89,24 @@ class _ReorderableDaysListState extends State<ReorderableDaysList> {
|
||||
index: index,
|
||||
child: const Icon(Icons.drag_handle),
|
||||
),
|
||||
trailing: IconButton(
|
||||
onPressed: () {
|
||||
widget.onDaySelected(day.id!);
|
||||
},
|
||||
icon: day.id == widget.selectedDayId
|
||||
? const Icon(Icons.edit_off)
|
||||
: const Icon(Icons.edit),
|
||||
trailing: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
widget.onDaySelected(day.id!);
|
||||
},
|
||||
icon: day.id == widget.selectedDayId
|
||||
? const Icon(Icons.edit_off)
|
||||
: const Icon(Icons.edit),
|
||||
),
|
||||
IconButton(
|
||||
icon: Icon(Icons.delete),
|
||||
onPressed: () {
|
||||
widget._showDeleteConfirmationDialog(context, day); // Call the dialog function
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
|
||||
@@ -424,10 +424,10 @@ class MockRoutinesProvider extends _i1.Mock implements _i11.RoutinesProvider {
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> deleteDay(_i6.Day? day) => (super.noSuchMethod(
|
||||
_i12.Future<void> deleteDay(int? dayId) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteDay,
|
||||
[day],
|
||||
[dayId],
|
||||
),
|
||||
returnValue: _i12.Future<void>.value(),
|
||||
returnValueForMissingStub: _i12.Future<void>.value(),
|
||||
|
||||
@@ -424,10 +424,10 @@ class MockRoutinesProvider extends _i1.Mock implements _i11.RoutinesProvider {
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> deleteDay(_i6.Day? day) => (super.noSuchMethod(
|
||||
_i12.Future<void> deleteDay(int? dayId) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteDay,
|
||||
[day],
|
||||
[dayId],
|
||||
),
|
||||
returnValue: _i12.Future<void>.value(),
|
||||
returnValueForMissingStub: _i12.Future<void>.value(),
|
||||
|
||||
@@ -424,10 +424,10 @@ class MockRoutinesProvider extends _i1.Mock implements _i11.RoutinesProvider {
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> deleteDay(_i6.Day? day) => (super.noSuchMethod(
|
||||
_i12.Future<void> deleteDay(int? dayId) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteDay,
|
||||
[day],
|
||||
[dayId],
|
||||
),
|
||||
returnValue: _i12.Future<void>.value(),
|
||||
returnValueForMissingStub: _i12.Future<void>.value(),
|
||||
|
||||
@@ -1155,10 +1155,10 @@ class MockRoutinesProvider extends _i1.Mock implements _i22.RoutinesProvider {
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> deleteDay(_i14.Day? day) => (super.noSuchMethod(
|
||||
_i20.Future<void> deleteDay(int? dayId) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteDay,
|
||||
[day],
|
||||
[dayId],
|
||||
),
|
||||
returnValue: _i20.Future<void>.value(),
|
||||
returnValueForMissingStub: _i20.Future<void>.value(),
|
||||
|
||||
Reference in New Issue
Block a user