Skip to content

Commit 1b4217b

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/add-missing-event-handlers
# Conflicts: # packages/stream_feeds/lib/src/state/feed_state.dart
2 parents d30ad57 + 2390fe4 commit 1b4217b

File tree

5 files changed

+49
-79
lines changed

5 files changed

+49
-79
lines changed

packages/stream_feeds/lib/src/models/get_or_create_feed_data.dart

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import 'feed_data.dart';
88
import 'feed_member_data.dart';
99
import 'follow_data.dart';
1010
import 'pagination_data.dart';
11-
import 'query_configuration.dart';
1211

1312
part 'get_or_create_feed_data.freezed.dart';
1413

@@ -20,29 +19,29 @@ part 'get_or_create_feed_data.freezed.dart';
2019
class GetOrCreateFeedData with _$GetOrCreateFeedData {
2120
/// Creates a new [GetOrCreateFeedData] instance.
2221
const GetOrCreateFeedData({
22+
required this.pagination,
2323
required this.activities,
24-
required this.activitiesQueryConfig,
24+
this.aggregatedActivities = const [],
2525
required this.feed,
2626
this.followers = const [],
2727
this.following = const [],
2828
this.followRequests = const [],
2929
required this.members,
3030
this.pinnedActivities = const [],
31-
this.aggregatedActivities = const [],
3231
this.notificationStatus,
3332
});
3433

35-
/// A paginated result of activities associated with the feed.
34+
/// Pagination information for the feed data.
3635
@override
37-
final PaginationResult<ActivityData> activities;
36+
final PaginationData pagination;
3837

39-
/// The list of aggregated activities in the feed.
38+
/// The list of activities in the feed.
4039
@override
41-
final List<AggregatedActivityData> aggregatedActivities;
40+
final List<ActivityData> activities;
4241

43-
/// The configuration used to query activities.
42+
/// The list of aggregated activities in the feed.
4443
@override
45-
final QueryConfiguration<ActivityData> activitiesQueryConfig;
44+
final List<AggregatedActivityData> aggregatedActivities;
4645

4746
/// The feed data associated with the feed.
4847
@override

packages/stream_feeds/lib/src/models/get_or_create_feed_data.freezed.dart

Lines changed: 23 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/stream_feeds/lib/src/repository/feeds_repository.dart

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'package:collection/collection.dart';
21
import 'package:stream_core/stream_core.dart';
32

43
import '../generated/api/api.dart' as api;
@@ -13,8 +12,6 @@ import '../models/follow_data.dart';
1312
import '../models/get_or_create_feed_data.dart';
1413
import '../models/model_updates.dart';
1514
import '../models/pagination_data.dart';
16-
import '../models/query_configuration.dart';
17-
import '../state/query/activities_query.dart';
1815
import '../state/query/feed_query.dart';
1916
import '../state/query/feeds_query.dart';
2017

@@ -56,19 +53,13 @@ class FeedsRepository {
5653
final rawFollowing = response.following.map((f) => f.toModel());
5754

5855
return GetOrCreateFeedData(
59-
activities: PaginationResult(
60-
items: response.activities
61-
.map((a) => a.toModel())
62-
.sorted(ActivitiesSort.defaultSort.compare),
63-
pagination: PaginationData(
64-
next: response.next,
65-
previous: response.prev,
66-
),
67-
),
68-
activitiesQueryConfig: QueryConfiguration(
69-
filter: query.activityFilter,
70-
sort: ActivitiesSort.defaultSort,
56+
pagination: PaginationData(
57+
next: response.next,
58+
previous: response.prev,
7159
),
60+
activities: response.activities.map((a) => a.toModel()).toList(),
61+
aggregatedActivities:
62+
response.aggregatedActivities.map((a) => a.toModel()).toList(),
7263
feed: response.feed.toModel(),
7364
followers: rawFollowers.where((f) => f.isFollowerOf(fid)).toList(),
7465
following: rawFollowing.where((f) => f.isFollowingFeed(fid)).toList(),
@@ -82,8 +73,6 @@ class FeedsRepository {
8273
),
8374
pinnedActivities:
8475
response.pinnedActivities.map((a) => a.toModel()).toList(),
85-
aggregatedActivities:
86-
response.aggregatedActivities.map((a) => a.toModel()).toList(),
8776
notificationStatus: response.notificationStatus,
8877
);
8978
});

packages/stream_feeds/lib/src/state/feed.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,7 @@ class Feed with Disposable {
127127

128128
capabilitiesRepository.cacheCapabilitiesForFeeds([
129129
feedData.feed,
130-
...feedData.activities.items
131-
.map((activity) => activity.currentFeed)
132-
.nonNulls,
130+
...feedData.activities.map((activity) => activity.currentFeed).nonNulls,
133131
]);
134132
});
135133

