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:
shenlong 2025-04-07 08:34:13 +05:30 committed by GitHub
parent b87ba6865b
commit b58a450152
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,5 +1,6 @@
import 'dart:async';
import 'package:collection/collection.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/models/user.model.dart';
import 'package:immich_mobile/domain/services/user.service.dart';
@ -36,10 +37,13 @@ final currentUserProvider =
class TimelineUserIdsProvider extends StateNotifier<List<String>> {
TimelineUserIdsProvider(this._timelineService) : super([]) {
final listEquality = const ListEquality();
_timelineService.getTimelineUserIds().then((users) => state = users);
streamSub = _timelineService
.watchTimelineUserIds()
.listen((users) => state = users);
streamSub = _timelineService.watchTimelineUserIds().listen((users) {
if (!listEquality.equals(state, users)) {
state = users;
}
});
}
late final StreamSubscription<List<String>> streamSub;