mirror of
https://github.com/zapstore/zapstore.git
synced 2026-10-05 20:48:24 +00:00
63 lines
2.1 KiB
Dart
63 lines
2.1 KiB
Dart
|
|
|
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
|
// ignore_for_file: directives_ordering, top_level_function_literal_block, depend_on_referenced_packages
|
|
|
|
import 'package:flutter_data/flutter_data.dart';
|
|
import 'package:flutter/foundation.dart' show kIsWeb;
|
|
import 'package:path_provider/path_provider.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
|
import 'package:zapstore/models/user.dart';
|
|
|
|
// ignore: prefer_function_declarations_over_variables
|
|
ConfigureRepositoryLocalStorage configureRepositoryLocalStorage = ({FutureFn<String>? baseDirFn, List<int>? encryptionKey, LocalStorageClearStrategy? clear}) {
|
|
if (!kIsWeb) {
|
|
baseDirFn ??= () => getApplicationDocumentsDirectory().then((dir) => dir.path);
|
|
} else {
|
|
baseDirFn ??= () => '';
|
|
}
|
|
|
|
return hiveLocalStorageProvider.overrideWith(
|
|
(ref) => HiveLocalStorage(
|
|
hive: ref.read(hiveProvider),
|
|
baseDirFn: baseDirFn,
|
|
encryptionKey: encryptionKey,
|
|
clear: clear,
|
|
),
|
|
);
|
|
};
|
|
|
|
final repositoryProviders = <String, Provider<Repository<DataModelMixin>>>{
|
|
'users': usersRepositoryProvider
|
|
};
|
|
|
|
final repositoryInitializerProvider =
|
|
FutureProvider<RepositoryInitializer>((ref) async {
|
|
DataHelpers.setInternalType<User>('users');
|
|
final adapters = <String, RemoteAdapter>{'users': ref.watch(internalUsersRemoteAdapterProvider)};
|
|
final remotes = <String, bool>{'users': true};
|
|
|
|
await ref.watch(graphNotifierProvider).initialize();
|
|
|
|
// initialize and register
|
|
for (final type in repositoryProviders.keys) {
|
|
final repository = ref.read(repositoryProviders[type]!);
|
|
repository.dispose();
|
|
await repository.initialize(
|
|
remote: remotes[type],
|
|
adapters: adapters,
|
|
);
|
|
internalRepositories[type] = repository;
|
|
}
|
|
|
|
return RepositoryInitializer();
|
|
});
|
|
extension RepositoryWidgetRefX on WidgetRef {
|
|
Repository<User> get users => watch(usersRepositoryProvider)..remoteAdapter.internalWatch = watch;
|
|
}
|
|
|
|
extension RepositoryRefX on Ref {
|
|
|
|
Repository<User> get users => watch(usersRepositoryProvider)..remoteAdapter.internalWatch = watch as Watcher;
|
|
} |