Page MenuHomePhorge

D10460.1765031626.diff
No OneTemporary

Size
5 KB
Referenced Files
None
Subscribers
None

D10460.1765031626.diff

diff --git a/lib/components/chat-mention-provider.react.js b/lib/components/chat-mention-provider.react.js
--- a/lib/components/chat-mention-provider.react.js
+++ b/lib/components/chat-mention-provider.react.js
@@ -7,8 +7,8 @@
import SentencePrefixSearchIndex from '../shared/sentence-prefix-search-index.js';
import { threadTypes } from '../types/thread-types-enum.js';
import type {
- ChatMentionCandidates,
ChatMentionCandidatesObj,
+ ChatMentionCandidate,
ResolvedThreadInfo,
ThreadInfo,
} from '../types/thread-types.js';
@@ -80,7 +80,7 @@
} {
const result: {
[string]: {
- [string]: ResolvedThreadInfo,
+ [string]: ChatMentionCandidate,
},
} = {};
const visitedGenesisThreads = new Set<string>();
@@ -91,15 +91,20 @@
if (!currentThreadCommunity) {
if (!result[currentThreadID]) {
result[currentThreadID] = {
- [currentThreadID]: currentResolvedThreadInfo,
+ [currentThreadID]: {
+ threadInfo: currentResolvedThreadInfo,
+ rawChatName: threadInfos[currentThreadID].uiName,
+ },
};
}
continue;
}
if (!result[currentThreadCommunity]) {
result[currentThreadCommunity] = {};
- result[currentThreadCommunity][currentThreadCommunity] =
- resolvedThreadInfos[currentThreadCommunity];
+ result[currentThreadCommunity][currentThreadCommunity] = {
+ threadInfo: resolvedThreadInfos[currentThreadCommunity],
+ rawChatName: threadInfos[currentThreadCommunity].uiName,
+ };
}
// Handle GENESIS community case: mentioning inside GENESIS should only
// show chats and threads inside the top level that is below GENESIS.
@@ -146,7 +151,10 @@
result[lastThreadInTraversePath.id] = {};
}
for (const threadInfo of threadTraversePath) {
- result[lastThreadInTraversePath.id][threadInfo.id] = threadInfo;
+ result[lastThreadInTraversePath.id][threadInfo.id] = {
+ threadInfo,
+ rawChatName: threadInfos[threadInfo.id].uiName,
+ };
communityThreadIDForGenesisThreads[threadInfo.id] =
lastThreadInTraversePath.id;
}
@@ -154,8 +162,10 @@
lastThreadInTraversePath.type !== threadTypes.PERSONAL &&
lastThreadInTraversePath.type !== threadTypes.PRIVATE
) {
- result[genesis.id][lastThreadInTraversePath.id] =
- lastThreadInTraversePath;
+ result[genesis.id][lastThreadInTraversePath.id] = {
+ threadInfo: lastThreadInTraversePath,
+ rawChatName: threadInfos[lastThreadInTraversePath.id].uiName,
+ };
}
} else {
if (
@@ -170,14 +180,20 @@
for (const threadInfo of threadTraversePath) {
result[lastThreadInTraversePathParentCommunityThreadID][
threadInfo.id
- ] = threadInfo;
+ ] = {
+ threadInfo,
+ rawChatName: threadInfos[threadInfo.id].uiName,
+ };
communityThreadIDForGenesisThreads[threadInfo.id] =
lastThreadInTraversePathParentCommunityThreadID;
}
}
continue;
}
- result[currentThreadCommunity][currentThreadID] = currentResolvedThreadInfo;
+ result[currentThreadCommunity][currentThreadID] = {
+ threadInfo: currentResolvedThreadInfo,
+ rawChatName: threadInfos[currentThreadID].uiName,
+ };
}
return {
chatMentionCandidatesObj: result,
@@ -193,7 +209,7 @@
function useChatMentionCandidatesObjAndUtils(): {
chatMentionCandidatesObj: ChatMentionCandidatesObj,
- resolvedThreadInfos: ChatMentionCandidates,
+ resolvedThreadInfos: { +[id: string]: ResolvedThreadInfo },
communityThreadIDForGenesisThreads: { +[id: string]: string },
} {
const threadInfos = useSelector(threadInfoSelector);
@@ -226,7 +242,9 @@
for (const threadID in chatMentionCandidatesObj[communityThreadID]) {
searchIndexEntries.push({
id: threadID,
- uiName: chatMentionCandidatesObj[communityThreadID][threadID].uiName,
+ uiName:
+ chatMentionCandidatesObj[communityThreadID][threadID].threadInfo
+ .uiName,
});
}
// Sort the keys so that the order of the search result is consistent
diff --git a/lib/shared/markdown.js b/lib/shared/markdown.js
--- a/lib/shared/markdown.js
+++ b/lib/shared/markdown.js
@@ -289,7 +289,8 @@
content: string,
hasAccessToChat: boolean,
} {
- const threadInfo = chatMentionCandidates[capture[3]];
+ const chatMentionCandidate = chatMentionCandidates[capture[3]];
+ const threadInfo = chatMentionCandidate?.threadInfo;
const threadName = threadInfo?.uiName ?? decodeChatMentionText(capture[4]);
const content = `${capture[1]}@${threadName}`;
return {
diff --git a/lib/shared/mention-utils.js b/lib/shared/mention-utils.js
--- a/lib/shared/mention-utils.js
+++ b/lib/shared/mention-utils.js
@@ -155,7 +155,7 @@
}
result.push({
type: 'chat',
- threadInfo: chatMentionCandidates[threadID],
+ threadInfo: chatMentionCandidates[threadID].threadInfo,
});
}
return result;
diff --git a/lib/types/thread-types.js b/lib/types/thread-types.js
--- a/lib/types/thread-types.js
+++ b/lib/types/thread-types.js
@@ -489,8 +489,12 @@
export type ThreadStoreThreadInfos = LegacyRawThreadInfos;
+export type ChatMentionCandidate = {
+ +threadInfo: ResolvedThreadInfo,
+ +rawChatName: string | ThreadEntity,
+};
export type ChatMentionCandidates = {
- +[id: string]: ResolvedThreadInfo,
+ +[id: string]: ChatMentionCandidate,
};
export type ChatMentionCandidatesObj = {
+[id: string]: ChatMentionCandidates,

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 6, 2:33 PM (20 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5838591
Default Alt Text
D10460.1765031626.diff (5 KB)

Event Timeline