initial onboarding

This commit is contained in:
Fabian Freund
2025-06-14 23:33:24 +02:00
parent 11a1e8e5f5
commit bce9f0b3a5
26 changed files with 918 additions and 12 deletions
@@ -0,0 +1,34 @@
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:weblibre/features/user/data/providers.dart';
part 'onboarding.g.dart';
@Riverpod(keepAlive: true)
class OnboardingRepository extends _$OnboardingRepository {
static const targetRevision = 1;
Future<int?> getCurrentRevision() {
return ref
.read(userDatabaseProvider)
.onboardingDao
.getLastRevision()
.getSingleOrNull();
}
Future<void> pushRevision(int revision) {
return ref
.read(userDatabaseProvider)
.onboardingDao
.pushRevision(revision, DateTime.now());
}
Future<bool> isOutdated() async {
final current = await getCurrentRevision();
return current != targetRevision;
}
@override
void build() {
return;
}
}
@@ -0,0 +1,27 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'onboarding.dart';
// **************************************************************************
// RiverpodGenerator
// **************************************************************************
String _$onboardingRepositoryHash() =>
r'37b76aa313ae6dfed6ab5695b4df8c4a0cfe0483';
/// See also [OnboardingRepository].
@ProviderFor(OnboardingRepository)
final onboardingRepositoryProvider =
NotifierProvider<OnboardingRepository, void>.internal(
OnboardingRepository.new,
name: r'onboardingRepositoryProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$onboardingRepositoryHash,
dependencies: null,
allTransitiveDependencies: null,
);
typedef _$OnboardingRepository = Notifier<void>;
// ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package