Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32177591
D4644.1765069804.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
18 KB
Referenced Files
None
Subscribers
None
D4644.1765069804.diff
View Options
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
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 7, 1:10 AM (7 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5840516
Default Alt Text
D4644.1765069804.diff (18 KB)
Attached To
Mode
D4644: [lib] Rename `locallyUnique...` to `pending...` to improve readability
Attached
Detach File
Event Timeline
Log In to Comment