@cometchat/chat-uikit-react
Version:
Ready-to-use Chat UI Components for React
67 lines (64 loc) • 2.34 kB
JavaScript
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 };