diff --git a/lib/shared/messages/add-members-message-spec.js b/lib/shared/messages/add-members-message-spec.js --- a/lib/shared/messages/add-members-message-spec.js +++ b/lib/shared/messages/add-members-message-spec.js @@ -21,11 +21,8 @@ pluralizeEntityText, } from '../../utils/entity-text'; import { values } from '../../utils/objects'; -import type { - CreateMessageInfoParams, - MessageSpec, - NotificationTextsParams, -} from './message-spec'; +import { notifRobotextForMessageInfo } from '../notif-utils'; +import type { CreateMessageInfoParams, MessageSpec } from './message-spec'; import { joinResult } from './utils'; export const addMembersMessageSpec: MessageSpec< @@ -114,7 +111,6 @@ async notificationTexts( messageInfos: $ReadOnlyArray, threadInfo: ThreadInfo, - params: NotificationTextsParams, ): Promise { const addedMembersObject = {}; for (const messageInfo of messageInfos) { @@ -135,11 +131,11 @@ ); const mergedMessageInfo = { ...mostRecentMessageInfo, addedMembers }; - const robotext = params.strippedRobotextForMessageInfo( - mergedMessageInfo, + const robotext = notifRobotextForMessageInfo(mergedMessageInfo, threadInfo); + const merged = ET`${robotext} to ${ET.thread({ + display: 'shortName', threadInfo, - ); - const merged = `${robotext} to ${params.notifThreadName(threadInfo)}`; + })}`; return { merged, title: threadInfo.uiName, 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 @@ -21,11 +21,11 @@ pluralizeEntityText, } from '../../utils/entity-text'; import { values } from '../../utils/objects'; +import { notifRobotextForMessageInfo } from '../notif-utils'; import { pushTypes, type CreateMessageInfoParams, type MessageSpec, - type NotificationTextsParams, type RobotextParams, } from './message-spec'; import { joinResult } from './utils'; @@ -132,7 +132,6 @@ async notificationTexts( messageInfos: $ReadOnlyArray, threadInfo: ThreadInfo, - params: NotificationTextsParams, ): Promise { const membersObject = {}; for (const messageInfo of messageInfos) { @@ -153,11 +152,11 @@ ); const mergedMessageInfo = { ...mostRecentMessageInfo, members }; - const robotext = params.strippedRobotextForMessageInfo( - mergedMessageInfo, + const robotext = notifRobotextForMessageInfo(mergedMessageInfo, threadInfo); + const merged = ET`${robotext} of ${ET.thread({ + display: 'shortName', threadInfo, - ); - const merged = `${robotext} from ${params.notifThreadName(threadInfo)}`; + })}`; return { merged, title: threadInfo.uiName, 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 @@ -18,12 +18,9 @@ import type { RelativeUserInfo } from '../../types/user-types'; import { ET, type EntityText } from '../../utils/entity-text'; import { validHexColorRegex } from '../account-utils'; +import { notifRobotextForMessageInfo } from '../notif-utils'; import { threadLabel } from '../thread-utils'; -import { - pushTypes, - type MessageSpec, - type NotificationTextsParams, -} from './message-spec'; +import { pushTypes, type MessageSpec } from './message-spec'; import { joinResult } from './utils'; export const changeSettingsMessageSpec: MessageSpec< @@ -140,17 +137,13 @@ async notificationTexts( messageInfos: $ReadOnlyArray, threadInfo: ThreadInfo, - params: NotificationTextsParams, ): Promise { const mostRecentMessageInfo = messageInfos[0]; invariant( mostRecentMessageInfo.type === messageTypes.CHANGE_SETTINGS, 'messageInfo should be messageTypes.CHANGE_SETTINGS!', ); - const body = params.strippedRobotextForMessageInfo( - mostRecentMessageInfo, - threadInfo, - ); + const body = notifRobotextForMessageInfo(mostRecentMessageInfo, threadInfo); return { merged: body, title: threadInfo.uiName, 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 @@ -8,7 +8,6 @@ RawComposableMessageInfo, RawMessageInfo, RawRobotextMessageInfo, - RobotextMessageInfo, } from '../../types/message-types'; import type { RawUnsupportedMessageInfo } from '../../types/messages/unsupported'; import type { NotifTexts } from '../../types/notif-types'; @@ -53,10 +52,6 @@ childThreadName: ?string, childThreadUIName: string, ) => NotifTexts, - +strippedRobotextForMessageInfo: ( - messageInfo: RobotextMessageInfo, - threadInfo: ThreadInfo, - ) => string, +notificationTexts: ( messageInfos: $ReadOnlyArray, threadInfo: ThreadInfo, diff --git a/lib/shared/messages/remove-members-message-spec.js b/lib/shared/messages/remove-members-message-spec.js --- a/lib/shared/messages/remove-members-message-spec.js +++ b/lib/shared/messages/remove-members-message-spec.js @@ -21,11 +21,8 @@ pluralizeEntityText, } from '../../utils/entity-text'; import { values } from '../../utils/objects'; -import type { - CreateMessageInfoParams, - MessageSpec, - NotificationTextsParams, -} from './message-spec'; +import { notifRobotextForMessageInfo } from '../notif-utils'; +import type { CreateMessageInfoParams, MessageSpec } from './message-spec'; import { joinResult } from './utils'; export const removeMembersMessageSpec: MessageSpec< @@ -114,7 +111,6 @@ async notificationTexts( messageInfos: $ReadOnlyArray, threadInfo: ThreadInfo, - params: NotificationTextsParams, ): Promise { const removedMembersObject = {}; for (const messageInfo of messageInfos) { @@ -135,11 +131,11 @@ ); const mergedMessageInfo = { ...mostRecentMessageInfo, removedMembers }; - const robotext = params.strippedRobotextForMessageInfo( - mergedMessageInfo, + const robotext = notifRobotextForMessageInfo(mergedMessageInfo, threadInfo); + const merged = ET`${robotext} from ${ET.thread({ + display: 'shortName', threadInfo, - ); - const merged = `${robotext} from ${params.notifThreadName(threadInfo)}`; + })}`; return { merged, title: threadInfo.uiName, diff --git a/lib/shared/notif-utils.js b/lib/shared/notif-utils.js --- a/lib/shared/notif-utils.js +++ b/lib/shared/notif-utils.js @@ -13,8 +13,8 @@ import type { RelativeUserInfo } from '../types/user-types'; import type { GetENSNames } from '../utils/ens-helpers'; import { + ET, getEntityTextAsString, - entityTextToRawString, type EntityText, } from '../utils/entity-text'; import { promiseAll } from '../utils/promises'; @@ -111,7 +111,6 @@ { notifThreadName, notifTextForSubthreadCreation, - strippedRobotextForMessageInfo, notificationTexts: innerNotificationTexts, }, ); @@ -145,23 +144,25 @@ return await promiseAll(promises); } -function strippedRobotextForMessageInfo( +function notifRobotextForMessageInfo( messageInfo: RobotextMessageInfo, threadInfo: ThreadInfo, -): string { +): EntityText { const robotext = robotextForMessageInfo(messageInfo, threadInfo); - const threadName = notifThreadName(threadInfo); - const threadMadeExplicit = robotext.map(entity => { + return robotext.map(entity => { if ( typeof entity !== 'string' && entity.type === 'thread' && entity.id === threadInfo.id ) { - return threadName; + return ET.thread({ + display: 'shortName', + threadInfo, + possessive: entity.possessive, + }); } return entity; }); - return entityTextToRawString(threadMadeExplicit); } function notifCollapseKeyForRawMessageInfo( @@ -188,6 +189,7 @@ } export { + notifRobotextForMessageInfo, notifTextsForMessageInfo, notifCollapseKeyForRawMessageInfo, mergePrefixIntoBody,