Page MenuHomePhorge

D6802.1768401324.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D6802.1768401324.diff

diff --git a/lib/shared/thread-utils.js b/lib/shared/thread-utils.js
--- a/lib/shared/thread-utils.js
+++ b/lib/shared/thread-utils.js
@@ -445,6 +445,39 @@
};
}
+// Returns map from lowercase username to AccountUserInfo
+function memberLowercaseUsernameMap(
+ members: $ReadOnlyArray<RelativeMemberInfo>,
+): Map<string, AccountUserInfo> {
+ const memberMap = new Map();
+ for (const member of members) {
+ const { id, role, username } = member;
+ if (!role || !username) {
+ continue;
+ }
+ memberMap.set(username.toLowerCase(), { id, username });
+ }
+ return memberMap;
+}
+
+// Returns map from user ID to AccountUserInfo
+function extractMentionedMembers(
+ text: string,
+ threadInfo: ThreadInfo,
+): Map<string, AccountUserInfo> {
+ const memberMap = memberLowercaseUsernameMap(threadInfo.members);
+ const mentions = extractMentionsFromText(text);
+
+ const mentionedMembers = new Map();
+ for (const mention of mentions) {
+ const userInfo = memberMap.get(mention.toLowerCase());
+ if (userInfo) {
+ mentionedMembers.set(userInfo.id, userInfo);
+ }
+ }
+ return mentionedMembers;
+}
+
type SharedCreatePendingSidebarInput = {
+sourceMessageInfo: ComposableMessageInfo | RobotextMessageInfo,
+parentThreadInfo: ThreadInfo,
@@ -503,20 +536,12 @@
}
if (sourceMessageInfo.type === messageTypes.TEXT) {
- const memberMap = new Map();
- for (const member of parentThreadInfo.members) {
- const { id, role, username } = member;
- if (!role || !username) {
- continue;
- }
- memberMap.set(username.toLowerCase(), { id, username });
- }
- const mentions = extractMentionsFromText(sourceMessageInfo.text);
- for (const mention of mentions) {
- const userInfo = memberMap.get(mention.toLowerCase());
- if (userInfo) {
- initialMembers.set(userInfo.id, userInfo);
- }
+ const mentionedMembersOfParent = extractMentionedMembers(
+ sourceMessageInfo.text,
+ parentThreadInfo,
+ );
+ for (const [memberID, member] of mentionedMembersOfParent) {
+ initialMembers.set(memberID, member);
}
}
@@ -1529,6 +1554,7 @@
parsePendingThreadID,
createPendingThread,
createUnresolvedPendingSidebar,
+ extractMentionedMembers,
createPendingSidebar,
pendingThreadType,
createRealThreadFromPendingThread,

File Metadata

Mime Type
text/plain
Expires
Wed, Jan 14, 2:35 PM (4 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5932471
Default Alt Text
D6802.1768401324.diff (2 KB)

Event Timeline