Page MenuHomePhorge

D14331.1768855136.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D14331.1768855136.diff

diff --git a/keyserver/src/creators/message-creator.js b/keyserver/src/creators/message-creator.js
--- a/keyserver/src/creators/message-creator.js
+++ b/keyserver/src/creators/message-creator.js
@@ -54,23 +54,23 @@
+subthreadsCanSetToUnread: Set<string>,
};
+type LatestMessageInfo = {
+ +latestMessage: string,
+ +latestReadMessage: ?string,
+};
+
type LatestMessagesPerUser = Map<
string,
- $ReadOnlyMap<
- string,
- {
- +latestMessage: string,
- +latestReadMessage?: string,
- },
- >,
+ $ReadOnlyMap<string, LatestMessageInfo>,
>;
-type LatestMessages = $ReadOnlyArray<{
- +userID: string,
- +threadID: string,
- +latestMessage: string,
- +latestReadMessage: ?string,
-}>;
+type LatestMessages = $ReadOnlyArray<
+ $ReadOnly<{
+ ...LatestMessageInfo,
+ +userID: string,
+ +threadID: string,
+ }>,
+>;
// Does not do permission checks! (checkThreadPermission)
async function createMessages(
@@ -522,19 +522,15 @@
}
}
-type LatestMessagePerThread = {
- +latestMessage: string,
- +latestReadMessage?: string,
-};
function determineLatestMessagesPerThread(
preUserPushInfo: UserThreadInfo,
userID: string,
threadsToMessageIndices: $ReadOnlyMap<string, $ReadOnlyArray<number>>,
messageInfos: $ReadOnlyArray<RawMessageInfo>,
-): $ReadOnlyMap<string, LatestMessagePerThread> {
+): $ReadOnlyMap<string, LatestMessageInfo> {
const { threadIDs, notFocusedThreadIDs, subthreadsCanSetToUnread } =
preUserPushInfo;
- const latestMessagesPerThread = new Map<string, LatestMessagePerThread>();
+ const latestMessagesPerThread = new Map<string, LatestMessageInfo>();
for (const threadID of threadIDs) {
const messageIndices = threadsToMessageIndices.get(threadID);
invariant(messageIndices, `indices should exist for thread ${threadID}`);
@@ -553,19 +549,18 @@
'message ID should exist in determineLatestMessagesPerThread',
);
+ let latestReadMessage;
if (
- notFocusedThreadIDs.has(threadID) &&
- messageInfo.creatorID !== userID
+ !notFocusedThreadIDs.has(threadID) ||
+ messageInfo.creatorID === userID
) {
- latestMessagesPerThread.set(threadID, {
- latestMessage: messageID,
- });
- } else {
- latestMessagesPerThread.set(threadID, {
- latestMessage: messageID,
- latestReadMessage: messageID,
- });
+ latestReadMessage = messageID;
}
+
+ latestMessagesPerThread.set(threadID, {
+ latestMessage: messageID,
+ latestReadMessage,
+ });
}
}
return latestMessagesPerThread;

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 19, 8:38 PM (6 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5950478
Default Alt Text
D14331.1768855136.diff (2 KB)

Event Timeline