diff --git a/keyserver/src/push/send.js b/keyserver/src/push/send.js --- a/keyserver/src/push/send.js +++ b/keyserver/src/push/send.js @@ -777,7 +777,9 @@ async function fetchNotifUserInfos( serverThreadInfos: { +[threadID: string]: ServerThreadInfo }, - usersToCollapsableNotifInfo: { +[userID: string]: CollapsableNotifInfo[] }, + usersToCollapsableNotifInfo: { + +[userID: string]: $ReadOnlyArray, + }, ) { const missingUserIDs = new Set(); diff --git a/lib/push/send-utils.js b/lib/push/send-utils.js --- a/lib/push/send-utils.js +++ b/lib/push/send-utils.js @@ -94,7 +94,7 @@ }; export type FetchCollapsableNotifsResult = { - [userID: string]: CollapsableNotifInfo[], + +[userID: string]: $ReadOnlyArray, }; function identityPlatformDetailsToPlatformDetails( @@ -302,9 +302,11 @@ function pushInfoToCollapsableNotifInfo(pushInfo: PushInfo): { +usersToCollapseKeysToInfo: { - [string]: { [string]: CollapsableNotifInfo }, + +[string]: { +[string]: CollapsableNotifInfo }, + }, + +usersToCollapsableNotifInfo: { + +[string]: $ReadOnlyArray, }, - +usersToCollapsableNotifInfo: { [string]: Array }, } { const usersToCollapseKeysToInfo: { [string]: { [string]: CollapsableNotifInfo }, @@ -348,13 +350,23 @@ function mergeUserToCollapsableInfo( usersToCollapseKeysToInfo: { - [string]: { [string]: CollapsableNotifInfo }, + +[string]: { +[string]: CollapsableNotifInfo }, + }, + usersToCollapsableNotifInfo: { + +[string]: $ReadOnlyArray, }, - usersToCollapsableNotifInfo: { [string]: Array }, -): { [string]: Array } { - const mergedUsersToCollapsableInfo = { ...usersToCollapsableNotifInfo }; +): { +[string]: $ReadOnlyArray } { + const mergedUsersToCollapsableInfo: { + [string]: Array, + } = {}; + for (const userID in usersToCollapseKeysToInfo) { const collapseKeysToInfo = usersToCollapseKeysToInfo[userID]; + + mergedUsersToCollapsableInfo[userID] = [ + ...usersToCollapsableNotifInfo[userID], + ]; + for (const collapseKey in collapseKeysToInfo) { const info = collapseKeysToInfo[collapseKey]; mergedUsersToCollapsableInfo[userID].push({