Remove dependency of SlotData

Now, the LogPage gets all it's info from the state.
This commit is contained in:
Roland Geider
2025-11-16 00:34:34 +01:00
parent c26e3828f8
commit d094c407c9
3 changed files with 20 additions and 10 deletions

View File

@@ -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,

View File

@@ -91,7 +91,7 @@ class _GymModeState extends ConsumerState<GymMode> {
}
out.add(
LogPage(_controller, slotData),
LogPage(_controller),
);
if (state.showTimerPages) {

View File

@@ -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<LogPage> {
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<LogPage> {
],
),
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<LogPage> {
),
),
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)