Page MenuHomePhorge

D9745.1768452584.diff
No OneTemporary

Size
5 KB
Referenced Files
None
Subscribers
None

D9745.1768452584.diff

diff --git a/lib/shared/update-utils.js b/lib/shared/update-utils.js
--- a/lib/shared/update-utils.js
+++ b/lib/shared/update-utils.js
@@ -26,28 +26,7 @@
}
function keyForUpdateInfo(updateInfo: ServerUpdateInfo): ?string {
- if (
- updateInfo.type === updateTypes.UPDATE_THREAD ||
- updateInfo.type === updateTypes.JOIN_THREAD
- ) {
- return updateInfo.threadInfo.id;
- } else if (
- updateInfo.type === updateTypes.UPDATE_THREAD_READ_STATUS ||
- updateInfo.type === updateTypes.DELETE_THREAD
- ) {
- return updateInfo.threadID;
- } else if (updateInfo.type === updateTypes.UPDATE_ENTRY) {
- const { id } = updateInfo.entryInfo;
- invariant(id, 'should be set');
- return id;
- } else if (updateInfo.type === updateTypes.UPDATE_CURRENT_USER) {
- return updateInfo.currentUserInfo.id;
- } else if (updateInfo.type === updateTypes.DELETE_ACCOUNT) {
- return updateInfo.deletedUserID;
- } else if (updateInfo.type === updateTypes.UPDATE_USER) {
- return updateInfo.updatedUserID;
- }
- return null;
+ return updateSpecs[updateInfo.type].keyForUpdateInfo?.(updateInfo) ?? null;
}
// ESLint doesn't recognize that invariant always throws
diff --git a/lib/shared/updates/delete-account-spec.js b/lib/shared/updates/delete-account-spec.js
--- a/lib/shared/updates/delete-account-spec.js
+++ b/lib/shared/updates/delete-account-spec.js
@@ -79,6 +79,9 @@
keyForUpdateData(data: AccountDeletionUpdateData) {
return data.deletedUserID;
},
+ keyForUpdateInfo(info: AccountDeletionUpdateInfo) {
+ return info.deletedUserID;
+ },
typesOfReplacedUpdatesForMatchingKey: 'all_types',
infoValidator: tShape<AccountDeletionUpdateInfo>({
type: tNumber(updateTypes.DELETE_ACCOUNT),
diff --git a/lib/shared/updates/delete-thread-spec.js b/lib/shared/updates/delete-thread-spec.js
--- a/lib/shared/updates/delete-thread-spec.js
+++ b/lib/shared/updates/delete-thread-spec.js
@@ -67,6 +67,9 @@
keyForUpdateData(data: ThreadDeletionUpdateData) {
return data.threadID;
},
+ keyForUpdateInfo(info: ThreadDeletionUpdateInfo) {
+ return info.threadID;
+ },
typesOfReplacedUpdatesForMatchingKey: 'all_types',
infoValidator: tShape<ThreadDeletionUpdateInfo>({
type: tNumber(updateTypes.DELETE_THREAD),
diff --git a/lib/shared/updates/join-thread-spec.js b/lib/shared/updates/join-thread-spec.js
--- a/lib/shared/updates/join-thread-spec.js
+++ b/lib/shared/updates/join-thread-spec.js
@@ -151,6 +151,9 @@
keyForUpdateData(data: ThreadJoinUpdateData) {
return data.threadID;
},
+ keyForUpdateInfo(info: ThreadJoinUpdateInfo) {
+ return info.threadInfo.id;
+ },
typesOfReplacedUpdatesForMatchingKey: 'all_types',
infoValidator: tShape<ThreadJoinUpdateInfo>({
type: tNumber(updateTypes.JOIN_THREAD),
diff --git a/lib/shared/updates/update-current-user-spec.js b/lib/shared/updates/update-current-user-spec.js
--- a/lib/shared/updates/update-current-user-spec.js
+++ b/lib/shared/updates/update-current-user-spec.js
@@ -59,6 +59,9 @@
keyForUpdateData(data: CurrentUserUpdateData) {
return data.userID;
},
+ keyForUpdateInfo(info: CurrentUserUpdateInfo) {
+ return info.currentUserInfo.id;
+ },
typesOfReplacedUpdatesForMatchingKey: 'all_types',
infoValidator: tShape<CurrentUserUpdateInfo>({
type: tNumber(updateTypes.UPDATE_CURRENT_USER),
diff --git a/lib/shared/updates/update-entry-spec.js b/lib/shared/updates/update-entry-spec.js
--- a/lib/shared/updates/update-entry-spec.js
+++ b/lib/shared/updates/update-entry-spec.js
@@ -75,6 +75,11 @@
keyForUpdateData(data: EntryUpdateData) {
return data.entryID;
},
+ keyForUpdateInfo(info: EntryUpdateInfo) {
+ const { id } = info.entryInfo;
+ invariant(id, 'should be set');
+ return id;
+ },
typesOfReplacedUpdatesForMatchingKey: 'all_types',
infoValidator: tShape<EntryUpdateInfo>({
type: tNumber(updateTypes.UPDATE_ENTRY),
diff --git a/lib/shared/updates/update-spec.js b/lib/shared/updates/update-spec.js
--- a/lib/shared/updates/update-spec.js
+++ b/lib/shared/updates/update-spec.js
@@ -92,6 +92,7 @@
) => ?UpdateInfo,
+deleteCondition: ?UpdateTypes,
+keyForUpdateData?: (data: Data) => string,
+ +keyForUpdateInfo?: (info: UpdateInfo) => string,
+typesOfReplacedUpdatesForMatchingKey: ?UpdateTypes,
+infoValidator: TType<UpdateInfo>,
};
diff --git a/lib/shared/updates/update-thread-read-status-spec.js b/lib/shared/updates/update-thread-read-status-spec.js
--- a/lib/shared/updates/update-thread-read-status-spec.js
+++ b/lib/shared/updates/update-thread-read-status-spec.js
@@ -75,6 +75,9 @@
keyForUpdateData(data: ThreadReadStatusUpdateData) {
return data.threadID;
},
+ keyForUpdateInfo(info: ThreadReadStatusUpdateInfo) {
+ return info.threadID;
+ },
typesOfReplacedUpdatesForMatchingKey: new Set([
updateTypes.UPDATE_THREAD_READ_STATUS,
]),
diff --git a/lib/shared/updates/update-thread-spec.js b/lib/shared/updates/update-thread-spec.js
--- a/lib/shared/updates/update-thread-spec.js
+++ b/lib/shared/updates/update-thread-spec.js
@@ -94,6 +94,9 @@
keyForUpdateData(data: ThreadUpdateData) {
return data.threadID;
},
+ keyForUpdateInfo(info: ThreadUpdateInfo) {
+ return info.threadInfo.id;
+ },
typesOfReplacedUpdatesForMatchingKey: new Set([
updateTypes.UPDATE_THREAD_READ_STATUS,
]),
diff --git a/lib/shared/updates/update-user-spec.js b/lib/shared/updates/update-user-spec.js
--- a/lib/shared/updates/update-user-spec.js
+++ b/lib/shared/updates/update-user-spec.js
@@ -46,6 +46,9 @@
keyForUpdateData(data: UserUpdateData) {
return data.updatedUserID;
},
+ keyForUpdateInfo(info: UserUpdateInfo) {
+ return info.updatedUserID;
+ },
typesOfReplacedUpdatesForMatchingKey: null,
infoValidator: tShape<UserUpdateInfo>({
type: tNumber(updateTypes.UPDATE_USER),

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 15, 4:49 AM (12 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5935963
Default Alt Text
D9745.1768452584.diff (5 KB)

Event Timeline