UNPKG

@sendbird/uikit-react

Version:

Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.

152 lines (145 loc) 10.1 kB
'use strict'; var _tslib = require('./bundle-Conb-pOy.js'); var React = require('react'); var index$1 = require('./bundle-CHAKEXIJ.js'); var ui_Icon = require('../ui/Icon.js'); var ui_Label = require('./bundle-zgmRG2KL.js'); var ui_Loader = require('../ui/Loader.js'); var index$2 = require('./bundle-fYxs1lss.js'); var utils_message_getOutgoingMessageState = require('../utils/message/getOutgoingMessageState.js'); var index = require('./bundle-ptQgj0WJ.js'); var LocalizationContext = require('./bundle-DPDyqKIJ.js'); var utils = require('./bundle-CkQrhwR6.js'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefaultCompat(React); var getChannelTitle = function (channel, currentUserId, stringSet) { var _a; if (stringSet === void 0) { stringSet = ui_Label.LabelStringSet; } if (!(channel === null || channel === void 0 ? void 0 : channel.name) && !(channel === null || channel === void 0 ? void 0 : channel.members)) { return stringSet.NO_TITLE; } if (!index$2.isDefaultChannelName(channel)) { return channel.name; } if (((_a = channel === null || channel === void 0 ? void 0 : channel.members) === null || _a === void 0 ? void 0 : _a.length) === 1) { return stringSet.NO_MEMBERS; } return ((channel === null || channel === void 0 ? void 0 : channel.members) || []) .filter(function (_a) { var userId = _a.userId; return userId !== currentUserId; }) .map(function (_a) { var nickname = _a.nickname; return nickname || stringSet.NO_NAME; }) .join(', '); }; var getLastMessageCreatedAt = function (_a) { var _b; var channel = _a.channel, locale = _a.locale, _c = _a.stringSet, stringSet = _c === void 0 ? ui_Label.LabelStringSet : _c; var createdAt = (_b = channel === null || channel === void 0 ? void 0 : channel.lastMessage) === null || _b === void 0 ? void 0 : _b.createdAt; var optionalParam = locale ? { locale: locale } : null; if (!createdAt) { return ''; } if (index.isToday(createdAt)) { return index$1.format(createdAt, stringSet.DATE_FORMAT__LAST_MESSAGE_CREATED_AT__TODAY, optionalParam); } if (index.isYesterday(createdAt)) { return stringSet.MESSAGE_STATUS__YESTERDAY || 'Yesterday'; } if (index.isThisYear(createdAt)) { return index$1.format(createdAt, stringSet.DATE_FORMAT__LAST_MESSAGE_CREATED_AT__THIS_YEAR, optionalParam); } return index$1.format(createdAt, stringSet.DATE_FORMAT__LAST_MESSAGE_CREATED_AT__PREVIOUS_YEAR, optionalParam); }; var getTotalMembers = function (channel) { return ((channel === null || channel === void 0 ? void 0 : channel.memberCount) ? channel.memberCount : 0); }; var getChannelPreviewFileDisplayString = function (mimeType, stringSet) { var _a, _b, _c, _d, _e, _f; if (stringSet === void 0) { stringSet = ui_Label.LabelStringSet; } if (index$2.isGif(mimeType)) { return (_a = stringSet === null || stringSet === void 0 ? void 0 : stringSet.CHANNEL_PREVIEW_LAST_MESSAGE_FILE_TYPE_GIF) !== null && _a !== void 0 ? _a : ''; } if (index$2.isImage(mimeType)) { return (_b = stringSet === null || stringSet === void 0 ? void 0 : stringSet.CHANNEL_PREVIEW_LAST_MESSAGE_FILE_TYPE_PHOTO) !== null && _b !== void 0 ? _b : ''; } if (index$2.isVideo(mimeType)) { return (_c = stringSet === null || stringSet === void 0 ? void 0 : stringSet.CHANNEL_PREVIEW_LAST_MESSAGE_FILE_TYPE_VIDEO) !== null && _c !== void 0 ? _c : ''; } if (index$2.isAudio(mimeType)) { return (_d = stringSet === null || stringSet === void 0 ? void 0 : stringSet.CHANNEL_PREVIEW_LAST_MESSAGE_FILE_TYPE_AUDIO) !== null && _d !== void 0 ? _d : ''; } if (index$2.isVoiceMessageMimeType(mimeType)) { return (_e = stringSet === null || stringSet === void 0 ? void 0 : stringSet.CHANNEL_PREVIEW_LAST_MESSAGE_FILE_TYPE_VOICE_MESSAGE) !== null && _e !== void 0 ? _e : ''; } return (_f = stringSet === null || stringSet === void 0 ? void 0 : stringSet.CHANNEL_PREVIEW_LAST_MESSAGE_FILE_TYPE_GENERAL) !== null && _f !== void 0 ? _f : ''; }; var getPrettyLastMessage = function (message, stringSet) { var _a, _b, _c, _d; if (message === void 0) { message = null; } if (stringSet === void 0) { stringSet = ui_Label.LabelStringSet; } if (!message) return ''; if (index$2.isTemplateMessage(message)) { return stringSet.CHANNEL_PREVIEW_LAST_MESSAGE_TEMPLATE_MESSAGE; } if (message.isFileMessage()) { return getChannelPreviewFileDisplayString(message.type, stringSet); } if (message.isMultipleFilesMessage()) { var mimeType = (_b = (_a = message.fileInfoList) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.mimeType; if (index$2.isImage(mimeType) || index$2.isGif(mimeType)) { return (_c = stringSet === null || stringSet === void 0 ? void 0 : stringSet.CHANNEL_PREVIEW_LAST_MESSAGE_FILE_TYPE_PHOTO) !== null && _c !== void 0 ? _c : ''; } return getChannelPreviewFileDisplayString(mimeType, stringSet); } return (_d = message.message) !== null && _d !== void 0 ? _d : ''; }; var getLastMessageText = function (channel, stringSet) { if (stringSet === void 0) { stringSet = ui_Label.LabelStringSet; } return (channel === null || channel === void 0 ? void 0 : channel.lastMessage) ? getPrettyLastMessage(channel === null || channel === void 0 ? void 0 : channel.lastMessage, stringSet) : ''; }; var getChannelUnreadMessageCount = function (channel) { return (channel === null || channel === void 0 ? void 0 : channel.unreadMessageCount) ? channel.unreadMessageCount : 0; }; var _a, _b; var MessageStatusTypes = utils_message_getOutgoingMessageState.OutgoingMessageStates; var iconType = (_a = {}, _a[utils_message_getOutgoingMessageState.OutgoingMessageStates.SENT] = ui_Icon.IconTypes.DONE, _a[utils_message_getOutgoingMessageState.OutgoingMessageStates.DELIVERED] = ui_Icon.IconTypes.DONE_ALL, _a[utils_message_getOutgoingMessageState.OutgoingMessageStates.READ] = ui_Icon.IconTypes.DONE_ALL, _a[utils_message_getOutgoingMessageState.OutgoingMessageStates.FAILED] = ui_Icon.IconTypes.ERROR, _a[utils_message_getOutgoingMessageState.OutgoingMessageStates.PENDING] = undefined, _a[utils_message_getOutgoingMessageState.OutgoingMessageStates.NONE] = undefined, _a); var iconColor = (_b = {}, _b[utils_message_getOutgoingMessageState.OutgoingMessageStates.SENT] = ui_Icon.IconColors.SENT, _b[utils_message_getOutgoingMessageState.OutgoingMessageStates.DELIVERED] = ui_Icon.IconColors.SENT, _b[utils_message_getOutgoingMessageState.OutgoingMessageStates.READ] = ui_Icon.IconColors.READ, _b[utils_message_getOutgoingMessageState.OutgoingMessageStates.FAILED] = ui_Icon.IconColors.ERROR, _b[utils_message_getOutgoingMessageState.OutgoingMessageStates.PENDING] = undefined, _b[utils_message_getOutgoingMessageState.OutgoingMessageStates.NONE] = undefined, _b); function MessageStatus(_a) { var _b; var className = _a.className, message = _a.message, channel = _a.channel, _c = _a.isDateSeparatorConsidered, isDateSeparatorConsidered = _c === void 0 ? true : _c; var _d = LocalizationContext.useLocalization(), stringSet = _d.stringSet, dateLocale = _d.dateLocale; var status = utils_message_getOutgoingMessageState.getOutgoingMessageState(channel, message); var hideMessageStatusIcon = ((_b = channel === null || channel === void 0 ? void 0 : channel.isGroupChannel) === null || _b === void 0 ? void 0 : _b.call(channel)) && ((channel.isSuper || channel.isPublic || channel.isBroadcast) && !(status === utils_message_getOutgoingMessageState.OutgoingMessageStates.PENDING || status === utils_message_getOutgoingMessageState.OutgoingMessageStates.FAILED)); return (React__default.default.createElement("div", { className: _tslib.__spreadArray(_tslib.__spreadArray([], (Array.isArray(className) ? className : [className]), true), [ 'sendbird-message-status', ], false).join(' ') }, (status === utils_message_getOutgoingMessageState.OutgoingMessageStates.PENDING) ? (React__default.default.createElement(ui_Loader, { className: "sendbird-message-status__icon", testID: "sendbird-message-status-icon", width: "16px", height: "16px" }, React__default.default.createElement(ui_Icon.default, { type: ui_Icon.IconTypes.SPINNER, fillColor: ui_Icon.IconColors.PRIMARY, width: "16px", height: "16px" }))) : (React__default.default.createElement(ui_Icon.default, { className: utils.classnames('sendbird-message-status__icon', hideMessageStatusIcon && 'hide-icon', status !== utils_message_getOutgoingMessageState.OutgoingMessageStates.FAILED && 'sendbird-message-status--sent'), testID: "sendbird-message-status-icon", type: iconType[status] || ui_Icon.IconTypes.ERROR, fillColor: iconColor[status], width: "16px", height: "16px" })), index$2.isSentStatus(status) && (React__default.default.createElement(ui_Label.Label, { className: "sendbird-message-status__text", testID: "sendbird-message-status-text", type: ui_Label.LabelTypography.CAPTION_3, color: ui_Label.LabelColors.ONBACKGROUND_2 }, isDateSeparatorConsidered ? index$1.format((message === null || message === void 0 ? void 0 : message.createdAt) || 0, stringSet.DATE_FORMAT__MESSAGE_CREATED_AT, { locale: dateLocale }) : getLastMessageCreatedAt({ channel: channel, locale: dateLocale, stringSet: stringSet }))))); } exports.MessageStatus = MessageStatus; exports.MessageStatusTypes = MessageStatusTypes; exports.getChannelTitle = getChannelTitle; exports.getChannelUnreadMessageCount = getChannelUnreadMessageCount; exports.getLastMessageCreatedAt = getLastMessageCreatedAt; exports.getLastMessageText = getLastMessageText; exports.getTotalMembers = getTotalMembers; //# sourceMappingURL=bundle-DO5FgbkI.js.map