From d094c407c90420b7fcd78eb1f4d07e4890345527 Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Sun, 16 Nov 2025 00:34:34 +0100 Subject: [PATCH] Remove dependency of SlotData Now, the LogPage gets all it's info from the state. --- lib/providers/gym_state.dart | 14 ++++++++++++++ lib/widgets/routines/gym_mode/gym_mode.dart | 2 +- lib/widgets/routines/gym_mode/log_page.dart | 14 +++++--------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/lib/providers/gym_state.dart b/lib/providers/gym_state.dart index b90d38b1..00f5577a 100644 --- a/lib/providers/gym_state.dart +++ b/lib/providers/gym_state.dart @@ -222,6 +222,19 @@ class GymModeState { (e) => e.iteration == iteration && e.day?.id == dayId, ); + PageEntry? getPageByIndex([int? pageIndex]) { + final index = pageIndex ?? currentPage; + + for (final page in pages) { + for (final slotPage in page.slotPages) { + if (slotPage.pageIndex == index) { + return page; + } + } + } + return null; + } + SlotPageEntry? getSlotEntryPageByIndex([int? pageIndex]) { final index = pageIndex ?? currentPage; @@ -546,6 +559,7 @@ class GymStateNotifier extends _$GymStateNotifier { pageIndex: 1, setIndex: 0, setConfigData: SetConfigData( + textRepr: '-/-', exerciseId: newExercise.id!, exercise: newExercise, slotEntryId: setConfigData.slotEntryId, diff --git a/lib/widgets/routines/gym_mode/gym_mode.dart b/lib/widgets/routines/gym_mode/gym_mode.dart index 851b35af..a4e2be38 100644 --- a/lib/widgets/routines/gym_mode/gym_mode.dart +++ b/lib/widgets/routines/gym_mode/gym_mode.dart @@ -91,7 +91,7 @@ class _GymModeState extends ConsumerState { } out.add( - LogPage(_controller, slotData), + LogPage(_controller), ); if (state.showTimerPages) { diff --git a/lib/widgets/routines/gym_mode/log_page.dart b/lib/widgets/routines/gym_mode/log_page.dart index a7bc7b3f..322a3fb6 100644 --- a/lib/widgets/routines/gym_mode/log_page.dart +++ b/lib/widgets/routines/gym_mode/log_page.dart @@ -25,7 +25,6 @@ import 'package:wger/helpers/consts.dart'; import 'package:wger/l10n/generated/app_localizations.dart'; import 'package:wger/models/workouts/log.dart'; import 'package:wger/models/workouts/set_config_data.dart'; -import 'package:wger/models/workouts/slot_data.dart'; import 'package:wger/models/workouts/slot_entry.dart'; import 'package:wger/providers/gym_state.dart'; import 'package:wger/providers/plate_weights.dart'; @@ -43,12 +42,8 @@ class LogPage extends ConsumerStatefulWidget { final _logger = Logger('LogPage'); final PageController _controller; - final SlotData _slotData; - LogPage( - this._controller, - this._slotData, - ); + LogPage(this._controller); @override _LogPageState createState() => _LogPageState(); @@ -76,6 +71,7 @@ class _LogPageState extends ConsumerState { final theme = Theme.of(context); final state = ref.watch(gymStateProvider); + final page = state.getPageByIndex()!; final slotEntryPage = state.getSlotEntryPageByIndex(); if (slotEntryPage == null) { @@ -129,7 +125,7 @@ class _LogPageState extends ConsumerState { ], ), Text( - '${slotEntryPage.setIndex + 1} / ${widget._slotData.setConfigs.length}', + '${slotEntryPage.setIndex + 1} / ${page.slotPages.length}', style: theme.textTheme.bodyLarge?.copyWith( color: Theme.of(context).colorScheme.primary, ), @@ -140,8 +136,8 @@ class _LogPageState extends ConsumerState { ), ), if (log.exercise.showPlateCalculator) const LogsPlatesWidget(), - if (widget._slotData.comment.isNotEmpty) - Text(widget._slotData.comment, textAlign: TextAlign.center), + if (slotEntryPage.setConfigData!.comment.isNotEmpty) + Text(slotEntryPage.setConfigData!.comment, textAlign: TextAlign.center), const SizedBox(height: 10), Expanded( child: (state.routine.filterLogsByExercise(log.exercise.id!).isNotEmpty)