UNPKG

@cometchat/chat-uikit-react

Version:

Ready-to-use Chat UI Components for React

67 lines (64 loc) 2.34 kB
import './index.css'; import { STICKERS_CONSTANTS } from './chunk-TNRMDFEG.js'; import { getBubbleAlignment } from './chunk-PXEKTS5H.js'; import { useLoggedInUser } from './chunk-UKFBODV7.js'; import { jsx } from 'react/jsx-runtime'; // src/components/CometChatStickerBubble/CometChatStickerBubble.utils.ts var DEFAULT_STICKER_NAME = "Sticker"; function extractStickerUrl(message) { if (!message) return ""; try { const metadata = message.getMetadata(); if (metadata) { const data = metadata.data; const urlFromData = data?.[STICKERS_CONSTANTS.stickerUrlKey]; if (typeof urlFromData === "string") return urlFromData; const urlFromMeta = metadata[STICKERS_CONSTANTS.stickerUrlKey]; if (typeof urlFromMeta === "string") return urlFromMeta; } const customData = message.getCustomData(); const urlFromCustom = customData?.[STICKERS_CONSTANTS.stickerUrlKey]; if (typeof urlFromCustom === "string") return urlFromCustom; return ""; } catch { return ""; } } function extractStickerName(message) { if (!message) return DEFAULT_STICKER_NAME; try { const customData = message.getCustomData(); const name = customData?.[STICKERS_CONSTANTS.stickerNameKey]; return typeof name === "string" ? name : DEFAULT_STICKER_NAME; } catch { return DEFAULT_STICKER_NAME; } } var CometChatStickerBubble = ({ message, alignment, className }) => { const loggedInUser = useLoggedInUser(); const stickerUrl = extractStickerUrl(message); const stickerName = extractStickerName(message); const variant = (alignment ?? getBubbleAlignment(message, loggedInUser)) === "right" ? "outgoing" : "incoming"; const rootClasses = [ "cometchat-sticker-bubble", `cometchat-sticker-bubble--${variant}`, className ].filter(Boolean).join(" "); return /* @__PURE__ */ jsx("div", { className: rootClasses, role: "img", "aria-label": stickerName, children: stickerUrl && /* @__PURE__ */ jsx( "img", { className: "cometchat-sticker-bubble__image", src: stickerUrl, alt: stickerName, loading: "lazy", decoding: "async" } ) }); }; CometChatStickerBubble.displayName = "CometChatStickerBubble"; var CometChatStickerBubble_default = CometChatStickerBubble; export { CometChatStickerBubble, CometChatStickerBubble_default };