Page MenuHomePhabricator

D13158.id.diff
No OneTemporary

D13158.id.diff

diff --git a/lib/shared/chat-utils.js b/lib/shared/chat-utils.js
new file mode 100644
--- /dev/null
+++ b/lib/shared/chat-utils.js
@@ -0,0 +1,32 @@
+// @flow
+
+import type { LocalMessageInfo } from '../types/message-types.js';
+import type { TextMessageInfo } from '../types/messages/text.js';
+
+function textMessageSendFailed(
+ messageInfo: TextMessageInfo,
+ localMessageInfo: ?LocalMessageInfo,
+): boolean {
+ const {
+ id,
+ creator: { isViewer },
+ } = messageInfo;
+
+ if (!isViewer || !localMessageInfo || !localMessageInfo.sendFailed) {
+ return false;
+ }
+
+ if (
+ localMessageInfo.outboundP2PMessageIDs &&
+ localMessageInfo.outboundP2PMessageIDs.length > 0
+ ) {
+ // DM message
+ return true;
+ } else if (id === null || id === undefined) {
+ return true;
+ }
+
+ return false;
+}
+
+export { textMessageSendFailed };
diff --git a/native/chat/text-message-send-failed.js b/native/chat/text-message-send-failed.js
--- a/native/chat/text-message-send-failed.js
+++ b/native/chat/text-message-send-failed.js
@@ -1,18 +1,12 @@
// @flow
+import { textMessageSendFailed as sharedTextMessageSendFailed } from 'lib/shared/chat-utils.js';
+
import type { ChatTextMessageInfoItemWithHeight } from '../types/chat-types.js';
export default function textMessageSendFailed(
item: ChatTextMessageInfoItemWithHeight,
): boolean {
- const {
- id,
- creator: { isViewer },
- } = item.messageInfo;
- return !!(
- isViewer &&
- (id === null || id === undefined) &&
- item.localMessageInfo &&
- item.localMessageInfo.sendFailed
- );
+ const { messageInfo, localMessageInfo } = item;
+ return sharedTextMessageSendFailed(messageInfo, localMessageInfo);
}
diff --git a/web/chat/text-message-send-failed.js b/web/chat/text-message-send-failed.js
--- a/web/chat/text-message-send-failed.js
+++ b/web/chat/text-message-send-failed.js
@@ -1,21 +1,17 @@
// @flow
import type { ChatMessageInfoItem } from 'lib/selectors/chat-selectors.js';
+import { textMessageSendFailed as sharedTextMessageSendFailed } from 'lib/shared/chat-utils.js';
import { messageTypes } from 'lib/types/message-types-enum.js';
export default function textMessageSendFailed(
item: ChatMessageInfoItem,
): boolean {
- const {
- id,
- creator: { isViewer },
- type,
- } = item.messageInfo;
- return !!(
- isViewer &&
- type === messageTypes.TEXT &&
- (id === null || id === undefined) &&
- item.localMessageInfo &&
- item.localMessageInfo.sendFailed
- );
+ const { messageInfo, localMessageInfo } = item;
+
+ if (messageInfo.type !== messageTypes.TEXT) {
+ return false;
+ }
+
+ return sharedTextMessageSendFailed(messageInfo, localMessageInfo);
}

File Metadata

Mime Type
text/plain
Expires
Thu, Sep 19, 5:57 PM (15 m, 30 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2141331
Default Alt Text
D13158.id.diff (2 KB)

Event Timeline