mirror of
https://github.com/immich-app/immich.git
synced 2024-12-24 10:37:28 +02:00
27 lines
689 B
Dart
27 lines
689 B
Dart
|
import 'dart:async';
|
||
|
|
||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||
|
import 'package:immich_mobile/shared/models/store.dart';
|
||
|
import 'package:immich_mobile/shared/models/user.dart';
|
||
|
|
||
|
class CurrentUserProvider extends StateNotifier<User?> {
|
||
|
CurrentUserProvider() : super(null) {
|
||
|
state = Store.tryGet(StoreKey.currentUser);
|
||
|
streamSub =
|
||
|
Store.watch(StoreKey.currentUser).listen((user) => state = user);
|
||
|
}
|
||
|
|
||
|
late final StreamSubscription<User?> streamSub;
|
||
|
|
||
|
@override
|
||
|
void dispose() {
|
||
|
streamSub.cancel();
|
||
|
super.dispose();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
final currentUserProvider =
|
||
|
StateNotifierProvider<CurrentUserProvider, User?>((ref) {
|
||
|
return CurrentUserProvider();
|
||
|
});
|