UNPKG

@cometchat/chat-uikit-react-native

Version:

Ready-to-use Chat UI Components for React Native

33 lines (25 loc) 1.23 kB
import { MessageReceipt } from "../constants/UIKitConstants"; import { CometChat } from "@cometchat/chat-sdk-react-native"; import { getModerationStatus } from "./MessageUtils"; /** * Utility helper for deriving a message receipt status from a BaseMessage instance. */ export const MessageReceiptUtils = { getReceiptStatus(message: CometChat.BaseMessage | undefined): MessageReceipt { if (!message) return MessageReceipt.WAIT; // Moderation status (if available) const moderationStatus = getModerationStatus(message); if (moderationStatus === "disapproved") return MessageReceipt.ERROR; if (moderationStatus === "pending") return MessageReceipt.WAIT; // Explicit error markers const hasError = (message as any)?.error || (message as any)?.metadata?.error; if (hasError) return MessageReceipt.ERROR; // Deleted messages treated as error for receipts if ((message as any)?.deletedAt) return MessageReceipt.ERROR; if ((message as any)?.readAt) return MessageReceipt.READ; if ((message as any)?.deliveredAt) return MessageReceipt.DELIVERED; if ((message as any)?.sentAt) return MessageReceipt.SENT; return MessageReceipt.WAIT; }, }; export default MessageReceiptUtils;