Page MenuHomePhorge

D14511.1768464874.diff
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

D14511.1768464874.diff

diff --git a/lib/shared/messages/delete-message-spec.js b/lib/shared/messages/delete-message-spec.js
--- a/lib/shared/messages/delete-message-spec.js
+++ b/lib/shared/messages/delete-message-spec.js
@@ -2,7 +2,8 @@
import invariant from 'invariant';
-import type { MessageSpec } from './message-spec.js';
+import type { MessageSpec, MessageTitleParam } from './message-spec.js';
+import type { PlatformDetails } from '../../types/device-types.js';
import {
assertMessageType,
messageTypes,
@@ -14,13 +15,43 @@
RawDeleteMessageInfo,
} from '../../types/messages/delete.js';
import { rawDeleteMessageInfoValidator } from '../../types/messages/delete.js';
+import type { RawUnsupportedMessageInfo } from '../../types/messages/unsupported.js';
import type { RelativeUserInfo } from '../../types/user-types.js';
+import { ET } from '../../utils/entity-text.js';
+import { FUTURE_CODE_VERSION, hasMinCodeVersion } from '../version-utils.js';
export const deleteMessageSpec: MessageSpec<
DeleteMessageData,
RawDeleteMessageInfo,
DeleteMessageInfo,
> = Object.freeze({
+ messageContentForClientDB(data: RawDeleteMessageInfo): string {
+ return JSON.stringify({
+ targetMessageID: data.targetMessageID,
+ });
+ },
+
+ messageTitle({ messageInfo }: MessageTitleParam<DeleteMessageInfo>) {
+ const creator = ET.user({ userInfo: messageInfo.creator });
+ return ET`${creator} deleted a message`;
+ },
+
+ rawMessageInfoFromServerDBRow(row: Object): RawDeleteMessageInfo {
+ invariant(
+ row.targetMessageID !== null && row.targetMessageID !== undefined,
+ 'targetMessageID should be set',
+ );
+
+ return {
+ type: messageTypes.DELETE_MESSAGE,
+ id: row.id.toString(),
+ threadID: row.threadID.toString(),
+ time: row.time,
+ creatorID: row.creatorID.toString(),
+ targetMessageID: row.targetMessageID.toString(),
+ };
+ },
+
rawMessageInfoFromClientDB(
clientDBMessageInfo: ClientDBMessageInfo,
): RawDeleteMessageInfo {
@@ -60,7 +91,49 @@
};
},
+ rawMessageInfoFromMessageData(
+ messageData: DeleteMessageData,
+ id: ?string,
+ ): RawDeleteMessageInfo {
+ invariant(id, 'RawDeleteMessageInfo needs id');
+ return { ...messageData, id };
+ },
+
+ shimUnsupportedMessageInfo(
+ rawMessageInfo: RawDeleteMessageInfo,
+ platformDetails: ?PlatformDetails,
+ ): RawDeleteMessageInfo | RawUnsupportedMessageInfo {
+ if (
+ hasMinCodeVersion(platformDetails, {
+ native: FUTURE_CODE_VERSION,
+ web: FUTURE_CODE_VERSION,
+ })
+ ) {
+ return rawMessageInfo;
+ }
+ const { id } = rawMessageInfo;
+ invariant(id !== null && id !== undefined, 'id should be set on server');
+
+ return {
+ type: messageTypes.UNSUPPORTED,
+ id,
+ threadID: rawMessageInfo.threadID,
+ creatorID: rawMessageInfo.creatorID,
+ time: rawMessageInfo.time,
+ robotext: 'deleted a message',
+ unsupportedMessageInfo: rawMessageInfo,
+ };
+ },
+
+ unshimMessageInfo(unwrapped: RawDeleteMessageInfo): RawDeleteMessageInfo {
+ return unwrapped;
+ },
+
canBeSidebarSource: false,
+
canBePinned: false,
+
+ canBeRenderedIndependently: false,
+
validator: rawDeleteMessageInfoValidator,
});

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 15, 8:14 AM (11 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5936880
Default Alt Text
D14511.1768464874.diff (3 KB)

Event Timeline