mirror of
https://github.com/immich-app/immich.git
synced 2025-06-01 04:36:19 -04:00
fix(mobile): prevent unnecessary reload on multi user timeline (#17418)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
parent
b87ba6865b
commit
b58a450152
@ -1,5 +1,6 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:collection/collection.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/domain/models/user.model.dart';
|
import 'package:immich_mobile/domain/models/user.model.dart';
|
||||||
import 'package:immich_mobile/domain/services/user.service.dart';
|
import 'package:immich_mobile/domain/services/user.service.dart';
|
||||||
@ -36,10 +37,13 @@ final currentUserProvider =
|
|||||||
|
|
||||||
class TimelineUserIdsProvider extends StateNotifier<List<String>> {
|
class TimelineUserIdsProvider extends StateNotifier<List<String>> {
|
||||||
TimelineUserIdsProvider(this._timelineService) : super([]) {
|
TimelineUserIdsProvider(this._timelineService) : super([]) {
|
||||||
|
final listEquality = const ListEquality();
|
||||||
_timelineService.getTimelineUserIds().then((users) => state = users);
|
_timelineService.getTimelineUserIds().then((users) => state = users);
|
||||||
streamSub = _timelineService
|
streamSub = _timelineService.watchTimelineUserIds().listen((users) {
|
||||||
.watchTimelineUserIds()
|
if (!listEquality.equals(state, users)) {
|
||||||
.listen((users) => state = users);
|
state = users;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
late final StreamSubscription<List<String>> streamSub;
|
late final StreamSubscription<List<String>> streamSub;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user