mirror of
https://github.com/immich-app/immich
synced 2025-11-14 17:36:12 +00:00
refactor(mobile): refactor user provider (#16358)
This commit is contained in:
parent
c778516ce2
commit
8fbd650483
8 changed files with 65 additions and 23 deletions
|
|
@ -8,6 +8,7 @@ import 'package:immich_mobile/entities/user.entity.dart';
|
|||
|
||||
class PartnerSharedWithNotifier extends StateNotifier<List<User>> {
|
||||
final PartnerService _partnerService;
|
||||
late final StreamSubscription<List<User>> streamSub;
|
||||
|
||||
PartnerSharedWithNotifier(this._partnerService) : super([]) {
|
||||
Function eq = const ListEquality<User>().equals;
|
||||
|
|
@ -16,7 +17,7 @@ class PartnerSharedWithNotifier extends StateNotifier<List<User>> {
|
|||
state = partners;
|
||||
}
|
||||
}).then((_) {
|
||||
_partnerService.watchSharedWith().listen((partners) {
|
||||
streamSub = _partnerService.watchSharedWith().listen((partners) {
|
||||
if (!eq(state, partners)) {
|
||||
state = partners;
|
||||
}
|
||||
|
|
@ -27,6 +28,14 @@ class PartnerSharedWithNotifier extends StateNotifier<List<User>> {
|
|||
Future<bool> updatePartner(User partner, {required bool inTimeline}) {
|
||||
return _partnerService.updatePartner(partner, inTimeline: inTimeline);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
if (mounted) {
|
||||
streamSub.cancel();
|
||||
}
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
final partnerSharedWithProvider =
|
||||
|
|
@ -38,6 +47,7 @@ final partnerSharedWithProvider =
|
|||
|
||||
class PartnerSharedByNotifier extends StateNotifier<List<User>> {
|
||||
final PartnerService _partnerService;
|
||||
late final StreamSubscription<List<User>> streamSub;
|
||||
|
||||
PartnerSharedByNotifier(this._partnerService) : super([]) {
|
||||
Function eq = const ListEquality<User>().equals;
|
||||
|
|
@ -54,11 +64,11 @@ class PartnerSharedByNotifier extends StateNotifier<List<User>> {
|
|||
});
|
||||
}
|
||||
|
||||
late final StreamSubscription<List<User>> streamSub;
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
streamSub.cancel();
|
||||
if (mounted) {
|
||||
streamSub.cancel();
|
||||
}
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue