UNPKG

@sendbird/uikit-react

Version:

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

91 lines (85 loc) 5.5 kB
'use strict'; var _tslib = require('../chunks/bundle-Conb-pOy.js'); var React = require('react'); var ui_Label = require('../chunks/bundle-zgmRG2KL.js'); var ui_Icon = require('./Icon.js'); var ui_TextButton = require('./TextButton.js'); var index = require('../chunks/bundle-fYxs1lss.js'); var color = require('../chunks/bundle-DurllD3r.js'); var MediaQueryContext = require('../chunks/bundle-Fv6PNPGZ.js'); var utils = require('../chunks/bundle-CkQrhwR6.js'); var useSendbird = require('../chunks/bundle-Bq15P9qk.js'); require('../chunks/bundle-BbrBawlX.js'); require('@sendbird/chat/groupChannel'); require('../utils/message/getOutgoingMessageState.js'); require('../chunks/bundle-DAdgL6r8.js'); require('../chunks/bundle-Dobj18FB.js'); require('../chunks/bundle-CVJwHwWn.js'); require('../chunks/bundle-Cfh78Xnm.js'); require('../chunks/bundle-B19RHFpR.js'); require('@sendbird/chat'); require('@sendbird/chat/openChannel'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefaultCompat(React); function FileMessageItemBody(_a) { var _this = this; var _b; var _c = _a.className, className = _c === void 0 ? '' : _c, message = _a.message, _d = _a.isByMe, isByMe = _d === void 0 ? false : _d, _e = _a.mouseHover, mouseHover = _e === void 0 ? false : _e, _f = _a.isReactionEnabled, isReactionEnabled = _f === void 0 ? false : _f, truncateLimit = _a.truncateLimit, onBeforeDownloadFileMessage = _a.onBeforeDownloadFileMessage; var logger = null; try { var globalLogger = useSendbird.useSendbird().state.config.logger; logger = globalLogger; } catch (err) { // TODO: Handle error } var isMobile = MediaQueryContext.useMediaQueryContext().isMobile; var truncateMaxNum = truncateLimit !== null && truncateLimit !== void 0 ? truncateLimit : (isMobile ? 20 : undefined); var downloadFileWithUrl = function () { return utils.openURL(message === null || message === void 0 ? void 0 : message.url); }; var handleOnClickTextButton = onBeforeDownloadFileMessage ? function () { return _tslib.__awaiter(_this, void 0, void 0, function () { var allowDownload, err_1; var _a, _b; return _tslib.__generator(this, function (_c) { switch (_c.label) { case 0: _c.trys.push([0, 2, , 3]); return [4 /*yield*/, onBeforeDownloadFileMessage({ message: message })]; case 1: allowDownload = _c.sent(); if (allowDownload) { downloadFileWithUrl(); } else { (_a = logger === null || logger === void 0 ? void 0 : logger.info) === null || _a === void 0 ? void 0 : _a.call(logger, 'FileMessageItemBody: Not allowed to download.'); } return [3 /*break*/, 3]; case 2: err_1 = _c.sent(); (_b = logger === null || logger === void 0 ? void 0 : logger.error) === null || _b === void 0 ? void 0 : _b.call(logger, 'FileMessageItemBody: Error occurred while determining download continuation:', err_1); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); } : downloadFileWithUrl; return (React__default.default.createElement("div", { className: index.getClassName([ className, 'sendbird-file-message-item-body', isByMe ? 'outgoing' : 'incoming', mouseHover ? 'mouse-hover' : '', (isReactionEnabled && ((_b = message === null || message === void 0 ? void 0 : message.reactions) === null || _b === void 0 ? void 0 : _b.length) > 0) ? 'reactions' : '', ]) }, React__default.default.createElement("div", { className: "sendbird-file-message-item-body__file-icon" }, React__default.default.createElement(ui_Icon.default, { className: "sendbird-file-message-item-body__file-icon__icon", type: { IMAGE: ui_Icon.IconTypes.PHOTO, VIDEO: ui_Icon.IconTypes.PLAY, AUDIO: ui_Icon.IconTypes.FILE_AUDIO, GIF: ui_Icon.IconTypes.GIF, OTHERS: ui_Icon.IconTypes.FILE_DOCUMENT, }[index.getUIKitFileType(message === null || message === void 0 ? void 0 : message.type)], fillColor: ui_Icon.IconColors.PRIMARY, width: "24px", height: "24px" })), React__default.default.createElement(ui_TextButton, { className: "sendbird-file-message-item-body__file-name", onClick: handleOnClickTextButton, color: isByMe ? color.Colors.ONCONTENT_1 : color.Colors.ONBACKGROUND_1 }, React__default.default.createElement(ui_Label.Label, { className: "sendbird-file-message-item-body__file-name__text", testID: "sendbird-file-message-item-body__file-name__text", type: ui_Label.LabelTypography.BODY_1, color: isByMe ? ui_Label.LabelColors.ONCONTENT_1 : ui_Label.LabelColors.ONBACKGROUND_1 }, index.truncateString((message === null || message === void 0 ? void 0 : message.name) || (message === null || message === void 0 ? void 0 : message.url), truncateMaxNum))))); } module.exports = FileMessageItemBody; //# sourceMappingURL=FileMessageItemBody.js.map