Page MenuHomePhorge

D14334.1765069464.diff
No OneTemporary

Size
17 KB
Referenced Files
None
Subscribers
None

D14334.1765069464.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
@@ -11,7 +11,7 @@
shimUnsupportedRawMessageInfos,
stripLocalIDs,
} from 'lib/shared/message-utils.js';
-import { pushTypes } from 'lib/shared/messages/message-spec.js';
+import { messageNotifyTypes } from 'lib/shared/messages/message-spec.js';
import { messageSpecs } from 'lib/shared/messages/message-specs.js';
import { messageTypes } from 'lib/types/message-types-enum.js';
import {
@@ -442,7 +442,7 @@
}
const userPushInfoPromise = generateNotifUserInfoPromise({
- pushType: pushTypes.NOTIF,
+ messageNotifyType: messageNotifyTypes.NOTIF_AND_SET_UNREAD,
devices: userDevices,
newMessageInfos: messageInfos,
messageDatas,
@@ -454,7 +454,7 @@
userID,
});
const userRescindInfoPromise = generateNotifUserInfoPromise({
- pushType: pushTypes.RESCIND,
+ messageNotifyType: messageNotifyTypes.RESCIND,
devices: userDevices,
newMessageInfos: messageInfos,
messageDatas,
diff --git a/lib/push/send-utils.js b/lib/push/send-utils.js
--- a/lib/push/send-utils.js
+++ b/lib/push/send-utils.js
@@ -28,7 +28,7 @@
shimUnsupportedRawMessageInfos,
sortMessageInfoList,
} from '../shared/message-utils.js';
-import { pushTypes } from '../shared/messages/message-spec.js';
+import { messageNotifyTypes } from '../shared/messages/message-spec.js';
import { messageSpecs } from '../shared/messages/message-specs.js';
import {
notifTextsForMessageInfo,
@@ -218,7 +218,7 @@
userPushInfoPromises[userID] = (async () => {
const pushInfosWithoutSubscriptions = await generateNotifUserInfoPromise({
- pushType: pushTypes.NOTIF,
+ messageNotifyType: messageNotifyTypes.NOTIF_AND_SET_UNREAD,
devices: pushUserThreadInfo.devices,
newMessageInfos,
messageDatas,
@@ -240,7 +240,7 @@
userRescindInfoPromises[userID] = (async () => {
const pushInfosWithoutSubscriptions = await generateNotifUserInfoPromise({
- pushType: pushTypes.RESCIND,
+ messageNotifyType: messageNotifyTypes.RESCIND,
devices: pushUserThreadInfo.devices,
newMessageInfos,
messageDatas,
diff --git a/lib/push/utils.js b/lib/push/utils.js
--- a/lib/push/utils.js
+++ b/lib/push/utils.js
@@ -5,7 +5,7 @@
import type { Device, ThreadSubscriptionWithRole } from './send-utils.js';
import { oldValidUsernameRegex } from '../shared/account-utils.js';
import { isUserMentioned } from '../shared/mention-utils.js';
-import { type PushType } from '../shared/messages/message-spec.js';
+import { type MessageNotifyType } from '../shared/messages/message-spec.js';
import { messageSpecs } from '../shared/messages/message-specs.js';
import type { Platform } from '../types/device-types.js';
import { messageTypes } from '../types/message-types-enum.js';
@@ -90,7 +90,7 @@
}
type GenerateNotifUserInfoPromiseInputData = {
- +pushType: PushType,
+ +messageNotifyType: MessageNotifyType,
+devices: $ReadOnlyArray<Device>,
+newMessageInfos: $ReadOnlyArray<RawMessageInfo>,
+messageDatas: $ReadOnlyArray<MessageData>,
@@ -109,7 +109,7 @@
messageInfos: Array<RawMessageInfo>,
}> {
const {
- pushType,
+ messageNotifyType,
devices,
newMessageInfos,
messageDatas,
@@ -139,14 +139,14 @@
}
const { type } = messageInfo;
- const { generatesNotifs } = messageSpecs[type];
+ const { getMessageNotifyType } = messageSpecs[type];
- if (!generatesNotifs) {
+ if (!getMessageNotifyType) {
return undefined;
}
const messageData = messageDatas[messageIndex];
- const doesGenerateNotif = await generatesNotifs(
+ const thisMessageNotifyType = await getMessageNotifyType(
messageInfo,
messageData,
{
@@ -156,7 +156,7 @@
},
);
- return doesGenerateNotif === pushType
+ return thisMessageNotifyType === messageNotifyType
? { messageInfo, messageData }
: undefined;
}),
diff --git a/lib/shared/messages/change-role-message-spec.js b/lib/shared/messages/change-role-message-spec.js
--- a/lib/shared/messages/change-role-message-spec.js
+++ b/lib/shared/messages/change-role-message-spec.js
@@ -6,7 +6,7 @@
type CreateMessageInfoParams,
type MessageSpec,
type NotificationTextsParams,
- pushTypes,
+ messageNotifyTypes,
type RobotextParams,
} from './message-spec.js';
import { joinResult } from './utils.js';
@@ -243,7 +243,7 @@
);
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
canBeSidebarSource: true,
diff --git a/lib/shared/messages/change-settings-message-spec.js b/lib/shared/messages/change-settings-message-spec.js
--- a/lib/shared/messages/change-settings-message-spec.js
+++ b/lib/shared/messages/change-settings-message-spec.js
@@ -5,7 +5,7 @@
import {
type MessageSpec,
type NotificationTextsParams,
- pushTypes,
+ messageNotifyTypes,
type RobotextParams,
} from './message-spec.js';
import { joinResult } from './utils.js';
@@ -190,7 +190,7 @@
);
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
canBeSidebarSource: true,
diff --git a/lib/shared/messages/create-entry-message-spec.js b/lib/shared/messages/create-entry-message-spec.js
--- a/lib/shared/messages/create-entry-message-spec.js
+++ b/lib/shared/messages/create-entry-message-spec.js
@@ -2,7 +2,7 @@
import invariant from 'invariant';
-import { type MessageSpec, pushTypes } from './message-spec.js';
+import { type MessageSpec, messageNotifyTypes } from './message-spec.js';
import { joinResult } from './utils.js';
import { messageTypes } from '../../types/message-types-enum.js';
import type {
@@ -128,7 +128,7 @@
return joinResult(rawMessageInfo.creatorID, rawMessageInfo.entryID);
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
canBeSidebarSource: true,
diff --git a/lib/shared/messages/create-sidebar-message-spec.js b/lib/shared/messages/create-sidebar-message-spec.js
--- a/lib/shared/messages/create-sidebar-message-spec.js
+++ b/lib/shared/messages/create-sidebar-message-spec.js
@@ -6,7 +6,7 @@
type CreateMessageInfoParams,
type MessageSpec,
type NotificationTextsParams,
- pushTypes,
+ messageNotifyTypes,
type RobotextParams,
} from './message-spec.js';
import { joinResult } from './utils.js';
@@ -205,7 +205,7 @@
return joinResult(messageTypes.CREATE_SIDEBAR, rawMessageInfo.threadID);
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
userIDs(
rawMessageInfo: RawCreateSidebarMessageInfo,
diff --git a/lib/shared/messages/create-sub-thread-message-spec.js b/lib/shared/messages/create-sub-thread-message-spec.js
--- a/lib/shared/messages/create-sub-thread-message-spec.js
+++ b/lib/shared/messages/create-sub-thread-message-spec.js
@@ -6,7 +6,7 @@
type CreateMessageInfoParams,
type GeneratesNotifsParams,
type MessageSpec,
- pushTypes,
+ messageNotifyTypes,
} from './message-spec.js';
import { assertSingleMessageInfo } from './utils.js';
import { permissionLookup } from '../../permissions/thread-permissions.js';
@@ -155,15 +155,15 @@
});
},
- generatesNotifs: async (
+ getMessageNotifyType: async (
rawMessageInfo: RawCreateSubthreadMessageInfo,
messageData: CreateSubthreadMessageData,
params: GeneratesNotifsParams,
) => {
const { userNotMemberOfSubthreads } = params;
return userNotMemberOfSubthreads.has(rawMessageInfo.childThreadID)
- ? pushTypes.NOTIF
- : undefined;
+ ? messageNotifyTypes.NOTIF_AND_SET_UNREAD
+ : messageNotifyTypes.SET_UNREAD;
},
threadIDs(
diff --git a/lib/shared/messages/create-thread-message-spec.js b/lib/shared/messages/create-thread-message-spec.js
--- a/lib/shared/messages/create-thread-message-spec.js
+++ b/lib/shared/messages/create-thread-message-spec.js
@@ -5,7 +5,7 @@
import {
type CreateMessageInfoParams,
type MessageSpec,
- pushTypes,
+ messageNotifyTypes,
type RobotextParams,
} from './message-spec.js';
import { assertSingleMessageInfo } from './utils.js';
@@ -205,7 +205,7 @@
};
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
userIDs(rawMessageInfo: RawCreateThreadMessageInfo): $ReadOnlyArray<string> {
return rawMessageInfo.initialThreadState.memberIDs;
diff --git a/lib/shared/messages/delete-entry-message-spec.js b/lib/shared/messages/delete-entry-message-spec.js
--- a/lib/shared/messages/delete-entry-message-spec.js
+++ b/lib/shared/messages/delete-entry-message-spec.js
@@ -2,7 +2,7 @@
import invariant from 'invariant';
-import { type MessageSpec, pushTypes } from './message-spec.js';
+import { type MessageSpec, messageNotifyTypes } from './message-spec.js';
import { assertSingleMessageInfo } from './utils.js';
import { messageTypes } from '../../types/message-types-enum.js';
import type {
@@ -143,7 +143,7 @@
};
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
canBeSidebarSource: true,
diff --git a/lib/shared/messages/edit-entry-message-spec.js b/lib/shared/messages/edit-entry-message-spec.js
--- a/lib/shared/messages/edit-entry-message-spec.js
+++ b/lib/shared/messages/edit-entry-message-spec.js
@@ -2,7 +2,7 @@
import invariant from 'invariant';
-import { type MessageSpec, pushTypes } from './message-spec.js';
+import { type MessageSpec, messageNotifyTypes } from './message-spec.js';
import { joinResult } from './utils.js';
import { messageTypes } from '../../types/message-types-enum.js';
import type {
@@ -128,7 +128,7 @@
return joinResult(rawMessageInfo.creatorID, rawMessageInfo.entryID);
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
canBeSidebarSource: true,
diff --git a/lib/shared/messages/message-spec.js b/lib/shared/messages/message-spec.js
--- a/lib/shared/messages/message-spec.js
+++ b/lib/shared/messages/message-spec.js
@@ -60,11 +60,17 @@
+fetchMessageInfoByID: (messageID: string) => Promise<?RawMessageInfo>,
};
-export const pushTypes = Object.freeze({
- NOTIF: 'notif',
+export const messageNotifyTypes = Object.freeze({
+ // Set the thread as unread and send a push notif
+ NOTIF_AND_SET_UNREAD: 'notif_and_set_unread',
+ // Set the thread as unread but don't send a push notif. This is the default
+ SET_UNREAD: 'set_unread',
+ // Do not set the thread as unread and don't send a push notif
+ NONE: 'none',
+ // Sescind all notifs with a matching notificationCollapseKey
RESCIND: 'rescind',
});
-export type PushType = $Values<typeof pushTypes>;
+export type MessageNotifyType = $Values<typeof messageNotifyTypes>;
export type CreationSideEffectsFunc<RawInfo> = (
messageInfo: RawInfo,
@@ -117,11 +123,11 @@
rawMessageInfo: RawInfo,
messageData: Data,
) => ?string,
- +generatesNotifs?: (
+ +getMessageNotifyType?: (
rawMessageInfo: RawInfo,
messageData: Data,
params: GeneratesNotifsParams,
- ) => Promise<?PushType>,
+ ) => Promise<MessageNotifyType>,
+userIDs?: (rawMessageInfo: RawInfo) => $ReadOnlyArray<string>,
+startsThread?: boolean,
+threadIDs?: (rawMessageInfo: RawInfo) => $ReadOnlyArray<string>,
diff --git a/lib/shared/messages/multimedia-message-spec.js b/lib/shared/messages/multimedia-message-spec.js
--- a/lib/shared/messages/multimedia-message-spec.js
+++ b/lib/shared/messages/multimedia-message-spec.js
@@ -5,7 +5,7 @@
import {
type MessageSpec,
type MessageTitleParam,
- pushTypes,
+ messageNotifyTypes,
type RawMessageInfoFromServerDBRowParams,
} from './message-spec.js';
import { joinResult } from './utils.js';
@@ -354,10 +354,13 @@
);
},
- generatesNotifs: async (
+ getMessageNotifyType: async (
rawMessageInfo: RawMediaMessageInfo | RawImagesMessageInfo,
messageData: MediaMessageData | ImagesMessageData,
- ) => (messageData.sidebarCreation ? undefined : pushTypes.NOTIF),
+ ) =>
+ messageData.sidebarCreation
+ ? messageNotifyTypes.SET_UNREAD
+ : messageNotifyTypes.NOTIF_AND_SET_UNREAD,
includedInRepliesCount: true,
diff --git a/lib/shared/messages/reaction-message-spec.js b/lib/shared/messages/reaction-message-spec.js
--- a/lib/shared/messages/reaction-message-spec.js
+++ b/lib/shared/messages/reaction-message-spec.js
@@ -6,7 +6,7 @@
type GeneratesNotifsParams,
type MessageSpec,
type MessageTitleParam,
- pushTypes,
+ messageNotifyTypes,
} from './message-spec.js';
import { assertSingleMessageInfo, joinResult } from './utils.js';
import type { PlatformDetails } from '../../types/device-types.js';
@@ -200,7 +200,7 @@
);
},
- generatesNotifs: async (
+ getMessageNotifyType: async (
rawMessageInfo: RawReactionMessageInfo,
messageData: ReactionMessageData,
params: GeneratesNotifsParams,
@@ -213,9 +213,11 @@
);
if (targetMessageInfo?.creatorID !== notifTargetUserID) {
- return undefined;
+ return messageNotifyTypes.SET_UNREAD;
}
- return action === 'add_reaction' ? pushTypes.NOTIF : pushTypes.RESCIND;
+ return action === 'add_reaction'
+ ? messageNotifyTypes.NOTIF_AND_SET_UNREAD
+ : messageNotifyTypes.RESCIND;
},
canBeSidebarSource: false,
diff --git a/lib/shared/messages/restore-entry-message-spec.js b/lib/shared/messages/restore-entry-message-spec.js
--- a/lib/shared/messages/restore-entry-message-spec.js
+++ b/lib/shared/messages/restore-entry-message-spec.js
@@ -2,7 +2,7 @@
import invariant from 'invariant';
-import { type MessageSpec, pushTypes } from './message-spec.js';
+import { type MessageSpec, messageNotifyTypes } from './message-spec.js';
import { assertSingleMessageInfo } from './utils.js';
import { messageTypes } from '../../types/message-types-enum.js';
import type {
@@ -143,7 +143,7 @@
};
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
canBeSidebarSource: true,
diff --git a/lib/shared/messages/sidebar-source-message-spec.js b/lib/shared/messages/sidebar-source-message-spec.js
--- a/lib/shared/messages/sidebar-source-message-spec.js
+++ b/lib/shared/messages/sidebar-source-message-spec.js
@@ -3,7 +3,7 @@
import invariant from 'invariant';
import {
- pushTypes,
+ messageNotifyTypes,
type CreateMessageInfoParams,
type MessageSpec,
type RawMessageInfoFromServerDBRowParams,
@@ -141,7 +141,7 @@
return joinResult(messageTypes.CREATE_SIDEBAR, rawMessageInfo.threadID);
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
startsThread: true,
diff --git a/lib/shared/messages/text-message-spec.js b/lib/shared/messages/text-message-spec.js
--- a/lib/shared/messages/text-message-spec.js
+++ b/lib/shared/messages/text-message-spec.js
@@ -6,7 +6,7 @@
import {
type MessageSpec,
type NotificationTextsParams,
- pushTypes,
+ messageNotifyTypes,
type RawMessageInfoFromServerDBRowParams,
} from './message-spec.js';
import { assertSingleMessageInfo, joinResult } from './utils.js';
@@ -289,7 +289,7 @@
return joinResult(messageTypes.CREATE_SIDEBAR, rawMessageInfo.threadID);
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
includedInRepliesCount: true,
diff --git a/lib/shared/messages/unsupported-message-spec.js b/lib/shared/messages/unsupported-message-spec.js
--- a/lib/shared/messages/unsupported-message-spec.js
+++ b/lib/shared/messages/unsupported-message-spec.js
@@ -2,7 +2,7 @@
import invariant from 'invariant';
-import { pushTypes, type MessageSpec } from './message-spec.js';
+import { messageNotifyTypes, type MessageSpec } from './message-spec.js';
import { messageTypes } from '../../types/message-types-enum.js';
import type { ClientDBMessageInfo } from '../../types/message-types.js';
import {
@@ -72,7 +72,7 @@
return ET`${creator} ${messageInfo.robotext}`;
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
canBeSidebarSource: true,
diff --git a/lib/shared/messages/update-relationship-message-spec.js b/lib/shared/messages/update-relationship-message-spec.js
--- a/lib/shared/messages/update-relationship-message-spec.js
+++ b/lib/shared/messages/update-relationship-message-spec.js
@@ -7,7 +7,7 @@
type CreateMessageInfoParams,
type MessageSpec,
type MergeRobotextMessageItemResult,
- pushTypes,
+ messageNotifyTypes,
} from './message-spec.js';
import { assertSingleMessageInfo } from './utils.js';
import type { RobotextChatMessageInfoItem } from '../../selectors/chat-selectors.js';
@@ -349,7 +349,7 @@
return { merged, body, title, prefix };
},
- generatesNotifs: async () => pushTypes.NOTIF,
+ getMessageNotifyType: async () => messageNotifyTypes.NOTIF_AND_SET_UNREAD,
canBeSidebarSource: true,
diff --git a/native/types/message-types-validator.js b/native/types/message-types-validator.js
--- a/native/types/message-types-validator.js
+++ b/native/types/message-types-validator.js
@@ -12,7 +12,7 @@
for (const messageName in messageTypes) {
const messageType = messageTypes[messageName];
if (
- messageSpecs[messageType]?.generatesNotifs &&
+ messageSpecs[messageType]?.getMessageNotifyType &&
!messageTypesCpp.has(messageType)
) {
missingMessageTypesCpp.push(messageName);

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 7, 1:04 AM (7 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5841815
Default Alt Text
D14334.1765069464.diff (17 KB)

Event Timeline