@@ -470,19 +468,19 @@ class Feed with Disposable {
470468
_stateNotifier.onQueryMoreActivities(
471469
feedData.activities,
472470
feedData.aggregatedActivities,
473-
feedData.activitiesQueryConfig,
471+
feedData.pagination,
474472
);
475473

476474
capabilitiesRepository.cacheCapabilitiesForFeeds([
477475
feedData.feed,
478-
...feedData.activities.items
476+
...feedData.activities
479477
.map((activity) => activity.currentFeed)
480478
.nonNulls,
481479
]);
482480
},
483481
);
484482

485-
return result.map((feedData) => feedData.activities.items);
483+
return result.map((feedData) => feedData.activities);
486484
}
487485

488486
/// Queries for feed suggestions that the current user might want to follow.

packages/stream_feeds/lib/src/state/feed_state.dart

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import '../models/poll_vote_data.dart';
2424
import '../models/query_configuration.dart';
2525
import 'insertion_action.dart';
2626
import 'member_list_state.dart';
27-
import 'query/activities_query.dart';
2827
import 'query/feed_query.dart';
2928

3029
part 'feed_state.freezed.dart';
@@ -54,18 +53,12 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
5453
});
5554
}
5655

57-
QueryConfiguration<ActivityData>? _activitiesQueryConfig;
58-
List<Sort<ActivityData>> get activitiesSort {
59-
return _activitiesQueryConfig?.sort ?? ActivitiesSort.defaultSort;
60-
}
61-
6256
/// Handles the result of a query for the feed.
6357
void onQueryFeed(GetOrCreateFeedData result) {
64-
_activitiesQueryConfig = result.activitiesQueryConfig;
65-
6658
state = state.copyWith(
67-
activities: result.activities.items,
68-
activitiesPagination: result.activities.pagination,
59+
activities: result.activities,
60+
aggregatedActivities: result.aggregatedActivities,
61+
activitiesPagination: result.pagination,
6962
feed: result.feed,
7063
followers: result.followers,
7164
following: result.following,
@@ -76,7 +69,6 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
7669
// members: result.members.items,
7770
followRequests: result.followRequests,
7871
pinnedActivities: result.pinnedActivities,
79-
aggregatedActivities: result.aggregatedActivities,
8072
notificationStatus: result.notificationStatus,
8173
);
8274

@@ -86,18 +78,16 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
8678

8779
/// Handles the result of a query for more activities.
8880
void onQueryMoreActivities(
89-
PaginationResult<ActivityData> activities,
81+
List<ActivityData> activities,
9082
List<AggregatedActivityData> aggregatedActivities,
91-
QueryConfiguration<ActivityData> queryConfig,
83+
PaginationData pagination,
9284
) {
93-
_activitiesQueryConfig = queryConfig;
94-
9585
// Merge the new activities with the existing ones
9686
final updatedActivities = state.activities.merge(
97-
activities.items,
87+
activities,
9888
key: (it) => it.id,
99-
compare: activitiesSort.compare,
10089
);
90+
10191
final updatedAggregatedActivities = state.aggregatedActivities.merge(
10292
aggregatedActivities,
10393
key: (it) => it.group,
@@ -106,7 +96,7 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
10696
state = state.copyWith(
10797
activities: updatedActivities,
10898
aggregatedActivities: updatedAggregatedActivities,
109-
activitiesPagination: activities.pagination,
99+
activitiesPagination: pagination,
110100
);
111101
}
112102

@@ -139,7 +129,6 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
139129
state = state.updateActivitiesWhere(
140130
(it) => it.id == activity.id,
141131
update: (it) => it.updateWith(activity),
142-
compare: activitiesSort.compare,
143132
);
144133
}
145134

@@ -161,7 +150,6 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
161150
state = state.updateActivitiesWhere(
162151
(it) => it.id == activityId,
163152
update: (it) => it.copyWith(hidden: hidden),
164-
compare: activitiesSort.compare,
165153
);
166154
}
167155

@@ -253,7 +241,6 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
253241
state = state.updateActivitiesWhere(
254242
(it) => it.id == bookmark.activity.id,
255243
update: (it) => it.upsertBookmark(bookmark, currentUserId),
256-
compare: activitiesSort.compare,
257244
);
258245
}
259246

@@ -266,7 +253,6 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
266253
state = state.updateActivitiesWhere(
267254
(it) => it.id == bookmark.activity.id,
268255
update: (it) => it.removeBookmark(bookmark, currentUserId),
269-
compare: activitiesSort.compare,
270256
);
271257
}
272258

@@ -279,7 +265,6 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
279265
state = state.updateActivitiesWhere(
280266
(it) => it.id == comment.objectId,
281267
update: (it) => it.upsertComment(comment),
282-
compare: activitiesSort.compare,
283268
);
284269
}
285270

@@ -289,7 +274,6 @@ class FeedStateNotifier extends StateNotifier<FeedState> {
289274
state = state.updateActivitiesWhere(
290275
(it) => it.id == comment.objectId,
291276
update: (it) => it.removeComment(comment),
292-
compare: activitiesSort.compare,
293277
);
294278
}
295279

0 commit comments

Comments
 (0)