Page MenuHomePhorge

D4644.1765050693.diff
No OneTemporary

Size
18 KB
Referenced Files
None
Subscribers
None

D4644.1765050693.diff

diff --git a/keyserver/src/responders/website-responders.js b/keyserver/src/responders/website-responders.js
--- a/keyserver/src/responders/website-responders.js
+++ b/keyserver/src/responders/website-responders.js
@@ -18,7 +18,7 @@
import {
threadHasPermission,
threadIsPending,
- parseLocallyUniqueThreadID,
+ parsePendingThreadID,
createPendingThread,
} from 'lib/shared/thread-utils';
import { defaultWebEnabledApps } from 'lib/types/enabled-apps';
@@ -233,7 +233,7 @@
threadIsPending(finalNavInfo.activeChatThreadID) &&
finalNavInfo.pendingThread?.id !== finalNavInfo.activeChatThreadID
) {
- const pendingThreadData = parseLocallyUniqueThreadID(
+ const pendingThreadData = parsePendingThreadID(
finalNavInfo.activeChatThreadID,
);
if (
diff --git a/lib/reducers/message-reducer.js b/lib/reducers/message-reducer.js
--- a/lib/reducers/message-reducer.js
+++ b/lib/reducers/message-reducer.js
@@ -48,7 +48,7 @@
logInActionTypes,
registerActionTypes,
} from '../actions/user-actions';
-import { locallyUniqueToRealizedThreadIDsSelector } from '../selectors/thread-selectors';
+import { pendingToRealizedThreadIDsSelector } from '../selectors/thread-selectors';
import {
messageID,
combineTruncationStatuses,
@@ -189,7 +189,7 @@
messageStore: MessageStore,
threadInfos: { +[threadID: string]: RawThreadInfo },
): ReassignmentResult {
- const locallyUniqueToRealizedThreadIDs = locallyUniqueToRealizedThreadIDsSelector(
+ const pendingToRealizedThreadIDs = pendingToRealizedThreadIDsSelector(
threadInfos,
);
@@ -197,7 +197,7 @@
const messages = {};
for (const storeMessageID in messageStore.messages) {
const message = messageStore.messages[storeMessageID];
- const newThreadID = locallyUniqueToRealizedThreadIDs.get(message.threadID);
+ const newThreadID = pendingToRealizedThreadIDs.get(message.threadID);
messages[storeMessageID] = newThreadID
? {
@@ -223,7 +223,7 @@
const reassignedThreadIDs = [];
for (const threadID in messageStore.threads) {
const threadMessageInfo = messageStore.threads[threadID];
- const newThreadID = locallyUniqueToRealizedThreadIDs.get(threadID);
+ const newThreadID = pendingToRealizedThreadIDs.get(threadID);
if (!newThreadID) {
threads[threadID] = threadMessageInfo;
continue;
@@ -635,12 +635,10 @@
payload: T,
threadInfos: { +[id: string]: RawThreadInfo },
): T {
- const locallyUniqueToRealizedThreadIDs = locallyUniqueToRealizedThreadIDsSelector(
+ const pendingToRealizedThreadIDs = pendingToRealizedThreadIDsSelector(
threadInfos,
);
- const realizedThreadID = locallyUniqueToRealizedThreadIDs.get(
- payload.threadID,
- );
+ const realizedThreadID = pendingToRealizedThreadIDs.get(payload.threadID);
return realizedThreadID
? { ...payload, threadID: realizedThreadID }
: payload;
diff --git a/lib/selectors/thread-selectors.js b/lib/selectors/thread-selectors.js
--- a/lib/selectors/thread-selectors.js
+++ b/lib/selectors/thread-selectors.js
@@ -24,7 +24,7 @@
threadHasAdminRole,
roleIsAdminRole,
threadIsPending,
- getLocallyUniqueThreadID,
+ getPendingThreadID,
} from '../shared/thread-utils';
import type { EntryInfo } from '../types/entry-types';
import type { MessageStore, RawMessageInfo } from '../types/message-types';
@@ -351,11 +351,11 @@
rawThreadInfos: { +[id: string]: RawThreadInfo },
threadInfos: { +[id: string]: ThreadInfo },
) => {
- const locallyUniqueToRealizedThreadIDs = locallyUniqueToRealizedThreadIDsSelector(
+ const pendingToRealizedThreadIDs = pendingToRealizedThreadIDsSelector(
rawThreadInfos,
);
const result = {};
- for (const realizedID of locallyUniqueToRealizedThreadIDs.values()) {
+ for (const realizedID of pendingToRealizedThreadIDs.values()) {
const threadInfo = threadInfos[realizedID];
if (threadInfo && threadInfo.sourceMessageID) {
result[threadInfo.sourceMessageID] = threadInfo;
@@ -364,7 +364,7 @@
return result;
},
);
-const locallyUniqueToRealizedThreadIDsSelector: (rawThreadInfos: {
+const pendingToRealizedThreadIDsSelector: (rawThreadInfos: {
+[id: string]: RawThreadInfo,
}) => $ReadOnlyMap<string, string> = createSelector(
(rawThreadInfos: { +[id: string]: RawThreadInfo }) => rawThreadInfos,
@@ -378,17 +378,17 @@
const actualMemberIDs = rawThreadInfo.members
.filter(member => member.role)
.map(member => member.id);
- const locallyUniqueThreadID = getLocallyUniqueThreadID(
+ const pendingThreadID = getPendingThreadID(
rawThreadInfo.type,
actualMemberIDs,
rawThreadInfo.sourceMessageID,
);
- const existingResult = result.get(locallyUniqueThreadID);
+ const existingResult = result.get(pendingThreadID);
if (
!existingResult ||
rawThreadInfos[existingResult].creationTime > rawThreadInfo.creationTime
) {
- result.set(locallyUniqueThreadID, threadID);
+ result.set(pendingThreadID, threadID);
}
}
return result;
@@ -410,5 +410,5 @@
mostRecentlyReadThreadSelector,
sidebarInfoSelector,
threadInfoFromSourceMessageIDSelector,
- locallyUniqueToRealizedThreadIDsSelector,
+ pendingToRealizedThreadIDsSelector,
};
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
@@ -30,7 +30,7 @@
import { threadSearchIndex as threadSearchIndexSelector } from '../selectors/nav-selectors';
import {
threadInfoSelector,
- locallyUniqueToRealizedThreadIDsSelector,
+ pendingToRealizedThreadIDsSelector,
} from '../selectors/thread-selectors';
import {
getRelativeMemberInfos,
@@ -262,7 +262,7 @@
return otherMemberIDs[0];
}
-function getLocallyUniqueThreadID(
+function getPendingThreadID(
threadType: ThreadType,
memberIDs: $ReadOnlyArray<string>,
sourceMessageID: ?string,
@@ -274,20 +274,20 @@
return `pending/${pendingThreadTypeString}${pendingThreadKey}`;
}
-const locallyUniqueThreadIDRegex =
+const pendingThreadIDRegex =
'pending/(type[0-9]+/[0-9]+(\\+[0-9]+)*|sidebar/[0-9]+)';
-type LocallyUniqueThreadIDContents = {
+type PendingThreadIDContents = {
+threadType: ThreadType,
+memberIDs: $ReadOnlyArray<string>,
+sourceMessageID: ?string,
};
-function parseLocallyUniqueThreadID(
+function parsePendingThreadID(
pendingThreadID: string,
-): ?LocallyUniqueThreadIDContents {
- const locallyUniqueRegex = new RegExp(`^${locallyUniqueThreadIDRegex}$`);
- const pendingThreadIDMatches = locallyUniqueRegex.exec(pendingThreadID);
+): ?PendingThreadIDContents {
+ const pendingRegex = new RegExp(`^${pendingThreadIDRegex}$`);
+ const pendingThreadIDMatches = pendingRegex.exec(pendingThreadID);
if (!pendingThreadIDMatches) {
return null;
}
@@ -330,11 +330,7 @@
: [];
const nonViewerMemberIDs = nonViewerMembers.map(member => member.id);
const memberIDs = [...nonViewerMemberIDs, viewerID];
- const threadID = getLocallyUniqueThreadID(
- threadType,
- memberIDs,
- sourceMessageID,
- );
+ const threadID = getPendingThreadID(threadType, memberIDs, sourceMessageID);
const permissions = {
[threadPermissions.KNOW_OF]: true,
@@ -1037,8 +1033,8 @@
);
const userInfos = useSelector(state => state.userStore.userInfos);
- const locallyUniqueToRealizedThreadIDs = useSelector(state =>
- locallyUniqueToRealizedThreadIDsSelector(state.threadStore.threadInfos),
+ const pendingToRealizedThreadIDs = useSelector(state =>
+ pendingToRealizedThreadIDsSelector(state.threadStore.threadInfos),
);
return React.useCallback(
(params: ExistingThreadInfoFinderParams): ?ThreadInfo => {
@@ -1065,20 +1061,18 @@
const { sourceMessageID } = baseThreadInfo;
const pendingThreadID = searching
- ? getLocallyUniqueThreadID(
+ ? getPendingThreadID(
pendingThreadType(userInfoInputArray.length),
[...userInfoInputArray.map(user => user.id), viewerID],
sourceMessageID,
)
- : getLocallyUniqueThreadID(
+ : getPendingThreadID(
baseThreadInfo.type,
baseThreadInfo.members.map(member => member.id),
sourceMessageID,
);
- const realizedThreadID = locallyUniqueToRealizedThreadIDs.get(
- pendingThreadID,
- );
+ const realizedThreadID = pendingToRealizedThreadIDs.get(pendingThreadID);
if (realizedThreadID && threadInfos[realizedThreadID]) {
return threadInfos[realizedThreadID];
}
@@ -1099,7 +1093,7 @@
baseThreadInfo,
threadInfos,
viewerID,
- locallyUniqueToRealizedThreadIDs,
+ pendingToRealizedThreadIDs,
userInfos,
],
);
@@ -1417,9 +1411,9 @@
threadIsGroupChat,
threadIsPending,
getSingleOtherUser,
- getLocallyUniqueThreadID,
- locallyUniqueThreadIDRegex,
- parseLocallyUniqueThreadID,
+ getPendingThreadID,
+ pendingThreadIDRegex,
+ parsePendingThreadID,
createPendingThread,
createPendingThreadItem,
createPendingSidebar,
diff --git a/lib/shared/thread-utils.test.js b/lib/shared/thread-utils.test.js
--- a/lib/shared/thread-utils.test.js
+++ b/lib/shared/thread-utils.test.js
@@ -1,16 +1,16 @@
// @flow
import { threadTypes } from '../types/thread-types';
-import { parseLocallyUniqueThreadID } from './thread-utils';
+import { parsePendingThreadID } from './thread-utils';
-describe('parseLocallyUniqueThreadID(pendingThreadID: string)', () => {
+describe('parsePendingThreadID(pendingThreadID: string)', () => {
it('should return correct data for real pending sidebar ID', () => {
const sidebarResult = {
threadType: threadTypes.SIDEBAR,
memberIDs: [],
sourceMessageID: '12345',
};
- expect(parseLocallyUniqueThreadID('pending/sidebar/12345')).toStrictEqual(
+ expect(parsePendingThreadID('pending/sidebar/12345')).toStrictEqual(
sidebarResult,
);
});
@@ -21,9 +21,9 @@
memberIDs: ['83810', '86622'],
sourceMessageID: null,
};
- expect(
- parseLocallyUniqueThreadID('pending/type6/83810+86622'),
- ).toStrictEqual(pendingPersonalResult);
+ expect(parsePendingThreadID('pending/type6/83810+86622')).toStrictEqual(
+ pendingPersonalResult,
+ );
const pendingCommunityOpenResult = {
threadType: threadTypes.COMMUNITY_OPEN_SUBTHREAD,
@@ -31,30 +31,28 @@
sourceMessageID: null,
};
expect(
- parseLocallyUniqueThreadID('pending/type3/83810+86622+83889'),
+ parsePendingThreadID('pending/type3/83810+86622+83889'),
).toStrictEqual(pendingCommunityOpenResult);
});
it('should return null when there are missing information in ID', () => {
- expect(parseLocallyUniqueThreadID('pending/type4/')).toBeNull();
- expect(parseLocallyUniqueThreadID('type12/83810+86622')).toBeNull();
- expect(parseLocallyUniqueThreadID('pending/83810')).toBeNull();
- expect(parseLocallyUniqueThreadID('pending')).toBeNull();
- expect(parseLocallyUniqueThreadID('')).toBeNull();
- expect(parseLocallyUniqueThreadID('pending/something/12345')).toBeNull();
+ expect(parsePendingThreadID('pending/type4/')).toBeNull();
+ expect(parsePendingThreadID('type12/83810+86622')).toBeNull();
+ expect(parsePendingThreadID('pending/83810')).toBeNull();
+ expect(parsePendingThreadID('pending')).toBeNull();
+ expect(parsePendingThreadID('')).toBeNull();
+ expect(parsePendingThreadID('pending/something/12345')).toBeNull();
});
it('should return null when the format is invalid', () => {
- expect(parseLocallyUniqueThreadID('someothertext/type1/12345')).toBeNull();
- expect(
- parseLocallyUniqueThreadID('pending/type6/12312+++11+12'),
- ).toBeNull();
- expect(parseLocallyUniqueThreadID('pending/type3/83810+')).toBeNull();
+ expect(parsePendingThreadID('someothertext/type1/12345')).toBeNull();
+ expect(parsePendingThreadID('pending/type6/12312+++11+12')).toBeNull();
+ expect(parsePendingThreadID('pending/type3/83810+')).toBeNull();
});
it('should throw invariant violation when thread type is invalid ', () => {
- expect(() =>
- parseLocallyUniqueThreadID('pending/type123/12345'),
- ).toThrowError('number is not ThreadType enum');
+ expect(() => parsePendingThreadID('pending/type123/12345')).toThrowError(
+ 'number is not ThreadType enum',
+ );
});
});
diff --git a/lib/utils/url-utils.js b/lib/utils/url-utils.js
--- a/lib/utils/url-utils.js
+++ b/lib/utils/url-utils.js
@@ -2,7 +2,7 @@
import urlParseLax from 'url-parse-lax';
-import { locallyUniqueThreadIDRegex } from '../shared/thread-utils';
+import { pendingThreadIDRegex } from '../shared/thread-utils';
export type URLInfo = {
+year?: number,
@@ -30,7 +30,7 @@
const accountSettingsRegex = new RegExp('(/|^)settings/account(/|$)', 'i');
const dangerZoneRegex = new RegExp('(/|^)settings/danger-zone(/|$)', 'i');
const threadPendingRegex = new RegExp(
- `(/|^)thread/(${locallyUniqueThreadIDRegex})(/|$)`,
+ `(/|^)thread/(${pendingThreadIDRegex})(/|$)`,
'i',
);
const threadCreationRegex = new RegExp(
diff --git a/native/chat/thread-draft-updater.react.js b/native/chat/thread-draft-updater.react.js
--- a/native/chat/thread-draft-updater.react.js
+++ b/native/chat/thread-draft-updater.react.js
@@ -3,7 +3,7 @@
import invariant from 'invariant';
import * as React from 'react';
-import { locallyUniqueToRealizedThreadIDsSelector } from 'lib/selectors/thread-selectors';
+import { pendingToRealizedThreadIDsSelector } from 'lib/selectors/thread-selectors';
import { draftKeyFromThreadID } from 'lib/shared/thread-utils';
import { useDrafts } from '../data/core-data';
@@ -12,15 +12,15 @@
const ThreadDraftUpdater: React.ComponentType<{}> = React.memo<{}>(
function ThreadDraftUpdater() {
- const locallyUniqueToRealizedThreadIDs = useSelector((state: AppState) =>
- locallyUniqueToRealizedThreadIDsSelector(state.threadStore.threadInfos),
+ const pendingToRealizedThreadIDs = useSelector((state: AppState) =>
+ pendingToRealizedThreadIDsSelector(state.threadStore.threadInfos),
);
const drafts = useDrafts();
const cachedThreadIDsRef = React.useRef();
if (!cachedThreadIDsRef.current) {
const newCachedThreadIDs = new Set();
- for (const realizedThreadID of locallyUniqueToRealizedThreadIDs.values()) {
+ for (const realizedThreadID of pendingToRealizedThreadIDs.values()) {
newCachedThreadIDs.add(realizedThreadID);
}
cachedThreadIDsRef.current = newCachedThreadIDs;
@@ -28,22 +28,19 @@
const { moveDraft } = drafts;
React.useEffect(() => {
- for (const [
- locallyUniqueThreadID,
- threadID,
- ] of locallyUniqueToRealizedThreadIDs) {
+ for (const [pendingThreadID, threadID] of pendingToRealizedThreadIDs) {
const cachedThreadIDs = cachedThreadIDsRef.current;
invariant(cachedThreadIDs, 'should be set');
if (cachedThreadIDs.has(threadID)) {
continue;
}
moveDraft(
- draftKeyFromThreadID(locallyUniqueThreadID),
+ draftKeyFromThreadID(pendingThreadID),
draftKeyFromThreadID(threadID),
);
cachedThreadIDs.add(threadID);
}
- }, [locallyUniqueToRealizedThreadIDs, moveDraft]);
+ }, [pendingToRealizedThreadIDs, moveDraft]);
return null;
},
);
diff --git a/web/input/input-state-container.react.js b/web/input/input-state-container.react.js
--- a/web/input/input-state-container.react.js
+++ b/web/input/input-state-container.react.js
@@ -29,7 +29,7 @@
type MultimediaUploadExtras,
} from 'lib/actions/upload-actions';
import { getNextLocalUploadID } from 'lib/media/media-utils';
-import { locallyUniqueToRealizedThreadIDsSelector } from 'lib/selectors/thread-selectors';
+import { pendingToRealizedThreadIDsSelector } from 'lib/selectors/thread-selectors';
import {
createMediaMessageInfo,
localIDPrefix,
@@ -87,7 +87,7 @@
+viewerID: ?string,
+messageStoreMessages: { +[id: string]: RawMessageInfo },
+exifRotate: boolean,
- +locallyUniqueRealizedThreadIDs: $ReadOnlyMap<string, string>,
+ +pendingRealizedThreadIDs: $ReadOnlyMap<string, string>,
+dispatch: Dispatch,
+dispatchActionPromise: DispatchActionPromise,
+calendarQuery: () => CalendarQuery,
@@ -135,7 +135,7 @@
let updated = false;
for (const threadID in state) {
const newThreadID =
- props.locallyUniqueRealizedThreadIDs.get(threadID) ?? threadID;
+ props.pendingRealizedThreadIDs.get(threadID) ?? threadID;
if (newThreadID !== threadID) {
updated = true;
}
@@ -509,7 +509,7 @@
);
getRealizedOrPendingThreadID(threadID: string): string {
- return this.props.locallyUniqueRealizedThreadIDs.get(threadID) ?? threadID;
+ return this.props.pendingRealizedThreadIDs.get(threadID) ?? threadID;
}
async appendFiles(
@@ -1242,8 +1242,8 @@
const messageStoreMessages = useSelector(
state => state.messageStore.messages,
);
- const locallyUniqueToRealizedThreadIDs = useSelector(state =>
- locallyUniqueToRealizedThreadIDsSelector(state.threadStore.threadInfos),
+ const pendingToRealizedThreadIDs = useSelector(state =>
+ pendingToRealizedThreadIDsSelector(state.threadStore.threadInfos),
);
const calendarQuery = useSelector(nonThreadCalendarQuery);
const callUploadMultimedia = useServerCall(uploadMultimedia);
@@ -1277,7 +1277,7 @@
viewerID={viewerID}
messageStoreMessages={messageStoreMessages}
exifRotate={exifRotate}
- locallyUniqueRealizedThreadIDs={locallyUniqueToRealizedThreadIDs}
+ pendingRealizedThreadIDs={pendingToRealizedThreadIDs}
calendarQuery={calendarQuery}
uploadMultimedia={callUploadMultimedia}
deleteUpload={callDeleteUpload}
diff --git a/web/redux/nav-reducer.js b/web/redux/nav-reducer.js
--- a/web/redux/nav-reducer.js
+++ b/web/redux/nav-reducer.js
@@ -1,6 +1,6 @@
// @flow
-import { locallyUniqueToRealizedThreadIDsSelector } from 'lib/selectors/thread-selectors';
+import { pendingToRealizedThreadIDsSelector } from 'lib/selectors/thread-selectors';
import { threadIsPending } from 'lib/shared/thread-utils';
import type { RawThreadInfo } from 'lib/types/thread-types';
@@ -22,12 +22,10 @@
const { activeChatThreadID } = state;
if (activeChatThreadID) {
- const locallyUniqueToRealizedThreadIDs = locallyUniqueToRealizedThreadIDsSelector(
+ const pendingToRealizedThreadIDs = pendingToRealizedThreadIDsSelector(
newThreadInfos,
);
- const realizedThreadID = locallyUniqueToRealizedThreadIDs.get(
- activeChatThreadID,
- );
+ const realizedThreadID = pendingToRealizedThreadIDs.get(activeChatThreadID);
if (realizedThreadID) {
state = {
...state,

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 6, 7:51 PM (8 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5840516
Default Alt Text
D4644.1765050693.diff (18 KB)

Event Timeline