Skip to content

Commit

Permalink
feat(#259): only show intial drug selection instructions once
Browse files Browse the repository at this point in the history
  • Loading branch information
tamslo committed Apr 5, 2024
1 parent 4d8d1ff commit 9ad98ce
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
5 changes: 4 additions & 1 deletion app/lib/common/models/metadata.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,12 @@ class MetaData {
bool? onboardingDone;

@HiveField(3)
bool? initialDrugSelectionDone;
bool? initialDrugSelectionInitiated;

@HiveField(4)
bool? initialDrugSelectionDone;

@HiveField(5)
bool? tutorialDone;
}

Expand Down
13 changes: 5 additions & 8 deletions app/lib/common/widgets/tutorial/show.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import 'container.dart';
Future<void> showTutorial({
required BuildContext context,
required List<TutorialContent> pages,
required bool concludesWholeTutorial,
String? lastNextButtonText,
required Function() updateMetadata,
}) => showModalBottomSheet(
context: context,
enableDrag: true,
Expand All @@ -15,15 +16,11 @@ Future<void> showTutorial({
elevation: 0,
builder: (context) => TutorialContainer(
pages: pages,
lastNextButtonText: concludesWholeTutorial
? context.l10n.tutorial_to_the_app
: null,
lastNextButtonText: lastNextButtonText,
finishTutorial: () async {
final closeTutorial = Navigator.of(context).pop;
if (concludesWholeTutorial) {
MetaData.instance.tutorialDone = true;
await MetaData.save();
}
updateMetadata();
await MetaData.save();
closeTutorial();
},
),
Expand Down
7 changes: 5 additions & 2 deletions app/lib/drug_selection/pages/drug_selection.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ class DrugSelectionPage extends HookWidget {
create: (context) => cubit ?? DrugSelectionCubit(activeDrugs),
child: BlocBuilder<DrugSelectionCubit, DrugSelectionState>(
builder: (context, state) {
if (concludesOnboarding) {
final initialDrugSelectionInitiated =
MetaData.instance.initialDrugSelectionInitiated ?? false;
if (concludesOnboarding && !initialDrugSelectionInitiated) {
WidgetsBinding.instance.addPostFrameCallback((_) async {
await showTutorial(
context: context,
Expand All @@ -36,7 +38,8 @@ class DrugSelectionPage extends HookWidget {
),
),
],
concludesWholeTutorial: false,
updateMetadata: () =>
MetaData.instance.initialDrugSelectionInitiated = true,
);
});
}
Expand Down

0 comments on commit 9ad98ce

Please sign in to comment.