@@ -148,25 +148,46 @@ class PerAccountStore extends ChangeNotifier with StreamStore {
148
148
///
149
149
/// For a [PerAccountStore] that polls an event queue to keep itself up to
150
150
/// date, use [LivePerAccountStore.fromInitialSnapshot] .
151
- PerAccountStore .fromInitialSnapshot ({
151
+ factory PerAccountStore .fromInitialSnapshot ({
152
+ required Account account,
153
+ required ApiConnection connection,
154
+ required InitialSnapshot initialSnapshot,
155
+ }) {
156
+ return PerAccountStore ._(
157
+ account: account,
158
+ connection: connection,
159
+ zulipVersion: initialSnapshot.zulipVersion,
160
+ maxFileUploadSizeMib: initialSnapshot.maxFileUploadSizeMib,
161
+ realmDefaultExternalAccounts: initialSnapshot.realmDefaultExternalAccounts,
162
+ realmEmoji: initialSnapshot.realmEmoji,
163
+ customProfileFields: _sortCustomProfileFields (initialSnapshot.customProfileFields),
164
+ userSettings: initialSnapshot.userSettings,
165
+ unreads: Unreads (initial: initialSnapshot.unreadMsgs, selfUserId: account.userId),
166
+ users: Map .fromEntries (
167
+ initialSnapshot.realmUsers
168
+ .followedBy (initialSnapshot.realmNonActiveUsers)
169
+ .followedBy (initialSnapshot.crossRealmBots)
170
+ .map ((user) => MapEntry (user.userId, user))),
171
+ streams: StreamStoreImpl (initialSnapshot: initialSnapshot),
172
+ recentDmConversationsView: RecentDmConversationsView (
173
+ initial: initialSnapshot.recentPrivateConversations, selfUserId: account.userId),
174
+ );
175
+ }
176
+
177
+ PerAccountStore ._({
152
178
required this .account,
153
179
required this .connection,
154
- required InitialSnapshot initialSnapshot,
155
- }) : zulipVersion = initialSnapshot.zulipVersion,
156
- maxFileUploadSizeMib = initialSnapshot.maxFileUploadSizeMib,
157
- realmDefaultExternalAccounts = initialSnapshot.realmDefaultExternalAccounts,
158
- realmEmoji = initialSnapshot.realmEmoji,
159
- customProfileFields = _sortCustomProfileFields (initialSnapshot.customProfileFields),
160
- userSettings = initialSnapshot.userSettings,
161
- unreads = Unreads (initial: initialSnapshot.unreadMsgs, selfUserId: account.userId),
162
- users = Map .fromEntries (
163
- initialSnapshot.realmUsers
164
- .followedBy (initialSnapshot.realmNonActiveUsers)
165
- .followedBy (initialSnapshot.crossRealmBots)
166
- .map ((user) => MapEntry (user.userId, user))),
167
- _streams = StreamStoreImpl (initialSnapshot: initialSnapshot),
168
- recentDmConversationsView = RecentDmConversationsView (
169
- initial: initialSnapshot.recentPrivateConversations, selfUserId: account.userId);
180
+ required this .zulipVersion,
181
+ required this .maxFileUploadSizeMib,
182
+ required this .realmDefaultExternalAccounts,
183
+ required this .realmEmoji,
184
+ required this .customProfileFields,
185
+ required this .userSettings,
186
+ required this .unreads,
187
+ required this .users,
188
+ required streams,
189
+ required this .recentDmConversationsView,
190
+ }) : _streams = streams;
170
191
171
192
final Account account;
172
193
final ApiConnection connection; // TODO(#135): update zulipFeatureLevel with events
0 commit comments