From e99dc00f09bb2648c306b863c24bbb7764c9977a Mon Sep 17 00:00:00 2001 From: Sravan S Date: Wed, 9 Dec 2020 21:32:23 +0900 Subject: [PATCH 1/2] V2.0.0-alpha.0 with treeshaking --- .DS_Store | Bin 6148 -> 6148 bytes .gitignore | 20 + dist/cjs/App.js | 150 + dist/cjs/App.js.map | 1 + dist/cjs/Channel.js | 5525 ++++++++++++++++++ dist/cjs/Channel.js.map | 1 + dist/cjs/ChannelList.js | 1498 +++++ dist/cjs/ChannelList.js.map | 1 + dist/cjs/ChannelSettings.js | 2069 +++++++ dist/cjs/ChannelSettings.js.map | 1 + dist/cjs/LeaveChannel-cb2a36b0.js | 301 + dist/cjs/LeaveChannel-cb2a36b0.js.map | 1 + dist/cjs/LocalizationContext-7c9df62c.js | 383 ++ dist/cjs/LocalizationContext-7c9df62c.js.map | 1 + dist/cjs/OpenChannel.js | 2744 +++++++++ dist/cjs/OpenChannel.js.map | 1 + dist/cjs/OpenChannelSettings.js | 669 +++ dist/cjs/OpenChannelSettings.js.map | 1 + dist/cjs/SendbirdProvider.css | 3843 ++++++++++++ dist/cjs/SendbirdProvider.css.map | 1 + dist/cjs/SendbirdProvider.js | 716 +++ dist/cjs/SendbirdProvider.js.map | 1 + dist/cjs/actionTypes-920b541f.js | 10 + dist/cjs/actionTypes-920b541f.js.map | 1 + dist/cjs/index-64dcc5d9.js | 48 + dist/cjs/index-64dcc5d9.js.map | 1 + dist/cjs/index-6ca9e95e.js | 259 + dist/cjs/index-6ca9e95e.js.map | 1 + dist/cjs/index-710314fd.js | 3343 +++++++++++ dist/cjs/index-710314fd.js.map | 1 + dist/cjs/index-95b18747.js | 443 ++ dist/cjs/index-95b18747.js.map | 1 + dist/cjs/index-c4d028d8.js | 92 + dist/cjs/index-c4d028d8.js.map | 1 + dist/cjs/index.js | 50 + dist/cjs/index.js.map | 1 + dist/cjs/type-c7a3bee7.js | 12 + dist/cjs/type-c7a3bee7.js.map | 1 + dist/cjs/utils-6aedec02.js | 57 + dist/cjs/utils-6aedec02.js.map | 1 + dist/cjs/utils-a8277ca2.js | 21 + dist/cjs/utils-a8277ca2.js.map | 1 + dist/cjs/utils-c8e36c68.js | 51 + dist/cjs/utils-c8e36c68.js.map | 1 + dist/esm/App.js | 145 + dist/esm/App.js.map | 1 + dist/esm/Channel.js | 5515 +++++++++++++++++ dist/esm/Channel.js.map | 1 + dist/esm/ChannelList.js | 1493 +++++ dist/esm/ChannelList.js.map | 1 + dist/esm/ChannelSettings.js | 2064 +++++++ dist/esm/ChannelSettings.js.map | 1 + dist/esm/LeaveChannel-fcc0bfc3.js | 290 + dist/esm/LeaveChannel-fcc0bfc3.js.map | 1 + dist/esm/LocalizationContext-619bafba.js | 361 ++ dist/esm/LocalizationContext-619bafba.js.map | 1 + dist/esm/OpenChannel.js | 2737 +++++++++ dist/esm/OpenChannel.js.map | 1 + dist/esm/OpenChannelSettings.js | 664 +++ dist/esm/OpenChannelSettings.js.map | 1 + dist/esm/SendbirdProvider.css | 3843 ++++++++++++ dist/esm/SendbirdProvider.css.map | 1 + dist/esm/SendbirdProvider.js | 711 +++ dist/esm/SendbirdProvider.js.map | 1 + dist/esm/actionTypes-a85c0eaa.js | 6 + dist/esm/actionTypes-a85c0eaa.js.map | 1 + dist/esm/index-0c67ae90.js | 3300 +++++++++++ dist/esm/index-0c67ae90.js.map | 1 + dist/esm/index-1cf7b066.js | 431 ++ dist/esm/index-1cf7b066.js.map | 1 + dist/esm/index-73379213.js | 251 + dist/esm/index-73379213.js.map | 1 + dist/esm/index-7bc4a9f7.js | 86 + dist/esm/index-7bc4a9f7.js.map | 1 + dist/esm/index-a199094e.js | 43 + dist/esm/index-a199094e.js.map | 1 + dist/esm/index.js | 30 + dist/esm/index.js.map | 1 + dist/esm/type-0296584d.js | 10 + dist/esm/type-0296584d.js.map | 1 + dist/esm/utils-53ba1773.js | 47 + dist/esm/utils-53ba1773.js.map | 1 + dist/esm/utils-cfdeb084.js | 18 + dist/esm/utils-cfdeb084.js.map | 1 + dist/esm/utils-d7f59026.js | 43 + dist/esm/utils-d7f59026.js.map | 1 + dist/index.d.ts | 68 +- package-lock.json | 8 +- package.json | 6 +- 89 files changed, 44504 insertions(+), 12 deletions(-) create mode 100644 .gitignore create mode 100644 dist/cjs/App.js create mode 100644 dist/cjs/App.js.map create mode 100644 dist/cjs/Channel.js create mode 100644 dist/cjs/Channel.js.map create mode 100644 dist/cjs/ChannelList.js create mode 100644 dist/cjs/ChannelList.js.map create mode 100644 dist/cjs/ChannelSettings.js create mode 100644 dist/cjs/ChannelSettings.js.map create mode 100644 dist/cjs/LeaveChannel-cb2a36b0.js create mode 100644 dist/cjs/LeaveChannel-cb2a36b0.js.map create mode 100644 dist/cjs/LocalizationContext-7c9df62c.js create mode 100644 dist/cjs/LocalizationContext-7c9df62c.js.map create mode 100644 dist/cjs/OpenChannel.js create mode 100644 dist/cjs/OpenChannel.js.map create mode 100644 dist/cjs/OpenChannelSettings.js create mode 100644 dist/cjs/OpenChannelSettings.js.map create mode 100644 dist/cjs/SendbirdProvider.css create mode 100644 dist/cjs/SendbirdProvider.css.map create mode 100644 dist/cjs/SendbirdProvider.js create mode 100644 dist/cjs/SendbirdProvider.js.map create mode 100644 dist/cjs/actionTypes-920b541f.js create mode 100644 dist/cjs/actionTypes-920b541f.js.map create mode 100644 dist/cjs/index-64dcc5d9.js create mode 100644 dist/cjs/index-64dcc5d9.js.map create mode 100644 dist/cjs/index-6ca9e95e.js create mode 100644 dist/cjs/index-6ca9e95e.js.map create mode 100644 dist/cjs/index-710314fd.js create mode 100644 dist/cjs/index-710314fd.js.map create mode 100644 dist/cjs/index-95b18747.js create mode 100644 dist/cjs/index-95b18747.js.map create mode 100644 dist/cjs/index-c4d028d8.js create mode 100644 dist/cjs/index-c4d028d8.js.map create mode 100644 dist/cjs/index.js create mode 100644 dist/cjs/index.js.map create mode 100644 dist/cjs/type-c7a3bee7.js create mode 100644 dist/cjs/type-c7a3bee7.js.map create mode 100644 dist/cjs/utils-6aedec02.js create mode 100644 dist/cjs/utils-6aedec02.js.map create mode 100644 dist/cjs/utils-a8277ca2.js create mode 100644 dist/cjs/utils-a8277ca2.js.map create mode 100644 dist/cjs/utils-c8e36c68.js create mode 100644 dist/cjs/utils-c8e36c68.js.map create mode 100644 dist/esm/App.js create mode 100644 dist/esm/App.js.map create mode 100644 dist/esm/Channel.js create mode 100644 dist/esm/Channel.js.map create mode 100644 dist/esm/ChannelList.js create mode 100644 dist/esm/ChannelList.js.map create mode 100644 dist/esm/ChannelSettings.js create mode 100644 dist/esm/ChannelSettings.js.map create mode 100644 dist/esm/LeaveChannel-fcc0bfc3.js create mode 100644 dist/esm/LeaveChannel-fcc0bfc3.js.map create mode 100644 dist/esm/LocalizationContext-619bafba.js create mode 100644 dist/esm/LocalizationContext-619bafba.js.map create mode 100644 dist/esm/OpenChannel.js create mode 100644 dist/esm/OpenChannel.js.map create mode 100644 dist/esm/OpenChannelSettings.js create mode 100644 dist/esm/OpenChannelSettings.js.map create mode 100644 dist/esm/SendbirdProvider.css create mode 100644 dist/esm/SendbirdProvider.css.map create mode 100644 dist/esm/SendbirdProvider.js create mode 100644 dist/esm/SendbirdProvider.js.map create mode 100644 dist/esm/actionTypes-a85c0eaa.js create mode 100644 dist/esm/actionTypes-a85c0eaa.js.map create mode 100644 dist/esm/index-0c67ae90.js create mode 100644 dist/esm/index-0c67ae90.js.map create mode 100644 dist/esm/index-1cf7b066.js create mode 100644 dist/esm/index-1cf7b066.js.map create mode 100644 dist/esm/index-73379213.js create mode 100644 dist/esm/index-73379213.js.map create mode 100644 dist/esm/index-7bc4a9f7.js create mode 100644 dist/esm/index-7bc4a9f7.js.map create mode 100644 dist/esm/index-a199094e.js create mode 100644 dist/esm/index-a199094e.js.map create mode 100644 dist/esm/index.js create mode 100644 dist/esm/index.js.map create mode 100644 dist/esm/type-0296584d.js create mode 100644 dist/esm/type-0296584d.js.map create mode 100644 dist/esm/utils-53ba1773.js create mode 100644 dist/esm/utils-53ba1773.js.map create mode 100644 dist/esm/utils-cfdeb084.js create mode 100644 dist/esm/utils-cfdeb084.js.map create mode 100644 dist/esm/utils-d7f59026.js create mode 100644 dist/esm/utils-d7f59026.js.map diff --git a/.DS_Store b/.DS_Store index c7a5be332ea4bdd82892e7673c3469bde7f64c2e..fd4a4d3c76b23b520626294842c8fd13790cc314 100644 GIT binary patch delta 282 zcmZoMXfc=|#>B!ku~2NHo+2a1#(>?7iyN4k7&#{MFy+)Il@}Kz<>V(ZFfg1zR;SSyf$ATQ?KvS|DI#gwPE9P#Q+f+ML6* ii)k}E2R{eU=bHB)qu~2NHo+2ar#(>?7jO>$nSaLQ;vaVy=*zk~PGdl-A2T;joL5}at Vlles)IT(O|k%56_bA-qmW&mF25JLa} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fba3947 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# builds +build +.rpt2_cache + +# misc +.DS_Store +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/dist/cjs/App.js b/dist/cjs/App.js new file mode 100644 index 0000000..d9507a9 --- /dev/null +++ b/dist/cjs/App.js @@ -0,0 +1,150 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var SendbirdProvider = require('./SendbirdProvider.js'); +var React = require('react'); +var React__default = _interopDefault(React); +var PropTypes = _interopDefault(require('prop-types')); +require('sendbird'); +require('./actionTypes-920b541f.js'); +require('css-vars-ponyfill'); +require('./index-710314fd.js'); +var ChannelList = require('./ChannelList.js'); +require('./utils-6aedec02.js'); +require('./index-64dcc5d9.js'); +require('./LeaveChannel-cb2a36b0.js'); +require('date-fns/isToday'); +require('date-fns/format'); +require('date-fns/isYesterday'); +require('./type-c7a3bee7.js'); +require('./utils-a8277ca2.js'); +require('react-dom'); +require('./index-6ca9e95e.js'); +var Channel = require('./Channel.js'); +require('./index-95b18747.js'); +require('date-fns/isSameDay'); +require('./utils-c8e36c68.js'); +require('date-fns/formatDistanceToNowStrict'); +var ChannelSettings = require('./ChannelSettings.js'); +require('./index-c4d028d8.js'); + +function App(props) { + var appId = props.appId, + userId = props.userId, + accessToken = props.accessToken, + theme = props.theme, + userListQuery = props.userListQuery, + nickname = props.nickname, + profileUrl = props.profileUrl, + _props$config = props.config, + config = _props$config === void 0 ? {} : _props$config, + useReaction = props.useReaction, + useMessageGrouping = props.useMessageGrouping, + colorSet = props.colorSet, + stringSet = props.stringSet, + allowProfileEdit = props.allowProfileEdit, + disableUserProfile = props.disableUserProfile, + renderUserProfile = props.renderUserProfile, + onProfileEditSuccess = props.onProfileEditSuccess; + + var _useState = React.useState(null), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + currentChannelUrl = _useState2[0], + setCurrentChannelUrl = _useState2[1]; + + var _useState3 = React.useState(false), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + showSettings = _useState4[0], + setShowSettings = _useState4[1]; + + return React__default.createElement(SendbirdProvider, { + stringSet: stringSet, + appId: appId, + userId: userId, + accessToken: accessToken, + theme: theme, + nickname: nickname, + profileUrl: profileUrl, + userListQuery: userListQuery, + config: config, + colorSet: colorSet, + disableUserProfile: disableUserProfile, + renderUserProfile: renderUserProfile + }, React__default.createElement("div", { + className: "sendbird-app__wrap" + }, React__default.createElement("div", { + className: "sendbird-app__channellist-wrap" + }, React__default.createElement(ChannelList, { + allowProfileEdit: allowProfileEdit, + onProfileEditSuccess: onProfileEditSuccess, + onChannelSelect: function onChannelSelect(channel) { + if (channel && channel.url) { + setCurrentChannelUrl(channel.url); + } else { + setCurrentChannelUrl(''); + } + } + })), React__default.createElement("div", { + className: "\n ".concat(showSettings ? 'sendbird-app__conversation--settings-open' : '', "\n sendbird-app__conversation-wrap\n ") + }, React__default.createElement(Channel.default, { + channelUrl: currentChannelUrl, + onChatHeaderActionClick: function onChatHeaderActionClick() { + if (showSettings) { + setShowSettings(false); + } else { + setShowSettings(true); + } + }, + useReaction: useReaction, + useMessageGrouping: useMessageGrouping + })), showSettings && React__default.createElement("div", { + className: "sendbird-app__settingspanel-wrap" + }, React__default.createElement(ChannelSettings, { + channelUrl: currentChannelUrl, + onCloseClick: function onCloseClick() { + setShowSettings(false); + } + })))); +} +App.propTypes = { + appId: PropTypes.string.isRequired, + userId: PropTypes.string.isRequired, + accessToken: PropTypes.string, + theme: PropTypes.string, + userListQuery: PropTypes.func, + nickname: PropTypes.string, + profileUrl: PropTypes.string, + allowProfileEdit: PropTypes.bool, + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + onProfileEditSuccess: PropTypes.func, + config: PropTypes.shape({ + // None Error Warning Info 'All/Debug' + logLevel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) + }), + useReaction: PropTypes.bool, + useMessageGrouping: PropTypes.bool, + stringSet: PropTypes.objectOf(PropTypes.string), + colorSet: PropTypes.objectOf(PropTypes.string) +}; +App.defaultProps = { + accessToken: '', + theme: 'light', + nickname: '', + profileUrl: '', + userListQuery: null, + allowProfileEdit: false, + onProfileEditSuccess: null, + disableUserProfile: false, + renderUserProfile: null, + config: {}, + useReaction: true, + useMessageGrouping: true, + stringSet: null, + colorSet: null +}; + +module.exports = App; +//# sourceMappingURL=App.js.map diff --git a/dist/cjs/App.js.map b/dist/cjs/App.js.map new file mode 100644 index 0000000..31acb4b --- /dev/null +++ b/dist/cjs/App.js.map @@ -0,0 +1 @@ +{"version":3,"file":"App.js","sources":["../../../src/smart-components/App/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Sendbird from '../../lib/Sendbird';\n\nimport ChannelList from '../ChannelList';\nimport Conversation from '../Conversation';\nimport ChannelSettings from '../ChannelSettings';\n\nimport './index.scss';\n\nexport default function App(props) {\n const {\n appId,\n userId,\n accessToken,\n theme,\n userListQuery,\n nickname,\n profileUrl,\n config = {},\n useReaction,\n useMessageGrouping,\n colorSet,\n stringSet,\n allowProfileEdit,\n disableUserProfile,\n renderUserProfile,\n onProfileEditSuccess,\n } = props;\n const [currentChannelUrl, setCurrentChannelUrl] = useState(null);\n const [showSettings, setShowSettings] = useState(false);\n return (\n \n
\n
\n {\n if (channel && channel.url) {\n setCurrentChannelUrl(channel.url);\n } else {\n setCurrentChannelUrl('');\n }\n }}\n />\n
\n \n {\n if (showSettings) {\n setShowSettings(false);\n } else {\n setShowSettings(true);\n }\n }}\n useReaction={useReaction}\n useMessageGrouping={useMessageGrouping}\n />\n
\n {showSettings && (\n
\n { setShowSettings(false); }}\n />\n
\n )}\n \n \n );\n}\n\nApp.propTypes = {\n appId: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n allowProfileEdit: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n }),\n useReaction: PropTypes.bool,\n useMessageGrouping: PropTypes.bool,\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n};\n\nApp.defaultProps = {\n accessToken: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n userListQuery: null,\n allowProfileEdit: false,\n onProfileEditSuccess: null,\n disableUserProfile: false,\n renderUserProfile: null,\n config: {},\n useReaction: true,\n useMessageGrouping: true,\n stringSet: null,\n colorSet: null,\n};\n"],"names":["App","props","appId","userId","accessToken","theme","userListQuery","nickname","profileUrl","config","useReaction","useMessageGrouping","colorSet","stringSet","allowProfileEdit","disableUserProfile","renderUserProfile","onProfileEditSuccess","useState","currentChannelUrl","setCurrentChannelUrl","showSettings","setShowSettings","React","Sendbird","channel","url","Conversation","propTypes","PropTypes","string","isRequired","func","bool","shape","logLevel","oneOfType","arrayOf","objectOf","defaultProps"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/Channel.js b/dist/cjs/Channel.js new file mode 100644 index 0000000..bf63340 --- /dev/null +++ b/dist/cjs/Channel.js @@ -0,0 +1,5525 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +var PropTypes = _interopDefault(require('prop-types')); +var index = require('./index-710314fd.js'); +var utils = require('./utils-6aedec02.js'); +var index$1 = require('./index-64dcc5d9.js'); +var format = _interopDefault(require('date-fns/format')); +var type = require('./type-c7a3bee7.js'); +var utils$1 = require('./utils-a8277ca2.js'); +require('react-dom'); +var index$2 = require('./index-95b18747.js'); +var isSameDay = _interopDefault(require('date-fns/isSameDay')); +var utils$2 = require('./utils-c8e36c68.js'); +var formatDistanceToNowStrict = _interopDefault(require('date-fns/formatDistanceToNowStrict')); + +var RESET_MESSAGES = 'RESET_MESSAGES'; +var RESET_STATE = 'RESET_STATE'; +var CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES'; +var GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START'; +var GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS'; +var SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START'; +var SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS'; +var SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE'; +var RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START'; +var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED'; +var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED'; +var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED'; +var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID'; +var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL'; +var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID'; +var MARK_AS_READ = 'MARK_AS_READ'; +var ON_REACTION_UPDATED = 'ON_REACTION_UPDATED'; +var SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER'; +var SET_READ_STATUS = 'SET_READ_STATUS'; + +var MessageTypes = { + ADMIN: 'ADMIN', + USER: 'USER', + FILE: 'FILE', + THUMBNAIL: 'THUMBNAIL', + OG: 'OG' +}; +var SendingMessageStatus = { + NONE: 'none', + SUCCEEDED: 'succeeded', + FAILED: 'failed', + PENDING: 'pending' +}; +var getMessageType = function getMessageType(message) { + if (message.isUserMessage && message.isUserMessage() || message.messageType === 'user') { + return message.ogMetaData ? MessageTypes.OG : MessageTypes.USER; + } + + if (message.isAdminMessage && message.isAdminMessage()) { + return MessageTypes.ADMIN; + } + + if (message.isFileMessage && message.isFileMessage() || message.messageType === 'file') { + return index$2.isImage(message.type) || index$2.isVideo(message.type) ? MessageTypes.THUMBNAIL : MessageTypes.FILE; + } + + return ''; +}; + +var UNDEFINED = 'undefined'; +var SUCCEEDED = SendingMessageStatus.SUCCEEDED, + FAILED = SendingMessageStatus.FAILED, + PENDING = SendingMessageStatus.PENDING; +var scrollIntoLast = function scrollIntoLast(selector) { + var intialTry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var MAX_TRIES = 10; + var currentTry = intialTry; + + if (currentTry > MAX_TRIES) { + return; + } + + try { + var nodes = document.querySelectorAll(selector); + var last = nodes[nodes.length - 1]; + last.scrollIntoView(false); + /** alignToTop: false */ + } catch (error) { + setTimeout(function () { + scrollIntoLast(selector, currentTry + 1); + }, 500 * currentTry); + } +}; +var pubSubHandleRemover = function pubSubHandleRemover(subscriber) { + subscriber.forEach(function (s) { + try { + s.remove(); + } catch (_unused) {// + } + }); +}; +var pubSubHandler = function pubSubHandler(channelUrl, pubSub, dispatcher) { + var subscriber = new Map(); + if (!pubSub || !pubSub.subscribe) return subscriber; + subscriber.set(index.SEND_USER_MESSAGE, pubSub.subscribe(index.SEND_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + scrollIntoLast('.sendbird-msg--scroll-ref'); + + if (channel && channelUrl === channel.url) { + dispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + } + })); + subscriber.set(index.SEND_MESSAGE_START, pubSub.subscribe(index.SEND_MESSAGE_START, function (msg) { + var channel = msg.channel, + message = msg.message; + + if (channel && channelUrl === channel.url) { + dispatcher({ + type: SEND_MESSAGEGE_START, + payload: message + }); + } + })); + subscriber.set(index.SEND_FILE_MESSAGE, pubSub.subscribe(index.SEND_FILE_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + scrollIntoLast('.sendbird-msg--scroll-ref'); + + if (channel && channelUrl === channel.url) { + dispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + } + })); + subscriber.set(index.UPDATE_USER_MESSAGE, pubSub.subscribe(index.UPDATE_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message, + fromSelector = msg.fromSelector; + + if (fromSelector && channel && channelUrl === channel.url) { + dispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: channel, + message: message + } + }); + } + })); + subscriber.set(index.DELETE_MESSAGE, pubSub.subscribe(index.DELETE_MESSAGE, function (msg) { + var channel = msg.channel, + messageId = msg.messageId; + + if (channel && channelUrl === channel.url) { + dispatcher({ + type: ON_MESSAGE_DELETED, + payload: messageId + }); + } + })); + return subscriber; +}; +var getParsedStatus = function getParsedStatus(message, currentGroupChannel) { + if (message.requestState === FAILED) { + return type.MessageStatusType.FAILED; + } + + if (message.requestState === PENDING) { + return type.MessageStatusType.PENDING; + } + + if (message.requestState === SUCCEEDED) { + if (!currentGroupChannel) { + return type.MessageStatusType.SENT; + } + + var unreadCount = currentGroupChannel.getReadReceipt(message); + + if (unreadCount === 0) { + return type.MessageStatusType.READ; + } + + var isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0; + + if (isDelivered) { + return type.MessageStatusType.DELIVERED; + } + + return type.MessageStatusType.SENT; + } + + return null; +}; +var isOperator = function isOperator() { + var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var myRole = groupChannel.myRole; + return myRole === 'operator'; +}; +var isDisabledBecauseFrozen = function isDisabledBecauseFrozen() { + var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var isFrozen = groupChannel.isFrozen; + return isFrozen && !isOperator(groupChannel); +}; +var isDisabledBecauseMuted = function isDisabledBecauseMuted() { + var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var myMutedState = groupChannel.myMutedState; + return myMutedState === 'muted'; +}; +var getEmojiCategoriesFromEmojiContainer = function getEmojiCategoriesFromEmojiContainer() { + var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []; +}; +var getAllEmojisFromEmojiContainer = function getAllEmojisFromEmojiContainer() { + var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _emojiContainer$emoji = emojiContainer.emojiCategories, + emojiCategories = _emojiContainer$emoji === void 0 ? [] : _emojiContainer$emoji; + var allEmojis = []; + + for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) { + var emojis = emojiCategories[categoryIndex].emojis; + + for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) { + allEmojis.push(emojis[emojiIndex]); + } + } + + return allEmojis; +}; +var getEmojisFromEmojiContainer = function getEmojisFromEmojiContainer() { + var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var emojiCategoryId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + return emojiContainer.emojiCategories ? emojiContainer.emojiCategories.filter(function (emojiCategory) { + return emojiCategory.id === emojiCategoryId; + })[0].emojis : []; +}; +var getAllEmojisMapFromEmojiContainer = function getAllEmojisMapFromEmojiContainer() { + var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _emojiContainer$emoji2 = emojiContainer.emojiCategories, + emojiCategories = _emojiContainer$emoji2 === void 0 ? [] : _emojiContainer$emoji2; + var allEmojisMap = new Map(); + + for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) { + var emojis = emojiCategories[categoryIndex].emojis; + + for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) { + var _emojis$emojiIndex = emojis[emojiIndex], + key = _emojis$emojiIndex.key, + url = _emojis$emojiIndex.url; + allEmojisMap.set(key, url); + } + } + + return allEmojisMap; +}; +var getNicknamesMapFromMembers = function getNicknamesMapFromMembers() { + var members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var nicknamesMap = new Map(); + + for (var memberIndex = 0; memberIndex < members.length; memberIndex += 1) { + var _members$memberIndex = members[memberIndex], + userId = _members$memberIndex.userId, + nickname = _members$memberIndex.nickname; + nicknamesMap.set(userId, nickname); + } + + return nicknamesMap; +}; +var getMessageCreatedAt = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var isSameGroup = function isSameGroup(message, comparingMessage) { + if (!message || !comparingMessage || !message.sender || !comparingMessage.sender || !message.createdAt || !comparingMessage.createdAt || !message.sender.userId || !comparingMessage.sender.userId) { + return false; + } + + return message.sendingStatus === comparingMessage.sendingStatus && message.sender.userId === comparingMessage.sender.userId && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage); +}; +var compareMessagesForGrouping = function compareMessagesForGrouping(prevMessage, currMessage, nextMessage) { + return [isSameGroup(prevMessage, currMessage), isSameGroup(currMessage, nextMessage)]; +}; +var passUnsuccessfullMessages = function passUnsuccessfullMessages(allMessages, newMessage) { + var _newMessage$sendingSt = newMessage.sendingStatus, + sendingStatus = _newMessage$sendingSt === void 0 ? UNDEFINED : _newMessage$sendingSt; + + if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) { + var lastIndexOfSucceededMessage = allMessages.map(function (message) { + return message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED : UNDEFINED); + }).lastIndexOf(SUCCEEDED); + + if (lastIndexOfSucceededMessage + 1 < allMessages.length) { + var messages = LocalizationContext._toConsumableArray(allMessages); + + messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage); + return messages; + } + } + + return [].concat(LocalizationContext._toConsumableArray(allMessages), [newMessage]); +}; + +var messagesInitialState = { + initialized: false, + loading: false, + allMessages: [], + currentGroupChannel: { + members: [] + }, + hasMore: false, + lastMessageTimeStamp: 0, + emojiContainer: {}, + readStatus: {}, + unreadCount: 0, + unreadSince: null, + isInvalid: false +}; + +var SUCCEEDED$1 = SendingMessageStatus.SUCCEEDED, + FAILED$1 = SendingMessageStatus.FAILED, + PENDING$1 = SendingMessageStatus.PENDING; +function reducer(state, action) { + switch (action.type) { + case RESET_STATE: + return messagesInitialState; + + case RESET_MESSAGES: + return LocalizationContext._objectSpread2({}, state, { + // when user switches channel, if the previous channel `hasMore` + // the onScroll gets called twice, setting hasMore false prevents this + hasMore: false, + allMessages: [] + }); + + case GET_PREV_MESSAGES_START: + return LocalizationContext._objectSpread2({}, state, { + loading: true + }); + + case CLEAR_SENT_MESSAGES: + return LocalizationContext._objectSpread2({}, state, { + allMessages: LocalizationContext._toConsumableArray(state.allMessages.filter(function (m) { + return m.sendingStatus !== SUCCEEDED$1; + })) + }); + + case GET_PREV_MESSAGES_SUCESS: + { + var receivedMessages = action.payload.messages || []; + var _action$payload$curre = action.payload.currentGroupChannel, + currentGroupChannel = _action$payload$curre === void 0 ? {} : _action$payload$curre; + var stateChannel = state.currentGroupChannel || {}; + var stateChannelUrl = stateChannel.url; + var actionChannelUrl = currentGroupChannel.url; + + if (actionChannelUrl !== stateChannelUrl) { + return state; + } // remove duplicate messages + + + var filteredAllMessages = state.allMessages.filter(function (msg) { + return !receivedMessages.find(function (_ref) { + var messageId = _ref.messageId; + return index$2.compareIds(messageId, msg.messageId); + }); + }); + return LocalizationContext._objectSpread2({}, state, { + loading: false, + initialized: true, + hasMore: action.payload.hasMore, + lastMessageTimeStamp: action.payload.lastMessageTimeStamp, + allMessages: [].concat(LocalizationContext._toConsumableArray(receivedMessages), LocalizationContext._toConsumableArray(filteredAllMessages)) + }); + } + + case SEND_MESSAGEGE_START: + return LocalizationContext._objectSpread2({}, state, { + allMessages: [].concat(LocalizationContext._toConsumableArray(state.allMessages), [LocalizationContext._objectSpread2({}, action.payload)]) + }); + + case SEND_MESSAGEGE_SUCESS: + { + var newMessages = state.allMessages.map(function (m) { + return index$2.compareIds(m.reqId, action.payload.reqId) ? action.payload : m; + }); + + LocalizationContext._toConsumableArray(newMessages).sort(function (a, b) { + return a.sendingStatus && b.sendingStatus && a.sendingStatus === SUCCEEDED$1 && (b.sendingStatus === PENDING$1 || b.sendingStatus === FAILED$1) ? -1 : 1; + }); + + return LocalizationContext._objectSpread2({}, state, { + allMessages: newMessages + }); + } + + case SEND_MESSAGEGE_FAILURE: + { + // eslint-disable-next-line no-param-reassign + action.payload.failed = true; + return LocalizationContext._objectSpread2({}, state, { + allMessages: state.allMessages.map(function (m) { + return index$2.compareIds(m.reqId, action.payload.reqId) ? action.payload : m; + }) + }); + } + + case SET_CURRENT_CHANNEL: + { + return LocalizationContext._objectSpread2({}, state, { + currentGroupChannel: action.payload, + isInvalid: false + }); + } + + case SET_CHANNEL_INVALID: + { + return LocalizationContext._objectSpread2({}, state, { + isInvalid: true + }); + } + + case ON_MESSAGE_RECEIVED: + { + var _action$payload = action.payload, + channel = _action$payload.channel, + message = _action$payload.message; + + var _state$currentGroupCh = state.currentGroupChannel, + _currentGroupChannel = _state$currentGroupCh === void 0 ? {} : _state$currentGroupCh, + unreadCount = state.unreadCount, + unreadSince = state.unreadSince; + + var currentGroupChannelUrl = _currentGroupChannel.url; + + if (!index$2.compareIds(channel.url, currentGroupChannelUrl)) { + return state; + } // Excluded overlapping messages + + + if (!(state.allMessages.map(function (msg) { + return msg.messageId; + }).indexOf(message.messageId) < 0)) { + return state; + } + + if (message.isAdminMessage && message.isAdminMessage()) { + return LocalizationContext._objectSpread2({}, state, { + allMessages: passUnsuccessfullMessages(state.allMessages, message) + }); + } + + return LocalizationContext._objectSpread2({}, state, { + unreadCount: unreadCount + 1, + unreadSince: unreadCount === 0 ? format(new Date(), 'p MMM dd') : unreadSince, + allMessages: passUnsuccessfullMessages(state.allMessages, message) + }); + } + + case ON_MESSAGE_UPDATED: + return LocalizationContext._objectSpread2({}, state, { + allMessages: state.allMessages.map(function (m) { + return index$2.compareIds(m.messageId, action.payload.message.messageId) ? action.payload.message : m; + }) + }); + + case RESEND_MESSAGEGE_START: + return LocalizationContext._objectSpread2({}, state, { + allMessages: state.allMessages.map(function (m) { + return index$2.compareIds(m.reqId, action.payload.reqId) ? action.payload : m; + }) + }); + + case MARK_AS_READ: + return LocalizationContext._objectSpread2({}, state, { + unreadCount: 0, + unreadSince: null + }); + + case ON_MESSAGE_DELETED: + return LocalizationContext._objectSpread2({}, state, { + allMessages: state.allMessages.filter(function (m) { + return !index$2.compareIds(m.messageId, action.payload); + }) + }); + + case ON_MESSAGE_DELETED_BY_REQ_ID: + return LocalizationContext._objectSpread2({}, state, { + allMessages: state.allMessages.filter(function (m) { + return !index$2.compareIds(m.reqId, action.payload); + }) + }); + + case SET_EMOJI_CONTAINER: + { + return LocalizationContext._objectSpread2({}, state, { + emojiContainer: action.payload + }); + } + + case SET_READ_STATUS: + { + return LocalizationContext._objectSpread2({}, state, { + readStatus: action.payload + }); + } + + case ON_REACTION_UPDATED: + { + return LocalizationContext._objectSpread2({}, state, { + allMessages: state.allMessages.map(function (m) { + if (index$2.compareIds(m.messageId, action.payload.messageId)) { + if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') { + m.applyReactionEvent(action.payload); + } + + return m; + } + + return m; + }) + }); + } + + default: + return state; + } +} + +/** + * Handles ChannelEvents and send values to dispatcher using messagesDispatcher + * messagesDispatcher: Dispatcher + * sdk: sdkInstance + * logger: loggerInstance + * channelUrl: string + * sdkInit: bool + */ + +function useHandleChannelEvents(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + sdkInit = _ref.sdkInit; + var messagesDispatcher = _ref2.messagesDispatcher, + sdk = _ref2.sdk, + logger = _ref2.logger; + var channelUrl = currentGroupChannel && currentGroupChannel.url; + React.useEffect(function () { + var messageReceiverId = LocalizationContext.uuidv4$1(); + + if (channelUrl && sdk && sdk.ChannelHandler) { + var ChannelHandler = new sdk.ChannelHandler(); + logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId); + + ChannelHandler.onMessageReceived = function (channel, message) { + if (index$2.compareIds(channel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onMessageReceived', message); + messagesDispatcher({ + type: ON_MESSAGE_RECEIVED, + payload: { + channel: channel, + message: message + } + }); + } + }; + + ChannelHandler.onMessageUpdated = function (channel, message) { + logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message); + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: channel, + message: message + } + }); + }; + + ChannelHandler.onMessageDeleted = function (_, messageId) { + logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId); + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: messageId + }); + }; + + ChannelHandler.onReactionUpdated = function (_, reactionEvent) { + logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent); + messagesDispatcher({ + type: ON_REACTION_UPDATED, + payload: reactionEvent + }); + }; + + ChannelHandler.onChannelChanged = function (groupChannel) { + if (index$2.compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onChannelFrozen = function (groupChannel) { + if (index$2.compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onChannelUnfrozen = function (groupChannel) { + if (index$2.compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onUserMuted = function (groupChannel) { + if (index$2.compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onUserUnmuted = function (groupChannel) { + if (index$2.compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onUserBanned = function (groupChannel) { + if (index$2.compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onOperatorUpdated = function (groupChannel) { + if (index$2.compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; // Add this channel event handler to the SendBird object. + + + sdk.addChannelHandler(messageReceiverId, ChannelHandler); + } + + return function () { + if (sdk && sdk.removeChannelHandler) { + logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId); + sdk.removeChannelHandler(messageReceiverId); + } + }; + }, [channelUrl, sdkInit]); +} + +function useSetChannel(_ref, _ref2) { + var channelUrl = _ref.channelUrl, + sdkInit = _ref.sdkInit; + var messagesDispatcher = _ref2.messagesDispatcher, + sdk = _ref2.sdk, + logger = _ref2.logger; + React.useEffect(function () { + if (channelUrl && sdkInit && sdk && sdk.GroupChannel) { + logger.info('Channel | useSetChannel fetching channel', channelUrl); + sdk.GroupChannel.getChannel(channelUrl).then(function (groupChannel) { + logger.info('Channel | useSetChannel fetched channel', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + logger.info('Channel: Mark as read', groupChannel); // this order is important - this mark as read should update the event handler up above + + groupChannel.markAsRead(); + }).catch(function (e) { + logger.warning('Channel | useSetChannel fetch channel failed', { + channelUrl: channelUrl, + e: e + }); + messagesDispatcher({ + type: SET_CHANNEL_INVALID + }); + }); + sdk.getAllEmoji(function (emojiContainer_, err) { + if (err) { + logger.error('Channel: Getting emojis failed', err); + return; + } + + logger.info('Channel: Getting emojis success', emojiContainer_); + messagesDispatcher({ + type: SET_EMOJI_CONTAINER, + payload: emojiContainer_ + }); + }); + } + }, [channelUrl, sdkInit]); +} + +function useInitialMessagesFetch(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + userFilledMessageListQuery = _ref.userFilledMessageListQuery; + var sdk = _ref2.sdk, + logger = _ref2.logger, + messagesDispatcher = _ref2.messagesDispatcher; + var channelUrl = currentGroupChannel && currentGroupChannel.url; + React.useEffect(function () { + logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel); + messagesDispatcher({ + type: RESET_MESSAGES + }); + + if (sdk && sdk.MessageListParams && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) { + var messageListParams = new sdk.MessageListParams(); + messageListParams.prevResultSize = 30; + messageListParams.isInclusive = true; + messageListParams.includeReplies = false; + messageListParams.includeReaction = true; + + if (userFilledMessageListQuery) { + Object.keys(userFilledMessageListQuery).forEach(function (key) { + messageListParams[key] = userFilledMessageListQuery[key]; + }); + } + + logger.info('Channel: Fetching messages', { + currentGroupChannel: currentGroupChannel, + userFilledMessageListQuery: userFilledMessageListQuery + }); + currentGroupChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams).then(function (messages) { + var hasMore = messages && messages.length > 0; + var lastMessageTimeStamp = hasMore ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: messages, + hasMore: hasMore, + lastMessageTimeStamp: lastMessageTimeStamp, + currentGroupChannel: currentGroupChannel + } + }); + }).catch(function (error) { + logger.error('Channel: Fetching messages failed', error); + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: [], + hasMore: false, + lastMessageTimeStamp: 0, + currentGroupChannel: currentGroupChannel + } + }); + }).finally(function () { + currentGroupChannel.markAsRead(); + setTimeout(function () { + return scrollIntoLast('.sendbird-msg--scroll-ref'); + }); + }); + } + }, [channelUrl, userFilledMessageListQuery]); +} + +function useHandleReconnect(_ref, _ref2) { + var isOnline = _ref.isOnline; + var logger = _ref2.logger, + sdk = _ref2.sdk, + currentGroupChannel = _ref2.currentGroupChannel, + messagesDispatcher = _ref2.messagesDispatcher, + userFilledMessageListQuery = _ref2.userFilledMessageListQuery; + React.useEffect(function () { + var wasOffline = !isOnline; + return function () { + // state changed from offline to online + if (wasOffline) { + logger.info('Refreshing conversation state'); + var _sdk$appInfo = sdk.appInfo, + appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; + var useReaction = appInfo.isUsingReaction || false; + var messageListParams = new sdk.MessageListParams(); + messageListParams.prevResultSize = 30; + messageListParams.includeReplies = false; + messageListParams.includeReaction = useReaction; + + if (userFilledMessageListQuery) { + Object.keys(userFilledMessageListQuery).forEach(function (key) { + messageListParams[key] = userFilledMessageListQuery[key]; + }); + } + + logger.info('Channel: Fetching messages', { + currentGroupChannel: currentGroupChannel, + userFilledMessageListQuery: userFilledMessageListQuery + }); + messagesDispatcher({ + type: GET_PREV_MESSAGES_START + }); + sdk.GroupChannel.getChannel(currentGroupChannel.url).then(function (groupChannel) { + var lastMessageTime = new Date().getTime(); + groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams).then(function (messages) { + messagesDispatcher({ + type: CLEAR_SENT_MESSAGES + }); + var hasMore = messages && messages.length > 0; + var lastMessageTimeStamp = hasMore ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: messages, + hasMore: hasMore, + lastMessageTimeStamp: lastMessageTimeStamp, + currentGroupChannel: currentGroupChannel + } + }); + setTimeout(function () { + return scrollIntoLast('.sendbird-msg--scroll-ref'); + }); + }).catch(function (error) { + logger.error('Channel: Fetching messages failed', error); + }).finally(function () { + currentGroupChannel.markAsRead(); + }); + }); + } + }; + }, [isOnline]); +} + +function useScrollCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + lastMessageTimeStamp = _ref.lastMessageTimeStamp, + userFilledMessageListQuery = _ref.userFilledMessageListQuery; + var hasMore = _ref2.hasMore, + logger = _ref2.logger, + messagesDispatcher = _ref2.messagesDispatcher, + sdk = _ref2.sdk; + return React.useCallback(function (cb) { + if (!hasMore) { + return; + } + + var messageListParams = new sdk.MessageListParams(); + messageListParams.prevResultSize = 30; + messageListParams.includeReplies = false; + messageListParams.includeReaction = true; + + if (userFilledMessageListQuery) { + Object.keys(userFilledMessageListQuery).forEach(function (key) { + messageListParams[key] = userFilledMessageListQuery[key]; + }); + } + + logger.info('Channel: Fetching messages', { + currentGroupChannel: currentGroupChannel, + userFilledMessageListQuery: userFilledMessageListQuery + }); + currentGroupChannel.getMessagesByTimestamp(lastMessageTimeStamp || new Date().getTime(), messageListParams).then(function (messages) { + var hasMoreMessages = messages && messages.length > 0; + var lastMessageTs = hasMoreMessages ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: messages, + hasMore: hasMoreMessages, + lastMessageTimeStamp: lastMessageTs, + currentGroupChannel: currentGroupChannel + } + }); + cb([messages, null]); + }).catch(function (error) { + logger.error('Channel: Fetching messages failed', error); + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: [], + hasMore: false, + lastMessageTimeStamp: 0, + currentGroupChannel: currentGroupChannel + } + }); + cb([null, error]); + }).finally(function () { + currentGroupChannel.markAsRead(); + }); + }, [currentGroupChannel, lastMessageTimeStamp]); +} + +function useDeleteMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + messagesDispatcher = _ref.messagesDispatcher; + var logger = _ref2.logger; + return React.useCallback(function (message, cb) { + logger.info('Channel | useDeleteMessageCallback: Deleting message', message); + var requestState = message.requestState; + logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState); // Message is only on local + + if (requestState === 'failed' || requestState === 'pending') { + logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message); + messagesDispatcher({ + type: ON_MESSAGE_DELETED_BY_REQ_ID, + payload: message.reqId + }); + + if (cb) { + cb(); + } + + return; + } // Message is on server + + + currentGroupChannel.deleteMessage(message, function (err) { + logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState); + + if (cb) { + cb(err); + } + + if (!err) { + logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message); + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: message.messageId + }); + } else { + logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err); + } + }); + }, [currentGroupChannel, messagesDispatcher]); +} + +function useUpdateMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + messagesDispatcher = _ref.messagesDispatcher, + onBeforeUpdateUserMessage = _ref.onBeforeUpdateUserMessage; + var logger = _ref2.logger, + pubSub = _ref2.pubSub, + sdk = _ref2.sdk; + return React.useCallback(function (messageId, text, cb) { + var createParamsDefault = function createParamsDefault(txt) { + var params = new sdk.UserMessageParams(); + params.message = txt; + return params; + }; + + var createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function'; + + if (createCustomPrams) { + logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage); + } + + var params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(text) : createParamsDefault(text); + currentGroupChannel.updateUserMessage(messageId, params, function (r, e) { + logger.info('Channel: Updating message!', params); + var swapParams = sdk.getErrorFirstCallback(); + var message = r; + var err = e; + + if (swapParams) { + message = e; + err = r; + } + + if (cb) { + cb(err, message); + } + + if (!err) { + logger.info('Channel: Updating message success!', message); + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: currentGroupChannel, + message: message + } + }); + pubSub.publish(index.UPDATE_USER_MESSAGE, { + message: message, + channel: currentGroupChannel + }); + } else { + logger.warning('Channel: Updating message failed!', err); + } + }); + }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]); +} + +function useResendMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + messagesDispatcher = _ref.messagesDispatcher; + var logger = _ref2.logger; + return React.useCallback(function (failedMessage) { + logger.info('Channel: Resending message has started', failedMessage); + var messageType = failedMessage.messageType, + file = failedMessage.file; + + if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) { + // eslint-disable-next-line no-param-reassign + failedMessage.requestState = 'pending'; + messagesDispatcher({ + type: RESEND_MESSAGEGE_START, + payload: failedMessage + }); // userMessage + + if (messageType === 'user') { + currentGroupChannel.resendUserMessage(failedMessage).then(function (message) { + logger.info('Channel: Resending message success!', { + message: message + }); + messagesDispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + }).catch(function (e) { + logger.warning('Channel: Resending message failed!', { + e: e + }); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'failed'; + messagesDispatcher({ + type: SEND_MESSAGEGE_FAILURE, + payload: failedMessage + }); + }); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'pending'; + messagesDispatcher({ + type: RESEND_MESSAGEGE_START, + payload: failedMessage + }); + return; + } + + if (messageType === 'file') { + currentGroupChannel.resendFileMessage(failedMessage, file).then(function (message) { + logger.info('Channel: Resending file message success!', { + message: message + }); + messagesDispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + }).catch(function (e) { + logger.warning('Channel: Resending file message failed!', { + e: e + }); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'failed'; + messagesDispatcher({ + type: SEND_MESSAGEGE_FAILURE, + payload: failedMessage + }); + }); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'pending'; + messagesDispatcher({ + type: RESEND_MESSAGEGE_START, + payload: failedMessage + }); + } + } else { + // to alert user on console + // eslint-disable-next-line no-console + console.error('Message is not resendable'); + logger.warning('Message is not resendable', failedMessage); + } + }, [currentGroupChannel, messagesDispatcher]); +} + +function useSendMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + onBeforeSendUserMessage = _ref.onBeforeSendUserMessage; + var sdk = _ref2.sdk, + logger = _ref2.logger, + pubSub = _ref2.pubSub, + messagesDispatcher = _ref2.messagesDispatcher; + var messageInputRef = React.useRef(null); + var sendMessage = React.useCallback(function () { + var text = messageInputRef.current.value; + + var createParamsDefault = function createParamsDefault(txt) { + var message = typeof txt === 'string' ? txt.trim() : txt; + var params = new sdk.UserMessageParams(); + params.message = message; + return params; + }; + + var createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function'; + + if (createCustomPrams) { + logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage); + } + + var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text); + logger.info('Channel: Sending message has started', params); + var pendingMsg = currentGroupChannel.sendUserMessage(params, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } // sending params instead of pending message + // to make sure that we can resend the message once it fails + + + if (error) { + logger.warning('Channel: Sending message failed!', { + message: message + }); + messagesDispatcher({ + type: SEND_MESSAGEGE_FAILURE, + payload: message + }); + return; + } + + logger.info('Channel: Sending message success!', message); + messagesDispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + }); + pubSub.publish(index.SEND_MESSAGE_START, { + /* pubSub is used instead of messagesDispatcher + to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */ + message: pendingMsg, + channel: currentGroupChannel + }); + setTimeout(function () { + return scrollIntoLast('.sendbird-msg--scroll-ref'); + }); + }, [currentGroupChannel, onBeforeSendUserMessage]); + return [messageInputRef, sendMessage]; +} + +function useSendFileMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + onBeforeSendFileMessage = _ref.onBeforeSendFileMessage; + var sdk = _ref2.sdk, + logger = _ref2.logger, + pubSub = _ref2.pubSub, + messagesDispatcher = _ref2.messagesDispatcher; + var sendMessage = React.useCallback(function (file) { + var createParamsDefault = function createParamsDefault(file_) { + var params = new sdk.FileMessageParams(); + params.file = file_; + return params; + }; + + var createCustomPrams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function'; + + if (createCustomPrams) { + logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage); + } + + var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefault(file); + logger.info('Channel: Uploading file message start!', params); + var pendingMsg = currentGroupChannel.sendFileMessage(params, function (response, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = response; + var error = err; + + if (swapParams) { + message = err; + error = response; + } + + if (error) { + // sending params instead of pending message + // to make sure that we can resend the message once it fails + logger.error('Channel: Sending file message failed!', message); + message.localUrl = URL.createObjectURL(file); + message.file = file; + messagesDispatcher({ + type: SEND_MESSAGEGE_FAILURE, + payload: message + }); + return; + } + + logger.info('Channel: Sending message success!', message); + messagesDispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + }); + pubSub.publish(index.SEND_MESSAGE_START, { + /* pubSub is used instead of messagesDispatcher + to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */ + message: LocalizationContext._objectSpread2({}, pendingMsg, { + url: URL.createObjectURL(file), + // pending thumbnail message seems to be failed + requestState: 'pending' + }), + channel: currentGroupChannel + }); + setTimeout(function () { + return scrollIntoLast('.sendbird-msg--scroll-ref'); + }, 1000); + }, [currentGroupChannel, onBeforeSendFileMessage]); + return [sendMessage]; +} + +function useSetReadStatus(_ref, _ref2) { + var allMessages = _ref.allMessages, + currentGroupChannel = _ref.currentGroupChannel; + var messagesDispatcher = _ref2.messagesDispatcher, + sdk = _ref2.sdk, + logger = _ref2.logger; + React.useEffect(function () { + if (!sdk.ChannelHandler || !currentGroupChannel.url) { + return function () {}; + } // todo: move to reducer? + + + var setReadStatus = function setReadStatus() { + var allReadStatus = allMessages.reduce(function (accumulator, msg) { + if (msg.messageId !== 0) { + return LocalizationContext._objectSpread2({}, accumulator, LocalizationContext._defineProperty({}, msg.messageId, getParsedStatus(msg, currentGroupChannel))); + } + + return accumulator; + }, {}); + messagesDispatcher({ + type: SET_READ_STATUS, + payload: allReadStatus + }); + }; + + if (allMessages.length > 0) { + setReadStatus(); + } + + var channelUrl = currentGroupChannel.url; + var handler = new sdk.ChannelHandler(); + + var handleMessageStatus = function handleMessageStatus(c) { + if (channelUrl === c.url) { + setReadStatus(); + } + }; + + handler.onDeliveryReceiptUpdated = handleMessageStatus; + handler.onReadReceiptUpdated = handleMessageStatus; // Add this channel event handler to the SendBird object. + + var handlerId = LocalizationContext.uuidv4$1(); + logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId); + sdk.addChannelHandler(handlerId, handler); + return function () { + if (sdk && sdk.removeChannelHandler) { + logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId); + sdk.removeChannelHandler(handlerId); + } + }; + }, [allMessages, currentGroupChannel]); +} + +var ReactionButton = React__default.forwardRef(function (props, ref) { + var children = props.children, + width = props.width, + height = props.height, + _onClick = props.onClick, + selected = props.selected, + className = props.className; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + ref: ref, + className: "sendbird-reaction-button".concat(selected ? '--selected' : '', " ").concat(injectingClassName.join(' ')), + style: { + width: typeof width === 'string' ? "".concat(width.slice(0, -2) - 2, "px") : "".concat(width - 2, "px"), + height: typeof height === 'string' ? "".concat(height.slice(0, -2) - 2, "px") : "".concat(height - 2, "px") + }, + onClick: function onClick(e) { + return _onClick(e); + }, + role: "button", + onKeyDown: function onKeyDown(e) { + return _onClick(e); + }, + tabIndex: 0 + }, React__default.createElement("div", { + className: "sendbird-reaction-button__inner" + }, children)); +}); +ReactionButton.propTypes = { + children: PropTypes.element.isRequired, + onClick: PropTypes.func, + selected: PropTypes.bool, + width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +ReactionButton.defaultProps = { + selected: false, + width: '36px', + height: '36px', + onClick: function onClick() {}, + className: '' +}; + +function useMemoizedEmojiListItems(_ref, _ref2) { + var emojiContainer = _ref.emojiContainer, + toggleReaction = _ref.toggleReaction; + var useReaction = _ref2.useReaction, + logger = _ref2.logger, + userId = _ref2.userId, + emojiAllList = _ref2.emojiAllList; + return React.useMemo(function () { + return function (_ref3) { + var parentRef = _ref3.parentRef, + parentContainRef = _ref3.parentContainRef, + message = _ref3.message, + closeDropdown = _ref3.closeDropdown, + _ref3$spaceFromTrigge = _ref3.spaceFromTrigger, + spaceFromTrigger = _ref3$spaceFromTrigge === void 0 ? {} : _ref3$spaceFromTrigge; + + if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) { + logger.warning('Channel: Invalid Params in memoizedEmojiListItems'); + return null; + } + + return React__default.createElement(index.EmojiListItems, { + parentRef: parentRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: spaceFromTrigger + }, emojiAllList.map(function (emoji) { + var reactedReaction = message.reactions.filter(function (reaction) { + return reaction.key === emoji.key; + })[0]; + var isReacted = reactedReaction ? !(reactedReaction.userIds.indexOf(userId) < 0) : false; + return React__default.createElement(ReactionButton, { + key: emoji.key, + width: "36px", + height: "36px", + selected: isReacted, + onClick: function onClick() { + closeDropdown(); + toggleReaction(message, emoji.key, isReacted); + } + }, React__default.createElement(index.ImageRenderer, { + url: emoji.url, + width: "28px", + height: "28px", + defaultComponent: React__default.createElement(index.Icon, { + width: "28px", + height: "28px", + type: index.IconTypes.EMOJI_FAILED + }) + })); + })); + }; + }, [emojiContainer, toggleReaction]); +} + +function useToggleReactionCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel; + var logger = _ref2.logger; + return React.useCallback(function (message, key, isReacted) { + if (isReacted) { + currentGroupChannel.deleteReaction(message, key).then(function (res) { + logger.info('Delete reaction success', res); + }).catch(function (err) { + logger.warning('Delete reaction failed', err); + }); + return; + } + + currentGroupChannel.addReaction(message, key).then(function (res) { + logger.info('Add reaction success', res); + }).catch(function (err) { + logger.warning('Add reaction failed', err); + }); + }, [currentGroupChannel]); +} + +function MessageStatus(_ref) { + var message = _ref.message, + status = _ref.status, + className = _ref.className; + var injectingClassName = Array.isArray(className) ? className : [className]; + + var label = function label() { + switch (status) { + case type.MessageStatusType.FAILED: + case type.MessageStatusType.PENDING: + { + return null; + } + + case type.MessageStatusType.SENT: + case type.MessageStatusType.DELIVERED: + case type.MessageStatusType.READ: + { + return React__default.createElement(index.Label, { + className: "sendbird-message-status__text", + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2 + }, utils.getMessageCreatedAt(message)); + } + + default: + return null; + } + }; + + var icon = { + PENDING: React__default.createElement(index.Loader, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px" + }, React__default.createElement(index.Icon, { + type: index.IconTypes.SPINNER, + width: "16px", + height: "16px" + })), + SENT: React__default.createElement(index.Icon, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px", + type: index.IconTypes.SENT, + fillColor: index.IconColors.SENT + }), + DELIVERED: React__default.createElement(index.Icon, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px", + type: index.IconTypes.DELIVERED, + fillColor: index.IconColors.SENT + }), + READ: React__default.createElement(index.Icon, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px", + type: index.IconTypes.READ, + fillColor: index.IconColors.READ + }), + FAILED: React__default.createElement(index.Icon, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px", + type: index.IconTypes.ERROR + }) + }; + return React__default.createElement("div", { + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), ['sendbird-message-status']).join(' ') + }, icon[status], React__default.createElement("br", null), label()); +} +MessageStatus.propTypes = { + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + status: PropTypes.string, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +MessageStatus.defaultProps = { + message: null, + status: '', + className: '' +}; + +var ReactionBadge = React__default.forwardRef(function (props, ref) { + var className = props.className, + children = props.children, + count = props.count, + selected = props.selected, + isAdd = props.isAdd, + onClick = props.onClick; + var injectingClassName = Array.isArray(className) ? className : [className]; + + if (selected && !isAdd) { + injectingClassName.unshift('sendbird-reaction-badge--selected'); + } else if (isAdd) { + injectingClassName.push('sendbird-reaction-badge--is-add'); + } else { + injectingClassName.unshift('sendbird-reaction-badge'); + } + + return React__default.createElement("div", { + ref: ref, + tabIndex: 0, + role: "button", + className: injectingClassName.join(' '), + onClick: onClick, + onKeyDown: onClick + }, React__default.createElement("div", { + className: "sendbird-reaction-badge__inner" + }, React__default.createElement("div", { + className: "sendbird-reaction-badge__inner__icon" + }, children), React__default.createElement(index.Label, { + className: children && count ? 'sendbird-reaction-badge__inner__count' : '', + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_1 + }, count))); +}); +ReactionBadge.propTypes = { + children: PropTypes.element.isRequired, + count: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + selected: PropTypes.bool, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + isAdd: PropTypes.bool, + onClick: PropTypes.func +}; +ReactionBadge.defaultProps = { + className: '', + count: '', + selected: false, + isAdd: false, + onClick: function onClick() {} +}; + +var CLASS_NAME = 'sendbird-tooltip'; +function Tooltip(_ref) { + var className = _ref.className, + children = _ref.children; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift(CLASS_NAME); + return React__default.createElement("div", { + className: injectingClassName.join(' ') + }, React__default.createElement(index.Label, { + className: "".concat(CLASS_NAME, "__text") + }, children)); +} +Tooltip.propTypes = { + className: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.string), PropTypes.string]) +}; +Tooltip.defaultProps = { + className: '', + children: '' +}; + +var CLASS_NAME$1 = 'sendbird-tooltip-wrapper'; +var SPACE_FROM_TRIGGER = 8; +function TooltipWrapper(_ref) { + var className = _ref.className, + children = _ref.children, + hoverTooltip = _ref.hoverTooltip; + var injectingClassName = Array.isArray(className) ? [CLASS_NAME$1].concat(LocalizationContext._toConsumableArray(className)) : [CLASS_NAME$1, className]; + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + showHoverTooltip = _useState2[0], + setShowHoverTooltip = _useState2[1]; + + var childrenRef = React.useRef(null); + return React__default.createElement("div", { + className: injectingClassName.join(' '), + onMouseOver: function onMouseOver() { + setShowHoverTooltip(true); + }, + onFocus: function onFocus() { + setShowHoverTooltip(true); + }, + onMouseOut: function onMouseOut() { + setShowHoverTooltip(false); + }, + onBlur: function onBlur() { + setShowHoverTooltip(false); + } + }, React__default.createElement("div", { + className: "".concat(CLASS_NAME$1, "__children"), + ref: childrenRef + }, children), showHoverTooltip && React__default.createElement("div", { + className: "".concat(CLASS_NAME$1, "__hover-tooltip"), + style: { + bottom: "calc(100% + ".concat(SPACE_FROM_TRIGGER, "px)") + } + }, React__default.createElement("div", { + className: "".concat(CLASS_NAME$1, "__hover-tooltip__inner") + }, React__default.createElement("div", { + className: "".concat(CLASS_NAME$1, "__hover-tooltip__inner__tooltip-container"), + style: { + left: childrenRef.current && "calc(".concat(childrenRef.current.offsetWidth / 2, "px - 50%)") + } + }, hoverTooltip)))); +} +TooltipWrapper.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.element.isRequired, + hoverTooltip: PropTypes.oneOfType([PropTypes.element, PropTypes.func]).isRequired +}; +TooltipWrapper.defaultProps = { + className: '' +}; + +function EmojiReactions(_ref) { + var className = _ref.className, + userId = _ref.userId, + message = _ref.message, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift('sendbird-emoji-reactions'); + var MemoizedEmojiListItems = memoizedEmojiListItems; + var imageWidth = '20px'; + var imageHeight = '20px'; + var emojiReactionAddRef = React.useRef(null); + var _message$reactions = message.reactions, + reactions = _message$reactions === void 0 ? [] : _message$reactions; + var messageReactions = reactions; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React__default.createElement("div", { + className: injectingClassName.join(' ') + }, React__default.createElement("div", { + className: "sendbird-emoji-reactions--inner" + }, messageReactions && messageReactions.map(function (reaction) { + var _reaction$userIds = reaction.userIds, + userIds = _reaction$userIds === void 0 ? [] : _reaction$userIds; + var emojiUrl = emojiAllMap.get(reaction.key) || ''; + var reactedUserCount = userIds.length; + var reactedByMe = !(userIds.indexOf(userId) < 0); + var nicknames = userIds.filter(function (currentUserId) { + return currentUserId !== userId; + }).map(function (currentUserId) { + return membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER; + }); + var stringSetForMe = nicknames.length > 0 ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU; + return React__default.createElement(TooltipWrapper, { + className: "sendbird-emoji-reactions__emoji-reaction", + key: reaction.key, + hoverTooltip: userIds.length > 0 && React__default.createElement(Tooltip, null, React__default.createElement(React__default.Fragment, null, "".concat(nicknames.join(', ')).concat(reactedByMe ? stringSetForMe : ''))) + }, React__default.createElement(ReactionBadge, { + count: reactedUserCount, + selected: reactedByMe, + onClick: function onClick() { + return toggleReaction(message, reaction.key, reactedByMe); + } + }, React__default.createElement(index.ImageRenderer, { + circle: true, + url: emojiUrl, + width: imageWidth, + height: imageHeight, + defaultComponent: React__default.createElement(index.Icon, { + width: imageWidth, + height: imageHeight, + type: index.IconTypes.EMOJI_FAILED + }) + }))); + }), messageReactions.length < emojiAllMap.size && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(ReactionBadge, { + isAdd: true, + onClick: toggleDropdown, + className: "sendbird-emoji-reactions__emoji-reaction-add", + ref: emojiReactionAddRef + }, React__default.createElement(index.Icon, { + width: imageWidth, + height: imageHeight, + fillColor: index.IconColors.ON_BACKGROUND_3, + type: index.IconTypes.EMOJI_REACTIONS_ADD + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: emojiReactionAddRef, + parentContainRef: emojiReactionAddRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 4 + } + }); + } + }))); +} +EmojiReactions.propTypes = { + userId: PropTypes.string, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + message: PropTypes.shape({ + reactions: PropTypes.arrayOf(PropTypes.shape({})) + }).isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func +}; +EmojiReactions.defaultProps = { + className: '', + membersMap: new Map(), + userId: '', + toggleReaction: function toggleReaction() {}, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +var WORD_TYPOGRAPHY = index.LabelTypography.BODY_1; +var EDITED_COLOR = index.LabelColors.ONBACKGROUND_2; +function useMemoizedMessageText(_ref) { + var message = _ref.message, + updatedAt = _ref.updatedAt, + className = _ref.className; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React.useMemo(function () { + return function () { + var splitMessage = message.split(/\r/); + var matchedMessage = splitMessage.map(function (word) { + return word !== '' ? word : React__default.createElement("br", null); + }); + + if (updatedAt > 0) { + matchedMessage.push(React__default.createElement(index.Label, { + key: LocalizationContext.uuidv4$1(), + className: className, + type: WORD_TYPOGRAPHY, + color: EDITED_COLOR + }, " ".concat(stringSet.MESSAGE_EDITED, " "))); + } + + return matchedMessage; + }; + }, [message, updatedAt, className]); +} + +var MOUSE_ENTER = 'mouseenter'; +var MOUSE_LEAVE = 'mouseleave'; + +var useMouseHover = function useMouseHover(_ref) { + var ref = _ref.ref, + setHover = _ref.setHover; + + var handleMouseOver = function handleMouseOver() { + if (ref.current) { + setHover(true); + } + }; + + var handleMouseOut = function handleMouseOut() { + if (ref.current) { + setHover(false); + } + }; + + React.useEffect(function () { + var current = ref.current; + current.addEventListener(MOUSE_ENTER, handleMouseOver); + current.addEventListener(MOUSE_LEAVE, handleMouseOut); + return function () { + current.removeEventListener(MOUSE_ENTER, handleMouseOver); + current.removeEventListener(MOUSE_LEAVE, handleMouseOut); + }; + }); +}; + +var noop = function noop() {}; + +var GROUPING_PADDING = '1px'; +var NORMAL_PADDING = '8px'; +function Message(props) { + var isByMe = props.isByMe, + userId = props.userId, + message = props.message, + className = props.className, + resendMessage = props.resendMessage, + disabled = props.disabled, + showEdit = props.showEdit, + showRemove = props.showRemove, + status = props.status, + useReaction = props.useReaction, + emojiAllMap = props.emojiAllMap, + membersMap = props.membersMap, + toggleReaction = props.toggleReaction, + memoizedEmojiListItems = props.memoizedEmojiListItems, + chainTop = props.chainTop, + chainBottom = props.chainBottom; + if (!message) return null; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push("sendbird-message".concat(isByMe ? '--outgoing' : '--incoming')); + var memoizedMessageText = useMemoizedMessageText({ + message: message.message, + updatedAt: message.updatedAt, + className: 'sendbird-user-message-word' + }); + return React__default.createElement("div", { + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), ['sendbird-message']).join(' ') + }, isByMe ? React__default.createElement(OutgoingUserMessage, { + userId: userId, + message: message, + resendMessage: resendMessage, + disabled: disabled, + showEdit: showEdit, + showRemove: showRemove, + status: status, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedMessageText: memoizedMessageText, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + }) : React__default.createElement(IncomingUserMessage, { + userId: userId, + message: message, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedMessageText: memoizedMessageText, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })); +} +Message.propTypes = { + isByMe: PropTypes.bool, + disabled: PropTypes.bool, + userId: PropTypes.string, + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])).isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + showEdit: PropTypes.func, + status: PropTypes.string, + showRemove: PropTypes.func, + resendMessage: PropTypes.func, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +Message.defaultProps = { + isByMe: false, + disabled: false, + userId: '', + resendMessage: noop, + className: '', + showEdit: noop, + showRemove: noop, + status: '', + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + }, + chainTop: false, + chainBottom: false +}; + +function OutgoingUserMessage(_ref) { + var userId = _ref.userId, + message = _ref.message, + showEdit = _ref.showEdit, + disabled = _ref.disabled, + showRemove = _ref.showRemove, + status = _ref.status, + resendMessage = _ref.resendMessage, + useReaction = _ref.useReaction, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedMessageText = _ref.memoizedMessageText, + memoizedEmojiListItems = _ref.memoizedEmojiListItems, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom; + var MemoizedMessageText = memoizedMessageText; + var MemoizedEmojiListItems = memoizedEmojiListItems; // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED + + var messageRef = React.useRef(null); + var parentRefReactions = React.useRef(null); + var parentRefMenus = React.useRef(null); + var parentContainRef = React.useRef(null); + var isMessageSent = utils$2.getIsSentFromStatus(status); + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = React.useState(false), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React__default.createElement("div", { + className: "sendbird-user-message--outgoing", + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING, + paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING + } + }, React__default.createElement("div", { + className: "sendbird-user-message--inner" + }, React__default.createElement("div", { + className: "sendbird-user-message__left-padding" + }, React__default.createElement("div", { + className: "sendbird-user-message__more", + ref: parentContainRef + }, React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + className: "sendbird-user-message__more__menu", + ref: parentRefMenus, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.MORE, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: parentRefMenus // for catching location(x, y) of MenuItems + , + parentContainRef: parentContainRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + openLeft: true + }, isMessageSent && React__default.createElement(index.MenuItem, { + className: "sendbird-user-message--copy", + onClick: function onClick() { + utils$2.copyToClipboard(message.message); + closeDropdown(); + } + }, "Copy"), isMessageSent && React__default.createElement(index.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showEdit(true); + closeDropdown(); + } + }, "Edit"), message && message.isResendable && message.isResendable() && React__default.createElement(index.MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, "Resend"), React__default.createElement(index.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, "Delete")); + } + }), isMessageSent && useReaction && emojiAllMap.size > 0 && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + className: "sendbird-user-message__more__add-reaction", + ref: parentRefReactions, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.EMOJI_REACTIONS_ADD, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: parentRefReactions, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React__default.createElement("div", { + className: "sendbird-user-message__status" + }, React__default.createElement(MessageStatus, { + message: message, + status: status // onDelete={() => { showRemove(true); }} + // onResend={() => resendMessage(message)} + // duplicated and should replace to more + + }))), React__default.createElement("div", { + className: "sendbird-user-message__text-balloon" + }, React__default.createElement("div", { + className: "sendbird-user-message__text-balloon__inner" + }, React__default.createElement("div", { + className: "sendbird-user-message__text-balloon__inner__text-place" + }, React__default.createElement(index.Label, { + className: "sendbird-user-message__text-balloon__inner__text-place__text", + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_1 + }, React__default.createElement(MemoizedMessageText, null))), useReaction && message.reactions && message.reactions.length > 0 && React__default.createElement(EmojiReactions, { + className: "sendbird-user-message__text-balloon__inner__emoji-reactions", + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }))))); +} + +function IncomingUserMessage(_ref2) { + var userId = _ref2.userId, + message = _ref2.message, + useReaction = _ref2.useReaction, + emojiAllMap = _ref2.emojiAllMap, + membersMap = _ref2.membersMap, + toggleReaction = _ref2.toggleReaction, + memoizedMessageText = _ref2.memoizedMessageText, + memoizedEmojiListItems = _ref2.memoizedEmojiListItems, + chainTop = _ref2.chainTop, + chainBottom = _ref2.chainBottom; + var MemoizedMessageText = memoizedMessageText; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var messageRef = React.useRef(null); + var parentRefReactions = React.useRef(null); + var parentRefMenus = React.useRef(null); + var parentContainRef = React.useRef(null); + var avatarRef = React.useRef(null); + + var _React$useContext = React__default.useContext(index.UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + var _useState5 = React.useState(false), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + mousehover = _useState6[0], + setMousehover = _useState6[1]; + + var _useState7 = React.useState(false), + _useState8 = LocalizationContext._slicedToArray(_useState7, 2), + moreActive = _useState8[0], + setMoreActive = _useState8[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React__default.createElement("div", { + ref: messageRef, + className: "sendbird-user-message--incoming", + style: { + paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING, + paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING + } + }, React__default.createElement("div", { + className: "sendbird-user-message--inner" + }, React__default.createElement("div", { + className: "sendbird-user-message--body" + }, !chainBottom && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.Avatar, { + ref: avatarRef, + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "sendbird-user-message__avatar", + src: utils$2.getSenderProfileUrl(message), + width: "28px", + height: "28px" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React__default.createElement(index.UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + }), !chainTop && React__default.createElement(index.Label, { + className: "sendbird-user-message__sender-name", + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, utils$2.getSenderName(message)), React__default.createElement("div", { + className: "sendbird-user-message__text-balloon" + }, React__default.createElement("div", { + className: "sendbird-user-message__text-balloon__inner" + }, React__default.createElement("div", { + className: "sendbird-user-message__text-balloon__inner__text-place" + }, React__default.createElement(index.Label, { + className: "sendbird-user-message__text-balloon__inner__text-place__text", + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_1 + }, React__default.createElement(MemoizedMessageText, null))), showEmojiReactions && React__default.createElement(EmojiReactions, { + className: "sendbird-user-message__text-balloon__inner__emoji-reactions", + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + })))), React__default.createElement("div", { + className: "sendbird-user-message__right-padding" + }, React__default.createElement("div", { + className: "sendbird-user-message__more", + ref: parentContainRef + }, showReactionAddButton && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: parentRefReactions, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.EMOJI_REACTIONS_ADD, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(MemoizedEmojiListItems, { + parentRef: parentRefReactions, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + message: message, + spaceFromTrigger: { + y: 2 + } + }); + } + }), React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: parentRefMenus, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.MORE, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: parentRefMenus, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown + }, React__default.createElement(index.MenuItem, { + className: "sendbird-user-message--copy", + onClick: function onClick() { + utils$2.copyToClipboard(message.message); + closeDropdown(); + } + }, "Copy")); + } + })), !chainBottom && !(mousehover || moreActive) && React__default.createElement(index.Label, { + className: "sendbird-user-message__sent-at", + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2 + }, utils$2.getMessageCreatedAt(message))))); +} + +IncomingUserMessage.propTypes = { + userId: PropTypes.string.isRequired, + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedMessageText: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +IncomingUserMessage.defaultProps = { + message: {}, + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; +OutgoingUserMessage.propTypes = { + userId: PropTypes.string.isRequired, + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + showEdit: PropTypes.func, + showRemove: PropTypes.func, + disabled: PropTypes.bool, + resendMessage: PropTypes.func, + status: PropTypes.string.isRequired, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedMessageText: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingUserMessage.defaultProps = { + message: {}, + resendMessage: noop, + showEdit: noop, + showRemove: noop, + disabled: false, + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +function AdminMessage(_ref) { + var className = _ref.className, + message = _ref.message; + + if (!message.messageType || message.messageType !== 'admin') { + // change to use message.isAdminMessage() + return null; + } + + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), ['sendbird-admin-message']).join(' ') + }, React__default.createElement(index.Label, { + className: "sendbird-admin-message__text", + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, message.message)); +} +AdminMessage.propTypes = { + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +AdminMessage.defaultProps = { + message: {}, + className: '' +}; + +var getMessageCreatedAt$1 = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var getIsSentFromStatus = function getIsSentFromStatus(status) { + return status === type.MessageStatusType.SENT || status === type.MessageStatusType.DELIVERED || status === type.MessageStatusType.READ; +}; + +var noop$1 = function noop() {}; + +var OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message'; +var INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message'; +var GROUPING_PADDING$1 = '1px'; +var NORMAL_PADDING$1 = '8px'; +function ThumbnailMessage(_ref) { + var _ref$message = _ref.message, + message = _ref$message === void 0 ? {} : _ref$message, + userId = _ref.userId, + disabled = _ref.disabled, + isByMe = _ref.isByMe, + onClick = _ref.onClick, + showRemove = _ref.showRemove, + status = _ref.status, + resendMessage = _ref.resendMessage, + useReaction = _ref.useReaction, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom; + return isByMe ? React__default.createElement(OutgoingThumbnailMessage, { + userId: userId, + status: status, + message: message, + onClick: onClick, + disabled: disabled, + chainTop: chainTop, + showRemove: showRemove, + membersMap: membersMap, + chainBottom: chainBottom, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + resendMessage: resendMessage, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }) : React__default.createElement(IncomingThumbnailMessage, { + userId: userId, + status: status, + message: message, + onClick: onClick, + chainTop: chainTop, + membersMap: membersMap, + chainBottom: chainBottom, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }); +} +function OutgoingThumbnailMessage(_ref2) { + var _ref2$message = _ref2.message, + message = _ref2$message === void 0 ? {} : _ref2$message, + userId = _ref2.userId, + disabled = _ref2.disabled, + onClick = _ref2.onClick, + showRemove = _ref2.showRemove, + status = _ref2.status, + resendMessage = _ref2.resendMessage, + useReaction = _ref2.useReaction, + emojiAllMap = _ref2.emojiAllMap, + membersMap = _ref2.membersMap, + toggleReaction = _ref2.toggleReaction, + memoizedEmojiListItems = _ref2.memoizedEmojiListItems, + chainTop = _ref2.chainTop, + chainBottom = _ref2.chainBottom; + var type = message.type, + url = message.url, + localUrl = message.localUrl; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var messageRef = React.useRef(null); + var parentContainRef = React.useRef(null); + var menuRef = React.useRef(null); + var reactionAddRef = React.useRef(null); + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = React.useState(false), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var isMessageSent = getIsSentFromStatus(status); + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React__default.createElement("div", { + className: OUTGOING_THUMBNAIL_MESSAGE, + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPING_PADDING$1 : NORMAL_PADDING$1, + paddingBottom: chainBottom ? GROUPING_PADDING$1 : NORMAL_PADDING$1 + } + }, React__default.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "--inner") + }, React__default.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "__left-padding") + }, React__default.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-left-padding__more"), + ref: parentContainRef + }, React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: menuRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.MORE, + color: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: menuRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + openLeft: true + }, message && message.isResendable && message.isResendable() && React__default.createElement(index.MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), React__default.createElement(index.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }), isMessageSent && showReactionAddButton && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: reactionAddRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.EMOJI_REACTIONS_ADD, + color: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: reactionAddRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React__default.createElement(MessageStatus, { + message: message, + status: status, + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-left-padding__status") + })), React__default.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "__body") + }, React__default.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap") + }, React__default.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap--inner"), + onClick: isMessageSent ? function () { + return onClick(true); + } : function () {}, + onKeyDown: isMessageSent ? function () { + return onClick(true); + } : function () {}, + tabIndex: 0, + role: "button" + }, index$2.isVideo(type) && React__default.createElement(React__default.Fragment, null, React__default.createElement("video", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__video") + }, React__default.createElement("source", { + src: url || localUrl, + type: type + })), React__default.createElement(index.Icon, { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__video-icon"), + width: "56px", + height: "56px", + type: index.IconTypes.PLAY + })), index$2.isImage(type) && React__default.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__img"), + style: { + backgroundImage: "url(".concat(url || localUrl, ")"), + height: '280px', + width: '404px', + backgroundSize: 'cover', + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center' + } + }), index$2.unSupported(type) && React__default.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__other") + }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React__default.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap__overlay") + })), useReaction && message.reactions && message.reactions.length > 0 && React__default.createElement(EmojiReactions, { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap__emoji-reactions"), + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }))))); +} +function IncomingThumbnailMessage(_ref3) { + var _ref3$message = _ref3.message, + message = _ref3$message === void 0 ? {} : _ref3$message, + userId = _ref3.userId, + onClick = _ref3.onClick, + status = _ref3.status, + useReaction = _ref3.useReaction, + emojiAllMap = _ref3.emojiAllMap, + membersMap = _ref3.membersMap, + toggleReaction = _ref3.toggleReaction, + memoizedEmojiListItems = _ref3.memoizedEmojiListItems, + chainTop = _ref3.chainTop, + chainBottom = _ref3.chainBottom; + var type = message.type, + url = message.url, + localUrl = message.localUrl; + + var _React$useContext = React__default.useContext(index.UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + var _useContext2 = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext2.stringSet; + + var messageRef = React.useRef(null); + var parentContainRef = React.useRef(null); + var reactionAddRef = React.useRef(null); + var avatarRef = React.useRef(null); + + var _useState5 = React.useState(false), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + mousehover = _useState6[0], + setMousehover = _useState6[1]; + + var _useState7 = React.useState(false), + _useState8 = LocalizationContext._slicedToArray(_useState7, 2), + moreActive = _useState8[0], + setMoreActive = _useState8[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var isMessageSent = getIsSentFromStatus(status); + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React__default.createElement("div", { + className: INCOMING_THUMBNAIL_MESSAGE, + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPING_PADDING$1 : NORMAL_PADDING$1, + paddingBottom: chainBottom ? GROUPING_PADDING$1 : NORMAL_PADDING$1 + } + }, !chainTop && React__default.createElement(index.Label, { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__sender-name"), + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, utils.getSenderName(message) || ''), React__default.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "--inner") + }, React__default.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__body") + }, React__default.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap") + }, !chainBottom && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__avatar"), + src: utils.getSenderProfileUrl(message), + width: "28px", + height: "28px" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React__default.createElement(index.UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + }), React__default.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap--inner"), + role: "button", + tabIndex: 0, + onClick: isMessageSent ? function () { + return onClick(true); + } : function () {}, + onKeyDown: isMessageSent ? function () { + return onClick(true); + } : function () {} + }, index$2.isVideo(type) && React__default.createElement(React__default.Fragment, null, React__default.createElement("video", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__video") + }, React__default.createElement("source", { + src: url || localUrl, + type: type + })), React__default.createElement(index.Icon, { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__video-icon"), + width: "56px", + height: "56px", + type: index.IconTypes.PLAY + })), index$2.isImage(type) && React__default.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__img"), + style: { + backgroundImage: "url(".concat(url || localUrl, ")"), + height: '280px', + width: '404px', + backgroundSize: 'cover', + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center' + } + }), index$2.unSupported(type) && React__default.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__other") + }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React__default.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap-overlay") + })), useReaction && message.reactions && message.reactions.length > 0 && React__default.createElement(EmojiReactions, { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__wrap__emoji-reactions"), + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }))), React__default.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__right-padding") + }, !chainBottom && !(mousehover || moreActive) && React__default.createElement(index.Label, { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__sent-at"), + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2 + }, getMessageCreatedAt$1(message)), React__default.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__more"), + ref: parentContainRef + }, showReactionAddButton && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: reactionAddRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.EMOJI_REACTIONS_ADD, + color: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: reactionAddRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + }))))); +} +ThumbnailMessage.propTypes = { + message: PropTypes.shape({ + type: PropTypes.string, + url: PropTypes.string, + localUrl: PropTypes.string + }).isRequired, + userId: PropTypes.string, + resendMessage: PropTypes.func, + status: PropTypes.string, + isByMe: PropTypes.bool, + disabled: PropTypes.bool, + onClick: PropTypes.func, + showRemove: PropTypes.func, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +ThumbnailMessage.defaultProps = { + isByMe: false, + disabled: false, + resendMessage: noop$1, + onClick: noop$1, + showRemove: noop$1, + status: '', + userId: '', + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop$1, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + }, + chainTop: false, + chainBottom: false +}; +OutgoingThumbnailMessage.propTypes = { + message: PropTypes.shape({ + type: PropTypes.string, + url: PropTypes.string, + localUrl: PropTypes.string + }).isRequired, + userId: PropTypes.string.isRequired, + disabled: PropTypes.bool.isRequired, + resendMessage: PropTypes.func.isRequired, + status: PropTypes.string, + onClick: PropTypes.func.isRequired, + showRemove: PropTypes.func.isRequired, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + toggleReaction: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingThumbnailMessage.defaultProps = { + status: '' +}; +IncomingThumbnailMessage.propTypes = { + message: PropTypes.shape({ + type: PropTypes.string, + url: PropTypes.string, + localUrl: PropTypes.string + }).isRequired, + userId: PropTypes.string.isRequired, + onClick: PropTypes.func.isRequired, + status: PropTypes.string, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + toggleReaction: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +IncomingThumbnailMessage.defaultProps = { + status: '' +}; + +var MAX_TRUNCATE_LENGTH = 40; +var GROUPAING_PADDING = '1px'; +var NORMAL_PADDING$2 = '8px'; + +var noop$2 = function noop() {}; + +function checkFileType(fileUrl) { + var result = null; + var imageFile = /(\.gif|\.jpg|\.jpeg|\.txt|\.pdf)$/i; + var audioFile = /(\.mp3)$/i; + + if (imageFile.test(fileUrl)) { + result = index.IconTypes.FILE_DOCUMENT; + } else if (audioFile.test(fileUrl)) { + result = index.IconTypes.FILE_AUDIO; + } + + return result; +} + +function OutgoingFileMessage(_ref) { + var message = _ref.message, + userId = _ref.userId, + status = _ref.status, + showRemove = _ref.showRemove, + disabled = _ref.disabled, + resendMessage = _ref.resendMessage, + useReaction = _ref.useReaction, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom; + var url = message.url; + + var openFileUrl = function openFileUrl() { + window.open(url); + }; + + var messageRef = React.useRef(null); + var parentContainRef = React.useRef(null); + var menuRef = React.useRef(null); + var reactionAddButtonRef = React.useRef(null); + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = React.useState(false), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var isMessageSent = utils$1.getIsSentFromStatus(status); + var showEmojiReactions = isMessageSent && useReaction && message.reactions && message.reactions.length > 0; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React__default.createElement("div", { + className: "sendbird-file-message__outgoing", + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING$2, + paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING$2 + } + }, React__default.createElement("div", { + className: "sendbird-file-message--inner" + }, React__default.createElement("div", { + className: "sendbird-file-message__left-padding" + }, React__default.createElement("div", { + className: "sendbird-file-message__more", + ref: parentContainRef + }, React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: menuRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.MORE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: menuRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + openLeft: true + }, message && message.isResendable && message.isResendable() && React__default.createElement(index.MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, "Resend"), React__default.createElement(index.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, "Delete")); + } + }), showReactionAddButton && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: reactionAddButtonRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.EMOJI_REACTIONS_ADD, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: reactionAddButtonRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React__default.createElement("div", { + className: "sendbird-file-message__status" + }, React__default.createElement(MessageStatus, { + message: message, + status: status + }))), React__default.createElement("div", { + className: "sendbird-file-message__tooltip" + }, React__default.createElement("div", { + className: "sendbird-file-message__tooltip__inner" + }, checkFileType(url) ? React__default.createElement(index.Icon, { + className: "sendbird-file-message__tooltip__icon", + width: "28px", + height: "28px", + type: checkFileType(url) + }) : null, React__default.createElement(index.TextButton, { + className: "sendbird-file-message__tooltip__text", + onClick: openFileUrl + }, React__default.createElement(index.Label, { + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_1 + }, utils$1.truncate(message.url, MAX_TRUNCATE_LENGTH)))), showEmojiReactions && React__default.createElement(EmojiReactions, { + className: "sendbird-file-message__tooltip__emoji-reactions", + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + })))); +} +function IncomingFileMessage(_ref2) { + var message = _ref2.message, + userId = _ref2.userId, + useReaction = _ref2.useReaction, + emojiAllMap = _ref2.emojiAllMap, + membersMap = _ref2.membersMap, + toggleReaction = _ref2.toggleReaction, + memoizedEmojiListItems = _ref2.memoizedEmojiListItems, + chainTop = _ref2.chainTop, + chainBottom = _ref2.chainBottom; + + var openFileUrl = function openFileUrl() { + window.open(message.url); + }; + + var messageRef = React.useRef(null); + + var _React$useContext = React__default.useContext(index.UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + var parentContainRef = React.useRef(null); + var avatarRef = React.useRef(null); + var reactionAddButtonRef = React.useRef(null); + + var _useState5 = React.useState(false), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + mousehover = _useState6[0], + setMousehover = _useState6[1]; + + var _useState7 = React.useState(false), + _useState8 = LocalizationContext._slicedToArray(_useState7, 2), + moreActive = _useState8[0], + setMoreActive = _useState8[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var MemoizedEmojiListItems = memoizedEmojiListItems; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React__default.createElement("div", { + className: "sendbird-file-message__incoming", + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING$2, + paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING$2 + } + }, React__default.createElement("div", { + className: "sendbird-file-message--inner" + }, React__default.createElement("div", { + className: "sendbird-file-message__body" + }, !chainBottom && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.Avatar, { + ref: avatarRef, + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "sendbird-file-message__avatar", + src: utils.getSenderProfileUrl(message), + width: "28px", + height: "28px" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React__default.createElement(index.UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + }), !chainTop && React__default.createElement(index.Label, { + className: "sendbird-file-message__sender-name", + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, utils.getSenderName(message)), React__default.createElement("div", { + className: "sendbird-file-message__tooltip" + }, React__default.createElement("div", { + className: "sendbird-file-message__tooltip__inner" + }, checkFileType(message.url) ? React__default.createElement(index.Icon, { + className: "sendbird-file-message__tooltip__icon", + width: "28px", + height: "28px", + type: checkFileType(message.url) + }) : null, React__default.createElement(index.TextButton, { + className: "sendbird-file-message__tooltip__text", + onClick: openFileUrl + }, React__default.createElement(index.Label, { + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_1 + }, utils$1.truncate(message.url, MAX_TRUNCATE_LENGTH)))), useReaction && message.reactions && message.reactions.length > 0 && React__default.createElement(EmojiReactions, { + className: "sendbird-file-message__tooltip__emoji-reactions", + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }))), React__default.createElement("div", { + className: "sendbird-file-message__right-padding" + }, React__default.createElement("div", { + className: "sendbird-file-message__more", + ref: parentContainRef + }, showReactionAddButton && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: reactionAddButtonRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.EMOJI_REACTIONS_ADD, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: reactionAddButtonRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React__default.createElement(index.Label, { + className: "sendbird-file-message__sent-at", + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2 + }, utils.getMessageCreatedAt(message))))); +} +OutgoingFileMessage.propTypes = { + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + userId: PropTypes.string, + status: PropTypes.string, + showRemove: PropTypes.func, + resendMessage: PropTypes.func, + useReaction: PropTypes.bool.isRequired, + disabled: PropTypes.bool, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingFileMessage.defaultProps = { + status: '', + showRemove: noop$2, + resendMessage: noop$2, + message: {}, + userId: '', + disabled: false, + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop$2, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; +IncomingFileMessage.propTypes = { + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + userId: PropTypes.string, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +IncomingFileMessage.defaultProps = { + message: {}, + userId: '', + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop$2, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +var MessageSwitch = function MessageSwitch(_ref3) { + var message = _ref3.message, + userId = _ref3.userId, + disabled = _ref3.disabled, + isByMe = _ref3.isByMe, + showRemove = _ref3.showRemove, + status = _ref3.status, + resendMessage = _ref3.resendMessage, + useReaction = _ref3.useReaction, + emojiAllMap = _ref3.emojiAllMap, + membersMap = _ref3.membersMap, + toggleReaction = _ref3.toggleReaction, + memoizedEmojiListItems = _ref3.memoizedEmojiListItems, + chainTop = _ref3.chainTop, + chainBottom = _ref3.chainBottom; + return React__default.createElement("div", { + className: "sendbird-file-message".concat(isByMe ? '--outgoing' : '--incoming') + }, isByMe ? React__default.createElement(OutgoingFileMessage, { + message: message, + userId: userId, + disabled: disabled, + showRemove: showRemove, + status: status, + resendMessage: resendMessage, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + }) : React__default.createElement(IncomingFileMessage, { + userId: userId, + message: message, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })); +}; + +MessageSwitch.propTypes = { + message: PropTypes.shape({}), + userId: PropTypes.string, + isByMe: PropTypes.bool, + disabled: PropTypes.bool, + showRemove: PropTypes.func, + resendMessage: PropTypes.func, + status: PropTypes.string.isRequired, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +MessageSwitch.defaultProps = { + message: {}, + isByMe: false, + disabled: false, + showRemove: noop$2, + resendMessage: noop$2, + userId: '', + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop$2, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + }, + chainTop: false, + chainBottom: false +}; + +var RemoveMessage = function RemoveMessage(props) { + var onCloseModal = props.onCloseModal, + onDeleteMessage = props.onDeleteMessage; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React__default.createElement(index.Modal, { + onCancel: onCloseModal, + onSubmit: onDeleteMessage, + submitText: "Delete", + titleText: stringSet.MODAL__DELETE_MESSAGE__TITLE + }); +}; + +RemoveMessage.propTypes = { + onCloseModal: PropTypes.func.isRequired, + onDeleteMessage: PropTypes.func.isRequired +}; + +var getMessageCreatedAt$2 = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; + +var CLASS_NAME$2 = 'sendbird-unknown-message'; +var GROUPING_PADDING$2 = '1px'; +var NORMAL_PADDING$3 = '8px'; +function UnknownMessage(_ref) { + var message = _ref.message, + isByMe = _ref.isByMe, + status = _ref.status, + className = _ref.className, + showRemove = _ref.showRemove, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift(CLASS_NAME$2); + injectingClassName.push("".concat(CLASS_NAME$2).concat(isByMe ? '--outgoing' : '--incoming')); + return React__default.createElement("div", { + className: injectingClassName.join(' ') + }, isByMe ? React__default.createElement(OutgoingUnknownMessage, { + status: status, + message: message, + chainTop: chainTop, + showRemove: showRemove, + chainBottom: chainBottom + }) : React__default.createElement(IncomingUnknownMessage, { + message: message, + chainTop: chainTop, + chainBottom: chainBottom + })); +} +UnknownMessage.propTypes = { + message: PropTypes.shape({}).isRequired, + isByMe: PropTypes.bool, + status: PropTypes.string, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + showRemove: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +UnknownMessage.defaultProps = { + isByMe: false, + status: '', + className: '', + showRemove: function showRemove() {}, + chainTop: false, + chainBottom: false +}; + +function OutgoingUnknownMessage(_ref2) { + var message = _ref2.message, + status = _ref2.status, + showRemove = _ref2.showRemove, + chainTop = _ref2.chainTop, + chainBottom = _ref2.chainBottom; + var className = 'sendbird-outgoing-unknown-message'; + var messageRef = React.useRef(null); + var parentContainRef = React.useRef(null); + var menuRef = React.useRef(null); + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = React.useState(false), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React__default.createElement("div", { + ref: messageRef, + className: className, + style: { + paddingTop: chainTop ? GROUPING_PADDING$2 : NORMAL_PADDING$3, + paddingBottom: chainBottom ? GROUPING_PADDING$2 : NORMAL_PADDING$3 + } + }, React__default.createElement("div", { + className: "".concat(className, "--inner") + }, React__default.createElement("div", { + className: "".concat(className, "--left-padding") + }, React__default.createElement("div", { + className: "".concat(className, "__more"), + ref: parentContainRef + }, React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + className: "".concat(className, "__more__menu"), + ref: menuRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.MORE, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: menuRef // for catching location(x, y) of MenuItems + , + parentContainRef: parentContainRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + openLeft: true + }, React__default.createElement(index.MenuItem, { + onClick: function onClick() { + showRemove(true); + closeDropdown(); + } + }, "Delete")); + } + })), !chainBottom && !(mousehover || moreActive) && React__default.createElement("div", { + className: "".concat(className, "__message-status") + }, React__default.createElement(MessageStatus, { + message: message, + status: status + }))), React__default.createElement("div", { + className: "".concat(className, "__body") + }, React__default.createElement("div", { + className: "".concat(className, "__body__text-balloon") + }, React__default.createElement(index.Label, { + className: "".concat(className, "__body__text-balloon__header"), + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_1 + }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React__default.createElement(index.Label, { + className: "".concat(className, "__body__text-balloon__description"), + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_2 + }, stringSet.UNKNOWN__CANNOT_READ_MESSAGE))))); +} + +function IncomingUnknownMessage(_ref3) { + var message = _ref3.message, + chainTop = _ref3.chainTop, + chainBottom = _ref3.chainBottom; + var className = 'sendbird-incoming-unknown-message'; + var sender = message.sender; + var avatarRef = React.useRef(null); + + var _useContext2 = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext2.stringSet; + + var _React$useContext = React__default.useContext(index.UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + return React__default.createElement("div", { + className: className, + style: { + paddingTop: chainTop ? GROUPING_PADDING$2 : NORMAL_PADDING$3, + paddingBottom: chainBottom ? GROUPING_PADDING$2 : NORMAL_PADDING$3 + } + }, React__default.createElement("div", { + className: "".concat(className, "--inner") + }, React__default.createElement("div", { + className: "".concat(className, "__left") + }, !chainBottom && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.Avatar, { + ref: avatarRef, + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "".concat(className, "__left__sender-profile-image"), + src: sender.profileUrl, + width: "28px", + height: "28px", + alt: "sender-profile-image" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React__default.createElement(index.UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + })), React__default.createElement("div", { + className: "".concat(className, "__body") + }, !chainTop && React__default.createElement(index.Label, { + className: "".concat(className, "__body__sender-name"), + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, sender.nickname || stringSet.NO_NAME), React__default.createElement("div", { + className: "".concat(className, "__body__text-balloon") + }, React__default.createElement(index.Label, { + className: "".concat(className, "__body__text-balloon__header"), + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_1 + }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React__default.createElement(index.Label, { + className: "".concat(className, "__body__text-balloon__description"), + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_2 + }, stringSet.UNKNOWN__CANNOT_READ_MESSAGE))), React__default.createElement("div", { + className: "".concat(className, "--right-padding") + }, !chainBottom && React__default.createElement(index.Label, { + className: "".concat(className, "__sent-at"), + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2 + }, getMessageCreatedAt$2(message))))); +} + +OutgoingUnknownMessage.propTypes = { + message: PropTypes.shape({}).isRequired, + status: PropTypes.string.isRequired, + showRemove: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingUnknownMessage.defaultProps = { + showRemove: function showRemove() {} +}; +IncomingUnknownMessage.propTypes = { + message: PropTypes.shape({ + sender: PropTypes.shape({ + nickname: PropTypes.string, + profileUrl: PropTypes.string + }) + }).isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; + +var URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; +var OG_MESSAGE = 'sendbird-og-message'; +var OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message'; +var INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message'; + +var createUrlTester = function createUrlTester(regexp) { + return function (text) { + return regexp.test(text); + }; +}; +var getIsSentFromStatus$1 = function getIsSentFromStatus(status) { + return status === type.MessageStatusType.SENT || status === type.MessageStatusType.DELIVERED || status === type.MessageStatusType.READ; +}; +var copyToClipboard = function copyToClipboard(text) { + try { + if (window.clipboardData && window.clipboardData.setData) { + // Internet Explorer-specific code path + // to prevent textarea being shown while dialog is visible. + return window.clipboardData.setData('Text', text); + } + + if (document.queryCommandSupported && document.queryCommandSupported('copy')) { + var textarea = document.createElement('textarea'); + textarea.textContent = text; + textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. + + document.body.appendChild(textarea); + textarea.select(); + + try { + return document.execCommand('copy'); // Security exception may be thrown by some browsers. + } catch (ex) { + return false; + } finally { + document.body.removeChild(textarea); + } + } + + return false; + } catch (err) { + return err; + } +}; +var getSenderProfileUrl = function getSenderProfileUrl(message) { + return message.sender && message.sender.profileUrl; +}; +var getSenderName = function getSenderName(message) { + return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); +}; +var getMessageCreatedAt$3 = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var checkOGIsEnalbed = function checkOGIsEnalbed(message) { + var ogMetaData = message.ogMetaData; + + if (!ogMetaData) { + return false; + } + + var url = ogMetaData.url; + + if (!url) { + return false; + } + + return true; +}; + +var WORD_TYPOGRAPHY$1 = index.LabelTypography.BODY_1; +var WORD_COLOR = index.LabelColors.ONBACKGROUND_1; +var EDITED_COLOR$1 = index.LabelColors.ONBACKGROUND_2; +var isUrl = createUrlTester(URL_REG); +function useMemoizedMessageText$1(_ref) { + var message = _ref.message, + updatedAt = _ref.updatedAt, + className = _ref.className; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React.useMemo(function () { + return function () { + var splitMessage = message.split(' '); + var matchedMessage = splitMessage.map(function (word) { + return isUrl(word) ? React__default.createElement(index$2.LinkLabel, { + key: LocalizationContext.uuidv4$1(), + className: className, + src: word, + type: WORD_TYPOGRAPHY$1, + color: WORD_COLOR + }, word) : React__default.createElement(index.Label, { + key: LocalizationContext.uuidv4$1(), + className: className, + type: WORD_TYPOGRAPHY$1, + color: WORD_COLOR + }, word); + }); + + if (updatedAt > 0) { + matchedMessage.push(React__default.createElement(index.Label, { + key: LocalizationContext.uuidv4$1(), + className: className, + type: WORD_TYPOGRAPHY$1, + color: EDITED_COLOR$1 + }, stringSet.MESSAGE_EDITED)); + } + + return matchedMessage; + }; + }, [message, updatedAt, className]); +} + +var GROUPING_PADDING$3 = '1px'; +var NORAML_PADDING = '8px'; + +var OGMessageSwitch = function OGMessageSwitch(_ref) { + var isByMe = _ref.isByMe, + userId = _ref.userId, + status = _ref.status, + message = _ref.message, + disabled = _ref.disabled, + showEdit = _ref.showEdit, + chainTop = _ref.chainTop, + className = _ref.className, + membersMap = _ref.membersMap, + showRemove = _ref.showRemove, + useReaction = _ref.useReaction, + emojiAllMap = _ref.emojiAllMap, + chainBottom = _ref.chainBottom, + resendMessage = _ref.resendMessage, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems; + var ogMetaData = message.ogMetaData; + var injectingClassName = Array.isArray(className) ? className : [className]; + var memoizedMessageText = useMemoizedMessageText$1({ + message: message.message, + updatedAt: message.updatedAt, + className: 'sendbird-og-message-word' + }); + + var openLink = function openLink() { + if (checkOGIsEnalbed(message)) { + var url = ogMetaData.url; + window.open(url); + } + }; + + return React__default.createElement("div", { + className: "".concat(OG_MESSAGE, " ").concat(OG_MESSAGE).concat(isByMe ? '--outgoing' : '--incoming', " ").concat(injectingClassName.join(' ')) + }, isByMe ? React__default.createElement(OutgoingOGMessage, { + status: status, + userId: userId, + message: message, + disabled: disabled, + openLink: openLink, + showEdit: showEdit, + chainTop: chainTop, + showRemove: showRemove, + membersMap: membersMap, + chainBottom: chainBottom, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + resendMessage: resendMessage, + toggleReaction: toggleReaction, + memoizedMessageText: memoizedMessageText, + memoizedEmojiListItems: memoizedEmojiListItems + }) : React__default.createElement(IncomingOGMessage, { + userId: userId, + message: message, + openLink: openLink, + chainTop: chainTop, + membersMap: membersMap, + chainBottom: chainBottom, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + toggleReaction: toggleReaction, + memoizedMessageText: memoizedMessageText, + memoizedEmojiListItems: memoizedEmojiListItems + })); +}; + +function OutgoingOGMessage(props) { + var status = props.status, + userId = props.userId, + message = props.message, + disabled = props.disabled, + openLink = props.openLink, + showEdit = props.showEdit, + chainTop = props.chainTop, + showRemove = props.showRemove, + membersMap = props.membersMap, + chainBottom = props.chainBottom, + emojiAllMap = props.emojiAllMap, + useReaction = props.useReaction, + resendMessage = props.resendMessage, + toggleReaction = props.toggleReaction, + memoizedMessageText = props.memoizedMessageText, + memoizedEmojiListItems = props.memoizedEmojiListItems; + var ogMetaData = message.ogMetaData; + var defaultImage = ogMetaData.defaultImage; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var MemoizedMessageText = memoizedMessageText; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var messageRef = React.useRef(null); + var parentRefReactions = React.useRef(null); + var parentRefMenus = React.useRef(null); + var parentContainRef = React.useRef(null); + var isMessageSent = getIsSentFromStatus$1(status); + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = React.useState(false), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React__default.createElement("div", { + ref: messageRef, + className: OUTGOING_OG_MESSAGE, + style: { + paddingTop: chainTop ? GROUPING_PADDING$3 : NORAML_PADDING, + paddingBottom: chainBottom ? GROUPING_PADDING$3 : NORAML_PADDING + } + }, React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "--inner") + }, React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "--left-padding") + }, React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__more"), + ref: parentContainRef + }, React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + className: "".concat(OUTGOING_OG_MESSAGE, "__more__menu"), + ref: parentRefMenus, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.MORE, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: parentRefMenus // for catching location(x, y) of MenuItems + , + parentContainRef: parentContainRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + openLeft: true + }, isMessageSent && React__default.createElement(index.MenuItem, { + className: "".concat(OUTGOING_OG_MESSAGE, "__more__menu__copy"), + onClick: function onClick() { + copyToClipboard(message.message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__COPY), isMessageSent && React__default.createElement(index.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showEdit(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__EDIT), message && message.isResendable && message.isResendable() && React__default.createElement(index.MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), React__default.createElement(index.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }), isMessageSent && useReaction && emojiAllMap.size > 0 && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + className: "".concat(OUTGOING_OG_MESSAGE, "__more__add-reaction"), + ref: parentRefReactions, + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.EMOJI_REACTIONS_ADD, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: parentRefReactions, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__message-status") + }, React__default.createElement(MessageStatus, { + message: message, + status: status + }))), React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "--body") + }, React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__text-balloon") + }, React__default.createElement(MemoizedMessageText, null)), React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail ").concat(checkOGIsEnalbed(message) ? '' : "".concat(OUTGOING_OG_MESSAGE, "__thumbnail--disabled")), + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, defaultImage && React__default.createElement(index.ImageRenderer, { + url: defaultImage.url || '', + alt: defaultImage.alt, + className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail__image"), + width: "320px", + height: "180px", + defaultComponent: React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail__image__placeholder") + }, React__default.createElement(index.Icon, { + width: "56px", + height: "56px", + type: index.IconTypes.NO_THUMBNAIL + })) + })), React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag ").concat(checkOGIsEnalbed(message) ? '' : "".concat(OUTGOING_OG_MESSAGE, "__og-tag--disabled")), + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, ogMetaData.title && React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__title") + }, React__default.createElement(index.Label, { + type: index.LabelTypography.SUBTITLE_2, + color: index.LabelColors.ONBACKGROUND_1 + }, ogMetaData.title)), ogMetaData.description && React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__description") + }, React__default.createElement(index.Label, { + type: index.LabelTypography.BODY_2, + color: index.LabelColors.ONBACKGROUND_1, + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__description__label") + }, ogMetaData.description)), ogMetaData.url && React__default.createElement(index.Label, { + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2, + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__url") + }, ogMetaData.url), showEmojiReactions && React__default.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__emoji-reactions--wrapper"), + onClick: function onClick(event) { + return event.stopPropagation(); + }, + onKeyDown: function onKeyDown(event) { + return event.stopPropagation(); + }, + role: "button", + tabIndex: 0 + }, React__default.createElement(EmojiReactions, { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__emoji-reactions"), + userId: userId, + message: message, + membersMap: membersMap, + emojiAllMap: emojiAllMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + })))))); +} + +function IncomingOGMessage(props) { + var userId = props.userId, + message = props.message, + openLink = props.openLink, + chainTop = props.chainTop, + membersMap = props.membersMap, + chainBottom = props.chainBottom, + useReaction = props.useReaction, + emojiAllMap = props.emojiAllMap, + toggleReaction = props.toggleReaction, + memoizedMessageText = props.memoizedMessageText, + memoizedEmojiListItems = props.memoizedEmojiListItems; + var ogMetaData = message.ogMetaData; + var defaultImage = ogMetaData.defaultImage; + + var _useContext2 = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext2.stringSet; + + var MemoizedMessageText = memoizedMessageText; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var messageRef = React.useRef(null); + var avatarRef = React.useRef(null); + var parentRefReactions = React.useRef(null); + var parentRefMenus = React.useRef(null); + var parentContainRef = React.useRef(null); + + var _React$useContext = React__default.useContext(index.UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + var _useState5 = React.useState(false), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + mousehover = _useState6[0], + setMousehover = _useState6[1]; + + var _useState7 = React.useState(false), + _useState8 = LocalizationContext._slicedToArray(_useState7, 2), + moreActive = _useState8[0], + setMoreActive = _useState8[1]; + + var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React__default.createElement("div", { + ref: messageRef, + className: INCOMING_OG_MESSAGE, + style: { + paddingTop: chainTop ? GROUPING_PADDING$3 : NORAML_PADDING, + paddingBottom: chainBottom ? GROUPING_PADDING$3 : NORAML_PADDING + } + }, React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "--inner") + }, React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "--body") + }, !chainBottom && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.Avatar, { + ref: avatarRef, + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "".concat(INCOMING_OG_MESSAGE, "__avatar"), + src: getSenderProfileUrl(message), + width: "28px", + height: "28px", + alt: "sender-profile-image" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React__default.createElement(index.UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + }), !chainTop && React__default.createElement(index.Label, { + className: "".concat(INCOMING_OG_MESSAGE, "__sender-name"), + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, getSenderName(message)), React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__text-balloon") + }, React__default.createElement(MemoizedMessageText, null)), React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail ").concat(checkOGIsEnalbed(message) ? '' : "".concat(INCOMING_OG_MESSAGE, "__thumbnail--disabled")), + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, defaultImage && React__default.createElement(index.ImageRenderer, { + url: defaultImage.url || '', + alt: defaultImage.alt || '', + className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail__image"), + width: "320px", + height: "180px", + defaultComponent: React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail__image__placeholder") + }, React__default.createElement(index.Icon, { + width: "56px", + height: "56px", + type: index.IconTypes.NO_THUMBNAIL + })) + })), React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag ").concat(checkOGIsEnalbed(message) ? '' : "".concat(INCOMING_OG_MESSAGE, "__og-tag--disabled")), + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, ogMetaData.title && React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__title") + }, React__default.createElement(index.Label, { + type: index.LabelTypography.SUBTITLE_2, + color: index.LabelColors.ONBACKGROUND_1 + }, ogMetaData.title)), ogMetaData.description && React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__description") + }, React__default.createElement(index.Label, { + type: index.LabelTypography.BODY_2, + color: index.LabelColors.ONBACKGROUND_1, + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__description__label") + }, ogMetaData.description)), ogMetaData.url && React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__url") + }, React__default.createElement(index.Label, { + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2, + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__url__label") + }, ogMetaData.url)), showEmojiReactions && React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__emoji-reactions--wrapper"), + onClick: function onClick(event) { + return event.stopPropagation(); + }, + onKeyDown: function onKeyDown(event) { + return event.stopPropagation(); + }, + role: "button", + tabIndex: 0 + }, React__default.createElement(EmojiReactions, { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__emoji-reactions"), + userId: userId, + message: message, + membersMap: membersMap, + emojiAllMap: emojiAllMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + })))), React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "--right-padding") + }, !chainBottom && !(mousehover || moreActive) && React__default.createElement(index.Label, { + className: "".concat(INCOMING_OG_MESSAGE, "__sent-at"), + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2 + }, getMessageCreatedAt$3(message)), React__default.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__more"), + ref: parentContainRef + }, showReactionAddButton && React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: parentRefReactions, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.EMOJI_REACTIONS_ADD, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(MemoizedEmojiListItems, { + parentRef: parentRefReactions, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + message: message, + spaceFromTrigger: { + y: 2 + } + }); + } + }), React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: parentRefMenus, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.MORE, + fillColor: index.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: parentRefMenus, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown + }, React__default.createElement(index.MenuItem, { + className: "".concat(INCOMING_OG_MESSAGE, "__more__menu__copy"), + onClick: function onClick() { + copyToClipboard(message.message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__COPY)); + } + }))))); +} + +var noop$3 = function noop() {}; + +OGMessageSwitch.propTypes = { + isByMe: PropTypes.bool.isRequired, + userId: PropTypes.string.isRequired, + message: PropTypes.shape({ + message: PropTypes.string, + sender: PropTypes.shape({}), + ogMetaData: PropTypes.shape({ + title: PropTypes.string, + description: PropTypes.string, + url: PropTypes.string, + defaultImage: PropTypes.shape({ + url: PropTypes.string, + alt: PropTypes.string + }) + }), + reactions: PropTypes.array, + updatedAt: PropTypes.number + }).isRequired, + useReaction: PropTypes.bool.isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + status: PropTypes.string, + disabled: PropTypes.bool, + showEdit: PropTypes.func, + showRemove: PropTypes.func, + resendMessage: PropTypes.func, + toggleReaction: PropTypes.func, + membersMap: PropTypes.instanceOf(Map), + emojiAllMap: PropTypes.instanceOf(Map), + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +OGMessageSwitch.defaultProps = { + className: '', + status: '', + disabled: false, + showEdit: noop$3, + showRemove: noop$3, + resendMessage: noop$3, + toggleReaction: noop$3, + membersMap: new Map(), + emojiAllMap: new Map(), + memoizedEmojiListItems: noop$3, + chainTop: false, + chainBottom: false +}; +OutgoingOGMessage.propTypes = { + status: PropTypes.string, + userId: PropTypes.string.isRequired, + message: PropTypes.shape({ + message: PropTypes.string, + ogMetaData: PropTypes.shape({ + title: PropTypes.string, + description: PropTypes.string, + url: PropTypes.string, + defaultImage: PropTypes.shape({ + url: PropTypes.string, + alt: PropTypes.string + }) + }), + reactions: PropTypes.array, + updatedAt: PropTypes.number, + isResendable: PropTypes.func, + errorCode: PropTypes.number + }).isRequired, + disabled: PropTypes.bool.isRequired, + openLink: PropTypes.func.isRequired, + showEdit: PropTypes.func.isRequired, + showRemove: PropTypes.func.isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + useReaction: PropTypes.bool.isRequired, + resendMessage: PropTypes.func.isRequired, + toggleReaction: PropTypes.func.isRequired, + memoizedMessageText: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingOGMessage.defaultProps = { + status: '' +}; +IncomingOGMessage.propTypes = { + userId: PropTypes.string.isRequired, + message: PropTypes.shape({ + message: PropTypes.string, + sender: PropTypes.shape({}), + ogMetaData: PropTypes.shape({ + title: PropTypes.string, + description: PropTypes.string, + url: PropTypes.string, + defaultImage: PropTypes.shape({ + url: PropTypes.string, + alt: PropTypes.string + }) + }), + reactions: PropTypes.array, + updatedAt: PropTypes.number + }).isRequired, + openLink: PropTypes.func.isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + useReaction: PropTypes.bool.isRequired, + toggleReaction: PropTypes.func.isRequired, + memoizedMessageText: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; + +function MessageHoc(_ref) { + var _MessageTypes$ADMIN$M; + + var message = _ref.message, + userId = _ref.userId, + disabled = _ref.disabled, + editDisabled = _ref.editDisabled, + hasSeperator = _ref.hasSeperator, + deleteMessage = _ref.deleteMessage, + updateMessage = _ref.updateMessage, + status = _ref.status, + resendMessage = _ref.resendMessage, + useReaction = _ref.useReaction, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems; + var _message$sender = message.sender, + sender = _message$sender === void 0 ? {} : _message$sender; + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + showEdit = _useState2[0], + setShowEdit = _useState2[1]; + + var _useState3 = React.useState(false), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + showRemove = _useState4[0], + setShowRemove = _useState4[1]; + + var _useState5 = React.useState(false), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + showFileViewer = _useState6[0], + setShowFileViewer = _useState6[1]; + + var editMessageInputRef = React.useRef(null); + var isByMe = userId === sender.userId || message.requestState === 'pending' || message.requestState === 'failed'; + + if (showEdit) { + return React__default.createElement(index$2.MessageInput, { + isEdit: true, + disabled: editDisabled, + ref: editMessageInputRef, + name: message.messageId, + onSendMessage: updateMessage, + onCancelEdit: function onCancelEdit() { + setShowEdit(false); + }, + value: message.message + }); + } + + return React__default.createElement("div", { + className: "sendbird-msg-hoc sendbird-msg--scroll-ref" + }, hasSeperator && React__default.createElement(index$2.DateSeparator, null, React__default.createElement(index.Label, { + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, format(message.createdAt, 'MMMM dd, yyyy'))), (_MessageTypes$ADMIN$M = {}, LocalizationContext._defineProperty(_MessageTypes$ADMIN$M, MessageTypes.ADMIN, React__default.createElement(AdminMessage, { + message: message + })), LocalizationContext._defineProperty(_MessageTypes$ADMIN$M, MessageTypes.FILE, React__default.createElement(MessageSwitch, { + message: message, + userId: userId, + disabled: disabled, + isByMe: isByMe, + showRemove: setShowRemove, + resendMessage: resendMessage, + status: status, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })), LocalizationContext._defineProperty(_MessageTypes$ADMIN$M, MessageTypes.OG, React__default.createElement(OGMessageSwitch, { + message: message, + status: status, + isByMe: isByMe, + userId: userId, + showEdit: setShowEdit, + disabled: disabled, + showRemove: setShowRemove, + resendMessage: resendMessage, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })), LocalizationContext._defineProperty(_MessageTypes$ADMIN$M, MessageTypes.THUMBNAIL, React__default.createElement(ThumbnailMessage, { + disabled: disabled, + message: message, + userId: userId, + isByMe: isByMe, + showRemove: setShowRemove, + resendMessage: resendMessage, + onClick: setShowFileViewer, + status: status, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })), LocalizationContext._defineProperty(_MessageTypes$ADMIN$M, MessageTypes.USER, React__default.createElement(Message, { + message: message, + disabled: disabled, + isByMe: isByMe, + userId: userId, + showEdit: setShowEdit, + showRemove: setShowRemove, + resendMessage: resendMessage, + status: status, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })), _MessageTypes$ADMIN$M)[getMessageType(message)], showRemove && React__default.createElement(RemoveMessage, { + onCloseModal: function onCloseModal() { + return setShowRemove(false); + }, + onDeleteMessage: function onDeleteMessage() { + deleteMessage(message); + } + }), showFileViewer && React__default.createElement(index$2.FileViewer, { + onClose: function onClose() { + return setShowFileViewer(false); + }, + message: message, + onDelete: function onDelete() { + deleteMessage(message, function () { + setShowFileViewer(false); + }); + }, + isByMe: isByMe + }), !(message.isFileMessage && message.isFileMessage() || message.messageType === 'file') && !(message.isAdminMessage && message.isAdminMessage()) && !(message.isUserMessage && message.isUserMessage() || message.messageType === 'user') && !showFileViewer && React__default.createElement(UnknownMessage, { + message: message, + status: status, + isByMe: isByMe, + showRemove: setShowRemove, + chainTop: chainTop, + chainBottom: chainBottom + })); +} +MessageHoc.propTypes = { + userId: PropTypes.string, + message: PropTypes.shape({ + isFileMessage: PropTypes.func, + isAdminMessage: PropTypes.func, + isUserMessage: PropTypes.func, + isDateSeperator: PropTypes.func, + // should be a number, but there's a bug in SDK shich returns string + messageId: PropTypes.number, + type: PropTypes.string, + createdAt: PropTypes.number, + message: PropTypes.string, + requestState: PropTypes.string, + messageType: PropTypes.string, + sender: PropTypes.shape({ + userId: PropTypes.string + }), + ogMetaData: PropTypes.shape({}) + }), + hasSeperator: PropTypes.bool, + disabled: PropTypes.bool, + editDisabled: PropTypes.bool, + deleteMessage: PropTypes.func.isRequired, + updateMessage: PropTypes.func.isRequired, + resendMessage: PropTypes.func.isRequired, + status: PropTypes.string, + useReaction: PropTypes.bool.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func +}; +MessageHoc.defaultProps = { + userId: '', + editDisabled: false, + message: {}, + hasSeperator: false, + disabled: false, + status: '', + toggleReaction: function toggleReaction() {}, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +var ConversationScroll = +/*#__PURE__*/ +function (_Component) { + LocalizationContext._inherits(ConversationScroll, _Component); + + function ConversationScroll() { + var _getPrototypeOf2; + + var _this; + + LocalizationContext._classCallCheck(this, ConversationScroll); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = LocalizationContext._possibleConstructorReturn(this, (_getPrototypeOf2 = LocalizationContext._getPrototypeOf(ConversationScroll)).call.apply(_getPrototypeOf2, [this].concat(args))); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "onScroll", function (e) { + var _this$props = _this.props, + scrollRef = _this$props.scrollRef, + hasMore = _this$props.hasMore, + messagesDispatcher = _this$props.messagesDispatcher, + onScroll = _this$props.onScroll, + currentGroupChannel = _this$props.currentGroupChannel; + var element = e.target; + var scrollTop = element.scrollTop, + clientHeight = element.clientHeight, + scrollHeight = element.scrollHeight; + + if (scrollTop === 0) { + if (!hasMore) { + return; + } + + var nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref'); + var first = nodes[0]; + onScroll(function (_ref) { + var _ref2 = LocalizationContext._slicedToArray(_ref, 1), + messages = _ref2[0]; + + if (messages) { + // https://github.com/scabbiaza/react-scroll-position-on-updating-dom + first.scrollIntoView(); + } + }); + } + + setTimeout(function () { + // mark as read if scroll is at end + if (clientHeight + scrollTop === scrollHeight) { + messagesDispatcher({ + type: MARK_AS_READ + }); + currentGroupChannel.markAsRead(); + } + }, 500); + }); + + return _this; + } + + LocalizationContext._createClass(ConversationScroll, [{ + key: "render", + value: function render() { + var _this$props2 = this.props, + userId = _this$props2.userId, + disabled = _this$props2.disabled, + scrollRef = _this$props2.scrollRef, + readStatus = _this$props2.readStatus, + membersMap = _this$props2.membersMap, + initialized = _this$props2.initialized, + allMessages = _this$props2.allMessages, + useReaction = _this$props2.useReaction, + emojiAllMap = _this$props2.emojiAllMap, + editDisabled = _this$props2.editDisabled, + deleteMessage = _this$props2.deleteMessage, + updateMessage = _this$props2.updateMessage, + resendMessage = _this$props2.resendMessage, + renderChatItem = _this$props2.renderChatItem, + emojiContainer = _this$props2.emojiContainer, + toggleReaction = _this$props2.toggleReaction, + useMessageGrouping = _this$props2.useMessageGrouping, + currentGroupChannel = _this$props2.currentGroupChannel, + memoizedEmojiListItems = _this$props2.memoizedEmojiListItems; + return React__default.createElement("div", { + className: "sendbird-conversation__messages" + }, React__default.createElement("div", { + ref: scrollRef, + className: "sendbird-conversation__scroll-container", + onScroll: this.onScroll + }, React__default.createElement("div", { + className: "sendbird-conversation__padding" + }), React__default.createElement("div", { + className: "sendbird-conversation__messages-padding" + }, initialized && allMessages.map(function (m, idx) { + var previousMessage = allMessages[idx - 1]; + var nextMessage = allMessages[idx + 1]; + + var _ref3 = useMessageGrouping ? compareMessagesForGrouping(previousMessage, m, nextMessage) : [false, false], + _ref4 = LocalizationContext._slicedToArray(_ref3, 2), + chainTop = _ref4[0], + chainBottom = _ref4[1]; + + var previousMessageCreatedAt = previousMessage && previousMessage.createdAt; + var currentCreatedAt = m.createdAt; // https://stackoverflow.com/a/41855608 + + var hasSeperator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt)); + + if (renderChatItem) { + return React__default.createElement("div", { + key: m.messageId || m.reqId, + className: "sendbird-msg--scroll-ref" + }, renderChatItem({ + message: m, + channel: currentGroupChannel, + onDeleteMessage: deleteMessage, + onUpdateMessage: updateMessage, + onResendMessage: resendMessage, + emojiContainer: emojiContainer + })); + } + + return React__default.createElement(MessageHoc, { + key: m.messageId || m.reqId, + userId: userId, + status: readStatus[m.messageId] || getParsedStatus(m, currentGroupChannel) // show status for pending/failed messages + , + message: m, + disabled: disabled, + membersMap: membersMap, + chainTop: chainTop, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + editDisabled: editDisabled, + hasSeperator: hasSeperator, + chainBottom: chainBottom, + updateMessage: updateMessage, + deleteMessage: deleteMessage, + resendMessage: resendMessage, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }); + })))); + } + }]); + + return ConversationScroll; +}(React.Component); +ConversationScroll.propTypes = { + // https://stackoverflow.com/a/52646941 + scrollRef: PropTypes.shape({ + current: PropTypes.oneOfType([PropTypes.element, PropTypes.shape({})]) + }).isRequired, + hasMore: PropTypes.bool, + messagesDispatcher: PropTypes.func.isRequired, + onScroll: PropTypes.func, + initialized: PropTypes.bool, + editDisabled: PropTypes.bool, + disabled: PropTypes.bool, + userId: PropTypes.string, + allMessages: PropTypes.arrayOf(PropTypes.shape({ + createdAt: PropTypes.number + })).isRequired, + deleteMessage: PropTypes.func.isRequired, + resendMessage: PropTypes.func.isRequired, + updateMessage: PropTypes.func.isRequired, + readStatus: PropTypes.shape({}).isRequired, + currentGroupChannel: PropTypes.shape({ + markAsRead: PropTypes.func, + members: PropTypes.arrayOf(PropTypes.shape({})) + }).isRequired, + renderChatItem: PropTypes.element, + useReaction: PropTypes.bool, + emojiContainer: PropTypes.shape({}), + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + useMessageGrouping: PropTypes.bool, + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func +}; +ConversationScroll.defaultProps = { + hasMore: false, + editDisabled: false, + disabled: false, + initialized: false, + userId: '', + renderChatItem: null, + onScroll: null, + useReaction: true, + emojiContainer: {}, + emojiAllMap: new Map(), + membersMap: new Map(), + useMessageGrouping: true, + toggleReaction: function toggleReaction() {}, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +function Notification(_ref) { + var count = _ref.count, + time = _ref.time, + onClick = _ref.onClick; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var timeArray = time.split(' '); + timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON); + return (// eslint-disable-next-line + React__default.createElement("div", { + className: "sendbird-notification", + onClick: onClick + }, React__default.createElement(index.Label, { + className: "sendbird-notification__text", + color: index.LabelColors.ONCONTENT_1, + type: index.LabelTypography.CAPTION_2 + }, "".concat(count, " "), stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE, " ".concat(timeArray.join(' '))), React__default.createElement(index.Icon, { + width: "24px", + height: "24px", + type: index.IconTypes.SHEVRON_DOWN, + fillColor: index.IconColors.CONTENT + })) + ); +} +Notification.propTypes = { + count: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + time: PropTypes.string, + onClick: PropTypes.func.isRequired +}; +Notification.defaultProps = { + count: 0, + time: '' +}; + +var FrozenNotification = function FrozenNotification() { + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + return React__default.createElement("div", { + className: "sendbird-notification sendbird-notification--frozen" + }, React__default.createElement(index.Label, { + className: "sendbird-notification__text", + type: index.LabelTypography.CAPTION_2 + }, stringSet.CHANNEL_FROZEN)); +}; + +var TypingIndicatorText = function TypingIndicatorText(_ref) { + var members = _ref.members; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + if (!members || members.length === 0) { + return ''; + } + + if (members && members.length === 1) { + return "".concat(members[0].nickname, " ").concat(stringSet.TYPING_INDICATOR__IS_TYPING); + } + + if (members && members.length === 2) { + return "".concat(members[0].nickname, " ").concat(stringSet.TYPING_INDICATOR__AND, " ").concat(members[1].nickname, " ").concat(stringSet.TYPING_INDICATOR__ARE_TYPING); + } + + return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING; +}; + +function TypingIndicator(_ref2) { + var channelUrl = _ref2.channelUrl, + sb = _ref2.sb, + logger = _ref2.logger; + + var _useState = React.useState(LocalizationContext.uuidv4$1()), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + handlerId = _useState2[0], + setHandlerId = _useState2[1]; + + var _useState3 = React.useState([]), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + typingMembers = _useState4[0], + setTypingMembers = _useState4[1]; + + React.useEffect(function () { + if (sb && sb.ChannelHandler) { + sb.removeChannelHandler(handlerId); + var newHandlerId = LocalizationContext.uuidv4$1(); + var handler = new sb.ChannelHandler(); // there is a possible warning in here - setState called after unmount + + handler.onTypingStatusUpdated = function (groupChannel) { + logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel); + var members = groupChannel.getTypingMembers(); + + if (groupChannel.url === channelUrl) { + setTypingMembers(members); + } + }; + + sb.addChannelHandler(newHandlerId, handler); + setHandlerId(newHandlerId); + } + + return function () { + setTypingMembers([]); + + if (sb && sb.removeChannelHandler) { + sb.removeChannelHandler(handlerId); + } + }; + }, [channelUrl]); + return React__default.createElement(index.Label, { + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, React__default.createElement(TypingIndicatorText, { + members: typingMembers + })); +} + +TypingIndicator.propTypes = { + channelUrl: PropTypes.string.isRequired, + sb: PropTypes.shape({ + ChannelHandler: PropTypes.func, + removeChannelHandler: PropTypes.func, + addChannelHandler: PropTypes.func + }).isRequired, + logger: PropTypes.shape({ + info: PropTypes.func + }).isRequired +}; + +// Logic required to handle message input rendering + +var MessageInputWrapper = function MessageInputWrapper(_a, ref) { + var channel = _a.channel, + user = _a.user, + onSendMessage = _a.onSendMessage, + onFileUpload = _a.onFileUpload, + renderMessageInput = _a.renderMessageInput, + isOnline = _a.isOnline, + initialized = _a.initialized; + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + var disabled = !initialized || isDisabledBecauseFrozen(channel) || isDisabledBecauseMuted(channel) || !isOnline; + var isOperator$1 = isOperator(channel); + var isBroadcast = channel.isBroadcast; // custom message + + if (renderMessageInput) { + return renderMessageInput({ + channel: channel, + user: user, + disabled: disabled + }); + } // broadcast channel + not operator + + + if (isBroadcast && !isOperator$1) { + return null; + } // other conditions + + + return React__default.createElement(index$2.MessageInput, { + placeholder: isDisabledBecauseFrozen(channel) && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED || isDisabledBecauseMuted(channel) && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED, + ref: ref, + disabled: disabled, + onStartTyping: function onStartTyping() { + channel.startTyping(); + }, + onSendMessage: onSendMessage, + onFileUpload: onFileUpload + }); +}; + +var MessageInputWrapper$1 = React__default.forwardRef(MessageInputWrapper); + +function ConnectionStatus() { + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React__default.createElement("div", { + className: "sendbird-conversation__connection-status" + }, React__default.createElement(index.Label, { + type: index.LabelTypography.BODY_2, + color: index.LabelColors.ONBACKGROUND_2 + }, stringSet.TRYING_TO_CONNECT), React__default.createElement(index.Icon, { + type: index.IconTypes.DISCONNECTED, + fillColor: index.IconColors.SENT, + height: "14px", + width: "14px" + })); +} + +var prettyDate = function prettyDate(date) { + return formatDistanceToNowStrict(date, { + addSuffix: true + }); +}; +var getOthersLastSeenAt = function getOthersLastSeenAt(channel) { + if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) { + return ''; + } + + var lastSeenList = LocalizationContext._toConsumableArray(Object.values(channel.getReadStatus())); + + var lastSeenAt = lastSeenList.length > 0 ? lastSeenList[0].last_seen_at : 0; + + if (lastSeenAt === 0) { + return ''; + } + + return prettyDate(lastSeenAt); +}; +var getChannelTitle = function getChannelTitle() { + var channel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var currentUserId = arguments.length > 1 ? arguments[1] : undefined; + var stringSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : index.LabelStringSet; + + if (!channel || !channel.name && !channel.members) { + return stringSet.NO_TITLE; + } + + if (channel.name && channel.name !== 'Group Channel') { + return channel.name; + } + + if (channel.members.length === 1) { + return stringSet.NO_MEMBERS; + } + + return channel.members.filter(function (_ref) { + var userId = _ref.userId; + return userId !== currentUserId; + }).map(function (_ref2) { + var nickname = _ref2.nickname; + return nickname || stringSet.NO_NAME; + }).join(', '); +}; + +function AutoRefresh(_ref) { + var repeatFunc = _ref.repeatFunc; + + var _useState = React.useState(repeatFunc()), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + label = _useState2[0], + setLabel = _useState2[1]; + + React.useEffect(function () { + var interval = setInterval(function () { + if (label !== repeatFunc()) { + setLabel(repeatFunc()); + } + }, 10000); + return function () { + clearInterval(interval); + }; + }, []); + return React__default.createElement("div", { + className: "sendbird-repeat-text" + }, label); +} +AutoRefresh.propTypes = { + repeatFunc: PropTypes.func.isRequired +}; + +function ChatHeader(props) { + var currentGroupChannel = props.currentGroupChannel, + currentUser = props.currentUser, + title = props.title, + subTitle = props.subTitle, + isActive = props.isActive, + isMuted = props.isMuted, + onActionClick = props.onActionClick, + theme = props.theme; + var userId = currentUser.userId; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React__default.createElement("div", { + className: "sendbird-chat-header" + }, React__default.createElement("div", { + className: "sendbird-chat-header__left" + }, React__default.createElement(index$1.ChannelAvatar, { + theme: theme, + channel: currentGroupChannel, + userId: userId, + height: 32, + width: 32 + }), React__default.createElement(index.Label, { + className: "sendbird-chat-header__title", + type: index.LabelTypography.H_2, + color: index.LabelColors.ONBACKGROUND_1 + }, title || getChannelTitle(currentGroupChannel, userId, stringSet)), typeof isActive === 'string' && isActive === 'true' || typeof isActive === 'boolean' && isActive ? React__default.createElement("div", { + className: "sendbird-chat-header__active" + }) : null, React__default.createElement(index.Label, { + className: "sendbird-chat-header__subtitle", + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_2 + }, subTitle || React__default.createElement(AutoRefresh, { + repeatFunc: function repeatFunc() { + return getOthersLastSeenAt(currentGroupChannel); + } + }))), React__default.createElement("div", { + className: "sendbird-chat-header__right" + }, typeof isMuted === 'string' && isMuted === 'true' || typeof isMuted === 'boolean' && isMuted ? React__default.createElement(index.Icon, { + className: "sendbird-chat-header__mute", + type: index.IconTypes.MUTE, + width: "24px", + height: "24px" + }) : null, React__default.createElement(index.IconButton, { + className: "sendbird-chat-header__info", + width: "32px", + height: "32px", + onClick: onActionClick + }, React__default.createElement(index.Icon, { + type: index.IconTypes.INFO, + fillColor: index.IconColors.PRIMARY, + width: "24px", + height: "24px" + })))); +} +ChatHeader.propTypes = { + currentGroupChannel: PropTypes.shape({ + members: PropTypes.arrayOf(PropTypes.shape({})), + coverUrl: PropTypes.string + }), + theme: PropTypes.string, + currentUser: PropTypes.shape({ + userId: PropTypes.string + }), + title: PropTypes.string, + subTitle: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), + isActive: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), + isMuted: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), + onActionClick: PropTypes.func +}; +ChatHeader.defaultProps = { + currentGroupChannel: {}, + title: '', + theme: 'light', + subTitle: '', + isActive: false, + isMuted: false, + currentUser: {}, + onActionClick: function onActionClick() {} +}; + +var noop$4 = function noop() {}; + +var ConversationPanel = function ConversationPanel(props) { + var channelUrl = props.channelUrl, + _props$stores = props.stores, + sdkStore = _props$stores.sdkStore, + userStore = _props$stores.userStore, + _props$config = props.config, + userId = _props$config.userId, + logger = _props$config.logger, + pubSub = _props$config.pubSub, + isOnline = _props$config.isOnline, + theme = _props$config.theme, + reconnect = props.dispatchers.reconnect, + _props$queries = props.queries, + queries = _props$queries === void 0 ? {} : _props$queries, + useReaction = props.useReaction, + renderChatItem = props.renderChatItem, + renderChatHeader = props.renderChatHeader, + renderUserProfile = props.renderUserProfile, + disableUserProfile = props.disableUserProfile, + renderMessageInput = props.renderMessageInput, + useMessageGrouping = props.useMessageGrouping, + onChatHeaderActionClick = props.onChatHeaderActionClick, + onBeforeSendUserMessage = props.onBeforeSendUserMessage, + onBeforeSendFileMessage = props.onBeforeSendFileMessage, + onBeforeUpdateUserMessage = props.onBeforeUpdateUserMessage; + var sdk = sdkStore.sdk; + var config = props.config; + var sdkError = sdkStore.error; + var sdkInit = sdkStore.initialized; + var user = userStore.user; + + if (queries.messageListQuery) { + // eslint-disable-next-line no-console + console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead'); + } + + var userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery; + + var _useReducer = React.useReducer(reducer, messagesInitialState), + _useReducer2 = LocalizationContext._slicedToArray(_useReducer, 2), + messagesStore = _useReducer2[0], + messagesDispatcher = _useReducer2[1]; + + var scrollRef = React.useRef(null); + var allMessages = messagesStore.allMessages, + loading = messagesStore.loading, + hasMore = messagesStore.hasMore, + initialized = messagesStore.initialized, + unreadCount = messagesStore.unreadCount, + unreadSince = messagesStore.unreadSince, + isInvalid = messagesStore.isInvalid, + _messagesStore$curren = messagesStore.currentGroupChannel, + currentGroupChannel = _messagesStore$curren === void 0 ? {} : _messagesStore$curren, + lastMessageTimeStamp = messagesStore.lastMessageTimeStamp, + emojiContainer = messagesStore.emojiContainer, + readStatus = messagesStore.readStatus; + var isFrozen = currentGroupChannel.isFrozen, + isBroadcast = currentGroupChannel.isBroadcast; + var _sdk$appInfo = sdk.appInfo, + appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; + var usingReaction = appInfo.isUsingReaction && !isBroadcast || useReaction || false; + var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; + var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; + var emojiAllMap = React.useMemo(function () { + return usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map(); + }, [emojiContainer]); + var emojiAllList = React.useMemo(function () { + return usingReaction ? getAllEmojisFromEmojiContainer(emojiContainer) : []; + }, [emojiContainer]); + var nicknamesMap = React.useMemo(function () { + return usingReaction ? getNicknamesMapFromMembers(currentGroupChannel.members) : new Map(); + }, [currentGroupChannel.members]); + var onScrollCallback = useScrollCallback({ + currentGroupChannel: currentGroupChannel, + lastMessageTimeStamp: lastMessageTimeStamp, + userFilledMessageListQuery: userFilledMessageListQuery + }, { + hasMore: hasMore, + logger: logger, + messagesDispatcher: messagesDispatcher, + sdk: sdk + }); + var toggleReaction = useToggleReactionCallback({ + currentGroupChannel: currentGroupChannel + }, { + logger: logger + }); + var memoizedEmojiListItems = useMemoizedEmojiListItems({ + emojiContainer: emojiContainer, + toggleReaction: toggleReaction + }, { + useReaction: usingReaction, + logger: logger, + userId: userId, + emojiAllList: emojiAllList + }); // to create message-datasource + + useSetChannel({ + channelUrl: channelUrl, + sdkInit: sdkInit + }, { + messagesDispatcher: messagesDispatcher, + sdk: sdk, + logger: logger + }); // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher + + useHandleChannelEvents({ + currentGroupChannel: currentGroupChannel, + sdkInit: sdkInit, + userId: userId + }, { + messagesDispatcher: messagesDispatcher, + sdk: sdk, + logger: logger + }); + useInitialMessagesFetch({ + currentGroupChannel: currentGroupChannel, + userFilledMessageListQuery: userFilledMessageListQuery + }, { + sdk: sdk, + logger: logger, + messagesDispatcher: messagesDispatcher + }); // handles API calls from withSendbird + + React.useEffect(function () { + var subScriber = pubSubHandler(channelUrl, pubSub, messagesDispatcher); + return function () { + pubSubHandleRemover(subScriber); + }; + }, [channelUrl, sdkInit]); // to create initial read status + + useSetReadStatus({ + allMessages: allMessages, + currentGroupChannel: currentGroupChannel + }, { + messagesDispatcher: messagesDispatcher, + sdk: sdk, + logger: logger + }); // handling connection breaks + + useHandleReconnect({ + isOnline: isOnline + }, { + logger: logger, + sdk: sdk, + currentGroupChannel: currentGroupChannel, + messagesDispatcher: messagesDispatcher, + userFilledMessageListQuery: userFilledMessageListQuery + }); + var deleteMessage = useDeleteMessageCallback({ + currentGroupChannel: currentGroupChannel, + messagesDispatcher: messagesDispatcher + }, { + logger: logger + }); + var updateMessage = useUpdateMessageCallback({ + currentGroupChannel: currentGroupChannel, + messagesDispatcher: messagesDispatcher, + onBeforeUpdateUserMessage: onBeforeUpdateUserMessage + }, { + logger: logger, + sdk: sdk, + pubSub: pubSub + }); + var resendMessage = useResendMessageCallback({ + currentGroupChannel: currentGroupChannel, + messagesDispatcher: messagesDispatcher + }, { + logger: logger + }); + + var _useSendMessageCallba = useSendMessageCallback({ + currentGroupChannel: currentGroupChannel, + onBeforeSendUserMessage: onBeforeSendUserMessage + }, { + sdk: sdk, + logger: logger, + pubSub: pubSub, + messagesDispatcher: messagesDispatcher + }), + _useSendMessageCallba2 = LocalizationContext._slicedToArray(_useSendMessageCallba, 2), + messageInputRef = _useSendMessageCallba2[0], + onSendMessage = _useSendMessageCallba2[1]; + + var _useSendFileMessageCa = useSendFileMessageCallback({ + currentGroupChannel: currentGroupChannel, + onBeforeSendFileMessage: onBeforeSendFileMessage + }, { + sdk: sdk, + logger: logger, + pubSub: pubSub, + messagesDispatcher: messagesDispatcher + }), + _useSendFileMessageCa2 = LocalizationContext._slicedToArray(_useSendFileMessageCa, 1), + onSendFileMessage = _useSendFileMessageCa2[0]; + + if (sdkError) { + return React__default.createElement("div", { + className: "sendbird-conversation" + }, React__default.createElement(index.PlaceHolder, { + type: index.PlaceHolderTypes$1.WRONG, + retryToConnect: function retryToConnect() { + logger.info('Channel: reconnecting'); + reconnect(); + } + })); + } + + if (!channelUrl) { + return React__default.createElement("div", { + className: "sendbird-conversation" + }, React__default.createElement(index.PlaceHolder, { + type: index.PlaceHolderTypes$1.NO_CHANNELS + })); + } + + if (loading) { + return React__default.createElement("div", { + className: "sendbird-conversation" + }, React__default.createElement(index.PlaceHolder, { + type: index.PlaceHolderTypes$1.LOADING + })); + } + + if (isInvalid) { + return React__default.createElement("div", { + className: "sendbird-conversation" + }, React__default.createElement(index.PlaceHolder, { + type: index.PlaceHolderTypes$1.WRONG + })); + } + + return React__default.createElement(index.UserProfileProvider, { + className: "sendbird-conversation", + disableUserProfile: userDefinedDisableUserProfile, + renderUserProfile: userDefinedRenderProfile + }, renderChatHeader ? renderChatHeader({ + channel: currentGroupChannel, + user: user + }) : React__default.createElement(ChatHeader, { + theme: theme, + currentGroupChannel: currentGroupChannel, + currentUser: user, + onActionClick: onChatHeaderActionClick, + subTitle: currentGroupChannel.members && currentGroupChannel.members.length !== 2, + isActive: false, + isMuted: false + }), isFrozen && React__default.createElement(FrozenNotification, null), unreadCount > 0 && React__default.createElement(Notification, { + count: unreadCount, + onClick: function onClick() { + scrollIntoLast('.sendbird-msg--scroll-ref'); // there is no scroll + + if (scrollRef.current.scrollTop === 0) { + currentGroupChannel.markAsRead(); + messagesDispatcher({ + type: MARK_AS_READ + }); + } + }, + time: unreadSince + }), React__default.createElement(ConversationScroll, { + swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), + userId: userId, + hasMore: hasMore, + disabled: !isOnline, + onScroll: onScrollCallback, + scrollRef: scrollRef, + readStatus: readStatus, + initialized: initialized, + useReaction: usingReaction, + allMessages: allMessages, + emojiAllMap: emojiAllMap, + membersMap: nicknamesMap, + editDisabled: isDisabledBecauseFrozen(currentGroupChannel), + deleteMessage: deleteMessage, + updateMessage: updateMessage, + resendMessage: resendMessage, + toggleReaction: toggleReaction, + emojiContainer: emojiContainer, + renderChatItem: renderChatItem, + useMessageGrouping: useMessageGrouping, + messagesDispatcher: messagesDispatcher, + currentGroupChannel: currentGroupChannel, + memoizedEmojiListItems: memoizedEmojiListItems + }), React__default.createElement("div", { + className: "sendbird-conversation__footer" + }, React__default.createElement(MessageInputWrapper$1, { + channel: currentGroupChannel, + user: user, + ref: messageInputRef, + onSendMessage: onSendMessage, + onFileUpload: onSendFileMessage, + renderMessageInput: renderMessageInput, + isOnline: isOnline, + initialized: initialized + }), React__default.createElement("div", { + className: "sendbird-conversation__typing-indicator" + }, React__default.createElement(TypingIndicator, { + channelUrl: channelUrl, + sb: sdk, + logger: logger + })), !isOnline && React__default.createElement(ConnectionStatus, { + sdkInit: sdkInit, + sb: sdk, + logger: logger + }))); +}; +ConversationPanel.propTypes = { + channelUrl: PropTypes.string, + stores: PropTypes.shape({ + sdkStore: PropTypes.shape({ + initialized: PropTypes.bool, + sdk: PropTypes.shape({ + getErrorFirstCallback: PropTypes.func, + removeChannelHandler: PropTypes.func, + GroupChannel: PropTypes.any, + ChannelHandler: PropTypes.any, + addChannelHandler: PropTypes.func, + UserMessageParams: PropTypes.any, + FileMessageParams: PropTypes.any, + getAllEmoji: PropTypes.func, + appInfo: PropTypes.shape({}) + }), + error: PropTypes.bool + }), + userStore: PropTypes.shape({ + user: PropTypes.shape({}) + }) + }).isRequired, + dispatchers: PropTypes.shape({ + reconnect: PropTypes.func + }).isRequired, + config: PropTypes.shape({ + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + userId: PropTypes.string.isRequired, + isOnline: PropTypes.bool.isRequired, + theme: PropTypes.string, + logger: PropTypes.shape({ + info: PropTypes.func, + error: PropTypes.func, + warning: PropTypes.func + }), + pubSub: PropTypes.shape({ + subscribe: PropTypes.func, + publish: PropTypes.func + }) + }).isRequired, + queries: PropTypes.shape({ + messageListParams: PropTypes.shape({ + includeMetaArray: PropTypes.bool, + includeParentMessageText: PropTypes.bool, + includeReaction: PropTypes.bool, + includeReplies: PropTypes.bool, + includeThreadInfo: PropTypes.bool, + limit: PropTypes.number, + reverse: PropTypes.bool, + senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string) + }), + // deprecate in v1.3 + messageListQuery: PropTypes.shape({ + includeMetaArray: PropTypes.bool, + includeParentMessageText: PropTypes.bool, + includeReaction: PropTypes.bool, + includeReplies: PropTypes.bool, + includeThreadInfo: PropTypes.bool, + limit: PropTypes.number, + reverse: PropTypes.bool, + senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string) + }) + }), + onBeforeSendUserMessage: PropTypes.func, + // onBeforeSendUserMessage(text) + onBeforeSendFileMessage: PropTypes.func, + // onBeforeSendFileMessage(File) + onBeforeUpdateUserMessage: PropTypes.func, + renderChatItem: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + renderMessageInput: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + renderChatHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + onChatHeaderActionClick: PropTypes.func, + useReaction: PropTypes.bool, + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + useMessageGrouping: PropTypes.bool +}; +ConversationPanel.defaultProps = { + channelUrl: null, + queries: {}, + onBeforeSendUserMessage: null, + onBeforeSendFileMessage: null, + onBeforeUpdateUserMessage: null, + renderChatItem: null, + renderMessageInput: null, + renderChatHeader: null, + useReaction: true, + disableUserProfile: false, + renderUserProfile: null, + useMessageGrouping: true, + onChatHeaderActionClick: noop$4 +}; +var getEmojiCategoriesFromEmojiContainer$1 = getEmojiCategoriesFromEmojiContainer, + getAllEmojisFromEmojiContainer$1 = getAllEmojisFromEmojiContainer, + getEmojisFromEmojiContainer$1 = getEmojisFromEmojiContainer; +var Conversation = LocalizationContext.withSendbirdContext(ConversationPanel); + +exports.ConversationPanel = ConversationPanel; +exports.default = Conversation; +exports.getAllEmojisFromEmojiContainer = getAllEmojisFromEmojiContainer$1; +exports.getEmojiCategoriesFromEmojiContainer = getEmojiCategoriesFromEmojiContainer$1; +exports.getEmojisFromEmojiContainer = getEmojisFromEmojiContainer$1; +//# sourceMappingURL=Channel.js.map diff --git a/dist/cjs/Channel.js.map b/dist/cjs/Channel.js.map new file mode 100644 index 0000000..7cf1ff3 --- /dev/null +++ b/dist/cjs/Channel.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Channel.js","sources":["../../../src/smart-components/Conversation/dux/actionTypes.js","../../../src/smart-components/Conversation/types.js","../../../src/smart-components/Conversation/utils.js","../../../src/smart-components/Conversation/dux/initialState.js","../../../src/smart-components/Conversation/dux/reducers.js","../../../src/smart-components/Conversation/hooks/useHandleChannelEvents.js","../../../src/smart-components/Conversation/hooks/useGetChannel.js","../../../src/smart-components/Conversation/hooks/useInitialMessagesFetch.js","../../../src/smart-components/Conversation/hooks/useHandleReconnect.js","../../../src/smart-components/Conversation/hooks/useScrollCallback.js","../../../src/smart-components/Conversation/hooks/useDeleteMessageCallback.js","../../../src/smart-components/Conversation/hooks/useUpdateMessageCallback.js","../../../src/smart-components/Conversation/hooks/useResendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendFileMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSetReadStatus.js","../../../src/ui/ReactionButton/index.jsx","../../../src/smart-components/Conversation/hooks/useMemoizedEmojiListItems.jsx","../../../src/smart-components/Conversation/hooks/useToggleReactionCallback.js","../../../src/ui/MessageStatus/index.jsx","../../../src/ui/ReactionBadge/index.jsx","../../../src/ui/Tooltip/index.jsx","../../../src/ui/TooltipWrapper/index.jsx","../../../src/ui/EmojiReactions/index.jsx","../../../src/ui/Message/memoizedMessageText.jsx","../../../src/hooks/onMouseHover.jsx","../../../src/ui/Message/index.jsx","../../../src/ui/AdminMessage/index.jsx","../../../src/ui/ThumbnailMessage/util.js","../../../src/ui/ThumbnailMessage/index.jsx","../../../src/ui/FileMessage/index.jsx","../../../src/smart-components/Conversation/components/RemoveMessage.jsx","../../../src/ui/UnknownMessage/utils.js","../../../src/ui/UnknownMessage/index.jsx","../../../src/ui/OGMessage/const.js","../../../src/ui/OGMessage/utils.js","../../../src/ui/OGMessage/memoizedMessageText.jsx","../../../src/ui/OGMessage/index.jsx","../../../src/smart-components/Conversation/components/MessageHOC.jsx","../../../src/smart-components/Conversation/components/ConversationScroll.jsx","../../../src/smart-components/Conversation/components/Notification.jsx","../../../src/smart-components/Conversation/components/FrozenNotification.tsx","../../../src/smart-components/Conversation/components/TypingIndicator.jsx","../../../src/smart-components/Conversation/components/MessageInputWrapper.tsx","../../../src/ui/ConnectionStatus/index.jsx","../../../src/ui/ChatHeader/utils.js","../../../src/ui/AutoRefresh/index.jsx","../../../src/ui/ChatHeader/index.jsx","../../../src/smart-components/Conversation/index.jsx"],"sourcesContent":["export const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const RESET_STATE = 'RESET_STATE';\nexport const CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAILURE = 'GET_PREV_MESSAGES_FAILURE';\n\nexport const SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';\nexport const SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';\nexport const SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';\n\nexport const RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';\n\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\n\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const SET_READ_STATUS = 'SET_READ_STATUS';\n","import { isImage, isVideo } from '../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message) => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if ((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return '';\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../../ui/MessageStatus/type';\nimport * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nimport { SendingMessageStatus } from './types';\n\nconst UNDEFINED = 'undefined';\nconst { SUCCEEDED, FAILED, PENDING } = SendingMessageStatus;\n\nexport const scrollIntoLast = (selector, intialTry = 0) => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (channelUrl, pubSub, dispatcher) => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) return subscriber;\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return subscriber;\n};\n\nexport const getParsedStatus = (message, currentGroupChannel) => {\n if (message.requestState === FAILED) {\n return MessageStatusType.FAILED;\n }\n\n if (message.requestState === PENDING) {\n return MessageStatusType.PENDING;\n }\n\n if (message.requestState === SUCCEEDED) {\n if (!currentGroupChannel) {\n return MessageStatusType.SENT;\n }\n\n const unreadCount = currentGroupChannel.getReadReceipt(message);\n if (unreadCount === 0) {\n return MessageStatusType.READ;\n }\n\n const isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0;\n if (isDelivered) {\n return MessageStatusType.DELIVERED;\n }\n\n return MessageStatusType.SENT;\n }\n\n return null;\n};\n\nexport const isOperator = (groupChannel = {}) => {\n const { myRole } = groupChannel;\n return myRole === 'operator';\n};\n\nexport const isDisabledBecauseFrozen = (groupChannel = {}) => {\n const { isFrozen } = groupChannel;\n return isFrozen && !isOperator(groupChannel);\n};\n\nexport const isDisabledBecauseMuted = (groupChannel = {}) => {\n const { myMutedState } = groupChannel;\n return myMutedState === 'muted';\n};\n\nexport const getEmojiCategoriesFromEmojiContainer = (emojiContainer = {}) => (\n emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []\n);\n\nexport const getAllEmojisFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojis = [];\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n allEmojis.push(emojis[emojiIndex]);\n }\n }\n return allEmojis;\n};\n\nexport const getEmojisFromEmojiContainer = (emojiContainer = {}, emojiCategoryId = '') => (\n emojiContainer.emojiCategories\n ? emojiContainer.emojiCategories\n .filter((emojiCategory) => emojiCategory.id === emojiCategoryId)[0].emojis\n : []\n);\n\nexport const getAllEmojisMapFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojisMap = new Map();\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n const { key, url } = emojis[emojiIndex];\n allEmojisMap.set(key, url);\n }\n }\n return allEmojisMap;\n};\n\nexport const getNicknamesMapFromMembers = (members = []) => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const isSameGroup = (message, comparingMessage) => {\n if (\n !message\n || !comparingMessage\n || !message.sender\n || !comparingMessage.sender\n || !message.createdAt\n || !comparingMessage.createdAt\n || !message.sender.userId\n || !comparingMessage.sender.userId\n ) {\n return false;\n }\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage,\n currMessage,\n nextMessage,\n) => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const passUnsuccessfullMessages = (allMessages, newMessage) => {\n const { sendingStatus = UNDEFINED } = newMessage;\n if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) {\n const lastIndexOfSucceededMessage = allMessages\n .map((message) => (\n message.sendingStatus\n || ((message.isAdminMessage && message.isAdminMessage()) ? SUCCEEDED : UNDEFINED)\n ))\n .lastIndexOf(SUCCEEDED);\n if (lastIndexOfSucceededMessage + 1 < allMessages.length) {\n const messages = [...allMessages];\n messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);\n return messages;\n }\n }\n return [\n ...allMessages,\n newMessage,\n ];\n};\n\nexport default getParsedStatus;\n","export default {\n initialized: false,\n loading: false,\n allMessages: [],\n currentGroupChannel: { members: [] },\n hasMore: false,\n lastMessageTimeStamp: 0,\n emojiContainer: {},\n readStatus: {},\n unreadCount: 0,\n unreadSince: null,\n isInvalid: false,\n};\n","import format from 'date-fns/format';\n\nimport * as actionTypes from './actionTypes';\nimport initialState from './initialState';\n\nimport compareIds from '../../../utils/compareIds';\nimport { passUnsuccessfullMessages } from '../utils';\nimport { SendingMessageStatus } from '../types';\n\nconst {\n SUCCEEDED,\n FAILED,\n PENDING,\n} = SendingMessageStatus;\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actionTypes.RESET_STATE:\n return initialState;\n case actionTypes.RESET_MESSAGES:\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMore`\n // the onScroll gets called twice, setting hasMore false prevents this\n hasMore: false,\n allMessages: [],\n };\n case actionTypes.GET_PREV_MESSAGES_START:\n return {\n ...state,\n loading: true,\n };\n case actionTypes.CLEAR_SENT_MESSAGES:\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => (\n m.sendingStatus !== SUCCEEDED\n )),\n ],\n };\n case actionTypes.GET_PREV_MESSAGES_SUCESS: {\n const receivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...action.payload },\n ],\n };\n case actionTypes.SEND_MESSAGEGE_SUCESS: {\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId) ? action.payload : m\n ));\n [...newMessages].sort((a, b) => (\n (\n a.sendingStatus\n && b.sendingStatus\n && a.sendingStatus === SUCCEEDED\n && (\n b.sendingStatus === PENDING\n || b.sendingStatus === FAILED\n )\n ) ? -1 : 1\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SEND_MESSAGEGE_FAILURE: {\n // eslint-disable-next-line no-param-reassign\n action.payload.failed = true;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const { channel, message } = action.payload;\n const { currentGroupChannel = {}, unreadCount, unreadSince } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n if (!compareIds(channel.url, currentGroupChannelUrl)) {\n return state;\n }\n // Excluded overlapping messages\n if (!(state.allMessages.map((msg) => msg.messageId).indexOf(message.messageId) < 0)) {\n return state;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n return {\n ...state,\n unreadCount: unreadCount + 1,\n unreadSince: (unreadCount === 0)\n ? format(new Date(), 'p MMM dd')\n : unreadSince,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.messageId, action.payload.message.messageId)\n ? action.payload.message\n : m\n )),\n };\n case actionTypes.RESEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.MARK_AS_READ:\n return {\n ...state,\n unreadCount: 0,\n unreadSince: null,\n };\n case actionTypes.ON_MESSAGE_DELETED:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n case actionTypes.SET_EMOJI_CONTAINER: {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n }\n case actionTypes.SET_READ_STATUS: {\n return {\n ...state,\n readStatus: action.payload,\n };\n }\n case actionTypes.ON_REACTION_UPDATED: {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n }\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\n\nimport * as messageActions from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\nimport compareIds from '../../../utils/compareIds';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\nfunction useHandleChannelEvents({ currentGroupChannel, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (channelUrl && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n ChannelHandler.onMessageReceived = (channel, message) => {\n if (compareIds(channel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n\n ChannelHandler.onMessageDeleted = (_, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n };\n\n ChannelHandler.onReactionUpdated = (_, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n };\n\n ChannelHandler.onChannelChanged = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelFrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelUnfrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserMuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserUnmuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserBanned = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onOperatorUpdated = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n // Add this channel event handler to the SendBird object.\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [channelUrl, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.GroupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n // this order is important - this mark as read should update the event handler up above\n groupChannel.markAsRead();\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji((emojiContainer_, err) => {\n if (err) {\n logger.error('Channel: Getting emojis failed', err);\n return;\n }\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\nfunction useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams\n && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n });\n }\n }, [channelUrl, userFilledMessageListQuery]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n}) {\n useEffect(() => {\n const wasOffline = !isOnline;\n return () => {\n // state changed from offline to online\n if (wasOffline) {\n logger.info('Refreshing conversation state');\n const { appInfo = {} } = sdk;\n const useReaction = appInfo.isUsingReaction || false;\n\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = useReaction;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n sdk.GroupChannel.getChannel(currentGroupChannel.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.CLEAR_SENT_MESSAGES,\n });\n\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n });\n }\n };\n }, [isOnline]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useScrollCallback({\n currentGroupChannel,\n lastMessageTimeStamp,\n userFilledMessageListQuery,\n}, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMore) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n lastMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMoreMessages = (messages && messages.length > 0);\n const lastMessageTs = hasMoreMessages\n ? messages[0].createdAt\n : null;\n\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore: hasMoreMessages,\n lastMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, lastMessageTimeStamp]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message, cb) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);\n\n // Message is only on local\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (cb) { cb(); }\n return;\n }\n\n // Message is on server\n currentGroupChannel.deleteMessage(message, (err) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);\n if (cb) { cb(err); }\n if (!err) {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n } else {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as topics from '../../../lib/pubSub/topics';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n}, {\n logger,\n pubSub,\n sdk,\n}) {\n return useCallback((messageId, text, cb) => {\n const createParamsDefault = (txt) => {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(text)\n : createParamsDefault(text);\n\n currentGroupChannel.updateUserMessage(messageId, params, (r, e) => {\n logger.info('Channel: Updating message!', params);\n const swapParams = sdk.getErrorFirstCallback();\n let message = r;\n let err = e;\n if (swapParams) {\n message = e;\n err = r;\n }\n if (cb) {\n cb(err, message);\n }\n if (!err) {\n logger.info('Channel: Updating message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentGroupChannel,\n message,\n },\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel: currentGroupChannel,\n },\n );\n } else {\n logger.warning('Channel: Updating message failed!', err);\n }\n });\n }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function'\n && failedMessage.isResendable()\n ) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel\n .resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendMessageCallback({ currentGroupChannel, onBeforeSendUserMessage }, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n () => {\n const text = messageInputRef.current.value;\n const createParamsDefault = (txt) => {\n const message = (typeof txt === 'string') ? txt.trim() : txt;\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefault(text);\n\n logger.info('Channel: Sending message has started', params);\n const pendingMsg = currentGroupChannel.sendUserMessage(params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n if (error) {\n logger.warning('Channel: Sending message failed!', {\n message,\n });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel, onBeforeSendFileMessage,\n}, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((file) => {\n const createParamsDefault = (file_) => {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n };\n\n const createCustomPrams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefault(file);\n\n logger.info('Channel: Uploading file message start!', params);\n const pendingMsg = currentGroupChannel.sendFileMessage(params, (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = response;\n let error = err;\n if (swapParams) {\n message = err;\n error = response;\n }\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', message);\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'), 1000);\n }, [currentGroupChannel, onBeforeSendFileMessage]);\n return [sendMessage];\n}\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\n\nexport default function useSetReadStatus({ allMessages, currentGroupChannel }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (!sdk.ChannelHandler || !currentGroupChannel.url) {\n return () => {};\n }\n // todo: move to reducer?\n const setReadStatus = () => {\n const allReadStatus = allMessages.reduce((accumulator, msg) => {\n if (msg.messageId !== 0) {\n return {\n ...accumulator,\n [msg.messageId]: utils.getParsedStatus(msg, currentGroupChannel),\n };\n }\n return accumulator;\n }, {});\n messagesDispatcher({\n type: messageActionTypes.SET_READ_STATUS,\n payload: allReadStatus,\n });\n };\n if (allMessages.length > 0) {\n setReadStatus();\n }\n\n const channelUrl = currentGroupChannel.url;\n const handler = new sdk.ChannelHandler();\n const handleMessageStatus = (c) => {\n if (channelUrl === c.url) {\n setReadStatus();\n }\n };\n handler.onDeliveryReceiptUpdated = handleMessageStatus;\n handler.onReadReceiptUpdated = handleMessageStatus;\n // Add this channel event handler to the SendBird object.\n const handlerId = uuidv4();\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.addChannelHandler(handlerId, handler);\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.removeChannelHandler(handlerId);\n }\n };\n }, [allMessages, currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst ReactionButton = React.forwardRef((props, ref) => {\n const {\n children,\n width,\n height,\n onClick,\n selected,\n className,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n return (\n onClick(e)}\n role=\"button\"\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n
\n {children}\n
\n \n );\n});\n\nReactionButton.propTypes = {\n children: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n selected: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nReactionButton.defaultProps = {\n selected: false,\n width: '36px',\n height: '36px',\n onClick: () => { },\n className: '',\n};\n\nexport default ReactionButton;\n","import React, { useMemo } from 'react';\n\nimport { EmojiListItems } from '../../../ui/ContextMenu';\nimport ReactionButton from '../../../ui/ReactionButton';\nimport ImageRenderer from '../../../ui/ImageRenderer';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nexport default function useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n}, {\n useReaction,\n logger,\n userId,\n emojiAllList,\n}) {\n return useMemo(() => ({\n parentRef,\n parentContainRef,\n message,\n closeDropdown,\n spaceFromTrigger = {},\n }) => {\n if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {\n logger.warning('Channel: Invalid Params in memoizedEmojiListItems');\n return null;\n }\n\n return (\n \n {\n emojiAllList.map((emoji) => {\n const reactedReaction = message.reactions\n .filter((reaction) => reaction.key === emoji.key)[0];\n const isReacted = reactedReaction\n ? !(reactedReaction.userIds.indexOf(userId) < 0)\n : false;\n return (\n {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n \n }\n />\n \n );\n })\n }\n \n );\n }, [emojiContainer, toggleReaction]);\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Loader from '../Loader';\nimport MessageStatusType from './type';\n\nimport { getMessageCreatedAt } from '../../utils/utils';\n\nconst MessageStatusTypes = MessageStatusType;\nexport { MessageStatusTypes };\nexport default function MessageStatus({\n message,\n status,\n className,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n const label = () => {\n switch (status) {\n case MessageStatusType.FAILED:\n case MessageStatusType.PENDING: {\n return null;\n }\n case MessageStatusType.SENT:\n case MessageStatusType.DELIVERED:\n case MessageStatusType.READ: {\n return (\n \n {getMessageCreatedAt(message)}\n \n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n \n \n \n ),\n SENT: ,\n DELIVERED: ,\n READ: ,\n FAILED: ,\n };\n\n return (\n
\n {icon[status]}\n
\n {label(status)}\n
\n );\n}\n\nMessageStatus.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nMessageStatus.defaultProps = {\n message: null,\n status: '',\n className: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst ReactionBadge = React.forwardRef((props, ref) => {\n const {\n className,\n children,\n count,\n selected,\n isAdd,\n onClick,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (selected && !isAdd) {\n injectingClassName.unshift('sendbird-reaction-badge--selected');\n } else if (isAdd) {\n injectingClassName.push('sendbird-reaction-badge--is-add');\n } else {\n injectingClassName.unshift('sendbird-reaction-badge');\n }\n\n return (\n \n
\n
\n {children}\n
\n \n
\n \n );\n});\n\nReactionBadge.propTypes = {\n children: PropTypes.element.isRequired,\n count: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isAdd: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nReactionBadge.defaultProps = {\n className: '',\n count: '',\n selected: false,\n isAdd: false,\n onClick: () => { },\n};\n\nexport default ReactionBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label from '../Label';\n\nconst CLASS_NAME = 'sendbird-tooltip';\n\nexport default function Tooltip({\n className,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n
\n \n {children}\n \n
\n );\n}\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n};\n\nTooltip.defaultProps = {\n className: '',\n children: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-tooltip-wrapper';\nconst SPACE_FROM_TRIGGER = 8;\n\nexport default function TooltipWrapper({\n className,\n children,\n hoverTooltip,\n // clickTooltip can be added later\n}) {\n const injectingClassName = Array.isArray(className)\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n const [showHoverTooltip, setShowHoverTooltip] = useState(false);\n const childrenRef = useRef(null);\n\n return (\n { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n \n {children}\n \n {\n showHoverTooltip && (\n \n \n \n {hoverTooltip}\n \n \n \n )\n }\n \n );\n}\n\nTooltipWrapper.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n hoverTooltip: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n};\nTooltipWrapper.defaultProps = {\n className: '',\n};\n","import React, { useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ReactionBadge from '../ReactionBadge';\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ContextMenu from '../ContextMenu';\nimport Tooltip from '../Tooltip';\nimport TooltipWrapper from '../TooltipWrapper';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function EmojiReactions({\n className,\n userId,\n message,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-emoji-reactions');\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const imageWidth = '20px';\n const imageHeight = '20px';\n const emojiReactionAddRef = useRef(null);\n const { reactions = [] } = message;\n const messageReactions = reactions;\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n {\n messageReactions && (\n messageReactions.map((reaction) => {\n const { userIds = [] } = reaction;\n const emojiUrl = emojiAllMap.get(reaction.key) || '';\n const reactedUserCount = userIds.length;\n const reactedByMe = !(userIds.indexOf(userId) < 0);\n const nicknames = userIds\n .filter((currentUserId) => currentUserId !== userId)\n .map((currentUserId) => (\n membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER\n ));\n const stringSetForMe = (nicknames.length > 0)\n ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU;\n return (\n 0 && (\n \n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n \n \n )\n }\n >\n toggleReaction(message, reaction.key, reactedByMe)}\n >\n \n )}\n />\n \n \n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n );\n}\n\nEmojiReactions.propTypes = {\n userId: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n message: PropTypes.shape({\n reactions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\nEmojiReactions.defaultProps = {\n className: '',\n membersMap: new Map(),\n userId: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport uuidv4 from '../../utils/uuid';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(/\\r/);\n const matchedMessage = splitMessage\n .map((word) => (word !== '' ? word :
));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import { useEffect } from 'react';\n\nconst MOUSE_ENTER = 'mouseenter';\nconst MOUSE_LEAVE = 'mouseleave';\n\nconst useMouseHover = ({\n ref,\n setHover,\n}) => {\n const handleMouseOver = () => {\n if (ref.current) {\n setHover(true);\n }\n };\n const handleMouseOut = () => {\n if (ref.current) {\n setHover(false);\n }\n };\n\n useEffect(() => {\n const { current } = ref;\n current.addEventListener(MOUSE_ENTER, handleMouseOver);\n current.addEventListener(MOUSE_LEAVE, handleMouseOut);\n return () => {\n current.removeEventListener(MOUSE_ENTER, handleMouseOver);\n current.removeEventListener(MOUSE_LEAVE, handleMouseOut);\n };\n });\n};\n\nexport default useMouseHover;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport UserProfile from '../UserProfile';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport MessageStatus from '../MessageStatus';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n} from './utils';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function Message(props) {\n const {\n isByMe,\n userId,\n message,\n className,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n } = props;\n\n if (!message) return null;\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n injectingClassName.push(`sendbird-message${isByMe ? '--outgoing' : '--incoming'}`);\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-user-message-word',\n });\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nMessage.propTypes = {\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showEdit: PropTypes.func,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n userId: '',\n resendMessage: noop,\n className: '',\n showEdit: noop,\n showRemove: noop,\n status: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUserMessage({\n userId,\n message,\n showEdit,\n disabled,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n \n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n { showRemove(true); }}\n // onResend={() => resendMessage(message)}\n // duplicated and should replace to more\n />\n
\n )\n }\n
\n
\n
\n
\n \n \n \n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n \n \n );\n}\n\nfunction IncomingUserMessage({\n userId,\n message,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n // showProfile && ()\n }\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-user-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n
\n \n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n
\n
\n
\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nIncomingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingUserMessage.defaultProps = {\n message: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nOutgoingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n disabled: PropTypes.bool,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUserMessage.defaultProps = {\n message: {},\n resendMessage: noop,\n showEdit: noop,\n showRemove: noop,\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function AdminMessage({\n className,\n message,\n}) {\n if (!message.messageType || message.messageType !== 'admin') { // change to use message.isAdminMessage()\n return null;\n }\n\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n \n
\n );\n}\n\nAdminMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nAdminMessage.defaultProps = {\n message: {},\n className: '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n getMessageCreatedAt,\n getIsSentFromStatus,\n};\n","import React, { useContext, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport {\n getMessageCreatedAt,\n getIsSentFromStatus,\n} from './util';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n isImage,\n isVideo,\n unSupported,\n} from '../FileViewer/types';\nimport {\n getSenderName,\n getSenderProfileUrl,\n} from '../../utils/utils';\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst noop = () => { };\n\nconst OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message';\nconst INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function ThumbnailMessage({\n message = {},\n userId,\n disabled,\n isByMe,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n return (\n isByMe\n ? (\n \n )\n : (\n \n )\n );\n}\n\nexport function OutgoingThumbnailMessage({\n message = {},\n userId,\n disabled,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n isMessageSent && showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n )\n }\n
\n
\n \n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n role=\"button\"\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n \n \n \n );\n}\n\nexport function IncomingThumbnailMessage({\n message = {},\n userId,\n onClick,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const reactionAddRef = useRef(null);\n const avatarRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n !chainTop && (\n \n {getSenderName(message) || ''}\n \n )\n }\n
\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_THUMBNAIL_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string,\n resendMessage: PropTypes.func,\n status: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n showRemove: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\nThumbnailMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n resendMessage: noop,\n onClick: noop,\n showRemove: noop,\n status: '',\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nOutgoingThumbnailMessage.defaultProps = {\n status: '',\n};\n\nIncomingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nIncomingThumbnailMessage.defaultProps = {\n status: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\n\nimport { getSenderProfileUrl, getSenderName, getMessageCreatedAt } from '../../utils/utils';\nimport {\n truncate,\n getIsSentFromStatus,\n} from './utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst MAX_TRUNCATE_LENGTH = 40;\nconst GROUPAING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\nconst noop = () => { };\n\nfunction checkFileType(fileUrl) {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport function OutgoingFileMessage({\n message,\n userId,\n status,\n showRemove,\n disabled,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n url,\n } = message;\n const openFileUrl = () => { window.open(url); };\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n const showEmojiReactions = isMessageSent && useReaction && message.reactions\n && (message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n {\n checkFileType(url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n \n \n );\n}\n\nexport function IncomingFileMessage({\n message,\n userId,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const openFileUrl = () => { window.open(message.url); };\n const messageRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-file-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n {\n checkFileType(message.url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n \n )\n }\n
\n
\n
\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n \n \n );\n}\n\nOutgoingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingFileMessage.defaultProps = {\n status: '',\n showRemove: noop,\n resendMessage: noop,\n message: {},\n userId: '',\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nIncomingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingFileMessage.defaultProps = {\n message: {},\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nconst MessageSwitch = ({\n message,\n userId,\n disabled,\n isByMe,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) => (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n);\n\n\nMessageSwitch.propTypes = {\n message: PropTypes.shape({}),\n userId: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessageSwitch.defaultProps = {\n message: {},\n isByMe: false,\n disabled: false,\n showRemove: noop,\n resendMessage: noop,\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nexport default MessageSwitch;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nconst RemoveMessage = (props) => {\n const {\n onCloseModal,\n onDeleteMessage,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n );\n};\n\nRemoveMessage.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onDeleteMessage: PropTypes.func.isRequired,\n};\n\nexport default RemoveMessage;\n","import format from 'date-fns/format';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport default {\n getMessageCreatedAt,\n};\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst CLASS_NAME = 'sendbird-unknown-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function UnknownMessage({\n message,\n isByMe,\n status,\n className,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n injectingClassName.push(`${CLASS_NAME}${isByMe ? '--outgoing' : '--incoming'}`);\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n isByMe: PropTypes.bool,\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nUnknownMessage.defaultProps = {\n isByMe: false,\n status: '',\n className: '',\n showRemove: () => { },\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUnknownMessage({\n message,\n status,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-outgoing-unknown-message';\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { showRemove(true); closeDropdown(); }}\n >\n Delete\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n \n \n );\n}\n\nfunction IncomingUnknownMessage({\n message,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-incoming-unknown-message';\n const { sender } = message;\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${className}__left__sender-profile-image`}\n src={sender.profileUrl}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n \n {sender.nickname || stringSet.NO_NAME}\n \n )\n }\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n
\n {\n !chainBottom && (\n \n {utils.getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nOutgoingUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n status: PropTypes.string.isRequired,\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUnknownMessage.defaultProps = {\n showRemove: () => { },\n};\n\nIncomingUnknownMessage.propTypes = {\n message: PropTypes.shape({\n sender: PropTypes.shape({\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }).isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","export const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const OG_MESSAGE = 'sendbird-og-message';\nexport const OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message';\nexport const INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message';\nexport const generateMockMessage = (process) => {\n const message = {\n message: 'go to this link sendbird.com it will be usefull to you!!',\n ogMetaData: {\n title: 'This is the TITLE',\n description: 'I\\'m description I\\'m description I\\'m description I\\'m description ',\n url: 'https://sendbird.com/',\n defaultImage: {\n url: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n alt: 'test',\n },\n },\n sender: {\n profileUrl: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n nickname: 'Hoonying',\n },\n createdAt: 2000000,\n };\n if (process && typeof process === 'function') {\n return process(message);\n }\n return message;\n};\n\nexport default {\n URL_REG,\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n generateMockMessage,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const copyToClipboard = (text) => {\n try {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path\n // to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const checkOGIsEnalbed = (message) => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n\nexport default {\n getSenderName,\n createUrlTester,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { createUrlTester } from './utils';\nimport { URL_REG } from './const';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst WORD_COLOR = LabelColors.ONBACKGROUND_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\nconst isUrl = createUrlTester(URL_REG);\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n} from './const';\nimport {\n getSenderName,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n} from './utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport './index.scss';\n\nimport UserProfile from '../UserProfile';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport Avatar from '../Avatar/index';\n\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst GROUPING_PADDING = '1px';\nconst NORAML_PADDING = '8px';\n\nconst OGMessageSwitch = ({\n isByMe,\n userId,\n status,\n message,\n disabled,\n showEdit,\n chainTop,\n className,\n membersMap,\n showRemove,\n useReaction,\n emojiAllMap,\n chainBottom,\n resendMessage,\n toggleReaction,\n memoizedEmojiListItems,\n}) => {\n const { ogMetaData } = message;\n const injectingClassName = Array.isArray(className) ? className : [className];\n\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n });\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n};\n\nfunction OutgoingOGMessage(props) {\n const {\n status,\n userId,\n message,\n disabled,\n openLink,\n showEdit,\n chainTop,\n showRemove,\n membersMap,\n chainBottom,\n emojiAllMap,\n useReaction,\n resendMessage,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n \n \n );\n}\n\nfunction IncomingOGMessage(props) {\n const {\n userId,\n message,\n openLink,\n chainTop,\n membersMap,\n chainBottom,\n useReaction,\n emojiAllMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_OG_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n \n )}\n />\n
\n
\n \n \n );\n}\n\nexport default OGMessageSwitch;\n\nconst noop = () => { };\n\nOGMessageSwitch.propTypes = {\n isByMe: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n useReaction: PropTypes.bool.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n status: PropTypes.string,\n disabled: PropTypes.bool,\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n toggleReaction: PropTypes.func,\n membersMap: PropTypes.instanceOf(Map),\n emojiAllMap: PropTypes.instanceOf(Map),\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nOGMessageSwitch.defaultProps = {\n className: '',\n status: '',\n disabled: false,\n showEdit: noop,\n showRemove: noop,\n resendMessage: noop,\n toggleReaction: noop,\n membersMap: new Map(),\n emojiAllMap: new Map(),\n memoizedEmojiListItems: noop,\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingOGMessage.propTypes = {\n status: PropTypes.string,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n isResendable: PropTypes.func,\n errorCode: PropTypes.number,\n }).isRequired,\n disabled: PropTypes.bool.isRequired,\n openLink: PropTypes.func.isRequired,\n showEdit: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingOGMessage.defaultProps = {\n status: '',\n};\n\nIncomingOGMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n openLink: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport format from 'date-fns/format';\n\nimport Message from '../../../ui/Message';\nimport AdminMessage from '../../../ui/AdminMessage';\nimport ThumbnailMessage from '../../../ui/ThumbnailMessage';\nimport FileMessage from '../../../ui/FileMessage';\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\nimport RemoveMessageModal from './RemoveMessage';\nimport UnknownMessage from '../../../ui/UnknownMessage';\nimport OGMessage from '../../../ui/OGMessage';\n\nimport { MessageTypes, getMessageType } from '../types';\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n status,\n resendMessage,\n useReaction,\n chainTop,\n chainBottom,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const { sender = {} } = message;\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n const isByMe = (userId === sender.userId)\n || (message.requestState === 'pending')\n || (message.requestState === 'failed');\n\n if (showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: ,\n [MessageTypes.FILE]: (\n \n ),\n [MessageTypes.OG]: (\n \n ),\n [MessageTypes.THUMBNAIL]: (\n \n ),\n [MessageTypes.USER]: (\n \n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={() => {\n deleteMessage(message, () => {\n setShowFileViewer(false);\n });\n }}\n isByMe={isByMe}\n />\n )\n }\n {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n }\n
\n );\n}\n\nMessageHoc.propTypes = {\n userId: PropTypes.string,\n message: PropTypes.shape({\n isFileMessage: PropTypes.func,\n isAdminMessage: PropTypes.func,\n isUserMessage: PropTypes.func,\n isDateSeperator: PropTypes.func,\n // should be a number, but there's a bug in SDK shich returns string\n messageId: PropTypes.number,\n type: PropTypes.string,\n createdAt: PropTypes.number,\n message: PropTypes.string,\n requestState: PropTypes.string,\n messageType: PropTypes.string,\n sender: PropTypes.shape({ userId: PropTypes.string }),\n ogMetaData: PropTypes.shape({}),\n }),\n hasSeperator: PropTypes.bool,\n disabled: PropTypes.bool,\n editDisabled: PropTypes.bool,\n deleteMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nMessageHoc.defaultProps = {\n userId: '',\n editDisabled: false,\n message: {},\n hasSeperator: false,\n disabled: false,\n status: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport './conversation-scroll.scss';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nimport MessageHOC from './MessageHOC';\nimport {\n getParsedStatus,\n compareMessagesForGrouping,\n} from '../utils';\n\nexport default class ConversationScroll extends Component {\n onScroll = (e) => {\n const {\n scrollRef,\n hasMore,\n messagesDispatcher,\n onScroll,\n currentGroupChannel,\n } = this.props;\n\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const first = nodes[0];\n onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n first.scrollIntoView();\n }\n });\n }\n\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n }\n\n render() {\n const {\n userId,\n disabled,\n scrollRef,\n readStatus,\n membersMap,\n initialized,\n allMessages,\n useReaction,\n emojiAllMap,\n editDisabled,\n deleteMessage,\n updateMessage,\n resendMessage,\n renderChatItem,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n } = this.props;\n return (\n
\n \n
\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n initialized\n && allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n if (renderChatItem) {\n return (\n \n {\n renderChatItem({\n message: m,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n })\n }\n
\n );\n }\n\n return (\n \n );\n },\n )\n }\n
\n
\n \n );\n }\n}\n\nConversationScroll.propTypes = {\n // https://stackoverflow.com/a/52646941\n scrollRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}),\n ]),\n }).isRequired,\n hasMore: PropTypes.bool,\n messagesDispatcher: PropTypes.func.isRequired,\n onScroll: PropTypes.func,\n initialized: PropTypes.bool,\n editDisabled: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n allMessages: PropTypes.arrayOf(PropTypes.shape({\n createdAt: PropTypes.number,\n })).isRequired,\n deleteMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n readStatus: PropTypes.shape({}).isRequired,\n currentGroupChannel: PropTypes.shape({\n markAsRead: PropTypes.func,\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n renderChatItem: PropTypes.element,\n useReaction: PropTypes.bool,\n emojiContainer: PropTypes.shape({}),\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n useMessageGrouping: PropTypes.bool,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nConversationScroll.defaultProps = {\n hasMore: false,\n editDisabled: false,\n disabled: false,\n initialized: false,\n userId: '',\n renderChatItem: null,\n onScroll: null,\n useReaction: true,\n emojiContainer: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n useMessageGrouping: true,\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './notification.scss';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default function Notification({\n count,\n time,\n onClick,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const timeArray = time.split(' ');\n timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON);\n return (\n // eslint-disable-next-line\n
\n \n \n
\n );\n}\n\nNotification.propTypes = {\n count: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n time: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nNotification.defaultProps = {\n count: 0,\n time: '',\n};\n","import React, { useContext } from 'react';\n\nimport './notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\n\nconst TypingIndicatorText = ({ members }) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nfunction TypingIndicator({ channelUrl, sb, logger }) {\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState([]);\n\n useEffect(() => {\n if (sb && sb.ChannelHandler) {\n sb.removeChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new sb.ChannelHandler();\n // there is a possible warning in here - setState called after unmount\n handler.onTypingStatusUpdated = (groupChannel) => {\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n const members = groupChannel.getTypingMembers();\n if (groupChannel.url === channelUrl) {\n setTypingMembers(members);\n }\n };\n sb.addChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb && sb.removeChannelHandler) {\n sb.removeChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n \n );\n}\n\nTypingIndicator.propTypes = {\n channelUrl: PropTypes.string.isRequired,\n sb: PropTypes.shape({\n ChannelHandler: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n addChannelHandler: PropTypes.func,\n }).isRequired,\n logger: PropTypes.shape({\n info: PropTypes.func,\n }).isRequired,\n};\n\nexport default TypingIndicator;\n","// Logic required to handle message input rendering\n\nimport React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\n\nimport { RenderMessageInputProps } from '../../../index';\nimport * as utils from '../utils.js';\n\nimport MessageInput from '../../../ui/MessageInput';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: Sendbird.GroupChannel;\n user: Sendbird.User;\n isOnline: boolean;\n initialized: boolean;\n onSendMessage(): void;\n onFileUpload(): void;\n renderMessageInput(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n isOnline,\n initialized,\n}: Props, ref: React.RefObject): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // custom message\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n {\n channel.startTyping();\n }}\n onSendMessage={onSendMessage}\n onFileUpload={onFileUpload}\n />\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\nimport './index.scss';\n\nfunction ConnectionStatus() {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n );\n}\n\nexport default ConnectionStatus;\n","import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict';\nimport { LabelStringSet } from '../Label';\n\nexport const prettyDate = (date) => formatDistanceToNowStrict(date, { addSuffix: true });\n\nexport const getOthersLastSeenAt = (channel) => {\n if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) {\n return '';\n }\n const lastSeenList = [...Object.values(channel.getReadStatus())];\n const lastSeenAt = lastSeenList.length > 0\n ? lastSeenList[0].last_seen_at\n : 0;\n if (lastSeenAt === 0) {\n return '';\n }\n return prettyDate(lastSeenAt);\n};\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default function AutoRefresh({\n repeatFunc,\n}) {\n const [label, setLabel] = useState(repeatFunc());\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (label !== repeatFunc()) {\n setLabel(repeatFunc());\n }\n }, 10000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (
{label}
);\n}\n\nAutoRefresh.propTypes = {\n repeatFunc: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport AutoRefresh from '../AutoRefresh';\nimport ChannelAvatar from '../ChannelAvatar/index';\n\nexport default function ChatHeader(props) {\n const {\n currentGroupChannel,\n currentUser,\n title,\n subTitle,\n isActive,\n isMuted,\n onActionClick,\n theme,\n } = props;\n const { userId } = currentUser;\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n \n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n \n {\n (typeof isActive === 'string' && isActive === 'true') || (typeof isActive === 'boolean' && isActive)\n ?
\n : null\n }\n \n {\n subTitle\n || utils.getOthersLastSeenAt(currentGroupChannel)} />\n }\n \n
\n
\n {\n (typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted)\n ? \n : null\n }\n \n \n \n
\n
\n );\n}\n\nChatHeader.propTypes = {\n currentGroupChannel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n }),\n theme: PropTypes.string,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n title: PropTypes.string,\n subTitle: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n isActive: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isMuted: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n onActionClick: PropTypes.func,\n};\n\nChatHeader.defaultProps = {\n currentGroupChannel: {},\n title: '',\n theme: 'light',\n subTitle: '',\n isActive: false,\n isMuted: false,\n currentUser: {},\n onActionClick: () => { },\n};\n","import React, {\n useEffect,\n useRef,\n useReducer,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as messageActionTypes from './dux/actionTypes';\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useSetReadStatus from './hooks/useSetReadStatus';\nimport useMemoizedEmojiListItems from './hooks/useMemoizedEmojiListItems';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\n\nimport ConversationScroll from './components/ConversationScroll';\nimport Notification from './components/Notification';\nimport FrozenNotification from './components/FrozenNotification';\nimport TypingIndicator from './components/TypingIndicator';\nimport MessageInputWrapper from './components/MessageInputWrapper';\nimport ConnectionStatus from '../../ui/ConnectionStatus';\nimport ChatHeader from '../../ui/ChatHeader';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\n\nconst noop = () => { };\n\nexport const ConversationPanel = (props) => {\n const {\n channelUrl,\n stores: { sdkStore, userStore },\n config: {\n userId,\n logger,\n pubSub,\n isOnline,\n theme,\n },\n dispatchers: {\n reconnect,\n },\n queries = {},\n useReaction,\n renderChatItem,\n renderChatHeader,\n renderUserProfile,\n disableUserProfile,\n renderMessageInput,\n useMessageGrouping,\n onChatHeaderActionClick,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n } = props;\n const { sdk } = sdkStore;\n const { config } = props;\n const sdkError = sdkStore.error;\n const sdkInit = sdkStore.initialized;\n const { user } = userStore;\n\n if (queries.messageListQuery) {\n // eslint-disable-next-line no-console\n console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead');\n }\n\n const userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery;\n\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n loading,\n hasMore,\n initialized,\n unreadCount,\n unreadSince,\n isInvalid,\n currentGroupChannel = {},\n lastMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n const { isFrozen, isBroadcast } = currentGroupChannel;\n const { appInfo = {} } = sdk;\n const usingReaction = (\n (appInfo.isUsingReaction && !isBroadcast) || useReaction || false\n );\n\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n\n const emojiAllList = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisFromEmojiContainer(emojiContainer)\n : []\n ), [emojiContainer]);\n\n const nicknamesMap = useMemo(() => (\n usingReaction\n ? utils.getNicknamesMapFromMembers(currentGroupChannel.members)\n : new Map()\n ), [currentGroupChannel.members]);\n\n const onScrollCallback = useScrollCallback({\n currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery,\n }, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n const memoizedEmojiListItems = useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n }, {\n useReaction: usingReaction,\n logger,\n userId,\n emojiAllList,\n });\n\n // to create message-datasource\n useGetChannel(\n { channelUrl, sdkInit },\n { messagesDispatcher, sdk, logger },\n );\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n { currentGroupChannel, sdkInit, userId },\n { messagesDispatcher, sdk, logger },\n );\n\n useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subScriber = utils.pubSubHandler(channelUrl, pubSub, messagesDispatcher);\n return () => {\n utils.pubSubHandleRemover(subScriber);\n };\n }, [channelUrl, sdkInit]);\n\n // to create initial read status\n useSetReadStatus(\n { allMessages, currentGroupChannel },\n { messagesDispatcher, sdk, logger },\n );\n\n // handling connection breaks\n useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n });\n\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage },\n { logger, sdk, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, onSendMessage] = useSendMessageCallback(\n { currentGroupChannel, onBeforeSendUserMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n const [onSendFileMessage] = useSendFileMessageCallback(\n { currentGroupChannel, onBeforeSendFileMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n\n if (sdkError) {\n return (\n
\n {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n
\n );\n }\n if (!channelUrl) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n return (\n \n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n \n )\n }\n {\n isFrozen && (\n \n )\n }\n {\n unreadCount > 0 && (\n {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n // there is no scroll\n if (scrollRef.current.scrollTop === 0) {\n currentGroupChannel.markAsRead();\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n }\n }}\n time={unreadSince}\n />\n )\n }\n \n
\n \n
\n \n
\n {\n !isOnline && (\n \n )\n }\n
\n \n );\n};\n\nConversationPanel.propTypes = {\n channelUrl: PropTypes.string,\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n GroupChannel: PropTypes.any,\n ChannelHandler: PropTypes.any,\n addChannelHandler: PropTypes.func,\n UserMessageParams: PropTypes.any,\n FileMessageParams: PropTypes.any,\n getAllEmoji: PropTypes.func,\n appInfo: PropTypes.shape({}),\n }),\n error: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n reconnect: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n userId: PropTypes.string.isRequired,\n isOnline: PropTypes.bool.isRequired,\n theme: PropTypes.string,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n messageListParams: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n // deprecate in v1.3\n messageListQuery: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeSendUserMessage: PropTypes.func, // onBeforeSendUserMessage(text)\n onBeforeSendFileMessage: PropTypes.func, // onBeforeSendFileMessage(File)\n onBeforeUpdateUserMessage: PropTypes.func,\n renderChatItem: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderMessageInput: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderChatHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChatHeaderActionClick: PropTypes.func,\n useReaction: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n useMessageGrouping: PropTypes.bool,\n};\n\nConversationPanel.defaultProps = {\n channelUrl: null,\n queries: {},\n onBeforeSendUserMessage: null,\n onBeforeSendFileMessage: null,\n onBeforeUpdateUserMessage: null,\n renderChatItem: null,\n renderMessageInput: null,\n renderChatHeader: null,\n useReaction: true,\n disableUserProfile: false,\n renderUserProfile: null,\n useMessageGrouping: true,\n onChatHeaderActionClick: noop,\n};\n\nexport const {\n getEmojiCategoriesFromEmojiContainer,\n getAllEmojisFromEmojiContainer,\n getEmojisFromEmojiContainer,\n} = utils;\n\nexport default withSendbirdContext(ConversationPanel);\n"],"names":["RESET_MESSAGES","RESET_STATE","CLEAR_SENT_MESSAGES","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","SEND_MESSAGEGE_START","SEND_MESSAGEGE_SUCESS","SEND_MESSAGEGE_FAILURE","RESEND_MESSAGEGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","SET_READ_STATUS","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","getMessageType","message","isUserMessage","messageType","ogMetaData","isAdminMessage","isFileMessage","isImage","type","isVideo","UNDEFINED","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","pubSubHandleRemover","subscriber","forEach","s","remove","pubSubHandler","channelUrl","pubSub","dispatcher","Map","subscribe","set","topics","msg","channel","url","channelActions","payload","fromSelector","messageId","getParsedStatus","currentGroupChannel","requestState","MessageStatusType","SENT","unreadCount","getReadReceipt","READ","isDelivered","getDeliveryReceipt","DELIVERED","isOperator","groupChannel","myRole","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","myMutedState","getEmojiCategoriesFromEmojiContainer","emojiContainer","emojiCategories","getAllEmojisFromEmojiContainer","allEmojis","categoryIndex","emojis","emojiIndex","push","getEmojisFromEmojiContainer","emojiCategoryId","filter","emojiCategory","id","getAllEmojisMapFromEmojiContainer","allEmojisMap","key","getNicknamesMapFromMembers","members","nicknamesMap","memberIndex","userId","nickname","getMessageCreatedAt","format","createdAt","isSameGroup","comparingMessage","sender","sendingStatus","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","passUnsuccessfullMessages","allMessages","newMessage","lastIndexOfSucceededMessage","map","lastIndexOf","messages","splice","initialized","loading","hasMore","lastMessageTimeStamp","readStatus","unreadSince","isInvalid","reducer","state","action","actionTypes","initialState","m","receivedMessages","stateChannel","stateChannelUrl","actionChannelUrl","filteredAllMessages","find","compareIds","newMessages","reqId","sort","a","b","failed","currentGroupChannelUrl","indexOf","Date","applyReactionEvent","useHandleChannelEvents","sdkInit","messagesDispatcher","sdk","logger","useEffect","messageReceiverId","uuidv4","ChannelHandler","info","onMessageReceived","messageActions","onMessageUpdated","onMessageDeleted","_","onReactionUpdated","reactionEvent","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onUserMuted","onUserUnmuted","onUserBanned","onOperatorUpdated","addChannelHandler","removeChannelHandler","useSetChannel","GroupChannel","getChannel","then","messageActionTypes","markAsRead","catch","e","warning","getAllEmoji","emojiContainer_","err","useInitialMessagesFetch","userFilledMessageListQuery","MessageListParams","getMessagesByMessageId","messageListParams","prevResultSize","isInclusive","includeReplies","includeReaction","Object","keys","getMessagesByTimestamp","getTime","finally","utils","useHandleReconnect","isOnline","wasOffline","appInfo","useReaction","isUsingReaction","lastMessageTime","useScrollCallback","useCallback","cb","hasMoreMessages","lastMessageTs","useDeleteMessageCallback","deleteMessage","useUpdateMessageCallback","onBeforeUpdateUserMessage","text","createParamsDefault","txt","params","UserMessageParams","createCustomPrams","updateUserMessage","r","swapParams","getErrorFirstCallback","publish","useResendMessageCallback","failedMessage","file","isResendable","resendUserMessage","resendFileMessage","console","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","useRef","sendMessage","current","value","trim","pendingMsg","sendUserMessage","res","useSendFileMessageCallback","onBeforeSendFileMessage","file_","FileMessageParams","sendFileMessage","response","localUrl","URL","createObjectURL","useSetReadStatus","setReadStatus","allReadStatus","reduce","accumulator","handler","handleMessageStatus","c","onDeliveryReceiptUpdated","onReadReceiptUpdated","handlerId","ReactionButton","React","forwardRef","props","ref","children","width","height","onClick","selected","className","injectingClassName","Array","isArray","join","slice","propTypes","PropTypes","element","isRequired","func","bool","oneOfType","number","string","arrayOf","defaultProps","useMemoizedEmojiListItems","toggleReaction","emojiAllList","useMemo","parentRef","parentContainRef","closeDropdown","spaceFromTrigger","EmojiListItems","emoji","reactedReaction","reactions","reaction","isReacted","userIds","ImageRenderer","Icon","IconTypes","EMOJI_FAILED","useToggleReactionCallback","deleteReaction","addReaction","MessageStatus","status","label","Label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_2","icon","Loader","SPINNER","IconColors","ERROR","objectOf","array","object","ReactionBadge","count","isAdd","unshift","ONBACKGROUND_1","CLASS_NAME","Tooltip","SPACE_FROM_TRIGGER","TooltipWrapper","hoverTooltip","useState","showHoverTooltip","setShowHoverTooltip","childrenRef","bottom","left","offsetWidth","EmojiReactions","emojiAllMap","membersMap","memoizedEmojiListItems","MemoizedEmojiListItems","imageWidth","imageHeight","emojiReactionAddRef","messageReactions","useContext","LocalizationContext","stringSet","emojiUrl","get","reactedUserCount","reactedByMe","nicknames","currentUserId","TOOLTIP__UNKOWN_USER","stringSetForMe","TOOLTIP__AND_YOU","TOOLTIP__YOU","size","ContextMenu","toggleDropdown","ON_BACKGROUND_3","EMOJI_REACTIONS_ADD","y","shape","instanceOf","WORD_TYPOGRAPHY","BODY_1","EDITED_COLOR","useMemoizedMessageText","updatedAt","splitMessage","split","matchedMessage","word","MESSAGE_EDITED","MOUSE_ENTER","MOUSE_LEAVE","useMouseHover","setHover","handleMouseOver","handleMouseOut","addEventListener","removeEventListener","noop","GROUPING_PADDING","NORMAL_PADDING","Message","isByMe","resendMessage","disabled","showEdit","showRemove","chainTop","chainBottom","memoizedMessageText","OutgoingUserMessage","MemoizedMessageText","messageRef","parentRefReactions","parentRefMenus","isMessageSent","getIsSentFromStatus","mousehover","setMousehover","moreActive","setMoreActive","handleMoreIconClick","handleMoreIconBlur","paddingTop","paddingBottom","IconButton","MORE","CONTENT_INVERSE","MenuItems","MenuItem","copyToClipboard","IncomingUserMessage","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","showReactionAddButton","showEmojiReactions","Avatar","getSenderProfileUrl","user","close","UserProfile","CAPTION_2","getSenderName","AdminMessage","OUTGOING_THUMBNAIL_MESSAGE","INCOMING_THUMBNAIL_MESSAGE","ThumbnailMessage","OutgoingThumbnailMessage","menuRef","reactionAddRef","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","PLAY","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","unSupported","UNKNOWN__UNKNOWN_MESSAGE_TYPE","IncomingThumbnailMessage","MAX_TRUNCATE_LENGTH","GROUPAING_PADDING","checkFileType","fileUrl","result","imageFile","audioFile","test","FILE_DOCUMENT","FILE_AUDIO","OutgoingFileMessage","openFileUrl","window","open","reactionAddButtonRef","TextButton","truncate","IncomingFileMessage","MessageSwitch","RemoveMessage","onCloseModal","onDeleteMessage","Modal","MODAL__DELETE_MESSAGE__TITLE","UnknownMessage","OutgoingUnknownMessage","UNKNOWN__CANNOT_READ_MESSAGE","IncomingUnknownMessage","profileUrl","NO_NAME","URL_REG","OG_MESSAGE","OUTGOING_OG_MESSAGE","INCOMING_OG_MESSAGE","createUrlTester","regexp","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","friendName","checkOGIsEnalbed","WORD_COLOR","isUrl","LinkLabel","NORAML_PADDING","OGMessageSwitch","openLink","OutgoingOGMessage","defaultImage","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","alt","NO_THUMBNAIL","title","SUBTITLE_2","description","BODY_2","event","stopPropagation","IncomingOGMessage","errorCode","MessageHoc","editDisabled","hasSeperator","updateMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","editMessageInputRef","MessageInput","DateSeparator","FileMessage","OGMessage","RemoveMessageModal","FileViewer","isDateSeperator","ConversationScroll","scrollRef","onScroll","target","scrollTop","clientHeight","scrollHeight","first","renderChatItem","useMessageGrouping","idx","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","onUpdateMessage","onResendMessage","MessageHOC","Component","Notification","time","timeArray","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","ONCONTENT_1","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","SHEVRON_DOWN","CONTENT","FrozenNotification","CHANNEL_FROZEN","TypingIndicatorText","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","TypingIndicator","sb","setHandlerId","typingMembers","setTypingMembers","newHandlerId","onTypingStatusUpdated","getTypingMembers","MessageInputWrapper","_a","onSendMessage","onFileUpload","renderMessageInput","isBroadcast","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","ConnectionStatus","TRYING_TO_CONNECT","DISCONNECTED","prettyDate","date","formatDistanceToNowStrict","addSuffix","getOthersLastSeenAt","getReadStatus","lastSeenList","values","lastSeenAt","last_seen_at","getChannelTitle","LabelStringSet","name","NO_TITLE","NO_MEMBERS","AutoRefresh","repeatFunc","setLabel","interval","setInterval","clearInterval","ChatHeader","currentUser","subTitle","isActive","isMuted","onActionClick","theme","ChannelAvatar","H_2","MUTE","INFO","PRIMARY","coverUrl","ConversationPanel","stores","sdkStore","userStore","config","reconnect","dispatchers","queries","renderChatHeader","onChatHeaderActionClick","sdkError","messageListQuery","warn","useReducer","messagesReducer","messagesInitialState","messagesStore","usingReaction","userDefinedDisableUserProfile","userDefinedRenderProfile","onScrollCallback","useGetChannel","subScriber","onSendFileMessage","PlaceHolder","PlaceHolderTypes","WRONG","NO_CHANNELS","LOADING","UserProfileProvider","any","includeMetaArray","includeParentMessageText","includeThreadInfo","limit","reverse","senderUserIdsFilter","withSendbirdContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/ChannelList.js b/dist/cjs/ChannelList.js new file mode 100644 index 0000000..9e89f52 --- /dev/null +++ b/dist/cjs/ChannelList.js @@ -0,0 +1,1498 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +var PropTypes = _interopDefault(require('prop-types')); +var actionTypes = require('./actionTypes-920b541f.js'); +var index = require('./index-710314fd.js'); +var utils = require('./utils-6aedec02.js'); +var index$1 = require('./index-64dcc5d9.js'); +var LeaveChannel = require('./LeaveChannel-cb2a36b0.js'); +var isToday = _interopDefault(require('date-fns/isToday')); +var format = _interopDefault(require('date-fns/format')); +var isYesterday = _interopDefault(require('date-fns/isYesterday')); +require('./type-c7a3bee7.js'); +var utils$1 = require('./utils-a8277ca2.js'); +require('react-dom'); +var index$2 = require('./index-6ca9e95e.js'); + +var RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST'; +var CREATE_CHANNEL = 'CREATE_CHANNEL'; +var LEAVE_CHANNEL_SUCCESS = 'LEAVE_CHANNEL_SUCCESS'; +var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL'; +var SHOW_CHANNEL_SETTINGS = 'SHOW_CHANNEL_SETTINGS'; +var HIDE_CHANNEL_SETTINGS = 'HIDE_CHANNEL_SETTINGS'; +var FETCH_CHANNELS_START = 'FETCH_CHANNELS_START'; +var FETCH_CHANNELS_SUCCESS = 'FETCH_CHANNELS_SUCCESS'; +var FETCH_CHANNELS_FAILURE = 'FETCH_CHANNELS_FAILURE'; +var INIT_CHANNELS_START = 'INIT_CHANNELS_START'; +var INIT_CHANNELS_SUCCESS = 'INIT_CHANNELS_SUCCESS'; +var INIT_CHANNELS_FAILURE = 'INIT_CHANNELS_FAILURE'; +var ON_USER_JOINED = 'ON_USER_JOINED'; +var ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED'; +var ON_LAST_MESSAGE_UPDATED = 'ON_LAST_MESSAGE_UPDATED'; +var ON_USER_LEFT = 'ON_USER_LEFT'; +var ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED'; +var ON_CHANNEL_ARCHIVED = 'ON_CHANNEL_ARCHIVED'; +var ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN'; +var ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN'; +var ON_READ_RECEIPT_UPDATED = 'ON_READ_RECEIPT_UPDATED'; +var ON_DELIVERY_RECEIPT_UPDATED = 'ON_DELIVERY_RECEIPT_UPDATED'; +var CHANNEL_REPLACED_TO_TOP = 'CHANNEL_REPLACED_TO_TOP'; + +var channelListInitialState = { + // we might not need this initialized state -> should remove + initialized: false, + loading: false, + allChannels: [], + currentChannel: null, + showSettings: false +}; + +function reducer(state, action) { + switch (action.type) { + case INIT_CHANNELS_START: + return LocalizationContext._objectSpread2({}, state, { + loading: true + }); + + case RESET_CHANNEL_LIST: + return channelListInitialState; + + case INIT_CHANNELS_SUCCESS: + return LocalizationContext._objectSpread2({}, state, { + initialized: true, + loading: false, + allChannels: action.payload, + currentChannel: action.payload && action.payload.length && action.payload.length > 0 ? action.payload[0].url : null + }); + + case FETCH_CHANNELS_SUCCESS: + { + var currentChannels = state.allChannels.map(function (c) { + return c.url; + }); + var filteredChannels = action.payload.filter(function (_ref) { + var url = _ref.url; + return !currentChannels.find(function (c) { + return c === url; + }); + }); + return LocalizationContext._objectSpread2({}, state, { + allChannels: [].concat(LocalizationContext._toConsumableArray(state.allChannels), LocalizationContext._toConsumableArray(filteredChannels)) + }); + } + + case CREATE_CHANNEL: + { + return LocalizationContext._objectSpread2({}, state, { + allChannels: [action.payload].concat(LocalizationContext._toConsumableArray(state.allChannels.filter(function (channel) { + return channel.url !== action.payload.url; + }))), + currentChannel: action.payload.url + }); + } + + case ON_CHANNEL_ARCHIVED: + case LEAVE_CHANNEL_SUCCESS: + case ON_CHANNEL_DELETED: + { + var channelUrl = action.payload; + var leftCurrentChannel = state.currentChannel === channelUrl; + var newAllChannels = state.allChannels.filter(function (_ref2) { + var url = _ref2.url; + return url !== channelUrl; + }); + var currentChannel = leftCurrentChannel ? function () { + return newAllChannels.length > 0 ? newAllChannels[0].url : ''; + }() : state.currentChannel; + return LocalizationContext._objectSpread2({}, state, { + currentChannel: currentChannel, + allChannels: newAllChannels + }); + } + + case ON_USER_LEFT: + { + var _action$payload = action.payload, + channel = _action$payload.channel, + isMe = _action$payload.isMe; + var url = channel.url; + + if (isMe) { + var _leftCurrentChannel = url === state.currentChannel; + + var _newAllChannels2 = state.allChannels.filter(function (c) { + return c.url !== url; + }); + + var _currentChannel = _leftCurrentChannel ? function () { + return _newAllChannels2.length > 0 ? _newAllChannels2[0].url : ''; + }() : state.currentChannel; + + return LocalizationContext._objectSpread2({}, state, { + currentChannel: _currentChannel, + allChannels: _newAllChannels2 + }); + } // other user left + + + var _newAllChannels = state.allChannels.map(function (c) { + return c.url === url ? channel : c; + }); + + return LocalizationContext._objectSpread2({}, state, { + allChannels: _newAllChannels + }); + } + + case ON_USER_JOINED: + case ON_CHANNEL_CHANGED: + case ON_READ_RECEIPT_UPDATED: + case ON_DELIVERY_RECEIPT_UPDATED: + { + var _state$allChannels = state.allChannels, + allChannels = _state$allChannels === void 0 ? [] : _state$allChannels; + var unreadMessageCount = action.payload.unreadMessageCount; + var _channel = action.payload; + + if (!_channel.lastMessage) { + return state; + } // if its only an unread message count change, dont push to top + + + if (unreadMessageCount === 0) { + var _currentChannel2 = allChannels.find(function (_ref3) { + var url = _ref3.url; + return url === _channel.url; + }); + + var currentUnReadCount = _currentChannel2 && _currentChannel2.unreadMessageCount; + + if (currentUnReadCount === 0) { + return LocalizationContext._objectSpread2({}, state, { + allChannels: allChannels.map(function (c) { + if (c.url === _channel.url) { + return _channel; + } + + return c; + }) + }); + } + } + + return LocalizationContext._objectSpread2({}, state, { + allChannels: [action.payload].concat(LocalizationContext._toConsumableArray(state.allChannels.filter(function (_ref4) { + var url = _ref4.url; + return url !== action.payload.url; + }))) + }); + } + + case SET_CURRENT_CHANNEL: + return LocalizationContext._objectSpread2({}, state, { + currentChannel: action.payload + }); + + case SHOW_CHANNEL_SETTINGS: + return LocalizationContext._objectSpread2({}, state, { + showSettings: true + }); + + case HIDE_CHANNEL_SETTINGS: + return LocalizationContext._objectSpread2({}, state, { + showSettings: false + }); + + case ON_LAST_MESSAGE_UPDATED: + return LocalizationContext._objectSpread2({}, state, { + allChannels: state.allChannels.map(function (channel) { + if (channel.url === action.payload.url) { + return action.payload; + } + + return channel; + }) + }); + + case ON_CHANNEL_FROZEN: + return LocalizationContext._objectSpread2({}, state, { + allChannels: state.allChannels.map(function (channel) { + if (channel.url === action.payload.url) { + // eslint-disable-next-line no-param-reassign + channel.isFrozen = true; + return channel; + } + + return channel; + }) + }); + + case ON_CHANNEL_UNFROZEN: + return LocalizationContext._objectSpread2({}, state, { + allChannels: state.allChannels.map(function (channel) { + if (channel.url === action.payload.url) { + // eslint-disable-next-line no-param-reassign + channel.isFrozen = false; + return channel; + } + + return channel; + }) + }); + + case CHANNEL_REPLACED_TO_TOP: + return LocalizationContext._objectSpread2({}, state, { + allChannels: [action.payload].concat(LocalizationContext._toConsumableArray(state.allChannels.filter(function (channel) { + return channel.url !== action.payload.url; + }))) + }); + + default: + return state; + } +} + +var getChannelTitle = function getChannelTitle() { + var channel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var currentUserId = arguments.length > 1 ? arguments[1] : undefined; + var stringSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : index.LabelStringSet; + + if (!channel || !channel.name && !channel.members) { + return stringSet.NO_TITLE; + } + + if (channel.name && channel.name !== 'Group Channel') { + return channel.name; + } + + if (channel.members.length === 1) { + return stringSet.NO_MEMBERS; + } + + return channel.members.filter(function (_ref) { + var userId = _ref.userId; + return userId !== currentUserId; + }).map(function (_ref2) { + var nickname = _ref2.nickname; + return nickname || stringSet.NO_NAME; + }).join(', '); +}; +var getLastMessageCreatedAt = function getLastMessageCreatedAt(channel) { + if (!channel || !channel.lastMessage) { + return ''; + } + + var date = channel.lastMessage.createdAt; + + if (isToday(date)) { + return format(date, 'p'); + } + + if (isYesterday(date)) { + return 'Yesterday'; + } + + return format(date, 'MMM dd'); +}; +var getTotalMembers = function getTotalMembers(channel) { + return channel && channel.memberCount ? channel.memberCount : 0; +}; + +var getPrettyLastMessage = function getPrettyLastMessage() { + var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var MAXLEN = 30; + var messageType = message.messageType, + name = message.name; + + if (messageType === 'file') { + return utils$1.truncate(name, MAXLEN); + } + + return message.message; +}; + +var getLastMessage = function getLastMessage(channel) { + return channel && channel.lastMessage ? getPrettyLastMessage(channel.lastMessage) : ''; +}; +var getChannelUnreadMessageCount = function getChannelUnreadMessageCount(channel) { + return channel && channel.unreadMessageCount ? channel.unreadMessageCount : 0; +}; + +function ChannelPreview(_ref) { + var channel = _ref.channel, + isActive = _ref.isActive, + ChannelAction = _ref.ChannelAction, + theme = _ref.theme, + onClick = _ref.onClick, + tabIndex = _ref.tabIndex, + currentUser = _ref.currentUser; + var userId = currentUser.userId; + var isBroadcast = channel.isBroadcast, + isFrozen = channel.isFrozen; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React__default.createElement("div", { + role: "link", + tabIndex: tabIndex, + onClick: onClick, + onKeyPress: onClick, + className: "\n sendbird-channel-preview\n ".concat(isActive ? 'sendbird-channel-preview--active' : null, "\n ") + }, React__default.createElement("div", { + className: "sendbird-channel-preview__avatar" + }, React__default.createElement(index$1.ChannelAvatar, { + channel: channel, + userId: userId, + theme: theme + })), React__default.createElement("div", { + className: "sendbird-channel-preview__content" + }, React__default.createElement("div", { + className: "sendbird-channel-preview__content__upper" + }, React__default.createElement("div", { + className: "sendbird-channel-preview__content__upper__header" + }, isBroadcast && React__default.createElement("div", { + className: "sendbird-channel-preview__broadcast-icon" + }, React__default.createElement(index.Icon, { + type: theme === 'dark' ? index.IconTypes.BROADCAST_DARK : index.IconTypes.BROADCAST_LIGHT, + height: 12, + width: 12 + })), React__default.createElement(index.Label, { + className: "sendbird-channel-preview__content__upper__header__channel-name", + type: index.LabelTypography.SUBTITLE_2, + color: index.LabelColors.ONBACKGROUND_1 + }, getChannelTitle(channel, userId, stringSet)), React__default.createElement(index.Label, { + className: "sendbird-channel-preview__content__upper__header__total-members", + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, getTotalMembers(channel)), isFrozen && React__default.createElement("div", { + title: "Frozen", + className: "sendbird-channel-preview__frozen-icon" + }, React__default.createElement(index.Icon, { + type: theme === 'dark' ? index.IconTypes.FROZEN_DARK : index.IconTypes.FROZEN_LIGHT, + height: 12, + width: 12 + }))), React__default.createElement(index.Label, { + className: "sendbird-channel-preview__content__upper__last-message-at", + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2 + }, getLastMessageCreatedAt(channel))), React__default.createElement("div", { + className: "sendbird-channel-preview__content__lower" + }, React__default.createElement(index.Label, { + className: "sendbird-channel-preview__content__lower__last-message", + type: index.LabelTypography.BODY_2, + color: index.LabelColors.ONBACKGROUND_3 + }, getLastMessage(channel)), React__default.createElement("div", { + className: "sendbird-channel-preview__content__lower__unread-message-count" + }, getChannelUnreadMessageCount(channel) ? React__default.createElement(LeaveChannel.Badge, { + count: getChannelUnreadMessageCount(channel) + }) : null))), React__default.createElement("div", { + className: "sendbird-channel-preview__action" + }, ChannelAction)); +} +ChannelPreview.propTypes = { + isActive: PropTypes.bool, + theme: PropTypes.string, + channel: PropTypes.shape({ + members: PropTypes.arrayOf(PropTypes.shape({})), + coverUrl: PropTypes.string, + isBroadcast: PropTypes.bool, + isFrozen: PropTypes.bool + }), + ChannelAction: PropTypes.element.isRequired, + onClick: PropTypes.func, + tabIndex: PropTypes.number, + currentUser: PropTypes.shape({ + userId: PropTypes.string + }) +}; +ChannelPreview.defaultProps = { + channel: {}, + isActive: false, + theme: 'light', + onClick: function onClick() {}, + tabIndex: 0, + currentUser: {} +}; + +function ChannelHeader(_ref) { + var user = _ref.user, + iconButton = _ref.iconButton, + onEdit = _ref.onEdit, + renderHeader = _ref.renderHeader, + allowProfileEdit = _ref.allowProfileEdit; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React__default.createElement("div", { + className: "\n ".concat(allowProfileEdit && 'sendbird-channel-header--allow-edit', "\n sendbird-channel-header\n ") + }, renderHeader ? renderHeader() : React__default.createElement("div", { + className: "sendbird-channel-header__title", + role: "button", + onKeyDown: onEdit, + onClick: onEdit, + tabIndex: "0" + }, React__default.createElement("div", { + className: "sendbird-channel-header__title--left" + }, React__default.createElement(index.Avatar, { + height: "32px", + width: "32px", + src: user.profileUrl, + alt: user.nickname + })), React__default.createElement("div", { + className: "sendbird-channel-header__title--right" + }, React__default.createElement(index.Label, { + className: "sendbird-channel-header__title--name", + type: index.LabelTypography.SUBTITLE_2, + color: index.LabelColors.ONBACKGROUND_1 + }, user.nickname || stringSet.NO_NAME), React__default.createElement(index.Label, { + className: "sendbird-channel-header__title--user-id", + type: index.LabelTypography.BODY_2, + color: index.LabelColors.ONBACKGROUND_2 + }, user.userId))), React__default.createElement("div", { + className: "sendbird-channel-header__right-icon" + }, iconButton)); +} +ChannelHeader.propTypes = { + user: PropTypes.shape({ + profileUrl: PropTypes.string, + nickname: PropTypes.string, + userId: PropTypes.string + }), + renderHeader: PropTypes.func, + allowProfileEdit: PropTypes.bool, + onEdit: PropTypes.func.isRequired, + iconButton: PropTypes.oneOfType([PropTypes.element, PropTypes.instanceOf(index.IconButton)]) +}; +ChannelHeader.defaultProps = { + user: {}, + renderHeader: null, + allowProfileEdit: false, + iconButton: null +}; + +function EditUserProfile(_a) { + var user = _a.user, + onCancel = _a.onCancel, + _onSubmit = _a.onSubmit, + _b = _a.onThemeChange, + onThemeChange = _b === void 0 ? null : _b, + _c = _a.theme, + theme = _c === void 0 ? 'light' : _c, + _d = _a.changeTheme, + changeTheme = _d === void 0 ? utils.noop : _d; + var hiddenInputRef = React.useRef(null); + var inputRef = React.useRef(null); + var formRef = React.useRef(null); + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + var _e = React.useState(null), + currentImg = _e[0], + setCurrentImg = _e[1]; + + var _f = React.useState(null), + newFile = _f[0], + setNewFile = _f[1]; + + return React__default.createElement(index.Modal, { + titleText: stringSet.EDIT_PROFILE__TITLE, + submitText: stringSet.BUTTON__SAVE, + onCancel: onCancel, + onSubmit: function onSubmit() { + if (user.nickname !== '' && !inputRef.current.value) { + if (formRef.current.reportValidity) { + // might not work in explorer + formRef.current.reportValidity(); + } + + return; + } + + _onSubmit(inputRef.current.value, newFile); + + onCancel(); + }, + type: index.Type.PRIMARY + }, React__default.createElement("form", { + className: "sendbird__edit-user-profile", + ref: formRef, + onSubmit: function onSubmit(e) { + e.preventDefault(); + } + }, React__default.createElement("section", { + className: "sendbird__edit-user-profile__img" + }, React__default.createElement(index$2.InputLabel, null, stringSet.EDIT_PROFILE__IMAGE_LABEL), React__default.createElement("div", { + className: "sendbird__edit-user__avatar" + }, React__default.createElement(index.Avatar, { + height: "80px", + width: "80px", + src: currentImg || user.profileUrl + })), React__default.createElement("input", { + ref: hiddenInputRef, + type: "file", + accept: "image/gif, image/jpeg, image/png", + style: { + display: 'none' + }, + onChange: function onChange(e) { + setCurrentImg(URL.createObjectURL(e.target.files[0])); + setNewFile(e.target.files[0]); + hiddenInputRef.current.value = ''; + } + }), React__default.createElement(index.TextButton, { + className: "sendbird__edit-user__avatar-button", + onClick: function onClick() { + return hiddenInputRef.current.click(); + }, + notUnderline: true + }, React__default.createElement(index.Label, { + type: index.LabelTypography.BUTTON_1, + color: index.LabelColors.PRIMARY + }, stringSet.EDIT_PROFILE__IMAGE_UPLOAD))), React__default.createElement("section", { + className: "sendbird__edit-user__name" + }, React__default.createElement(index$2.InputLabel, null, stringSet.EDIT_PROFILE__NICKNAME_LABEL), React__default.createElement(index$2.Input, { + required: user.nickname !== '', + name: "sendbird__edit-user__name", + ref: inputRef, + value: user.nickname, + placeHolder: stringSet.EDIT_PROFILE__NICKNAME_PLACEHOLDER + })), React__default.createElement("section", { + className: "sendbird__edit-user__userid" + }, React__default.createElement(index$2.InputLabel, null, stringSet.EDIT_PROFILE__USERID_LABEL), React__default.createElement(index$2.Input, { + disabled: true, + name: "sendbird__edit-user__userid", + value: user.userId + })), React__default.createElement("section", { + className: "sendbird__edit-user__theme" + }, React__default.createElement(index$2.InputLabel, null, stringSet.EDIT_PROFILE__THEME_LABEL), React__default.createElement("div", { + className: "sendbird__edit-user__theme-icon" + }, theme === 'dark' ? React__default.createElement(index.Icon, { + onClick: function onClick() { + changeTheme('light'); + + if (onThemeChange && typeof onThemeChange === 'function') { + onThemeChange('light'); + } + }, + type: index.IconTypes.TOGGLE_ON, + width: 44, + height: 24 + }) : React__default.createElement(index.Icon, { + onClick: function onClick() { + changeTheme('dark'); + + if (onThemeChange && typeof onThemeChange === 'function') { + onThemeChange('dark'); + } + }, + type: index.IconTypes.TOGGLE_OFF, + width: 44, + height: 24 + }))))); +} + +var mapStoreToProps = function mapStoreToProps(store) { + return { + theme: store.config.theme, + changeTheme: store.config.setCurrenttheme + }; +}; + +var ConnectedEditUserProfile = LocalizationContext.withSendbirdContext(EditUserProfile, mapStoreToProps); + +function AddChannel(_ref) { + var sdk = _ref.sdk, + disabled = _ref.disabled, + channelListDispatcher = _ref.channelListDispatcher, + onBeforeCreateChannel = _ref.onBeforeCreateChannel, + userId = _ref.userId, + userFilledApplicationUserListQuery = _ref.userFilledApplicationUserListQuery, + userListQuery = _ref.userListQuery; + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + showModal = _useState2[0], + setShowModal = _useState2[1]; + + var _useState3 = React.useState(0), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + step = _useState4[0], + setStep = _useState4[1]; + + var _useState5 = React.useState('group'), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + type = _useState6[0], + setType = _useState6[1]; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + if (!sdk || !sdk.createApplicationUserListQuery) { + return null; + } + + var isBroadcastAvailable = LeaveChannel.isBroadcastChannelEnabled(sdk); + var isSupergroupAvailable = LeaveChannel.isSuperGroupChannelEnabled(sdk); + return React__default.createElement(React__default.Fragment, null, React__default.createElement(index.IconButton, { + height: "32px", + width: "32px", + onClick: function onClick() { + setShowModal(true); + }, + disabled: disabled + }, React__default.createElement(index.Icon, { + type: index.IconTypes.CREATE, + fillColor: index.IconColors.PRIMARY, + width: "24px", + height: "24px" + })), showModal && step === 0 && React__default.createElement(index.Modal, { + titleText: "New channel", + hideFooter: true, + onCancel: function onCancel() { + setShowModal(false); + }, + onSubmit: function onSubmit() {} + }, React__default.createElement("div", { + className: "sendbird-add-channel__rectangle-wrap" + }, React__default.createElement("div", { + className: "sendbird-add-channel__rectangle", + onClick: function onClick() { + setType('group'); + setStep(1); + }, + role: "button", + tabIndex: 0, + onKeyDown: function onKeyDown() { + setType('group'); + setStep(1); + } + }, React__default.createElement(index.Icon, { + type: index.IconTypes.CHAT + }), React__default.createElement(index.Label, { + type: index.LabelTypography.SUBTITLE_1, + color: index.LabelColors.ONBACKGROUND_1 + }, "Group")), isSupergroupAvailable && React__default.createElement("div", { + className: "sendbird-add-channel__rectangle", + onClick: function onClick() { + setType('supergroup'); + setStep(1); + }, + role: "button", + tabIndex: 0, + onKeyDown: function onKeyDown() { + setType('supergroup'); + setStep(1); + } + }, React__default.createElement(index.Icon, { + type: index.IconTypes.SUPER_GROUP + }), React__default.createElement(index.Label, { + type: index.LabelTypography.SUBTITLE_1, + color: index.LabelColors.ONBACKGROUND_1 + }, "Super group")), isBroadcastAvailable && React__default.createElement("div", { + className: "sendbird-add-channel__rectangle", + onClick: function onClick() { + setType('broadcast'); + setStep(1); + }, + role: "button", + tabIndex: 0, + onKeyDown: function onKeyDown() { + setType('broadcast'); + setStep(1); + } + }, React__default.createElement(index.Icon, { + type: index.IconTypes.BROADCAST + }), React__default.createElement(index.Label, { + type: index.LabelTypography.SUBTITLE_1, + color: index.LabelColors.ONBACKGROUND_1 + }, "Broadcast")))), showModal && step === 1 && React__default.createElement(LeaveChannel.InviteMembers, { + swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), + titleText: stringSet.MODAL__CREATE_CHANNEL__TITLE, + submitText: stringSet.BUTTON__CREATE, + closeModal: function closeModal() { + setStep(0); + setShowModal(false); + }, + idsToFilter: [userId], + userQueryCreator: function userQueryCreator() { + return userListQuery && typeof userListQuery === 'function' ? userListQuery() : LeaveChannel.createDefaultUserListQuery({ + sdk: sdk, + userFilledApplicationUserListQuery: userFilledApplicationUserListQuery + }); + }, + onSubmit: function onSubmit(selectedUsers) { + return LeaveChannel.createChannel(sdk, selectedUsers, onBeforeCreateChannel, userId, type).then(function (channel) { + // maybe - do this in event listener + channelListDispatcher({ + type: CREATE_CHANNEL, + payload: channel + }); + }); + } + })); +} +AddChannel.propTypes = { + sdk: PropTypes.shape({ + getErrorFirstCallback: PropTypes.func, + createApplicationUserListQuery: PropTypes.func + }).isRequired, + disabled: PropTypes.bool, + channelListDispatcher: PropTypes.func.isRequired, + userFilledApplicationUserListQuery: PropTypes.shape({}), + onBeforeCreateChannel: PropTypes.func, + userId: PropTypes.string.isRequired, + userListQuery: PropTypes.func +}; +AddChannel.defaultProps = { + disabled: false, + userFilledApplicationUserListQuery: {}, + onBeforeCreateChannel: null, + userListQuery: null +}; + +function ChannelPreviewAction(_ref) { + var disabled = _ref.disabled, + onLeaveChannel = _ref.onLeaveChannel; + var parentRef = React.useRef(null); + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + showModal = _useState2[0], + setShowModal = _useState2[1]; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React__default.createElement("div", { + role: "button", + style: { + display: 'inline-block' + }, + onKeyDown: function onKeyDown(e) { + e.stopPropagation(); + }, + tabIndex: 0, + onClick: function onClick(e) { + e.stopPropagation(); + } + }, React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.IconButton, { + ref: parentRef, + onClick: toggleDropdown, + height: "32px", + width: "32px" + }, React__default.createElement(index.Icon, { + type: index.IconTypes.MORE, + fillColor: index.IconColors.PRIMARY, + width: "24px", + height: "24px" + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + parentRef: parentRef, + parentContainRef: parentRef, + closeDropdown: closeDropdown + }, React__default.createElement(index.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + setShowModal(true); + closeDropdown(); + } + }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE)); + } + }), showModal && React__default.createElement(LeaveChannel.LeaveChannelModal, { + onCloseModal: function onCloseModal() { + return setShowModal(false); + }, + onLeaveChannel: onLeaveChannel + })); +} +ChannelPreviewAction.propTypes = { + disabled: PropTypes.bool, + onLeaveChannel: PropTypes.func.isRequired +}; +ChannelPreviewAction.defaultProps = { + disabled: false +}; + +function ChannelsPlaceholder(_ref) { + var type = _ref.type; + return React__default.createElement("div", { + className: "sendbird-channel-list" + }, React__default.createElement(index.PlaceHolder, { + type: type + })); +} +ChannelsPlaceholder.propTypes = { + type: PropTypes.string.isRequired +}; + +var createEventHandler = function createEventHandler(_ref) { + var sdk = _ref.sdk, + sdkChannelHandlerId = _ref.sdkChannelHandlerId, + channelListDispatcher = _ref.channelListDispatcher, + logger = _ref.logger; + var ChannelHandler = new sdk.ChannelHandler(); + + ChannelHandler.onChannelChanged = function (channel) { + logger.info('ChannelList: onChannelChanged', channel); + channelListDispatcher({ + type: ON_CHANNEL_CHANGED, + payload: channel + }); + }; + + ChannelHandler.onChannelDeleted = function (channelUrl) { + logger.info('ChannelList: onChannelDeleted', channelUrl); + channelListDispatcher({ + type: ON_CHANNEL_DELETED, + payload: channelUrl + }); + }; + + ChannelHandler.onUserJoined = function (channel) { + logger.info('ChannelList: onUserJoined', channel); + + if (channel.lastMessage) { + channelListDispatcher({ + type: ON_USER_JOINED, + payload: channel + }); + } + }; + + ChannelHandler.onUserBanned = function (channel, user) { + var currentUser = sdk.currentUser; + logger.info('Channel | useHandleChannelEvents: onUserBanned', channel); + + if (user.userId === currentUser.userId) { + channelListDispatcher({ + type: ON_USER_LEFT, + payload: { + channel: channel, + isMe: true + } + }); + } else { + channelListDispatcher({ + type: ON_USER_LEFT, + payload: { + channel: channel, + isMe: false + } + }); + } + }; + + ChannelHandler.onUserLeft = function (channel, leftUser) { + var currentUser = sdk.currentUser; + var isMe = currentUser.userId === leftUser.userId; + logger.info('ChannelList: onUserLeft', channel); + channelListDispatcher({ + type: ON_USER_LEFT, + payload: { + channel: channel, + isMe: isMe + } + }); + }; + + ChannelHandler.onReadStatus = function (channel) { + logger.info('ChannelList: onReadStatus', channel); + channelListDispatcher({ + type: ON_READ_RECEIPT_UPDATED, + payload: channel + }); + }; + + ChannelHandler.onDeliveryReceiptUpdated = function (channel) { + logger.info('ChannelList: onDeliveryReceiptUpdated', channel); + + if (channel.lastMessage) { + channelListDispatcher({ + type: ON_DELIVERY_RECEIPT_UPDATED, + payload: channel + }); + } + }; + + ChannelHandler.onMessageUpdated = function (channel, message) { + if (channel.lastMessage.isEqual(message)) { + logger.info('ChannelList: onMessageUpdated', channel); + channelListDispatcher({ + type: ON_LAST_MESSAGE_UPDATED, + payload: channel + }); + } + }; + + ChannelHandler.onChannelHidden = function (channel) { + logger.info('ChannelList: onChannelHidden', channel); + channelListDispatcher({ + type: ON_CHANNEL_ARCHIVED, + payload: channel.url + }); + }; + + ChannelHandler.onChannelFrozen = function (channel) { + logger.info('ChannelList: onChannelFrozen', channel); + channelListDispatcher({ + type: ON_CHANNEL_FROZEN, + payload: channel + }); + }; + + ChannelHandler.onChannelUnfrozen = function (channel) { + logger.info('ChannelList: onChannelUnfrozen', channel); + channelListDispatcher({ + type: ON_CHANNEL_UNFROZEN, + payload: channel + }); + }; + + logger.info('ChannelList: Added channelHandler'); + sdk.addChannelHandler(sdkChannelHandlerId, ChannelHandler); +}; + +var createApplicationUserListQuery = function createApplicationUserListQuery(_ref2) { + var sdk = _ref2.sdk, + _ref2$userFilledChann = _ref2.userFilledChannelListQuery, + userFilledChannelListQuery = _ref2$userFilledChann === void 0 ? {} : _ref2$userFilledChann; + var channelListQuery = sdk.GroupChannel.createMyGroupChannelListQuery(); + channelListQuery.includeEmpty = false; + channelListQuery.order = 'latest_last_message'; // 'chronological', 'latest_last_message', 'channel_name_alphabetical', and 'metadata_value_alphabetical' + + channelListQuery.limit = 20; // The value of pagination limit could be set up to 100. + + if (userFilledChannelListQuery) { + Object.keys(userFilledChannelListQuery).forEach(function (key) { + channelListQuery[key] = userFilledChannelListQuery[key]; + }); + } + + return channelListQuery; +}; +/** + * Setup event listener + * create channel source query + * addloading screen + */ + + +function setupChannelList(_ref3) { + var sdk = _ref3.sdk, + sdkChannelHandlerId = _ref3.sdkChannelHandlerId, + channelListDispatcher = _ref3.channelListDispatcher, + setChannelSource = _ref3.setChannelSource, + onChannelSelect = _ref3.onChannelSelect, + userFilledChannelListQuery = _ref3.userFilledChannelListQuery, + logger = _ref3.logger, + sortChannelList = _ref3.sortChannelList; + createEventHandler({ + sdk: sdk, + channelListDispatcher: channelListDispatcher, + sdkChannelHandlerId: sdkChannelHandlerId, + logger: logger + }); + logger.info('ChannelList - creating query', { + userFilledChannelListQuery: userFilledChannelListQuery + }); + var channelListQuery = createApplicationUserListQuery({ + sdk: sdk, + userFilledChannelListQuery: userFilledChannelListQuery + }); + logger.info('ChannelList - created query', channelListQuery); + setChannelSource(channelListQuery); + channelListDispatcher({ + type: INIT_CHANNELS_START + }); + logger.info('ChannelList - fetching channels'); + + if (channelListQuery.hasNext) { + channelListQuery.next(function (response, error) { + var swapParams = sdk.getErrorFirstCallback(); + var channelList = response; + var err = error; + + if (swapParams) { + channelList = error; + err = response; + } + + logger.info('ChannelList - fetched channels', channelList); + + if (err) { + logger.error('ChannelList - couldnt fetch channels', err); + channelListDispatcher({ + type: INIT_CHANNELS_FAILURE + }); + return; + } // select first channel + + + logger.info('ChannelList - highlight channel', channelList[0]); + var sorted = channelList; + + if (sortChannelList && typeof sortChannelList === 'function') { + sorted = sortChannelList(channelList); + logger.info('ChannelList - channel list sorted', sorted); + } + + onChannelSelect(sorted[0]); + channelListDispatcher({ + type: INIT_CHANNELS_SUCCESS, + payload: sorted + }); + + if (channelList && typeof channelList.forEach === 'function') { + logger.info('ChannelList - mark all channels as delivered'); + channelList.forEach(function (c) { + return c.markAsDelivered(); + }); + } + }); + } else { + logger.warning('ChannelList - there are no more channels'); + } +} + +var pubSubHandleRemover = function pubSubHandleRemover(subscriber) { + subscriber.forEach(function (s) { + try { + s.remove(); + } catch (_unused) {// + } + }); +}; +var pubSubHandler = function pubSubHandler(pubSub, channelListDispatcher) { + var subScriber = new Map(); + if (!pubSub) return subScriber; + subScriber.set(index.CREATE_CHANNEL, pubSub.subscribe(index.CREATE_CHANNEL, function (msg) { + var channel = msg.channel; + channelListDispatcher({ + type: 'CREATE_CHANNEL', + payload: channel + }); + })); + subScriber.set(index.UPDATE_USER_MESSAGE, pubSub.subscribe(index.UPDATE_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + var updatedChannel = channel; + updatedChannel.lastMessage = message; + + if (channel) { + channelListDispatcher({ + type: ON_LAST_MESSAGE_UPDATED, + payload: updatedChannel + }); + } + })); + subScriber.set(index.LEAVE_CHANNEL, pubSub.subscribe(index.LEAVE_CHANNEL, function (msg) { + var channel = msg.channel; + channelListDispatcher({ + type: LEAVE_CHANNEL_SUCCESS, + payload: channel.url + }); + })); + subScriber.set(index.SEND_MESSAGE_START, pubSub.subscribe(index.SEND_MESSAGE_START, function (msg) { + var channel = msg.channel; + channelListDispatcher({ + type: CHANNEL_REPLACED_TO_TOP, + payload: channel + }); + })); + return subScriber; +}; + +var noop = function noop() {}; + +function ChannelList(props) { + var _props$stores = props.stores, + _props$stores$sdkStor = _props$stores.sdkStore, + sdkStore = _props$stores$sdkStor === void 0 ? {} : _props$stores$sdkStor, + _props$stores$userSto = _props$stores.userStore, + userStore = _props$stores$userSto === void 0 ? {} : _props$stores$userSto, + _props$config = props.config, + userId = _props$config.userId, + isOnline = _props$config.isOnline, + userListQuery = _props$config.userListQuery, + logger = _props$config.logger, + pubSub = _props$config.pubSub, + theme = _props$config.theme, + userDispatcher = props.dispatchers.userDispatcher, + _props$queries = props.queries, + queries = _props$queries === void 0 ? {} : _props$queries, + renderChannelPreview = props.renderChannelPreview, + renderHeader = props.renderHeader, + renderUserProfile = props.renderUserProfile, + disableUserProfile = props.disableUserProfile, + allowProfileEdit = props.allowProfileEdit, + sortChannelList = props.sortChannelList, + onProfileEditSuccess = props.onProfileEditSuccess, + onThemeChange = props.onThemeChange, + onBeforeCreateChannel = props.onBeforeCreateChannel, + onChannelSelect = props.onChannelSelect; + var _props$config2 = props.config, + config = _props$config2 === void 0 ? {} : _props$config2; // enable if it is true atleast once(both are flase by default) + + var enableEditProfile = allowProfileEdit || config.allowProfileEdit; + var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; + var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; + var _sdkStore$sdk = sdkStore.sdk, + sdk = _sdkStore$sdk === void 0 ? {} : _sdkStore$sdk; + var userFilledChannelListQuery = queries.channelListQuery; + var userFilledApplicationUserListQuery = queries.applicationUserListQuery; + var sdkError = sdkStore.error; + + var _useState = React.useState({}), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + user = _useState2[0], + setUser = _useState2[1]; + + React.useEffect(function () { + setUser(userStore.user); + }, [userStore.user]); + var sdkIntialized = sdkStore.initialized; + + var _useReducer = React.useReducer(reducer, channelListInitialState), + _useReducer2 = LocalizationContext._slicedToArray(_useReducer, 2), + channelListStore = _useReducer2[0], + channelListDispatcher = _useReducer2[1]; + + var _useState3 = React.useState({}), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + channelSource = _useState4[0], + setChannelSource = _useState4[1]; + + var _useState5 = React.useState(null), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + sdkChannelHandlerId = _useState6[0], + setSdkChannelHandlerId = _useState6[1]; + + var _useState7 = React.useState(false), + _useState8 = LocalizationContext._slicedToArray(_useState7, 2), + showProfileEdit = _useState8[0], + setShowProfileEdit = _useState8[1]; + + var loading = channelListStore.loading, + currentChannel = channelListStore.currentChannel; + React.useEffect(function () { + var subscriber = pubSubHandler(pubSub, channelListDispatcher); + return function () { + pubSubHandleRemover(subscriber); + }; + }, [sdkIntialized]); + React.useEffect(function () { + setSdkChannelHandlerId(LocalizationContext.uuidv4); + + if (sdkIntialized) { + logger.info('ChannelList: Setup channelHandlers'); + setupChannelList({ + sdk: sdk, + sdkChannelHandlerId: sdkChannelHandlerId, + channelListDispatcher: channelListDispatcher, + setChannelSource: setChannelSource, + onChannelSelect: onChannelSelect, + userFilledChannelListQuery: userFilledChannelListQuery, + logger: logger, + sortChannelList: sortChannelList + }); + } else { + logger.info('ChannelList: Removing channelHandlers'); // remove previous channelHandlers + + if (sdk && sdk.removeChannelHandler) { + sdk.removeChannelHandler(sdkChannelHandlerId); + } // remove channelSource + + + setChannelSource({}); // cleanup + + channelListDispatcher({ + type: RESET_CHANNEL_LIST + }); + } + + return function () { + logger.info('ChannelList: Removing channelHandlers'); + + if (sdk && sdk.removeChannelHandler) { + sdk.removeChannelHandler(sdkChannelHandlerId); + } + }; + }, [sdkIntialized, userFilledChannelListQuery, sortChannelList]); + var allChannels = channelListStore.allChannels; + var sortedChannels = sortChannelList && typeof sortChannelList === 'function' ? sortChannelList(allChannels) : allChannels; + + if (sortedChannels.length !== allChannels.length) { + var warning = "ChannelList: You have removed/added extra channels on sortChannelList\n this could cause unexpected problems"; // eslint-disable-next-line no-console + + console.warn(warning, { + before: allChannels, + after: sortedChannels + }); + logger.warning(warning, { + before: allChannels, + after: sortedChannels + }); + } + + React.useEffect(function () { + if (!sdk || !sdk.GroupChannel) { + return; + } + + sdk.GroupChannel.getChannel(currentChannel, function (groupChannel) { + if (groupChannel) { + onChannelSelect(groupChannel); + } else { + onChannelSelect(null); + } + }); + }, [currentChannel]); + return React__default.createElement(index.UserProfileProvider, { + disableUserProfile: userDefinedDisableUserProfile, + renderUserProfile: userDefinedRenderProfile, + className: "sendbird-channel-list" + }, React__default.createElement("div", { + className: "sendbird-channel-list__header" + }, React__default.createElement(ChannelHeader, { + renderHeader: renderHeader, + user: user, + onEdit: function onEdit() { + if (enableEditProfile) { + setShowProfileEdit(true); + } + }, + allowProfileEdit: enableEditProfile, + iconButton: React__default.createElement(AddChannel, { + disabled: !isOnline, + userListQuery: userListQuery, + sdk: sdk, + channelListDispatcher: channelListDispatcher, + userId: userId, + userFilledApplicationUserListQuery: userFilledApplicationUserListQuery, + onBeforeCreateChannel: onBeforeCreateChannel + }) + })), showProfileEdit && React__default.createElement(ConnectedEditUserProfile, { + onThemeChange: onThemeChange, + user: user, + onCancel: function onCancel() { + setShowProfileEdit(false); + }, + onSubmit: function onSubmit(newName, newFile) { + sdk.updateCurrentUserInfoWithProfileImage(newName, newFile, function (updatedUser) { + userDispatcher({ + type: actionTypes.UPDATE_USER_INFO, + payload: updatedUser + }); + + if (onProfileEditSuccess && typeof onProfileEditSuccess === 'function') { + onProfileEditSuccess(updatedUser); + } + }); + } + }), React__default.createElement("div", { + className: "sendbird-channel-list__body", + onScroll: function onScroll(e) { + var fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight; + + if (fetchMore && channelSource.hasNext) { + logger.info('ChannelList: Fetching more channels'); + channelListDispatcher({ + type: FETCH_CHANNELS_START + }); + channelSource.next(function (response, error) { + var swapParams = sdk.getErrorFirstCallback(); + var channelList = response; + var err = error; + + if (swapParams) { + channelList = error; + err = response; + } + + if (err) { + logger.info('ChannelList: Fetching channels failed', err); + channelListDispatcher({ + type: FETCH_CHANNELS_FAILURE, + payload: channelList + }); + return; + } + + logger.info('ChannelList: Fetching channels successful', channelList); + channelListDispatcher({ + type: FETCH_CHANNELS_SUCCESS, + payload: channelList + }); + + if (channelList && typeof channelList.forEach === 'function') { + logger.info('ChannelList: Marking all channels as read'); + channelList.forEach(function (c) { + return c.markAsDelivered(); + }); + } + }); + } + } + }, sdkError && React__default.createElement(ChannelsPlaceholder, { + type: index.PlaceHolderTypes.WRONG + }), React__default.createElement("div", null, sortedChannels && sortedChannels.map(function (channel, idx) { + var _onLeaveChannel = function onLeaveChannel(c, cb) { + logger.info('ChannelList: Leaving channel', c); + c.leave().then(function (res) { + logger.info('ChannelList: Leaving channel success', res); + + if (cb && typeof cb === 'function') { + cb(res, null); + } + + channelListDispatcher({ + type: LEAVE_CHANNEL_SUCCESS, + payload: channel.url + }); + }).catch(function (err) { + logger.error('ChannelList: Leaving channel failed', err); + + if (cb && typeof cb === 'function') { + cb(null, err); + } + }); + }; + + var onClick = function onClick() { + if (!isOnline) { + return; + } + + logger.info('ChannelList: Clicked on channel:', channel); + channelListDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: channel.url + }); + }; + + return renderChannelPreview ? // eslint-disable-next-line + React__default.createElement("div", { + key: channel.url, + onClick: onClick + }, renderChannelPreview({ + channel: channel, + onLeaveChannel: _onLeaveChannel + })) : React__default.createElement(ChannelPreview, { + key: channel.url, + tabIndex: idx, + onClick: onClick, + channel: channel, + currentUser: user, + theme: theme, + isActive: channel.url === currentChannel // todo - potential performance hit refactor + , + ChannelAction: React__default.createElement(ChannelPreviewAction, { + disabled: !isOnline, + onLeaveChannel: function onLeaveChannel() { + return _onLeaveChannel(channel); + } + }) + }); + })), (!sdkIntialized || loading) && React__default.createElement(ChannelsPlaceholder, { + type: index.PlaceHolderTypes.LOADING + }), // placeholder + (!allChannels || allChannels.length === 0) && React__default.createElement(ChannelsPlaceholder, { + type: index.PlaceHolderTypes.NO_CHANNELS + }))); +} + +ChannelList.propTypes = { + stores: PropTypes.shape({ + sdkStore: PropTypes.shape({ + initialized: PropTypes.bool + }), + userStore: PropTypes.shape({ + user: PropTypes.shape({}) + }) + }).isRequired, + dispatchers: PropTypes.shape({ + userDispatcher: PropTypes.func + }).isRequired, + config: PropTypes.shape({ + userId: PropTypes.string.isRequired, + userListQuery: PropTypes.func, + theme: PropTypes.string, + isOnline: PropTypes.bool, + logger: PropTypes.shape({ + info: PropTypes.func, + error: PropTypes.func, + warning: PropTypes.func + }), + pubSub: PropTypes.shape({ + subscribe: PropTypes.func, + publish: PropTypes.func + }) + }).isRequired, + queries: PropTypes.shape({ + channelListQuery: PropTypes.shape({ + channelNameContainsFilter: PropTypes.string, + channelUrlsFilter: PropTypes.arrayOf(PropTypes.string), + customTypesFilter: PropTypes.arrayOf(PropTypes.string), + customTypeStartsWithFilter: PropTypes.string, + hiddenChannelFilter: PropTypes.string, + includeEmpty: PropTypes.bool, + limit: PropTypes.number, + memberStateFilter: PropTypes.string, + metadataOrderKeyFilter: PropTypes.string, + nicknameContainsFilter: PropTypes.string, + order: PropTypes.string, + publicChannelFilter: PropTypes.string, + superChannelFilter: PropTypes.string, + unreadChannelFilter: PropTypes.string, + userIdsExactFilter: PropTypes.arrayOf(PropTypes.string), + userIdsIncludeFilter: PropTypes.arrayOf(PropTypes.string), + userIdsIncludeFilterQueryType: PropTypes.string + }), + applicationUserListQuery: PropTypes.shape({ + limit: PropTypes.number, + userIdsFilter: PropTypes.arrayOf(PropTypes.string), + metaDataKeyFilter: PropTypes.string, + metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string) + }) + }), + onBeforeCreateChannel: PropTypes.func, + renderChannelPreview: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + allowProfileEdit: PropTypes.bool, + sortChannelList: PropTypes.func, + onThemeChange: PropTypes.func, + onProfileEditSuccess: PropTypes.func, + renderHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + onChannelSelect: PropTypes.func +}; +ChannelList.defaultProps = { + onBeforeCreateChannel: null, + renderChannelPreview: null, + renderHeader: null, + disableUserProfile: false, + renderUserProfile: null, + allowProfileEdit: false, + onThemeChange: null, + sortChannelList: null, + onProfileEditSuccess: null, + queries: {}, + onChannelSelect: noop +}; +var ChannelList$1 = LocalizationContext.withSendbirdContext(ChannelList); + +module.exports = ChannelList$1; +//# sourceMappingURL=ChannelList.js.map diff --git a/dist/cjs/ChannelList.js.map b/dist/cjs/ChannelList.js.map new file mode 100644 index 0000000..3d68197 --- /dev/null +++ b/dist/cjs/ChannelList.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ChannelList.js","sources":["../../../src/smart-components/ChannelList/dux/actionTypes.js","../../../src/smart-components/ChannelList/dux/initialState.js","../../../src/smart-components/ChannelList/dux/reducers.js","../../../src/ui/ChannelPreview/utils.js","../../../src/ui/ChannelPreview/index.jsx","../../../src/ui/ChannelHeader/index.jsx","../../../src/ui/EditUserProfile/index.tsx","../../../src/smart-components/ChannelList/components/AddChannel.jsx","../../../src/smart-components/ChannelList/components/ChannelPreviewAction.jsx","../../../src/smart-components/ChannelList/components/Placeholder.jsx","../../../src/smart-components/ChannelList/utils.js","../../../src/smart-components/ChannelList/index.jsx"],"sourcesContent":["export const RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\nexport const UNLOAD_CHANNELS = 'UNLOAD_CHANNELS';\nexport const SET_CHANNEL_LOADING = 'SET_CHANNEL_LOADING';\nexport const LEAVE_CHANNEL_SUCCESS = 'LEAVE_CHANNEL_SUCCESS';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\n\nexport const SHOW_CHANNEL_SETTINGS = 'SHOW_CHANNEL_SETTINGS';\nexport const HIDE_CHANNEL_SETTINGS = 'HIDE_CHANNEL_SETTINGS';\n\nexport const FETCH_CHANNELS_START = 'FETCH_CHANNELS_START';\nexport const FETCH_CHANNELS_SUCCESS = 'FETCH_CHANNELS_SUCCESS';\nexport const FETCH_CHANNELS_FAILURE = 'FETCH_CHANNELS_FAILURE';\n\nexport const INIT_CHANNELS_START = 'INIT_CHANNELS_START';\nexport const INIT_CHANNELS_SUCCESS = 'INIT_CHANNELS_SUCCESS';\nexport const INIT_CHANNELS_FAILURE = 'INIT_CHANNELS_FAILURE';\n\nexport const INVITE_MEMBERS_SUCESS = 'INVITE_MEMBERS_SUCESS';\n\nexport const ON_USER_JOINED = 'ON_USER_JOINED';\nexport const ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED';\nexport const ON_LAST_MESSAGE_UPDATED = 'ON_LAST_MESSAGE_UPDATED';\nexport const ON_USER_LEFT = 'ON_USER_LEFT';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_CHANNEL_ARCHIVED = 'ON_CHANNEL_ARCHIVED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\n\nexport const ON_READ_RECEIPT_UPDATED = 'ON_READ_RECEIPT_UPDATED';\nexport const ON_DELIVERY_RECEIPT_UPDATED = 'ON_DELIVERY_RECEIPT_UPDATED';\n\nexport const CHANNEL_REPLACED_TO_TOP = 'CHANNEL_REPLACED_TO_TOP';\n","export default {\n // we might not need this initialized state -> should remove\n initialized: false,\n loading: false,\n allChannels: [],\n currentChannel: null,\n showSettings: false,\n};\n","import * as actions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actions.INIT_CHANNELS_START:\n return {\n ...state,\n loading: true,\n };\n case actions.RESET_CHANNEL_LIST:\n return initialState;\n case actions.INIT_CHANNELS_SUCCESS:\n return {\n ...state,\n initialized: true,\n loading: false,\n allChannels: action.payload,\n currentChannel: (action.payload && action.payload.length && action.payload.length > 0)\n ? action.payload[0].url\n : null,\n };\n case actions.FETCH_CHANNELS_SUCCESS: {\n const currentChannels = state.allChannels.map((c) => c.url);\n const filteredChannels = action.payload.filter(\n ({ url }) => !(currentChannels.find((c) => c === url)),\n );\n return {\n ...state,\n allChannels: [\n ...state.allChannels,\n ...filteredChannels,\n ],\n };\n }\n case actions.CREATE_CHANNEL: {\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter(\n (channel) => channel.url !== action.payload.url,\n )],\n currentChannel: action.payload.url,\n };\n }\n case actions.ON_CHANNEL_ARCHIVED:\n case actions.LEAVE_CHANNEL_SUCCESS:\n case actions.ON_CHANNEL_DELETED: {\n const channelUrl = action.payload;\n const leftCurrentChannel = (state.currentChannel === channelUrl);\n const newAllChannels = state.allChannels.filter(({ url }) => url !== channelUrl);\n const currentChannel = leftCurrentChannel\n ? (() => (\n (newAllChannels.length > 0)\n ? newAllChannels[0].url\n : ''\n ))()\n : state.currentChannel;\n\n return {\n ...state,\n currentChannel,\n allChannels: newAllChannels,\n };\n }\n case actions.ON_USER_LEFT: {\n const { channel, isMe } = action.payload;\n const { url } = channel;\n if (isMe) {\n const leftCurrentChannel = (url === state.currentChannel);\n const newAllChannels = state.allChannels.filter((c) => (c.url !== url));\n const currentChannel = leftCurrentChannel\n ? (() => (\n (newAllChannels.length > 0)\n ? newAllChannels[0].url\n : ''\n ))()\n : state.currentChannel;\n\n return {\n ...state,\n currentChannel,\n allChannels: newAllChannels,\n };\n }\n // other user left\n const newAllChannels = state.allChannels.map((c) => ((c.url === url) ? channel : c));\n return {\n ...state,\n allChannels: newAllChannels,\n };\n }\n case actions.ON_USER_JOINED:\n case actions.ON_CHANNEL_CHANGED:\n case actions.ON_READ_RECEIPT_UPDATED:\n case actions.ON_DELIVERY_RECEIPT_UPDATED: {\n const { allChannels = [] } = state;\n const { unreadMessageCount } = action.payload;\n const channel = action.payload;\n if (!channel.lastMessage) {\n return state;\n }\n // if its only an unread message count change, dont push to top\n if (unreadMessageCount === 0) {\n const currentChannel = allChannels.find(({ url }) => url === channel.url);\n const currentUnReadCount = currentChannel && currentChannel.unreadMessageCount;\n if (currentUnReadCount === 0) {\n return {\n ...state,\n allChannels: allChannels.map((c) => {\n if (c.url === channel.url) {\n return channel;\n }\n return c;\n }),\n };\n }\n }\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter(({ url }) => url !== action.payload.url),\n ],\n };\n }\n case actions.SET_CURRENT_CHANNEL:\n return {\n ...state,\n currentChannel: action.payload,\n };\n case actions.SHOW_CHANNEL_SETTINGS:\n return {\n ...state,\n showSettings: true,\n };\n case actions.HIDE_CHANNEL_SETTINGS:\n return {\n ...state,\n showSettings: false,\n };\n case actions.ON_LAST_MESSAGE_UPDATED:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n return action.payload;\n }\n return channel;\n }),\n };\n case actions.ON_CHANNEL_FROZEN:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n // eslint-disable-next-line no-param-reassign\n channel.isFrozen = true;\n return channel;\n }\n return channel;\n }),\n };\n case actions.ON_CHANNEL_UNFROZEN:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n // eslint-disable-next-line no-param-reassign\n channel.isFrozen = false;\n return channel;\n }\n return channel;\n }),\n };\n case actions.CHANNEL_REPLACED_TO_TOP:\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter((channel) => channel.url !== action.payload.url),\n ],\n };\n default:\n return state;\n }\n}\n","import isToday from 'date-fns/isToday';\nimport format from 'date-fns/format';\nimport isYesterday from 'date-fns/isYesterday';\n\nimport { truncate } from '../FileMessage/utils';\nimport { LabelStringSet } from '../Label';\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n\nexport const getLastMessageCreatedAt = (channel) => {\n if (!channel || !channel.lastMessage) {\n return '';\n }\n const date = channel.lastMessage.createdAt;\n if (isToday(date)) {\n return format(date, 'p');\n }\n\n if (isYesterday(date)) {\n return 'Yesterday';\n }\n\n return format(date, 'MMM dd');\n};\n\nexport const getTotalMembers = (channel) => (\n channel && channel.memberCount\n ? channel.memberCount\n : 0\n);\n\nconst getPrettyLastMessage = (message = {}) => {\n const MAXLEN = 30;\n const { messageType, name } = message;\n if (messageType === 'file') {\n return truncate(name, MAXLEN);\n }\n return message.message;\n};\n\nexport const getLastMessage = (channel) => (\n channel && channel.lastMessage\n ? getPrettyLastMessage(channel.lastMessage)\n : ''\n);\n\nexport const getChannelUnreadMessageCount = (channel) => (\n (channel && channel.unreadMessageCount)\n ? channel.unreadMessageCount\n : 0\n);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ChannelAvatar from '../ChannelAvatar/index';\nimport Badge from '../Badge';\nimport Icon, { IconTypes } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport * as utils from './utils';\n\nexport default function ChannelPreview({\n channel,\n isActive,\n ChannelAction,\n theme,\n onClick,\n tabIndex,\n currentUser,\n}) {\n const {\n userId,\n } = currentUser;\n const { isBroadcast, isFrozen } = channel;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n
\n \n
\n
\n {\n isBroadcast\n && (\n
\n \n
\n )\n }\n \n {utils.getChannelTitle(channel, userId, stringSet)}\n \n \n {utils.getTotalMembers(channel)}\n \n {\n isFrozen\n && (\n
\n \n
\n )\n }\n
\n \n {utils.getLastMessageCreatedAt(channel)}\n \n
\n\n
\n \n {utils.getLastMessage(channel)}\n \n
\n {\n utils.getChannelUnreadMessageCount(channel)\n ? \n : null\n }\n
\n
\n \n \n {ChannelAction}\n \n \n );\n}\n\nChannelPreview.propTypes = {\n isActive: PropTypes.bool,\n theme: PropTypes.string,\n channel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n isBroadcast: PropTypes.bool,\n isFrozen: PropTypes.bool,\n }),\n ChannelAction: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n tabIndex: PropTypes.number,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n};\n\nChannelPreview.defaultProps = {\n channel: {},\n isActive: false,\n theme: 'light',\n onClick: () => { },\n tabIndex: 0,\n currentUser: {},\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport IconButton from '../IconButton';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\n\nexport default function ChannelHeader({\n user,\n iconButton,\n onEdit,\n renderHeader,\n allowProfileEdit,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n renderHeader\n ? renderHeader()\n : (\n \n
\n \n
\n
\n \n {user.nickname || stringSet.NO_NAME}\n \n \n {user.userId}\n \n
\n \n )\n }\n
\n {iconButton}\n
\n \n );\n}\n\nChannelHeader.propTypes = {\n user: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n userId: PropTypes.string,\n }),\n renderHeader: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n onEdit: PropTypes.func.isRequired,\n iconButton: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.instanceOf(IconButton),\n ]),\n};\n\nChannelHeader.defaultProps = {\n user: {},\n renderHeader: null,\n allowProfileEdit: false,\n iconButton: null,\n};\n","import React, {\n ReactElement,\n useRef,\n useState,\n useContext,\n} from 'react';\nimport './index.scss';\n\nimport Modal from '../Modal';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Input, { InputLabel } from '../Input';\nimport Avatar from '../Avatar';\nimport Icon, { IconTypes } from '../Icon';\nimport { Type as ButtonType } from '../Button/type';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport TextButton from '../TextButton';\nimport { SendbirdTypes } from '../../types';\nimport { noop } from '../../utils/utils';\n\ninterface Props {\n user: SendbirdTypes['User'];\n onCancel(): void;\n onSubmit(newFile: File, newNickname: string): void;\n onThemeChange?(theme: string): void;\n theme?: string;\n changeTheme?(theme: string): void;\n}\n\nexport function EditUserProfile({\n user,\n onCancel,\n onSubmit,\n onThemeChange = null,\n theme = 'light',\n changeTheme = noop,\n}: Props): ReactElement {\n const hiddenInputRef = useRef(null);\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n\n return (\n {\n if (user.nickname !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(inputRef.current.value, newFile);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.EDIT_PROFILE__IMAGE_LABEL}\n \n
\n \n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.EDIT_PROFILE__NICKNAME_LABEL}\n \n \n
\n
\n \n {/* userID */}\n {stringSet.EDIT_PROFILE__USERID_LABEL}\n \n \n
\n
\n \n {stringSet.EDIT_PROFILE__THEME_LABEL}\n \n
\n {\n theme === 'dark'\n ? (\n {\n changeTheme('light');\n if (onThemeChange && typeof onThemeChange === 'function') {\n onThemeChange('light');\n }\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n {\n changeTheme('dark');\n if (onThemeChange && typeof onThemeChange === 'function') {\n onThemeChange('dark');\n }\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nconst mapStoreToProps = (store) => {\n return {\n theme: store.config.theme,\n changeTheme: store.config.setCurrenttheme,\n };\n};\n\ninterface ConnectedEditUserProfileProps {\n user: SendbirdTypes['User'];\n onCancel(): void;\n onSubmit(newFile: File, newNickname: string): void;\n onThemeChange?(theme: string): void;\n}\n\nconst ConnectedEditUserProfile: (\n props: ConnectedEditUserProfileProps\n) => React.Component = withSendbirdContext(EditUserProfile, mapStoreToProps);\n\nexport default ConnectedEditUserProfile;\n","import './add-channel.scss';\n\nimport React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport IconButton from '../../../ui/IconButton';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport InviteMembers from '../../InviteMembers';\n\nimport {\n createChannel,\n createDefaultUserListQuery,\n isBroadcastChannelEnabled,\n isSuperGroupChannelEnabled,\n} from './utils';\nimport { CREATE_CHANNEL } from '../dux/actionTypes';\nimport Modal from '../../../ui/Modal';\n\nexport default function AddChannel({\n sdk,\n disabled,\n channelListDispatcher,\n onBeforeCreateChannel,\n userId,\n userFilledApplicationUserListQuery,\n userListQuery,\n}) {\n const [showModal, setShowModal] = useState(false);\n const [step, setStep] = useState(0);\n const [type, setType] = useState('group');\n const { stringSet } = useContext(LocalizationContext);\n\n if (!sdk || !sdk.createApplicationUserListQuery) {\n return null;\n }\n\n const isBroadcastAvailable = isBroadcastChannelEnabled(sdk);\n const isSupergroupAvailable = isSuperGroupChannelEnabled(sdk);\n\n return (\n <>\n {\n setShowModal(true);\n }}\n disabled={disabled}\n >\n \n \n {\n showModal && step === 0 && (\n { setShowModal(false); }}\n onSubmit={() => {}}\n >\n
\n {\n setType('group');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('group');\n setStep(1);\n }}\n >\n \n \n
\n {\n isSupergroupAvailable && (\n {\n setType('supergroup');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('supergroup');\n setStep(1);\n }}\n >\n \n \n \n )\n }\n {\n isBroadcastAvailable && (\n {\n setType('broadcast');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('broadcast');\n setStep(1);\n }}\n >\n \n \n \n )\n }\n \n \n )\n }\n {\n showModal && step === 1 && (\n {\n setStep(0);\n setShowModal(false);\n }}\n idsToFilter={[userId]}\n userQueryCreator={() => ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )}\n onSubmit={(selectedUsers) => createChannel(\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type,\n ).then((channel) => {\n // maybe - do this in event listener\n channelListDispatcher({\n type: CREATE_CHANNEL,\n payload: channel,\n });\n })}\n />\n )\n }\n \n );\n}\n\nAddChannel.propTypes = {\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n createApplicationUserListQuery: PropTypes.func,\n }).isRequired,\n disabled: PropTypes.bool,\n channelListDispatcher: PropTypes.func.isRequired,\n userFilledApplicationUserListQuery: PropTypes.shape({}),\n onBeforeCreateChannel: PropTypes.func,\n userId: PropTypes.string.isRequired,\n userListQuery: PropTypes.func,\n};\n\nAddChannel.defaultProps = {\n disabled: false,\n userFilledApplicationUserListQuery: {},\n onBeforeCreateChannel: null,\n userListQuery: null,\n};\n","import React, {\n useState,\n useRef,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../ui/ContextMenu';\nimport IconButton from '../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport LeaveChannelModal from '../../ChannelSettings/components/LeaveChannel';\n\nexport default function ChannelPreviewAction({ disabled, onLeaveChannel }) {\n const parentRef = useRef(null);\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n { e.stopPropagation(); }}\n tabIndex={0}\n onClick={(e) => { e.stopPropagation(); }}\n >\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if (disabled) { return; }\n setShowModal(true);\n closeDropdown();\n }}\n >\n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n \n \n )}\n />\n {\n showModal && (\n setShowModal(false)}\n onLeaveChannel={onLeaveChannel}\n />\n )\n }\n \n );\n}\n\nChannelPreviewAction.propTypes = {\n disabled: PropTypes.bool,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nChannelPreviewAction.defaultProps = {\n disabled: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Placeholder from '../../../ui/PlaceHolder';\n\nexport default function ChannelsPlaceholder({\n type,\n}) {\n return (\n
\n \n
\n );\n}\n\nChannelsPlaceholder.propTypes = {\n type: PropTypes.string.isRequired,\n};\n","import * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nconst createEventHandler = ({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n logger,\n}) => {\n const ChannelHandler = new sdk.ChannelHandler();\n\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('ChannelList: onChannelChanged', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onChannelDeleted = (channelUrl) => {\n logger.info('ChannelList: onChannelDeleted', channelUrl);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_DELETED,\n payload: channelUrl,\n });\n };\n ChannelHandler.onUserJoined = (channel) => {\n logger.info('ChannelList: onUserJoined', channel);\n if (channel.lastMessage) {\n channelListDispatcher({\n type: channelActions.ON_USER_JOINED,\n payload: channel,\n });\n }\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const { currentUser } = sdk;\n logger.info('Channel | useHandleChannelEvents: onUserBanned', channel);\n if (user.userId === currentUser.userId) {\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe: true,\n },\n });\n } else {\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe: false,\n },\n });\n }\n };\n ChannelHandler.onUserLeft = (channel, leftUser) => {\n const { currentUser } = sdk;\n const isMe = (currentUser.userId === leftUser.userId);\n logger.info('ChannelList: onUserLeft', channel);\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe,\n },\n });\n };\n\n ChannelHandler.onReadStatus = (channel) => {\n logger.info('ChannelList: onReadStatus', channel);\n channelListDispatcher({\n type: channelActions.ON_READ_RECEIPT_UPDATED,\n payload: channel,\n });\n };\n\n ChannelHandler.onDeliveryReceiptUpdated = (channel) => {\n logger.info('ChannelList: onDeliveryReceiptUpdated', channel);\n if (channel.lastMessage) {\n channelListDispatcher({\n type: channelActions.ON_DELIVERY_RECEIPT_UPDATED,\n payload: channel,\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n if (channel.lastMessage.isEqual(message)) {\n logger.info('ChannelList: onMessageUpdated', channel);\n channelListDispatcher({\n type: channelActions.ON_LAST_MESSAGE_UPDATED,\n payload: channel,\n });\n }\n };\n\n ChannelHandler.onChannelHidden = (channel) => {\n logger.info('ChannelList: onChannelHidden', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_ARCHIVED,\n payload: channel.url,\n });\n };\n\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('ChannelList: onChannelFrozen', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('ChannelList: onChannelUnfrozen', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n\n logger.info('ChannelList: Added channelHandler');\n sdk.addChannelHandler(sdkChannelHandlerId, ChannelHandler);\n};\n\nconst createApplicationUserListQuery = ({ sdk, userFilledChannelListQuery = {} }) => {\n const channelListQuery = sdk.GroupChannel.createMyGroupChannelListQuery();\n channelListQuery.includeEmpty = false;\n channelListQuery.order = 'latest_last_message'; // 'chronological', 'latest_last_message', 'channel_name_alphabetical', and 'metadata_value_alphabetical'\n channelListQuery.limit = 20; // The value of pagination limit could be set up to 100.\n\n if (userFilledChannelListQuery) {\n Object.keys(userFilledChannelListQuery).forEach((key) => {\n channelListQuery[key] = userFilledChannelListQuery[key];\n });\n }\n\n return channelListQuery;\n};\n\n/**\n * Setup event listener\n * create channel source query\n * addloading screen\n */\nfunction setupChannelList({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n setChannelSource,\n onChannelSelect,\n userFilledChannelListQuery,\n logger,\n sortChannelList,\n}) {\n createEventHandler({\n sdk,\n channelListDispatcher,\n sdkChannelHandlerId,\n logger,\n });\n\n logger.info('ChannelList - creating query', { userFilledChannelListQuery });\n const channelListQuery = createApplicationUserListQuery({ sdk, userFilledChannelListQuery });\n logger.info('ChannelList - created query', channelListQuery);\n\n setChannelSource(channelListQuery);\n\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_START,\n });\n\n logger.info('ChannelList - fetching channels');\n if (channelListQuery.hasNext) {\n channelListQuery.next((response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let channelList = response;\n let err = error;\n if (swapParams) {\n channelList = error;\n err = response;\n }\n logger.info('ChannelList - fetched channels', channelList);\n if (err) {\n logger.error('ChannelList - couldnt fetch channels', err);\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_FAILURE,\n });\n return;\n }\n // select first channel\n logger.info('ChannelList - highlight channel', channelList[0]);\n let sorted = channelList;\n if (sortChannelList && typeof sortChannelList === 'function') {\n sorted = sortChannelList(channelList);\n logger.info('ChannelList - channel list sorted', sorted);\n }\n onChannelSelect(sorted[0]);\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_SUCCESS,\n payload: sorted,\n });\n if (channelList && typeof channelList.forEach === 'function') {\n logger.info('ChannelList - mark all channels as delivered');\n channelList.forEach((c) => c.markAsDelivered());\n }\n });\n } else {\n logger.warning('ChannelList - there are no more channels');\n }\n}\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (pubSub, channelListDispatcher) => {\n const subScriber = new Map();\n if (!pubSub) return subScriber;\n subScriber.set(topics.CREATE_CHANNEL, pubSub.subscribe(topics.CREATE_CHANNEL, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: 'CREATE_CHANNEL',\n payload: channel,\n });\n }));\n\n subScriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n const updatedChannel = channel;\n updatedChannel.lastMessage = message;\n if (channel) {\n channelListDispatcher({\n type: channelActions.ON_LAST_MESSAGE_UPDATED,\n payload: updatedChannel,\n });\n }\n }));\n\n subScriber.set(topics.LEAVE_CHANNEL, pubSub.subscribe(topics.LEAVE_CHANNEL, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: channelActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel.url,\n });\n }));\n\n subScriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: channelActions.CHANNEL_REPLACED_TO_TOP,\n payload: channel,\n });\n }));\n\n return subScriber;\n};\n\nexport default setupChannelList;\n","import React, { useEffect, useState, useReducer } from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as userActions from '../../lib/dux/user/actionTypes';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport * as channelListActions from './dux/actionTypes';\nimport channelListInitialState from './dux/initialState';\nimport channelListReducers from './dux/reducers';\n\nimport ChannelPreview from '../../ui/ChannelPreview';\nimport ChannelHeader from '../../ui/ChannelHeader';\nimport EditUserProfile from '../../ui/EditUserProfile';\nimport PlaceholderTypes from '../../ui/PlaceHolder/type';\n\nimport AddChannel from './components/AddChannel';\nimport ChannelPreviewAction from './components/ChannelPreviewAction';\nimport PlaceHolder from './components/Placeholder';\n\nimport setupChannelList, {\n pubSubHandler,\n pubSubHandleRemover,\n} from './utils';\nimport { uuidv4 } from '../../utils/uuid';\n\nimport './index.scss';\n\nconst noop = () => { };\n\nfunction ChannelList(props) {\n const {\n stores: { sdkStore = {}, userStore = {} },\n config: {\n userId,\n isOnline,\n userListQuery,\n logger,\n pubSub,\n theme,\n },\n dispatchers: {\n userDispatcher,\n },\n queries = {},\n renderChannelPreview,\n renderHeader,\n renderUserProfile,\n disableUserProfile,\n allowProfileEdit,\n sortChannelList,\n onProfileEditSuccess,\n onThemeChange,\n onBeforeCreateChannel,\n onChannelSelect,\n } = props;\n const { config = {} } = props;\n // enable if it is true atleast once(both are flase by default)\n const enableEditProfile = allowProfileEdit || config.allowProfileEdit;\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n const { sdk = {} } = sdkStore;\n const userFilledChannelListQuery = queries.channelListQuery;\n const userFilledApplicationUserListQuery = queries.applicationUserListQuery;\n\n const sdkError = sdkStore.error;\n\n const [user, setUser] = useState({});\n\n useEffect(() => {\n setUser(userStore.user);\n }, [userStore.user]);\n\n\n const sdkIntialized = sdkStore.initialized;\n const [channelListStore, channelListDispatcher] = useReducer(\n channelListReducers,\n channelListInitialState,\n );\n const [channelSource, setChannelSource] = useState({});\n const [sdkChannelHandlerId, setSdkChannelHandlerId] = useState(null);\n const [showProfileEdit, setShowProfileEdit] = useState(false);\n\n const { loading, currentChannel } = channelListStore;\n\n useEffect(() => {\n const subscriber = pubSubHandler(pubSub, channelListDispatcher);\n return () => {\n pubSubHandleRemover(subscriber);\n };\n }, [sdkIntialized]);\n\n useEffect(() => {\n setSdkChannelHandlerId(uuidv4);\n if (sdkIntialized) {\n logger.info('ChannelList: Setup channelHandlers');\n setupChannelList({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n setChannelSource,\n onChannelSelect,\n userFilledChannelListQuery,\n logger,\n sortChannelList,\n });\n } else {\n logger.info('ChannelList: Removing channelHandlers');\n // remove previous channelHandlers\n if (sdk && sdk.removeChannelHandler) {\n sdk.removeChannelHandler(sdkChannelHandlerId);\n }\n // remove channelSource\n setChannelSource({});\n // cleanup\n channelListDispatcher({\n type: channelListActions.RESET_CHANNEL_LIST,\n });\n }\n return () => {\n logger.info('ChannelList: Removing channelHandlers');\n if (sdk && sdk.removeChannelHandler) {\n sdk.removeChannelHandler(sdkChannelHandlerId);\n }\n };\n }, [sdkIntialized, userFilledChannelListQuery, sortChannelList]);\n\n const { allChannels } = channelListStore;\n const sortedChannels = (sortChannelList && typeof sortChannelList === 'function')\n ? sortChannelList(allChannels)\n : allChannels;\n\n if (sortedChannels.length !== allChannels.length) {\n const warning = `ChannelList: You have removed/added extra channels on sortChannelList\n this could cause unexpected problems`;\n // eslint-disable-next-line no-console\n console.warn(warning, { before: allChannels, after: sortedChannels });\n logger.warning(warning, { before: allChannels, after: sortedChannels });\n }\n\n useEffect(() => {\n if (!sdk || !sdk.GroupChannel) { return; }\n sdk.GroupChannel.getChannel(currentChannel, (groupChannel) => {\n if (groupChannel) {\n onChannelSelect(groupChannel);\n } else {\n onChannelSelect(null);\n }\n });\n }, [currentChannel]);\n\n return (\n \n
\n {\n if (enableEditProfile) {\n setShowProfileEdit(true);\n }\n }}\n allowProfileEdit={enableEditProfile}\n iconButton={(\n \n )}\n />\n
\n {\n showProfileEdit && (\n { setShowProfileEdit(false); }}\n onSubmit={(newName, newFile) => {\n sdk.updateCurrentUserInfoWithProfileImage(newName, newFile, (updatedUser) => {\n userDispatcher({ type: userActions.UPDATE_USER_INFO, payload: updatedUser });\n if (onProfileEditSuccess && typeof onProfileEditSuccess === 'function') {\n onProfileEditSuccess(updatedUser);\n }\n });\n }}\n />\n )\n }\n {\n const fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight;\n if (fetchMore && channelSource.hasNext) {\n logger.info('ChannelList: Fetching more channels');\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_START,\n });\n channelSource.next((response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let channelList = response;\n let err = error;\n if (swapParams) {\n channelList = error;\n err = response;\n }\n if (err) {\n logger.info('ChannelList: Fetching channels failed', err);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_FAILURE,\n payload: channelList,\n });\n return;\n }\n logger.info('ChannelList: Fetching channels successful', channelList);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_SUCCESS,\n payload: channelList,\n });\n if (channelList && typeof channelList.forEach === 'function') {\n logger.info('ChannelList: Marking all channels as read');\n channelList.forEach((c) => c.markAsDelivered());\n }\n });\n }\n }}\n >\n {\n (sdkError) && (\n \n )\n }\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n sortedChannels && sortedChannels.map((channel, idx) => {\n const onLeaveChannel = (c, cb) => {\n logger.info('ChannelList: Leaving channel', c);\n c.leave()\n .then((res) => {\n logger.info('ChannelList: Leaving channel success', res);\n if (cb && typeof cb === 'function') {\n cb(res, null);\n }\n channelListDispatcher({\n type: channelListActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel.url,\n });\n })\n .catch((err) => {\n logger.error('ChannelList: Leaving channel failed', err);\n if (cb && typeof cb === 'function') {\n cb(null, err);\n }\n });\n };\n\n const onClick = () => {\n if (!isOnline) { return; }\n logger.info('ChannelList: Clicked on channel:', channel);\n channelListDispatcher({\n type: channelListActions.SET_CURRENT_CHANNEL,\n payload: channel.url,\n });\n };\n\n return (\n (renderChannelPreview)\n ? (\n // eslint-disable-next-line\n
\n {renderChannelPreview({ channel, onLeaveChannel })}\n
\n )\n : (\n onLeaveChannel(channel)}\n />\n )}\n />\n )\n );\n })\n }\n
\n {\n (!sdkIntialized || loading) && (\n \n )\n }\n {\n // placeholder\n (!allChannels || allChannels.length === 0) && (\n \n )\n }\n \n \n );\n}\n\nChannelList.propTypes = {\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n userDispatcher: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n userId: PropTypes.string.isRequired,\n userListQuery: PropTypes.func,\n theme: PropTypes.string,\n isOnline: PropTypes.bool,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n channelListQuery: PropTypes.shape({\n channelNameContainsFilter: PropTypes.string,\n channelUrlsFilter: PropTypes.arrayOf(PropTypes.string),\n customTypesFilter: PropTypes.arrayOf(PropTypes.string),\n customTypeStartsWithFilter: PropTypes.string,\n hiddenChannelFilter: PropTypes.string,\n includeEmpty: PropTypes.bool,\n limit: PropTypes.number,\n memberStateFilter: PropTypes.string,\n metadataOrderKeyFilter: PropTypes.string,\n nicknameContainsFilter: PropTypes.string,\n order: PropTypes.string,\n publicChannelFilter: PropTypes.string,\n superChannelFilter: PropTypes.string,\n unreadChannelFilter: PropTypes.string,\n userIdsExactFilter: PropTypes.arrayOf(PropTypes.string),\n userIdsIncludeFilter: PropTypes.arrayOf(PropTypes.string),\n userIdsIncludeFilterQueryType: PropTypes.string,\n }),\n applicationUserListQuery: PropTypes.shape({\n limit: PropTypes.number,\n userIdsFilter: PropTypes.arrayOf(PropTypes.string),\n metaDataKeyFilter: PropTypes.string,\n metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeCreateChannel: PropTypes.func,\n renderChannelPreview: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n sortChannelList: PropTypes.func,\n onThemeChange: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n renderHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChannelSelect: PropTypes.func,\n};\n\nChannelList.defaultProps = {\n onBeforeCreateChannel: null,\n renderChannelPreview: null,\n renderHeader: null,\n disableUserProfile: false,\n renderUserProfile: null,\n allowProfileEdit: false,\n onThemeChange: null,\n sortChannelList: null,\n onProfileEditSuccess: null,\n queries: {},\n onChannelSelect: noop,\n};\n\nexport default withSendbirdContext(ChannelList);\n"],"names":["RESET_CHANNEL_LIST","CREATE_CHANNEL","LEAVE_CHANNEL_SUCCESS","SET_CURRENT_CHANNEL","SHOW_CHANNEL_SETTINGS","HIDE_CHANNEL_SETTINGS","FETCH_CHANNELS_START","FETCH_CHANNELS_SUCCESS","FETCH_CHANNELS_FAILURE","INIT_CHANNELS_START","INIT_CHANNELS_SUCCESS","INIT_CHANNELS_FAILURE","ON_USER_JOINED","ON_CHANNEL_DELETED","ON_LAST_MESSAGE_UPDATED","ON_USER_LEFT","ON_CHANNEL_CHANGED","ON_CHANNEL_ARCHIVED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_READ_RECEIPT_UPDATED","ON_DELIVERY_RECEIPT_UPDATED","CHANNEL_REPLACED_TO_TOP","initialized","loading","allChannels","currentChannel","showSettings","reducer","state","action","type","actions","initialState","payload","length","url","currentChannels","map","c","filteredChannels","filter","find","channel","channelUrl","leftCurrentChannel","newAllChannels","isMe","unreadMessageCount","lastMessage","currentUnReadCount","isFrozen","getChannelTitle","currentUserId","stringSet","LabelStringSet","name","members","NO_TITLE","NO_MEMBERS","userId","nickname","NO_NAME","join","getLastMessageCreatedAt","date","createdAt","isToday","format","isYesterday","getTotalMembers","memberCount","getPrettyLastMessage","message","MAXLEN","messageType","truncate","getLastMessage","getChannelUnreadMessageCount","ChannelPreview","isActive","ChannelAction","theme","onClick","tabIndex","currentUser","isBroadcast","useContext","LocalizationContext","React","ChannelAvatar","Icon","IconTypes","BROADCAST_DARK","BROADCAST_LIGHT","Label","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","utils","CAPTION_2","ONBACKGROUND_2","FROZEN_DARK","FROZEN_LIGHT","CAPTION_3","BODY_2","ONBACKGROUND_3","Badge","propTypes","PropTypes","bool","string","shape","arrayOf","coverUrl","element","isRequired","func","number","defaultProps","ChannelHeader","user","iconButton","onEdit","renderHeader","allowProfileEdit","Avatar","profileUrl","oneOfType","instanceOf","IconButton","EditUserProfile","_a","onCancel","onSubmit","_b","onThemeChange","_c","_d","changeTheme","noop","hiddenInputRef","useRef","inputRef","formRef","_e","useState","currentImg","setCurrentImg","_f","newFile","setNewFile","Modal","EDIT_PROFILE__TITLE","BUTTON__SAVE","current","value","reportValidity","ButtonType","PRIMARY","e","preventDefault","InputLabel","EDIT_PROFILE__IMAGE_LABEL","display","URL","createObjectURL","target","files","TextButton","click","BUTTON_1","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","Input","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","EDIT_PROFILE__THEME_LABEL","TOGGLE_ON","TOGGLE_OFF","mapStoreToProps","store","config","setCurrenttheme","ConnectedEditUserProfile","withSendbirdContext","AddChannel","sdk","disabled","channelListDispatcher","onBeforeCreateChannel","userFilledApplicationUserListQuery","userListQuery","showModal","setShowModal","step","setStep","setType","createApplicationUserListQuery","isBroadcastAvailable","isBroadcastChannelEnabled","isSupergroupAvailable","isSuperGroupChannelEnabled","CREATE","IconColors","CHAT","SUBTITLE_1","SUPER_GROUP","BROADCAST","InviteMembers","getErrorFirstCallback","MODAL__CREATE_CHANNEL__TITLE","BUTTON__CREATE","createDefaultUserListQuery","selectedUsers","createChannel","then","ChannelPreviewAction","onLeaveChannel","parentRef","stopPropagation","ContextMenu","toggleDropdown","MORE","closeDropdown","MenuItems","MenuItem","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","LeaveChannelModal","ChannelsPlaceholder","Placeholder","createEventHandler","sdkChannelHandlerId","logger","ChannelHandler","onChannelChanged","info","channelActions","onChannelDeleted","onUserJoined","onUserBanned","onUserLeft","leftUser","onReadStatus","onDeliveryReceiptUpdated","onMessageUpdated","isEqual","onChannelHidden","onChannelFrozen","onChannelUnfrozen","addChannelHandler","userFilledChannelListQuery","channelListQuery","GroupChannel","createMyGroupChannelListQuery","includeEmpty","order","limit","Object","keys","forEach","key","setupChannelList","setChannelSource","onChannelSelect","sortChannelList","hasNext","next","response","error","swapParams","channelList","err","sorted","markAsDelivered","warning","pubSubHandleRemover","subscriber","s","remove","pubSubHandler","pubSub","subScriber","Map","set","topics","subscribe","msg","updatedChannel","ChannelList","props","stores","sdkStore","userStore","isOnline","userDispatcher","dispatchers","queries","renderChannelPreview","renderUserProfile","disableUserProfile","onProfileEditSuccess","enableEditProfile","userDefinedDisableUserProfile","userDefinedRenderProfile","applicationUserListQuery","sdkError","setUser","useEffect","sdkIntialized","useReducer","channelListReducers","channelListInitialState","channelListStore","channelSource","setSdkChannelHandlerId","showProfileEdit","setShowProfileEdit","uuidv4","removeChannelHandler","channelListActions","sortedChannels","console","warn","before","after","getChannel","groupChannel","UserProfileProvider","newName","updateCurrentUserInfoWithProfileImage","updatedUser","userActions","fetchMore","clientHeight","scrollTop","scrollHeight","PlaceHolder","PlaceholderTypes","WRONG","idx","cb","leave","res","catch","LOADING","NO_CHANNELS","publish","channelNameContainsFilter","channelUrlsFilter","customTypesFilter","customTypeStartsWithFilter","hiddenChannelFilter","memberStateFilter","metadataOrderKeyFilter","nicknameContainsFilter","publicChannelFilter","superChannelFilter","unreadChannelFilter","userIdsExactFilter","userIdsIncludeFilter","userIdsIncludeFilterQueryType","userIdsFilter","metaDataKeyFilter","metaDataValuesFilter"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/ChannelSettings.js b/dist/cjs/ChannelSettings.js new file mode 100644 index 0000000..e08e3b8 --- /dev/null +++ b/dist/cjs/ChannelSettings.js @@ -0,0 +1,2069 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +var PropTypes = _interopDefault(require('prop-types')); +var index$1 = require('./index-710314fd.js'); +var utils = require('./utils-6aedec02.js'); +var index$1$1 = require('./index-64dcc5d9.js'); +var LeaveChannel = require('./LeaveChannel-cb2a36b0.js'); +require('date-fns/format'); +require('react-dom'); +var index$2 = require('./index-6ca9e95e.js'); +var index$3 = require('./index-c4d028d8.js'); + +var EditDetails = function EditDetails(props) { + var _onSubmit = props.onSubmit, + onCancel = props.onCancel, + channel = props.channel, + userId = props.userId, + theme = props.theme; + var inputRef = React.useRef(null); + var formRef = React.useRef(null); + var hiddenInputRef = React.useRef(null); + + var _useState = React.useState(null), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + currentImg = _useState2[0], + setCurrentImg = _useState2[1]; + + var _useState3 = React.useState(null), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + newFile = _useState4[0], + setNewFile = _useState4[1]; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var title = channel.name; + return React__default.createElement(index$1.Modal, { + titleText: stringSet.MODAL__CHANNEL_INFORMATION__TITLE, + submitText: stringSet.BUTTON__SAVE, + onCancel: onCancel, + onSubmit: function onSubmit() { + if (title !== '' && !inputRef.current.value) { + if (formRef.current.reportValidity) { + // might not work in explorer + formRef.current.reportValidity(); + } + + return; + } + + _onSubmit(newFile, inputRef.current.value); + + onCancel(); + }, + type: index$1.Type.PRIMARY + }, React__default.createElement("form", { + className: "channel-profile-form", + ref: formRef, + onSubmit: function onSubmit(e) { + e.preventDefault(); + } + }, React__default.createElement("div", { + className: "channel-profile-form__img-section" + }, React__default.createElement(index$2.InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE), React__default.createElement("div", { + className: "channel-profile-form__avatar" + }, currentImg ? React__default.createElement(index$1.Avatar, { + height: "80px", + width: "80px", + src: currentImg + }) : React__default.createElement(index$1$1.ChannelAvatar, { + height: 80, + width: 80, + channel: channel, + userId: userId, + theme: theme + })), React__default.createElement("input", { + ref: hiddenInputRef, + type: "file", + accept: "image/gif, image/jpeg, image/png", + style: { + display: 'none' + }, + onChange: function onChange(e) { + setCurrentImg(URL.createObjectURL(e.target.files[0])); + setNewFile(e.target.files[0]); + hiddenInputRef.current.value = ''; + } + }), React__default.createElement(index$1.TextButton, { + className: "channel-profile-form__avatar-button", + onClick: function onClick() { + return hiddenInputRef.current.click(); + }, + notUnderline: true + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.BUTTON_1, + color: index$1.LabelColors.PRIMARY + }, stringSet.MODAL__CHANNEL_INFORMATION__UPLOAD))), React__default.createElement("div", { + className: "channel-profile-form__name-section" + }, React__default.createElement(index$2.InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME), React__default.createElement(index$2.Input, { + required: title !== '', + name: "channel-profile-form__name", + ref: inputRef, + value: title, + placeHolder: stringSet.MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER + })))); +}; + +EditDetails.propTypes = { + onSubmit: PropTypes.func.isRequired, + onCancel: PropTypes.func.isRequired, + channel: PropTypes.shape({ + name: PropTypes.string + }).isRequired, + userId: PropTypes.string.isRequired, + theme: PropTypes.string.isRequired +}; + +var ChannelProfile = function ChannelProfile(props) { + var disabled = props.disabled, + channel = props.channel, + userId = props.userId, + theme = props.theme, + onChannelInfoChange = props.onChannelInfoChange; + var title = channel.name; + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + showModal = _useState2[0], + setShowModal = _useState2[1]; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React__default.createElement("div", { + className: "sendbird-channel-profile" + }, React__default.createElement("div", { + className: "sendbird-channel-profile--inner" + }, React__default.createElement("div", { + className: "sendbird-channel-profile__avatar" + }, React__default.createElement(index$1$1.ChannelAvatar, { + channel: channel, + userId: userId, + theme: theme + })), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.ONBACKGROUND_1, + className: "sendbird-channel-profile__title" + }, title), React__default.createElement(index$1.TextButton, { + disabled: disabled, + className: "sendbird-channel-profile__edit", + onClick: function onClick() { + if (disabled) { + return; + } + + setShowModal(true); + }, + notUnderline: true + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.BUTTON_1, + color: disabled ? index$1.LabelColors.ONBACKGROUND_2 : index$1.LabelColors.PRIMARY + }, stringSet.CHANNEL_SETTING__PROFILE__EDIT)), showModal && React__default.createElement(EditDetails, { + onCancel: function onCancel() { + return setShowModal(false); + }, + onSubmit: onChannelInfoChange, + channel: channel, + userId: userId, + theme: theme + }))); +}; + +ChannelProfile.propTypes = { + channel: PropTypes.shape({ + name: PropTypes.string + }).isRequired, + userId: PropTypes.string.isRequired, + theme: PropTypes.string, + disabled: PropTypes.bool, + onChannelInfoChange: PropTypes.func +}; +ChannelProfile.defaultProps = { + theme: 'light', + disabled: false, + onChannelInfoChange: function onChannelInfoChange() {} +}; + +function MembersModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel, + currentUser = _a.currentUser; + + var _b = React.useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = React.useState(null), + memberQuery = _c[0], + setMemberQuery = _c[1]; + + React.useEffect(function () { + var memberListQuery = channel.createMemberListQuery(); + memberListQuery.limit = 20; + memberListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + }); + setMemberQuery(memberListQuery); + }, []); + return React__default.createElement("div", null, React__default.createElement(index$1.Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: utils.noop, + titleText: "All Members" + }, React__default.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = memberQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + memberQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(LocalizationContext.__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React__default.createElement(index$2.UserListItem, { + user: member, + key: member.userId, + currentUser: currentUser, + action: function action(_a) { + var parentRef = _a.parentRef, + actionRef = _a.actionRef; + return React__default.createElement(React__default.Fragment, null, channel.myRole === 'operator' && React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + if (member.role !== 'operator') { + channel.addOperators([member.userId], function () { + setMembers(members.map(function (m) { + if (m.userId === member.userId) { + return LocalizationContext.__assign(LocalizationContext.__assign({}, member), { + role: 'operator' + }); + } + + return m; + })); + closeDropdown(); + }); + } else { + channel.removeOperators([member.userId], function () { + setMembers(members.map(function (m) { + if (m.userId === member.userId) { + return LocalizationContext.__assign(LocalizationContext.__assign({}, member), { + role: '' + }); + } + + return m; + })); + closeDropdown(); + }); + } + } + }, member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'), // No muted members in broadcast channel + !channel.isBroadcast && React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + if (member.isMuted) { + channel.unmuteUser(member, function () { + setMembers(members.map(function (m) { + if (m.userId === member.userId) { + return LocalizationContext.__assign(LocalizationContext.__assign({}, member), { + isMuted: false + }); + } + + return m; + })); + closeDropdown(); + }); + } else { + channel.muteUser(member, function () { + setMembers(members.map(function (m) { + if (m.userId === member.userId) { + return LocalizationContext.__assign(LocalizationContext.__assign({}, member), { + isMuted: true + }); + } + + return m; + })); + closeDropdown(); + }); + } + } + }, member.isMuted ? 'Unmute' : 'Mute'), React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + channel.banUser(member, -1, '', function () { + setMembers(members.filter(function (_a) { + var userId = _a.userId; + return userId !== member.userId; + })); + }); + } + }, "Ban")); + } + })); + } + }); + })))); +} + +var SHOWN_MEMBER_MAX = 10; + +var UserListItem = function UserListItem(_ref) { + var _ref$member = _ref.member, + member = _ref$member === void 0 ? {} : _ref$member, + _ref$currentUser = _ref.currentUser, + currentUser = _ref$currentUser === void 0 ? '' : _ref$currentUser; + var avatarRef = React.useRef(null); + + var _useContext = React.useContext(index$1.UserProfileContext), + disableUserProfile = _useContext.disableUserProfile, + renderUserProfile = _useContext.renderUserProfile; + + var _useContext2 = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext2.stringSet; + + return React__default.createElement("div", { + className: "sendbird-members-accordion__member" + }, React__default.createElement("div", { + className: "sendbird-members-accordion__member-avatar" + }, React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + ref: avatarRef, + src: member.profileUrl, + width: 24, + height: 24 + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + openLeft: true, + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: member, + currentUserId: currentUser, + close: closeDropdown + }) : React__default.createElement(index$1.UserProfile, { + user: member, + currentUserId: currentUser, + onSuccess: closeDropdown + })); + } + })), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.ONBACKGROUND_1 + }, member.nickname || stringSet.NO_NAME, currentUser === member.userId && ' (You)')); +}; + +UserListItem.propTypes = { + member: PropTypes.shape({ + userId: PropTypes.string, + profileUrl: PropTypes.string, + nickname: PropTypes.string + }).isRequired, + currentUser: PropTypes.string.isRequired +}; + +var MemebersAccordion = function MemebersAccordion(_ref2) { + var channel = _ref2.channel, + disabled = _ref2.disabled, + currentUser = _ref2.currentUser, + userQueryCreator = _ref2.userQueryCreator, + onInviteMemebers = _ref2.onInviteMemebers, + swapParams = _ref2.swapParams; + var members = channel.members || []; + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + showMoreModal = _useState2[0], + setShowMoreModal = _useState2[1]; + + var _useState3 = React.useState(false), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + showAddUserModal = _useState4[0], + setShowAddUserModal = _useState4[1]; + + var _useContext3 = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext3.stringSet; + + return React__default.createElement("div", { + className: "sendbird-members-accordion" + }, React__default.createElement("div", { + className: "sendbird-members-accordion__list" + }, members.slice(0, SHOWN_MEMBER_MAX).map(function (member) { + return React__default.createElement(UserListItem, { + member: member, + currentUser: currentUser, + key: member.userId + }); + })), React__default.createElement("div", { + className: "sendbird-members-accordion__footer" + }, members.length >= SHOWN_MEMBER_MAX && React__default.createElement(index$1.Button, { + className: "sendbird-members-accordion__footer__all-members", + type: index$1.Type.SECONDARY, + size: index$1.Size.SMALL, + onClick: function onClick() { + return setShowMoreModal(true); + } + }, stringSet.CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS), members.length >= SHOWN_MEMBER_MAX && showMoreModal && React__default.createElement(MembersModal, { + currentUser: currentUser, + hideModal: function hideModal() { + setShowMoreModal(false); + }, + channel: channel + }), React__default.createElement(index$1.Button, { + className: "sendbird-members-accordion__footer__invite-users", + type: index$1.Type.SECONDARY, + size: index$1.Size.SMALL, + disabled: disabled, + onClick: function onClick() { + if (disabled) { + return; + } + + setShowAddUserModal(true); + } + }, stringSet.CHANNEL_SETTING__MEMBERS__INVITE_MEMBER), showAddUserModal && React__default.createElement(LeaveChannel.InviteMembers, { + swapParams: swapParams, + titleText: stringSet.MODAL__INVITE_MEMBER__TITLE, + submitText: stringSet.BUTTON__INVITE, + closeModal: function closeModal() { + return setShowAddUserModal(false); + }, + idsToFilter: members.map(function (member) { + return member.userId; + }), + userQueryCreator: userQueryCreator, + onSubmit: onInviteMemebers + }))); +}; + +MemebersAccordion.propTypes = { + swapParams: PropTypes.bool, + disabled: PropTypes.bool, + channel: PropTypes.shape({ + members: PropTypes.arrayOf(PropTypes.shape({})) + }), + currentUser: PropTypes.string, + userQueryCreator: PropTypes.func.isRequired, + onInviteMemebers: PropTypes.func.isRequired +}; +MemebersAccordion.defaultProps = { + swapParams: false, + currentUser: '', + disabled: false, + channel: {} +}; + +// might move to reusable/UI +var COMPONENT_NAME = 'sendbird-user-list-item--small'; + +var UserListItem$1 = function UserListItem(_a) { + var user = _a.user, + className = _a.className, + currentUser = _a.currentUser, + action = _a.action; + var actionRef = React.useRef(null); + var parentRef = React.useRef(null); + var avatarRef = React.useRef(null); + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + var _b = React.useContext(index$1.UserProfileContext), + disableUserProfile = _b.disableUserProfile, + renderUserProfile = _b.renderUserProfile; + + var injectingClassNames = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + ref: parentRef, + className: LocalizationContext.__spreadArrays([COMPONENT_NAME], injectingClassNames).join(' ') + }, user.isMuted && React__default.createElement(index$2.MutedAvatarOverlay, null), React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + ref: avatarRef, + className: COMPONENT_NAME + "__avatar", + src: user.profileUrl, + width: 24, + height: 24 + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + openLeft: true, + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: user, + currentUserId: currentUser, + close: closeDropdown + }) : React__default.createElement(index$1.UserProfile, { + user: user, + currentUserId: currentUser, + onSuccess: closeDropdown + })); + } + }), React__default.createElement(index$1.Label, { + className: COMPONENT_NAME + "__title", + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, user.nickname || stringSet.NO_NAME, currentUser === user.userId && " (You)"), !user.nickname && React__default.createElement(index$1.Label, { + className: COMPONENT_NAME + "__subtitle", + type: index$1.LabelTypography.CAPTION_3, + color: index$1.LabelColors.ONBACKGROUND_2 + }, user.userId), user.role === 'operator' && React__default.createElement(index$1.Label, { + className: COMPONENT_NAME + "__operator", + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.ONBACKGROUND_2 + }, "Operator"), action && React__default.createElement("div", { + ref: actionRef, + className: COMPONENT_NAME + "__action" + }, action({ + actionRef: actionRef, + parentRef: parentRef + }))); +}; + +function OperatorsModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel, + currentUser = _a.currentUser; + + var _b = React.useState([]), + operators = _b[0], + setOperators = _b[1]; + + var _c = React.useState(null), + operatorQuery = _c[0], + setOperatorQuery = _c[1]; + + React.useEffect(function () { + var operatorListQuery = channel.createOperatorListQuery(); + operatorListQuery.limit = 20; + operatorListQuery.next(function (operators, error) { + if (error) { + return; + } + + setOperators(operators); + }); + setOperatorQuery(operatorListQuery); + }, []); + return React__default.createElement("div", null, React__default.createElement(index$1.Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: utils.noop, + titleText: "All operators" + }, React__default.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = operatorQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + operatorQuery.next(function (o, error) { + if (error) { + return; + } + + setOperators(LocalizationContext.__spreadArrays(operators, o)); + }); + } + } + }, operators.map(function (member) { + return React__default.createElement(index$2.UserListItem, { + currentUser: currentUser, + user: member, + key: member.userId, + action: function action(_a) { + var parentRef = _a.parentRef, + actionRef = _a.actionRef; + return React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + channel.removeOperators([member.userId], function (response, error) { + if (error) { + return; + } + + setOperators(operators.filter(function (_a) { + var userId = _a.userId; + return userId !== member.userId; + })); + }); + closeDropdown(); + } + }, "Dismiss operator")); + } + }); + } + }); + })))); +} + +function AddOperatorsModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel, + _onSubmit = _a.onSubmit; + + var _b = React.useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = React.useState({}), + selectedMembers = _c[0], + setSelectedMembers = _c[1]; + + var _d = React.useState(null), + memberQuery = _d[0], + setMemberQuery = _d[1]; + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + React.useEffect(function () { + var memberListQuery = channel.createMemberListQuery(); + memberListQuery.limit = 20; + memberListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + }); + setMemberQuery(memberListQuery); + }, []); + var selectedCount = Object.keys(selectedMembers).filter(function (m) { + return selectedMembers[m]; + }).length; + return React__default.createElement("div", null, React__default.createElement(index$1.Modal, { + type: index$1.Type.PRIMARY, + submitText: "Add", + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: function onSubmit() { + var members = Object.keys(selectedMembers).filter(function (m) { + return selectedMembers[m]; + }); + + _onSubmit(members); + }, + titleText: "Select members" + }, React__default.createElement(index$1.Label, { + color: selectedCount > 0 ? index$1.LabelColors.PRIMARY : index$1.LabelColors.ONBACKGROUND_3, + type: index$1.LabelTypography.CAPTION_1 + }, selectedCount + " " + stringSet.MODAL__INVITE_MEMBER__SELECTEC), React__default.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = memberQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + memberQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(LocalizationContext.__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React__default.createElement(index$2.UserListItem, { + checkBox: true, + checked: selectedMembers[member.userId], + onChange: function onChange(event) { + var _a; + + var modifiedSelectedMembers = LocalizationContext.__assign(LocalizationContext.__assign({}, selectedMembers), (_a = {}, _a[event.target.id] = event.target.checked, _a)); + + if (!event.target.checked) { + delete modifiedSelectedMembers[event.target.id]; + } + + setSelectedMembers(modifiedSelectedMembers); + }, + user: member, + key: member.userId + }); + })))); +} + +var OperatorList = function OperatorList(_a) { + var sdk = _a.sdk, + channel = _a.channel; + + var _b = React.useState([]), + operators = _b[0], + setOperators = _b[1]; + + var _c = React.useState(false), + showMore = _c[0], + setShowMore = _c[1]; + + var _d = React.useState(false), + showAdd = _d[0], + setShowAdd = _d[1]; + + var _e = React.useState(false), + hasNext = _e[0], + setHasNext = _e[1]; + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + React.useEffect(function () { + if (!channel) { + setOperators([]); + return; + } + + var operatorListQuery = channel.createOperatorListQuery(); + operatorListQuery.limit = 10; + operatorListQuery.next(function (operators, error) { + if (error) { + return; + } + + setOperators(operators); + setHasNext(operatorListQuery.hasNext); + }); + }, [channel]); + var refershList = React.useCallback(function () { + if (!channel) { + setOperators([]); + return; + } + + var operatorListQuery = channel.createOperatorListQuery(); + operatorListQuery.limit = 10; + operatorListQuery.next(function (operators, error) { + if (error) { + return; + } + + setOperators(operators); + setHasNext(operatorListQuery.hasNext); + }); + }, [channel]); + return React__default.createElement(React__default.Fragment, null, operators.map(function (operator) { + return React__default.createElement(UserListItem$1, { + key: operator.userId, + user: operator, + currentUser: sdk.currentUser.userId, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + channel.removeOperators([operator.userId], function (response, error) { + if (error) { + return; + } + + setOperators(operators.filter(function (_a) { + var userId = _a.userId; + return userId !== operator.userId; + })); + }); + closeDropdown(); + } + }, "Dismiss operator")); + } + }); + } + }); + }), hasNext && React__default.createElement("div", { + className: "sendbird-channel-settings-accordion__footer" + }, React__default.createElement(index$1.Button, { + type: index$1.Type.SECONDARY, + size: index$1.Size.SMALL, + onClick: function onClick() { + setShowMore(true); + } + }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ALL), React__default.createElement(index$1.Button, { + type: index$1.Type.SECONDARY, + size: index$1.Size.SMALL, + onClick: function onClick() { + setShowAdd(true); + } + }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ADD)), showMore && React__default.createElement(OperatorsModal, { + currentUser: sdk.currentUser.userId, + hideModal: function hideModal() { + setShowMore(false); + refershList(); + }, + channel: channel + }), showAdd && React__default.createElement(AddOperatorsModal, { + hideModal: function hideModal() { + return setShowAdd(false); + }, + channel: channel, + onSubmit: function onSubmit(members) { + setShowAdd(false); + channel.addOperators(members, function () { + refershList(); + }); + } + })); +}; + +var mapStoreToProps = function mapStoreToProps(store) { + return { + sdk: index$1.getSdk(store) + }; +}; + +var OperatorList$1 = LocalizationContext.withSendbirdContext(OperatorList, mapStoreToProps); + +function InviteMembers(_a) { + var hideModal = _a.hideModal, + userQueryCreator = _a.userQueryCreator, + _onSubmit = _a.onSubmit; + + var _b = React.useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = React.useState({}), + selectedMembers = _c[0], + setSelectedMembers = _c[1]; + + var _d = React.useState(null), + userQuery = _d[0], + setUserQuery = _d[1]; + + React.useEffect(function () { + var userListQuery = userQueryCreator(); + userListQuery.limit = 20; + userListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + }); + setUserQuery(userListQuery); + }, []); + return React__default.createElement("div", null, React__default.createElement(index$1.Modal, { + disabled: Object.keys(selectedMembers).length === 0, + submitText: "Invite", + type: index$1.Type.PRIMARY, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: function onSubmit() { + var members = Object.keys(selectedMembers).filter(function (m) { + return selectedMembers[m]; + }); + + _onSubmit(members); + }, + titleText: "Select members" + }, React__default.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = userQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + userQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(LocalizationContext.__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React__default.createElement(index$2.UserListItem, { + checkBox: true, + checked: selectedMembers[member.userId], + onChange: function onChange(event) { + var _a; + + var modifiedSelectedMembers = LocalizationContext.__assign(LocalizationContext.__assign({}, selectedMembers), (_a = {}, _a[event.target.id] = event.target.checked, _a)); + + if (!event.target.checked) { + delete modifiedSelectedMembers[event.target.id]; + } + + setSelectedMembers(modifiedSelectedMembers); + }, + user: member, + key: member.userId + }); + })))); +} + +var MemberList = function MemberList(_a) { + var sdk = _a.sdk, + channel = _a.channel, + userQueryCreator = _a.userQueryCreator; + + var _b = React.useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = React.useState(false), + hasNext = _c[0], + setHasNext = _c[1]; + + var _d = React.useState(false), + showAllMembers = _d[0], + setShowAllMembers = _d[1]; + + var _e = React.useState(false), + showInviteMembers = _e[0], + setShowInviteMembers = _e[1]; + + React.useEffect(function () { + if (!channel) { + setMembers([]); + return; + } + + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + setHasNext(memberUserListQuery.hasNext); + }); + }, [channel]); + var refershList = React.useCallback(function () { + if (!channel) { + setMembers([]); + return; + } + + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + setHasNext(memberUserListQuery.hasNext); + }); + }, [channel]); + return React__default.createElement(React__default.Fragment, null, members.map(function (member) { + return React__default.createElement(UserListItem$1, { + key: member.userId, + user: member, + currentUser: sdk.currentUser.userId, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + if (member.role !== 'operator') { + channel.addOperators([member.userId], function () { + refershList(); + closeDropdown(); + }); + } else { + channel.removeOperators([member.userId], function () { + refershList(); + closeDropdown(); + }); + } + } + }, member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'), // No muted members in broadcast channel + !channel.isBroadcast && React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + if (member.isMuted) { + channel.unmuteUser(member, function () { + refershList(); + closeDropdown(); + }); + } else { + channel.muteUser(member, function () { + refershList(); + closeDropdown(); + }); + } + } + }, member.isMuted ? 'Unmute' : 'Mute'), React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + channel.banUser(member, -1, '', function () { + refershList(); + closeDropdown(); + }); + } + }, "Ban")); + } + }); + } + }); + }), React__default.createElement("div", { + className: "sendbird-channel-settings-accordion__footer" + }, hasNext && React__default.createElement(index$1.Button, { + type: index$1.Type.SECONDARY, + size: index$1.Size.SMALL, + onClick: function onClick() { + return setShowAllMembers(true); + } + }, "All members"), React__default.createElement(index$1.Button, { + type: index$1.Type.SECONDARY, + size: index$1.Size.SMALL, + onClick: function onClick() { + return setShowInviteMembers(true); + } + }, "Invite members")), showAllMembers && React__default.createElement(MembersModal, { + currentUser: sdk.currentUser.userId, + channel: channel, + hideModal: function hideModal() { + setShowAllMembers(false); + refershList(); + } + }), showInviteMembers && React__default.createElement(InviteMembers, { + userQueryCreator: userQueryCreator, + onSubmit: function onSubmit(selectedMemebers) { + channel.inviteWithUserIds(selectedMemebers, function () { + setShowInviteMembers(false); + refershList(); + }); + }, + channel: channel, + hideModal: function hideModal() { + return setShowInviteMembers(false); + } + })); +}; + +var mapStoreToProps$1 = function mapStoreToProps(store) { + return { + sdk: index$1.getSdk(store) + }; +}; + +var MemberList$1 = LocalizationContext.withSendbirdContext(MemberList, mapStoreToProps$1); + +function BannedMembersModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel; + + var _b = React.useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = React.useState(null), + memberQuery = _c[0], + setMemberQuery = _c[1]; + + React.useEffect(function () { + var bannedUserListQuery = channel.createBannedUserListQuery(); + bannedUserListQuery.next(function (users, error) { + if (error) { + return; + } + + setMembers(users); + }); + setMemberQuery(bannedUserListQuery); + }, []); + return React__default.createElement("div", null, React__default.createElement(index$1.Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: utils.noop, + titleText: "Muted members" + }, React__default.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = memberQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + memberQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(LocalizationContext.__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React__default.createElement(index$2.UserListItem, { + user: member, + key: member.userId, + action: function action(_a) { + var parentRef = _a.parentRef, + actionRef = _a.actionRef; + return React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + channel.unbanUser(member, function () { + closeDropdown(); + setMembers(members.filter(function (m) { + return m.userId !== member.userId; + })); + }); + } + }, "Unban")); + } + }); + } + }); + })))); +} + +var BannedMemberList = function BannedMemberList(_a) { + var channel = _a.channel; + + var _b = React.useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = React.useState(false), + hasNext = _c[0], + setHasNext = _c[1]; + + var _d = React.useState(false), + showModal = _d[0], + setShowModal = _d[1]; + + React.useEffect(function () { + if (!channel) { + setMembers([]); + return; + } + + var bannedUserListQuery = channel.createBannedUserListQuery(); + bannedUserListQuery.next(function (users, error) { + if (error) { + return; + } + + setMembers(users); + setHasNext(bannedUserListQuery.hasNext); + }); + }, [channel]); + var refreshList = React.useCallback(function () { + if (!channel) { + setMembers([]); + return; + } + + var bannedUserListQuery = channel.createBannedUserListQuery(); + bannedUserListQuery.next(function (users, error) { + if (error) { + return; + } + + setMembers(users); + setHasNext(bannedUserListQuery.hasNext); + }); + }, [channel]); + return React__default.createElement(React__default.Fragment, null, members.map(function (member) { + return React__default.createElement(UserListItem$1, { + key: member.userId, + user: member, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + channel.unbanUser(member, function () { + closeDropdown(); + refreshList(); + }); + } + }, "Unban")); + } + }); + } + }); + }), members && members.length === 0 && React__default.createElement(index$1.Label, { + className: "sendbird-channel-settings__empty-list", + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.ONBACKGROUND_3 + }, "No banned members yet"), hasNext && React__default.createElement("div", { + className: "sendbird-channel-settings-accordion__footer" + }, React__default.createElement(index$1.Button, { + type: index$1.Type.SECONDARY, + size: index$1.Size.SMALL, + onClick: function onClick() { + setShowModal(true); + } + }, "All banned members")), showModal && React__default.createElement(BannedMembersModal, { + channel: channel, + hideModal: function hideModal() { + setShowModal(false); + refreshList(); + } + })); +}; + +var mapStoreToProps$2 = function mapStoreToProps(store) { + return { + sdk: index$1.getSdk(store) + }; +}; + +var BannedMemberList$1 = LocalizationContext.withSendbirdContext(BannedMemberList, mapStoreToProps$2); + +function MutedMembersModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel, + currentUser = _a.currentUser; + + var _b = React.useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = React.useState(null), + memberQuery = _c[0], + setMemberQuery = _c[1]; + + React.useEffect(function () { + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.mutedMemberFilter = 'muted'; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + }); + setMemberQuery(memberUserListQuery); + }, []); + return React__default.createElement("div", null, React__default.createElement(index$1.Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: utils.noop, + titleText: "Muted members" + }, React__default.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = memberQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + memberQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(LocalizationContext.__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React__default.createElement(index$2.UserListItem, { + currentUser: currentUser, + user: member, + key: member.userId, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + channel.unmuteUser(member, function () { + closeDropdown(); + setMembers(members.filter(function (m) { + return m.userId !== member.userId; + })); + }); + } + }, "Unmute")); + } + }); + } + }); + })))); +} + +var MutedMemberList = function MutedMemberList(_a) { + var sdk = _a.sdk, + channel = _a.channel; + + var _b = React.useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = React.useState(false), + hasNext = _c[0], + setHasNext = _c[1]; + + var _d = React.useState(false), + showModal = _d[0], + setShowModal = _d[1]; + + React.useEffect(function () { + if (!channel) { + setMembers([]); + return; + } + + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.mutedMemberFilter = 'muted'; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + setHasNext(memberUserListQuery.hasNext); + }); + }, [channel]); + var refreshList = React.useCallback(function () { + if (!channel) { + setMembers([]); + return; + } + + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.mutedMemberFilter = 'muted'; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + setHasNext(memberUserListQuery.hasNext); + }); + }, [channel]); + return React__default.createElement(React__default.Fragment, null, members.map(function (member) { + return React__default.createElement(UserListItem$1, { + key: member.userId, + user: member, + currentUser: sdk.currentUser.userId, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + closeDropdown: closeDropdown, + openLeft: true, + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + + }, React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + channel.unmuteUser(member, function () { + refreshList(); + closeDropdown(); + }); + } + }, "Unmute")); + } + }); + } + }); + }), members && members.length === 0 && React__default.createElement(index$1.Label, { + className: "sendbird-channel-settings__empty-list", + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.ONBACKGROUND_3 + }, "No muted members yet"), hasNext && React__default.createElement("div", { + className: "sendbird-channel-settings-accordion__footer" + }, React__default.createElement(index$1.Button, { + type: index$1.Type.SECONDARY, + size: index$1.Size.SMALL, + onClick: function onClick() { + setShowModal(true); + } + }, "All muted members")), showModal && React__default.createElement(MutedMembersModal, { + currentUser: sdk.currentUser.userId, + channel: channel, + hideModal: function hideModal() { + setShowModal(false); + refreshList(); + } + })); +}; + +var mapStoreToProps$3 = function mapStoreToProps(store) { + return { + sdk: index$1.getSdk(store) + }; +}; + +var MutedMemberList$1 = LocalizationContext.withSendbirdContext(MutedMemberList, mapStoreToProps$3); + +var kFormatter = function kFormatter(num) { + return Math.abs(num) > 999 ? (Math.abs(num) / 1000).toFixed(1) + "K" : num; +}; + +function index(_a) { + var userQueryCreator = _a.userQueryCreator, + channel = _a.channel; + + var _b = React.useState(false), + frozen = _b[0], + setFrozen = _b[1]; // work around for + // https://sendbird.slack.com/archives/G01290GCDCN/p1595922832000900 + // SDK bug - after frozen/unfrozen myRole becomes "none" + + + React.useEffect(function () { + setFrozen(channel.isFrozen); + }, [channel]); + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + return React__default.createElement(index$3.AccordionGroup, { + className: "sendbird-channel-settings__operator" + }, React__default.createElement(index$3.Accordion, { + className: "sendbird-channel-settings__operators-list", + id: "operators", + renderTitle: function renderTitle() { + return React__default.createElement(React__default.Fragment, null, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.ICON_OPERATOR, + fillColor: index$1.IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE)); + }, + renderContent: function renderContent() { + return React__default.createElement(React__default.Fragment, null, React__default.createElement(OperatorList$1, { + channel: channel + })); + } + }), React__default.createElement(index$3.Accordion, { + className: "sendbird-channel-settings__members-list", + id: "members", + renderTitle: function renderTitle() { + return React__default.createElement(React__default.Fragment, null, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.MEMBERS, + fillColor: index$1.IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__MEMBERS__TITLE), React__default.createElement(LeaveChannel.Badge, { + count: kFormatter(channel.memberCount) + })); + }, + renderContent: function renderContent() { + return React__default.createElement(React__default.Fragment, null, React__default.createElement(MemberList$1, { + userQueryCreator: userQueryCreator, + channel: channel + })); + } + }), // No muted members in broadcast channel + !channel.isBroadcast && React__default.createElement(index$3.Accordion, { + id: "mutedMembers", + className: "sendbird-channel-settings__muted-members-list", + renderTitle: function renderTitle() { + return React__default.createElement(React__default.Fragment, null, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.ICON_MUTED, + fillColor: index$1.IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__MUTED_MEMBERS__TITLE)); + }, + renderContent: function renderContent() { + return React__default.createElement(React__default.Fragment, null, React__default.createElement(MutedMemberList$1, { + channel: channel + })); + } + }), React__default.createElement(index$3.Accordion, { + className: "sendbird-channel-settings__banned-members-list", + id: "bannedMembers", + renderTitle: function renderTitle() { + return React__default.createElement(React__default.Fragment, null, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.ICON_BANNED, + fillColor: index$1.IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__BANNED_MEMBERS__TITLE)); + }, + renderContent: function renderContent() { + return React__default.createElement(React__default.Fragment, null, React__default.createElement(BannedMemberList$1, { + channel: channel + })); + } + }), // cannot frozen broadcast channel + !channel.isBroadcast && React__default.createElement("div", { + className: "sendbird-channel-settings__freeze" + }, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.FROZEN_LIGHT, + fillColor: index$1.IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__FREEZE_CHANNEL), React__default.createElement("div", { + className: "sendbird-channel-settings__frozen-icon" + }, frozen ? React__default.createElement(index$1.Icon, { + onClick: function onClick() { + channel.unfreeze(function () { + setFrozen(false); + }); + }, + type: index$1.IconTypes.TOGGLE_ON, + width: 44, + height: 24 + }) : React__default.createElement(index$1.Icon, { + onClick: function onClick() { + channel.freeze(function () { + setFrozen(true); + }); + }, + type: index$1.IconTypes.TOGGLE_OFF, + width: 44, + height: 24 + })))); +} + +var kFormatter$1 = function kFormatter(num) { + return Math.abs(num) > 999 ? "".concat((Math.abs(num) / 1000).toFixed(1), "K") : num; +}; + +function ChannelSettings(props) { + var onCloseClick = props.onCloseClick, + channelUrl = props.channelUrl, + disableUserProfile = props.disableUserProfile, + renderUserProfile = props.renderUserProfile, + _onChannelModified = props.onChannelModified, + renderChannelProfile = props.renderChannelProfile, + onBeforeUpdateChannel = props.onBeforeUpdateChannel; + var sdkStore = props.stores.sdkStore, + _props$config = props.config, + userListQuery = _props$config.userListQuery, + theme = _props$config.theme, + userId = _props$config.userId, + logger = _props$config.logger, + isOnline = _props$config.isOnline, + _props$queries = props.queries, + queries = _props$queries === void 0 ? {} : _props$queries; + var _props$config2 = props.config, + config = _props$config2 === void 0 ? {} : _props$config2; + var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; + var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; + var userFilledApplicationUserListQuery = queries.applicationUserListQuery; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var sdk = sdkStore.sdk, + initialized = sdkStore.initialized; // hack to kepp track of channel updates by triggering useEffect + + var _useState = React.useState(LocalizationContext.uuidv4()), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + channelUpdateId = _useState2[0], + setChannelUpdateId = _useState2[1]; + + var _useState3 = React.useState(null), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + channel = _useState4[0], + setChannel = _useState4[1]; + + var _useState5 = React.useState(false), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + invalidChannel = _useState6[0], + setInvalidChannel = _useState6[1]; + + var _useState7 = React.useState(false), + _useState8 = LocalizationContext._slicedToArray(_useState7, 2), + showAccordion = _useState8[0], + setShowAccordion = _useState8[1]; + + var _useState9 = React.useState(false), + _useState10 = LocalizationContext._slicedToArray(_useState9, 2), + showLeaveChannelModal = _useState10[0], + setShowLeaveChannelModal = _useState10[1]; + + React.useEffect(function () { + logger.info('ChannelSettings: Setting up'); + + if (!channelUrl || !initialized || !sdk) { + logger.warning('ChannelSettings: Setting up failed', 'No channelUrl or sdk uninitialized'); + setInvalidChannel(false); + } else { + if (!sdk || !sdk.GroupChannel) { + logger.warning('ChannelSettings: No GroupChannel'); + return; + } + + sdk.GroupChannel.getChannel(channelUrl, function (groupChannel) { + if (!groupChannel) { + logger.warning('ChannelSettings: Channel not found'); + setInvalidChannel(true); + } else { + logger.info('ChannelSettings: Fetched group channel', groupChannel); + setInvalidChannel(false); + setChannel(groupChannel); + } + }); + } + }, [channelUrl, initialized, channelUpdateId]); + + if (!channel || invalidChannel) { + return React__default.createElement("div", { + className: "sendbird-channel-settings" + }, React__default.createElement("div", { + className: "sendbird-channel-settings__header" + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.H_2, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.CLOSE, + className: "sendbird-channel-settings__close-icon", + height: "24px", + width: "24px", + onClick: function onClick() { + logger.info('ChannelSettings: Click close'); + onCloseClick(); + } + })), React__default.createElement("div", null, React__default.createElement(index$1.PlaceHolder, { + type: index$1.PlaceHolderTypes.WRONG + }))); + } + + return React__default.createElement(index$1.UserProfileProvider, { + disableUserProfile: userDefinedDisableUserProfile, + renderUserProfile: userDefinedRenderProfile, + className: "sendbird-channel-settings" + }, React__default.createElement("div", { + className: "sendbird-channel-settings__header" + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.H_2, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React__default.createElement("div", { + className: "sendbird-channel-settings__header-icon" + }, React__default.createElement(index$1.IconButton, { + width: "32px", + height: "32px", + onClick: function onClick() { + logger.info('ChannelSettings: Click close'); + onCloseClick(); + } + }, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.CLOSE, + className: "sendbird-channel-settings__close-icon", + height: "24px", + width: "24px" + })))), React__default.createElement("div", { + className: "sendbird-channel-settings__scroll-area" + }, renderChannelProfile ? renderChannelProfile({ + channel: channel + }) : React__default.createElement(ChannelProfile, { + disabled: !isOnline, + channel: channel, + userId: userId, + theme: theme, + onChannelInfoChange: function onChannelInfoChange(currentImg, currentTitle) { + logger.info('ChannelSettings: Channel information being updated'); + var swapParams = sdk.getErrorFirstCallback(); + + if (onBeforeUpdateChannel) { + var params = onBeforeUpdateChannel(currentTitle, currentImg, channel.data); // swapParams + + channel.updateChannel(params, function (response, error) { + var groupChannel = response; + + if (swapParams) { + groupChannel = error; + } + + _onChannelModified(groupChannel); + + setChannelUpdateId(LocalizationContext.uuidv4()); + }); + return; + } + + channel.updateChannel(currentTitle, currentImg, channel.data, function (response, error) { + var groupChannel = response; + + if (swapParams) { + groupChannel = error; + } + + logger.info('ChannelSettings: Channel information updated', groupChannel); + + _onChannelModified(groupChannel); + + setChannelUpdateId(LocalizationContext.uuidv4()); + }); + } + }), channel.myRole === 'operator' ? React__default.createElement(index, { + channel: channel, + onChannelModified: function onChannelModified(groupChannel) { + // setChannelUpdateId(uuidv4()); + _onChannelModified(groupChannel); + }, + userQueryCreator: function userQueryCreator() { + return userListQuery && typeof userListQuery === 'function' ? userListQuery() : LeaveChannel.createDefaultUserListQuery({ + sdk: sdk, + userFilledApplicationUserListQuery: userFilledApplicationUserListQuery + }); + } + }) : React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { + role: "switch", + "aria-checked": showAccordion, + tabIndex: 0, + onKeyDown: function onKeyDown() { + return setShowAccordion(!showAccordion); + }, + className: "\n sendbird-channel-settings__panel-item\n sendbird-channel-settings__members\n ", + onClick: function onClick() { + return setShowAccordion(!showAccordion); + } + }, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.MEMBERS, + className: "sendbird-channel-settings__panel-icon-left", + height: "24px", + width: "24px", + fillColor: index$1.IconColors.PRIMARY + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, "".concat(stringSet.CHANNEL_SETTING__MEMBERS__TITLE), React__default.createElement(LeaveChannel.Badge, { + count: kFormatter$1(channel.memberCount) + })), React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.SHEVRON, + className: ['sendbird-channel-settings__panel-icon-right', 'sendbird-channel-settings__panel-icon--chevron', showAccordion ? 'sendbird-channel-settings__panel-icon--open' : ''].join(' '), + height: "24px", + width: "24px" + })), showAccordion && React__default.createElement(MemebersAccordion, { + currentUser: userId, + disabled: !isOnline // eslint-disable-next-line + , + userQueryCreator: function userQueryCreator() { + return userListQuery && typeof userListQuery === 'function' ? userListQuery() : LeaveChannel.createDefaultUserListQuery({ + sdk: sdk, + userFilledApplicationUserListQuery: userFilledApplicationUserListQuery + }); + }, + swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), + channel: channel, + members: channel.members, + onInviteMemebers: function onInviteMemebers(selectedMemebers) { + logger.info('ChannelSettings: Inviting new users'); + channel.inviteWithUserIds(selectedMemebers).then(function (res) { + _onChannelModified(res); + + setChannelUpdateId(LocalizationContext.uuidv4()); + logger.info('ChannelSettings: Inviting new users success!', res); + }); + } + })), React__default.createElement("div", { + className: "sendbird-channel-settings__panel-item\n sendbird-channel-settings__leave-channel\n ".concat(!isOnline ? 'sendbird-channel-settings__panel-item__disabled' : ''), + role: "button", + tabIndex: 0, + disabled: true, + onKeyDown: function onKeyDown() { + if (!isOnline) { + return; + } + + setShowLeaveChannelModal(true); + }, + onClick: function onClick() { + if (!isOnline) { + return; + } + + setShowLeaveChannelModal(true); + } + }, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.LEAVE, + className: ['sendbird-channel-settings__panel-icon-left', 'sendbird-channel-settings__panel-icon__leave'].join(' '), + height: "24px", + width: "24px" + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE)), showLeaveChannelModal && React__default.createElement(LeaveChannel.LeaveChannelModal, { + onCloseModal: function onCloseModal() { + return setShowLeaveChannelModal(false); + }, + onLeaveChannel: function onLeaveChannel() { + logger.info('ChannelSettings: Leaving channel', channel); + channel.leave().then(function () { + logger.info('ChannelSettings: Leaving channel successful!', channel); + onCloseClick(); + }); + } + }))); +} + +ChannelSettings.propTypes = { + onCloseClick: PropTypes.func, + onChannelModified: PropTypes.func, + onBeforeUpdateChannel: PropTypes.func, + renderChannelProfile: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + channelUrl: PropTypes.string.isRequired, + queries: PropTypes.shape({ + applicationUserListQuery: PropTypes.shape({ + limit: PropTypes.number, + userIdsFilter: PropTypes.arrayOf(PropTypes.string), + metaDataKeyFilter: PropTypes.string, + metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string) + }) + }), + // from withSendbirdContext + stores: PropTypes.shape({ + sdkStore: PropTypes.shape({ + sdk: PropTypes.shape({ + getErrorFirstCallback: PropTypes.func, + GroupChannel: PropTypes.oneOfType([PropTypes.shape({ + getChannel: PropTypes.func + }), PropTypes.func]), + createApplicationUserListQuery: PropTypes.any + }), + initialized: PropTypes.bool + }) + }).isRequired, + config: PropTypes.shape({ + userId: PropTypes.string, + theme: PropTypes.string, + userListQuery: PropTypes.func, + isOnline: PropTypes.bool, + logger: PropTypes.shape({ + info: PropTypes.func, + error: PropTypes.func, + warning: PropTypes.func + }) + }).isRequired +}; +ChannelSettings.defaultProps = { + onBeforeUpdateChannel: null, + queries: {}, + disableUserProfile: false, + renderUserProfile: null, + renderChannelProfile: null, + onCloseClick: function onCloseClick() {}, + onChannelModified: function onChannelModified() {} +}; +var ChannelSettings$1 = LocalizationContext.withSendbirdContext(ChannelSettings); + +module.exports = ChannelSettings$1; +//# sourceMappingURL=ChannelSettings.js.map diff --git a/dist/cjs/ChannelSettings.js.map b/dist/cjs/ChannelSettings.js.map new file mode 100644 index 0000000..65ef3bc --- /dev/null +++ b/dist/cjs/ChannelSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ChannelSettings.js","sources":["../../../src/smart-components/ChannelSettings/components/EditDetails.jsx","../../../src/smart-components/ChannelSettings/components/ChannelProfile.jsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/MembersModal.tsx","../../../src/smart-components/ChannelSettings/components/MemebersAccordion.jsx","../../../src/smart-components/ChannelSettings/components/UserListItem.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/OperatorsModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/AddOperatorsModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/OperatorList.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/InviteMembersModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/MemberList.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/BannedMembersModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/BannedMemberList.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/MutedMembersModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/MutedMemberList.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/index.tsx","../../../src/smart-components/ChannelSettings/index.jsx"],"sourcesContent":["import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Modal from '../../../ui/Modal';\nimport Input, { InputLabel } from '../../../ui/Input';\nimport Avatar from '../../../ui/Avatar/index';\nimport { Type as ButtonType } from '../../../ui/Button/type';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport TextButton from '../../../ui/TextButton';\nimport ChannelAvatar from '../../../ui/ChannelAvatar/index';\n\nconst EditDetails = (props) => {\n const {\n onSubmit,\n onCancel,\n channel,\n userId,\n theme,\n } = props;\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const hiddenInputRef = useRef(null);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n const title = channel.name;\n return (\n {\n if (title !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(newFile, inputRef.current.value);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE}\n \n
\n {\n currentImg\n ? (\n \n ) : (\n \n )\n }\n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME}\n \n \n
\n \n \n );\n};\n\nEditDetails.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n channel: PropTypes.shape({\n name: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n theme: PropTypes.string.isRequired,\n};\n\nexport default EditDetails;\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './channel-profile.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport EditDetailsModal from './EditDetails';\nimport TextButton from '../../../ui/TextButton';\nimport ChannelAvatar from '../../../ui/ChannelAvatar/index';\n\nconst ChannelProfile = (props) => {\n const {\n disabled,\n channel,\n userId,\n theme,\n onChannelInfoChange,\n } = props;\n const title = channel.name;\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n
\n \n
\n \n {title}\n \n {\n if (disabled) { return; }\n setShowModal(true);\n }}\n notUnderline\n >\n \n {stringSet.CHANNEL_SETTING__PROFILE__EDIT}\n \n \n {\n showModal && (\n setShowModal(false)}\n onSubmit={onChannelInfoChange}\n channel={channel}\n userId={userId}\n theme={theme}\n />\n )\n }\n
\n
\n );\n};\n\nChannelProfile.propTypes = {\n channel: PropTypes.shape({\n name: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n theme: PropTypes.string,\n disabled: PropTypes.bool,\n onChannelInfoChange: PropTypes.func,\n};\n\nChannelProfile.defaultProps = {\n theme: 'light',\n disabled: false,\n onChannelInfoChange: () => { },\n};\n\nexport default ChannelProfile;\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n currentUser?: string;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function MembersModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const memberListQuery = channel.createMemberListQuery();\n memberListQuery.limit = 20;\n memberListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"All Members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n <>\n {channel.myRole === 'operator' && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if ((member.role !== 'operator')) {\n channel.addOperators([member.userId], () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n role: 'operator',\n };\n }\n return m;\n }));\n closeDropdown();\n });\n } else {\n channel.removeOperators([member.userId], () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n role: '',\n };\n }\n return m;\n }));\n closeDropdown();\n });\n }\n }}\n >\n { member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'}\n \n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n {\n if (member.isMuted) {\n channel.unmuteUser(member, () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n isMuted: false,\n };\n }\n return m;\n }));\n closeDropdown();\n })\n } else {\n channel.muteUser(member, () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n isMuted: true,\n };\n }\n return m;\n }));\n closeDropdown();\n });\n }\n }}\n >\n { member.isMuted ? 'Unmute' : 'Mute' }\n \n )\n }\n {\n channel.banUser(member, -1, '', () => {\n setMembers(members.filter(({ userId }) => {\n return userId !== member.userId;\n }));\n });\n }}\n >\n Ban\n \n \n )}\n />\n )}\n \n )}\n />\n ))}\n
\n \n \n );\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './members-accordion.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Button from '../../../ui/Button';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../ui/Button/type';\nimport Avatar from '../../../ui/Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport InviteMembers from '../../InviteMembers';\nimport MembersModal from './AdminPanel/MembersModal';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nconst SHOWN_MEMBER_MAX = 10;\n\nconst UserListItem = ({ member = {}, currentUser = '' }) => {\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n src={member.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: member,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n
\n \n
\n );\n};\n\nUserListItem.propTypes = {\n member: PropTypes.shape({\n userId: PropTypes.string,\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }).isRequired,\n currentUser: PropTypes.string.isRequired,\n};\n\nconst MemebersAccordion = ({\n channel,\n disabled,\n currentUser,\n userQueryCreator,\n onInviteMemebers,\n swapParams,\n}) => {\n const members = channel.members || [];\n const [showMoreModal, setShowMoreModal] = useState(false);\n const [showAddUserModal, setShowAddUserModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n {\n members.slice(0, SHOWN_MEMBER_MAX).map((member) => (\n \n ))\n }\n
\n
\n {\n members.length >= SHOWN_MEMBER_MAX && (\n setShowMoreModal(true)}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS}\n \n )\n }\n {\n members.length >= SHOWN_MEMBER_MAX && showMoreModal && (\n {\n setShowMoreModal(false);\n }}\n channel={channel}\n />\n )\n }\n {\n if (disabled) { return; }\n setShowAddUserModal(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__INVITE_MEMBER}\n \n {\n showAddUserModal && (\n setShowAddUserModal(false)}\n idsToFilter={members.map((member) => (member.userId))}\n userQueryCreator={userQueryCreator}\n onSubmit={onInviteMemebers}\n />\n )\n }\n
\n
\n );\n};\n\nMemebersAccordion.propTypes = {\n swapParams: PropTypes.bool,\n disabled: PropTypes.bool,\n channel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n currentUser: PropTypes.string,\n userQueryCreator: PropTypes.func.isRequired,\n onInviteMemebers: PropTypes.func.isRequired,\n};\n\nMemebersAccordion.defaultProps = {\n swapParams: false,\n currentUser: '',\n disabled: false,\n channel: {},\n};\n\nexport default MemebersAccordion;\n","// might move to reusable/UI\n\nimport React, { ReactElement, useRef, useContext } from 'react';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Avatar from '../../../ui/Avatar/index';\nimport MutedAvatarOverlay from '../../../ui/Avatar/MutedAvatarOverlay';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nimport './user-list-item.scss';\nimport { SendbirdTypes } from '../../../types';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item--small';\n\ninterface ActionProps {\n actionRef: React.RefObject;\n parentRef: React.RefObject;\n}\n\ntype CustomUser = SendbirdTypes['User'] & {\n isMuted: boolean;\n role: string;\n};\n\ninterface Props {\n user: CustomUser;\n currentUser?: string;\n className?: string;\n action?(props: ActionProps): ReactElement;\n}\n\nconst UserListItem = ({\n user,\n className,\n currentUser,\n action,\n}: Props): ReactElement => {\n const actionRef = useRef(null);\n const parentRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const injectingClassNames = Array.isArray(className) ? className : [className];\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n \" (You)\"\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n \n );\n}\n\nexport default UserListItem;\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n currentUser?: string;\n}\n\nexport default function OperatorsModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [operators, setOperators] = useState([]);\n const [operatorQuery, setOperatorQuery] = useState(null);\n\n useEffect(() => {\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 20;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n });\n setOperatorQuery(operatorListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"All operators\"\n >\n {\n const { hasNext } = operatorQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n operatorQuery.next((o, error) => {\n if (error) {\n return;\n }\n setOperators([\n ...operators,\n ...o,\n ])\n });\n }\n }}\n >\n { operators.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.removeOperators([member.userId], (response, error) => {\n if (error) {\n return;\n }\n setOperators(operators.filter(({ userId }) => {\n return userId !== member.userId;\n }));\n });\n closeDropdown();\n }}\n >\n Dismiss operator\n \n \n )}\n />\n )}\n />\n ))}\n
\n \n \n )\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport Modal from '../../../../ui/Modal';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport { Type as ButtonType } from '../../../../ui/Button/type';\nimport UserListItem from '../../../../ui/UserListItem';\n\ninterface Props {\n hideModal(): void;\n onSubmit(members: string[]): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function AddOperatorsModal({\n hideModal,\n channel,\n onSubmit,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [selectedMembers, setSelectedMembers] = useState({});\n const [memberQuery, setMemberQuery] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n const memberListQuery = channel.createMemberListQuery();\n memberListQuery.limit = 20;\n memberListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberListQuery);\n }, [])\n\n const selectedCount = Object.keys(selectedMembers).filter((m) => selectedMembers[m]).length;\n return (\n
\n hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n {\n const modifiedSelectedMembers = {\n ...selectedMembers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedMembers[event.target.id];\n }\n setSelectedMembers(modifiedSelectedMembers);\n }\n }\n user={member}\n key={member.userId}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n useContext,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport OperatorsModal from './OperatorsModal';\nimport AddOperatorsModal from './AddOperatorsModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const OperatorList = ({ sdk, channel }: Props): ReactElement => {\n const [operators, setOperators] = useState([]);\n const [showMore, setShowMore] = useState(false);\n const [showAdd, setShowAdd] = useState(false);\n const [hasNext, setHasNext] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n if (!channel) {\n setOperators([]);\n return;\n }\n\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 10;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n }, [channel]);\n\n const refershList = useCallback(\n () => {\n if (!channel) {\n setOperators([]);\n return;\n }\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 10;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n },\n [channel],\n );\n\n return (\n <>\n {\n operators.map((operator) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.removeOperators([operator.userId], (response, error) => {\n if (error) {\n return;\n }\n setOperators(operators.filter(({ userId }) => {\n return userId !== operator.userId;\n }))\n });\n closeDropdown();\n }}\n >\n Dismiss operator\n \n \n )}\n />\n );\n }}\n />\n ))\n }\n {\n hasNext && (\n \n {\n setShowMore(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ALL}\n \n {\n setShowAdd(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ADD}\n \n \n )\n }\n {\n showMore && (\n {\n setShowMore(false);\n refershList();\n }}\n channel={channel}\n />\n )\n }\n {\n showAdd && (\n setShowAdd(false)}\n channel={channel}\n onSubmit={(members) => {\n setShowAdd(false);\n channel.addOperators(members, () => {\n refershList();\n });\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(OperatorList, mapStoreToProps);\n","import React, { ReactElement, useEffect, useState } from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport { Type as ButtonType } from '../../../../ui/Button/type';\nimport UserListItem from '../../../../ui/UserListItem';\n\ninterface Props {\n hideModal(): void;\n onSubmit(members: string[]): void;\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport default function InviteMembers({\n hideModal,\n userQueryCreator,\n onSubmit,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [selectedMembers, setSelectedMembers] = useState({});\n const [userQuery, setUserQuery] = useState(null);\n\n useEffect(() => {\n const userListQuery = userQueryCreator();\n userListQuery.limit = 20;\n userListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setUserQuery(userListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n {\n const { hasNext } = userQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n userQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n {\n const modifiedSelectedMembers = {\n ...selectedMembers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedMembers[event.target.id];\n }\n setSelectedMembers(modifiedSelectedMembers);\n }\n }\n user={member}\n key={member.userId}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport MembersModal from './MembersModal';\nimport InviteMembers from './InviteMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes['SendBirdInstance'];\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport const MemberList = ({ sdk, channel, userQueryCreator }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showAllMembers, setShowAllMembers] = useState(false);\n const [showInviteMembers, setShowInviteMembers] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refershList = useCallback(\n () => {\n if (!channel) {\n setMembers([]);\n return;\n }\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n },\n [channel],\n );\n\n return (\n <>\n {\n members.map((member) => (\n {\n return ( (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if ((member.role !== 'operator')) {\n channel.addOperators([member.userId], () => {\n refershList();\n closeDropdown();\n });\n } else {\n channel.removeOperators([member.userId], () => {\n refershList();\n closeDropdown();\n });\n }\n }}\n >\n { member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'}\n \n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n {\n if (member.isMuted) {\n channel.unmuteUser(member, () => {\n refershList();\n closeDropdown();\n })\n } else {\n channel.muteUser(member, () => {\n refershList();\n closeDropdown();\n });\n }\n }}\n >\n { member.isMuted ? 'Unmute' : 'Mute' }\n \n )\n }\n {\n channel.banUser(member, -1, '', () => {\n refershList();\n closeDropdown();\n });\n }}\n >\n Ban\n \n \n )}\n />)}\n }\n />\n ))\n }\n \n {\n hasNext && (\n setShowAllMembers(true)}\n >\n All members\n \n )\n }\n setShowInviteMembers(true)}\n >\n Invite members\n \n \n {\n showAllMembers && (\n {\n setShowAllMembers(false);\n refershList();\n }}\n />\n )\n }\n {\n showInviteMembers && (\n {\n channel.inviteWithUserIds(selectedMemebers, () => {\n setShowInviteMembers(false);\n refershList();\n });\n }}\n channel={channel}\n hideModal={() => setShowInviteMembers(false)}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(MemberList, mapStoreToProps);\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function BannedMembersModal({\n hideModal,\n channel,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next((users, error) => {\n if (error) {\n return;\n }\n setMembers(users);\n });\n setMemberQuery(bannedUserListQuery);\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unbanUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unban\n \n \n )}\n />\n )\n }\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport BannedMembersModal from './BannedMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const BannedMemberList = ({ channel }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next((users, error) => {\n if (error) {\n return;\n }\n setMembers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next(function(users, error) {\n if (error) {\n return;\n }\n setMembers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n members.map((member) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unbanUser(member, () => {\n closeDropdown();\n refreshList();\n })\n }}\n >\n Unban\n \n \n )}\n />\n )\n }}\n />\n ))\n }\n {\n members && members.length === 0 && (\n \n No banned members yet\n \n )\n }\n {\n hasNext && (\n \n {\n setShowModal(true);\n }}\n >\n All banned members\n \n \n )\n }\n {\n showModal && (\n {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(BannedMemberList, mapStoreToProps);\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n currentUser?: string;\n}\n\nexport default function MutedMembersModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberUserListQuery);\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unmuteUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unmute\n \n \n )}\n />\n )}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport MutedMembersModal from './MutedMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const MutedMemberList = ({ sdk, channel }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n members.map((member) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unmuteUser(member, () => {\n refreshList();\n closeDropdown();\n })\n }}\n >\n Unmute\n \n \n )}\n />\n );\n }\n }\n />\n ))\n }\n {\n members && members.length === 0 && (\n \n No muted members yet\n \n )\n }\n {\n hasNext && (\n \n {\n setShowModal(true);\n }}\n >\n All muted members\n \n \n )\n }\n {\n showModal && (\n {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(MutedMemberList, mapStoreToProps);\n","import './index.scss';\nimport React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react';\nimport { SendbirdTypes } from '../../../../types';\n\nimport Accordion, { AccordionGroup } from '../../../../ui/Accordion';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport Badge from '../../../../ui/Badge';\n\nimport OperatorList from './OperatorList';\nimport MemberList from './MemberList';\nimport BannedMemberList from './BannedMemberList';\nimport MutedMemberList from './MutedMemberList';\n\nconst kFormatter = (num: number): string|number => {\n return Math.abs(num) > 999\n ? `${(Math.abs(num)/1000).toFixed(1)}K`\n : num;\n}\n\ninterface Props {\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport default function index({\n userQueryCreator,\n channel,\n}: Props): ReactElement {\n const [frozen, setFrozen] = useState(false);\n\n // work around for\n // https://sendbird.slack.com/archives/G01290GCDCN/p1595922832000900\n // SDK bug - after frozen/unfrozen myRole becomes \"none\"\n useEffect(() => {\n setFrozen(channel.isFrozen);\n }, [channel]);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__MEMBERS__TITLE}\n \n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__MUTED_MEMBERS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n )\n }\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__BANNED_MEMBERS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n {\n // cannot frozen broadcast channel\n !channel.isBroadcast && (\n
\n \n \n {stringSet.CHANNEL_SETTING__FREEZE_CHANNEL}\n \n
\n {\n frozen\n ? (\n {\n channel.unfreeze(() => {\n setFrozen(false);\n });\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n {\n channel.freeze(() => {\n setFrozen(true);\n });\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n
\n
\n )\n }\n
\n );\n}\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport './index.scss';\nimport Badge from '../../ui/Badge';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../ui/Icon';\nimport IconButton from '../../ui/IconButton';\n\nimport ChannelProfile from './components/ChannelProfile';\nimport MemebersAccordion from './components/MemebersAccordion';\nimport LeaveChannelModal from './components/LeaveChannel';\nimport AdminPanel from './components/AdminPanel';\nimport PlaceHolder from '../../ui/PlaceHolder';\nimport PlaceHolderTypes from '../../ui/PlaceHolder/type';\nimport { uuidv4 } from '../../utils/uuid';\nimport { createDefaultUserListQuery } from '../ChannelList/components/utils';\n\n\nconst kFormatter = (num) => (\n Math.abs(num) > 999\n ? `${(Math.abs(num) / 1000).toFixed(1)}K`\n : num\n);\n\nfunction ChannelSettings(props) {\n const {\n onCloseClick,\n channelUrl,\n disableUserProfile,\n renderUserProfile,\n onChannelModified,\n renderChannelProfile,\n onBeforeUpdateChannel,\n } = props;\n\n const {\n stores: { sdkStore },\n config: {\n userListQuery,\n theme,\n userId,\n logger,\n isOnline,\n },\n queries = {},\n } = props;\n\n const { config = {} } = props;\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const userFilledApplicationUserListQuery = queries.applicationUserListQuery;\n const { stringSet } = useContext(LocalizationContext);\n\n const { sdk, initialized } = sdkStore;\n\n // hack to kepp track of channel updates by triggering useEffect\n const [channelUpdateId, setChannelUpdateId] = useState(uuidv4());\n const [channel, setChannel] = useState(null);\n const [invalidChannel, setInvalidChannel] = useState(false);\n const [showAccordion, setShowAccordion] = useState(false);\n const [showLeaveChannelModal, setShowLeaveChannelModal] = useState(false);\n\n useEffect(() => {\n logger.info('ChannelSettings: Setting up');\n if (!channelUrl || !initialized || !sdk) {\n logger.warning('ChannelSettings: Setting up failed', 'No channelUrl or sdk uninitialized');\n setInvalidChannel(false);\n } else {\n if (!sdk || !sdk.GroupChannel) {\n logger.warning('ChannelSettings: No GroupChannel');\n return;\n }\n sdk.GroupChannel.getChannel(channelUrl, (groupChannel) => {\n if (!groupChannel) {\n logger.warning('ChannelSettings: Channel not found');\n setInvalidChannel(true);\n } else {\n logger.info('ChannelSettings: Fetched group channel', groupChannel);\n setInvalidChannel(false);\n setChannel(groupChannel);\n }\n });\n }\n }, [channelUrl, initialized, channelUpdateId]);\n\n if (!channel || invalidChannel) {\n return (\n
\n
\n \n {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n />\n
\n
\n \n
\n
\n );\n }\n\n return (\n \n
\n \n
\n {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n >\n \n \n
\n
\n
\n {\n renderChannelProfile\n ? renderChannelProfile({ channel })\n : (\n {\n logger.info('ChannelSettings: Channel information being updated');\n const swapParams = sdk.getErrorFirstCallback();\n if (onBeforeUpdateChannel) {\n const params = onBeforeUpdateChannel(currentTitle, currentImg, channel.data);\n // swapParams\n channel.updateChannel(params, (response, error) => {\n let groupChannel = response;\n if (swapParams) {\n groupChannel = error;\n }\n\n onChannelModified(groupChannel);\n setChannelUpdateId(uuidv4());\n });\n return;\n }\n channel.updateChannel(\n currentTitle,\n currentImg,\n channel.data,\n (response, error) => {\n let groupChannel = response;\n if (swapParams) {\n groupChannel = error;\n }\n logger.info('ChannelSettings: Channel information updated', groupChannel);\n onChannelModified(groupChannel);\n setChannelUpdateId(uuidv4());\n },\n );\n }}\n />\n )\n }\n {\n channel.myRole === 'operator'\n ? (\n {\n // setChannelUpdateId(uuidv4());\n onChannelModified(groupChannel);\n }}\n userQueryCreator={\n () => ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )\n }\n />\n )\n : (\n <>\n {/* Move to different file */}\n setShowAccordion(!showAccordion)}\n className={`\n sendbird-channel-settings__panel-item\n sendbird-channel-settings__members\n `}\n onClick={() => setShowAccordion(!showAccordion)}\n >\n \n \n {`${stringSet.CHANNEL_SETTING__MEMBERS__TITLE}`}\n \n \n \n
\n {\n showAccordion && (\n ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )\n }\n swapParams={\n sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback()\n }\n channel={channel}\n members={channel.members}\n onInviteMemebers={(selectedMemebers) => {\n logger.info('ChannelSettings: Inviting new users');\n channel.inviteWithUserIds(selectedMemebers)\n .then((res) => {\n onChannelModified(res);\n setChannelUpdateId(uuidv4());\n logger.info('ChannelSettings: Inviting new users success!', res);\n });\n }}\n />\n )\n }\n \n )\n }\n\n {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n onClick={() => {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n >\n \n \n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n \n \n {\n showLeaveChannelModal && (\n setShowLeaveChannelModal(false)}\n onLeaveChannel={() => {\n logger.info('ChannelSettings: Leaving channel', channel);\n channel.leave()\n .then(() => {\n logger.info('ChannelSettings: Leaving channel successful!', channel);\n onCloseClick();\n });\n }}\n />\n )\n }\n \n \n );\n}\n\nChannelSettings.propTypes = {\n onCloseClick: PropTypes.func,\n onChannelModified: PropTypes.func,\n onBeforeUpdateChannel: PropTypes.func,\n renderChannelProfile: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n channelUrl: PropTypes.string.isRequired,\n queries: PropTypes.shape({\n applicationUserListQuery: PropTypes.shape({\n limit: PropTypes.number,\n userIdsFilter: PropTypes.arrayOf(PropTypes.string),\n metaDataKeyFilter: PropTypes.string,\n metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n // from withSendbirdContext\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n GroupChannel: PropTypes.oneOfType([\n PropTypes.shape({\n getChannel: PropTypes.func,\n }),\n PropTypes.func,\n ]),\n createApplicationUserListQuery: PropTypes.any,\n }),\n initialized: PropTypes.bool,\n }),\n }).isRequired,\n config: PropTypes.shape({\n userId: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n isOnline: PropTypes.bool,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n }).isRequired,\n};\n\nChannelSettings.defaultProps = {\n onBeforeUpdateChannel: null,\n queries: {},\n disableUserProfile: false,\n renderUserProfile: null,\n renderChannelProfile: null,\n onCloseClick: () => { },\n onChannelModified: () => { },\n};\n\nexport default withSendbirdContext(ChannelSettings);\n"],"names":["EditDetails","props","onSubmit","onCancel","channel","userId","theme","inputRef","useRef","formRef","hiddenInputRef","useState","currentImg","setCurrentImg","newFile","setNewFile","useContext","LocalizationContext","stringSet","title","name","React","Modal","MODAL__CHANNEL_INFORMATION__TITLE","BUTTON__SAVE","current","value","reportValidity","ButtonType","PRIMARY","e","preventDefault","InputLabel","MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE","Avatar","ChannelAvatar","display","URL","createObjectURL","target","files","TextButton","click","Label","LabelTypography","BUTTON_1","LabelColors","MODAL__CHANNEL_INFORMATION__UPLOAD","MODAL__CHANNEL_INFORMATION__CHANNEL_NAME","Input","MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER","propTypes","PropTypes","func","isRequired","shape","string","ChannelProfile","disabled","onChannelInfoChange","showModal","setShowModal","SUBTITLE_2","ONBACKGROUND_1","ONBACKGROUND_2","CHANNEL_SETTING__PROFILE__EDIT","EditDetailsModal","bool","defaultProps","MembersModal","_a","hideModal","currentUser","_b","members","setMembers","_c","memberQuery","setMemberQuery","useEffect","memberListQuery","createMemberListQuery","limit","next","error","noop","hasNext","fetchMore","clientHeight","scrollTop","scrollHeight","o","map","member","UserListItem","parentRef","actionRef","myRole","ContextMenu","toggleDropdown","IconButton","Icon","IconTypes","MORE","IconColors","CONTENT_INVERSE","closeDropdown","MenuItems","MenuItem","role","addOperators","m","removeOperators","isBroadcast","isMuted","unmuteUser","muteUser","banUser","filter","SHOWN_MEMBER_MAX","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","profileUrl","paddingTop","paddingBottom","user","currentUserId","close","UserProfile","nickname","NO_NAME","MemebersAccordion","userQueryCreator","onInviteMemebers","swapParams","showMoreModal","setShowMoreModal","showAddUserModal","setShowAddUserModal","slice","length","Button","ButtonTypes","SECONDARY","ButtonSizes","SMALL","CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS","CHANNEL_SETTING__MEMBERS__INVITE_MEMBER","InviteMembers","MODAL__INVITE_MEMBER__TITLE","BUTTON__INVITE","arrayOf","COMPONENT_NAME","className","action","injectingClassNames","Array","isArray","__spreadArrays","join","MutedAvatarOverlay","SUBTITLE_1","CAPTION_3","OperatorsModal","operators","setOperators","operatorQuery","setOperatorQuery","operatorListQuery","createOperatorListQuery","response","AddOperatorsModal","selectedMembers","setSelectedMembers","_d","selectedCount","Object","keys","ONBACKGROUND_3","CAPTION_1","MODAL__INVITE_MEMBER__SELECTEC","event","modifiedSelectedMembers","id","checked","OperatorList","sdk","showMore","setShowMore","showAdd","setShowAdd","_e","setHasNext","refershList","useCallback","operator","CHANNEL_SETTING__OPERATORS__TITLE_ALL","CHANNEL_SETTING__OPERATORS__TITLE_ADD","mapStoreToProps","store","getSdk","withSendbirdContext","userQuery","setUserQuery","userListQuery","MemberList","showAllMembers","setShowAllMembers","showInviteMembers","setShowInviteMembers","memberUserListQuery","selectedMemebers","inviteWithUserIds","BannedMembersModal","bannedUserListQuery","createBannedUserListQuery","users","unbanUser","BannedMemberList","refreshList","MutedMembersModal","mutedMemberFilter","MutedMemberList","kFormatter","num","Math","abs","toFixed","index","frozen","setFrozen","isFrozen","AccordionGroup","Accordion","ICON_OPERATOR","CHANNEL_SETTING__OPERATORS__TITLE","MEMBERS","CHANNEL_SETTING__MEMBERS__TITLE","Badge","memberCount","ICON_MUTED","CHANNEL_SETTING__MUTED_MEMBERS__TITLE","ICON_BANNED","CHANNEL_SETTING__BANNED_MEMBERS__TITLE","FROZEN_LIGHT","CHANNEL_SETTING__FREEZE_CHANNEL","unfreeze","TOGGLE_ON","freeze","TOGGLE_OFF","ChannelSettings","onCloseClick","channelUrl","onChannelModified","renderChannelProfile","onBeforeUpdateChannel","sdkStore","stores","config","logger","isOnline","queries","userDefinedDisableUserProfile","userDefinedRenderProfile","userFilledApplicationUserListQuery","applicationUserListQuery","initialized","uuidv4","channelUpdateId","setChannelUpdateId","setChannel","invalidChannel","setInvalidChannel","showAccordion","setShowAccordion","showLeaveChannelModal","setShowLeaveChannelModal","info","warning","GroupChannel","getChannel","groupChannel","H_2","CHANNEL_SETTING__HEADER__TITLE","CLOSE","PlaceHolder","PlaceHolderTypes","WRONG","UserProfileProvider","currentTitle","getErrorFirstCallback","params","data","updateChannel","AdminPanel","createDefaultUserListQuery","SHEVRON","then","res","LEAVE","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","LeaveChannelModal","leave","oneOfType","element","number","userIdsFilter","metaDataKeyFilter","metaDataValuesFilter","createApplicationUserListQuery","any"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/LeaveChannel-cb2a36b0.js b/dist/cjs/LeaveChannel-cb2a36b0.js new file mode 100644 index 0000000..5441902 --- /dev/null +++ b/dist/cjs/LeaveChannel-cb2a36b0.js @@ -0,0 +1,301 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +var PropTypes = _interopDefault(require('prop-types')); +var index = require('./index-710314fd.js'); +var index$2 = require('./index-6ca9e95e.js'); + +function Badge(_ref) { + var count = _ref.count, + maxLevel = _ref.maxLevel, + className = _ref.className; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var maximumNumber = parseInt('9'.repeat(maxLevel > 6 ? 6 : maxLevel), 10); + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), ['sendbird-badge']).join(' ') + }, React__default.createElement("div", { + className: "sendbird-badge__text" + }, React__default.createElement(index.Label, { + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONCONTENT_1 + }, count > maximumNumber ? "".concat(maximumNumber).concat(stringSet.BADGE__OVER) : count))); +} +Badge.propTypes = { + count: PropTypes.number.isRequired, + maxLevel: PropTypes.number, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +Badge.defaultProps = { + maxLevel: 2, + className: [] +}; + +var filterUser = function filterUser(idsToFilter) { + return function (currentId) { + return idsToFilter.includes(currentId); + }; +}; + +var InviteMembers = function InviteMembers(props) { + var userQueryCreator = props.userQueryCreator, + closeModal = props.closeModal, + _onSubmit = props.onSubmit, + submitText = props.submitText, + titleText = props.titleText, + idsToFilter = props.idsToFilter, + swapParams = props.swapParams; + + var _useState = React.useState([]), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + users = _useState2[0], + setUsers = _useState2[1]; + + var _useState3 = React.useState({}), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + selectedUsers = _useState4[0], + setSelectedUsers = _useState4[1]; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var _useState5 = React.useState({}), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + usersDataSource = _useState6[0], + setUsersDataSource = _useState6[1]; + + var selectedCount = Object.keys(selectedUsers).length; + React.useEffect(function () { + var applicationUserListQuery = userQueryCreator(); + setUsersDataSource(applicationUserListQuery); + applicationUserListQuery.next(function (res, err) { + // eslint-disable-next-line no-underscore-dangle + var users_ = res; + var error = err; + + if (swapParams) { + users_ = err; + error = users_; + } + + if (error) { + return; + } + + setUsers(users_); + }); + }, []); + return React__default.createElement(index.Modal, { + onCancel: closeModal, + onSubmit: function onSubmit() { + var selectedUserList = Object.keys(selectedUsers); + + if (selectedUserList.length > 0) { + _onSubmit(selectedUserList); + + closeModal(); + } + }, + submitText: submitText, + titleText: titleText, + type: index.Type.PRIMARY + }, React__default.createElement("div", null, React__default.createElement(index.Label, { + color: selectedCount > 0 ? index.LabelColors.PRIMARY : index.LabelColors.ONBACKGROUND_3, + type: index.LabelTypography.CAPTION_1 + }, "".concat(selectedCount, " ").concat(stringSet.MODAL__INVITE_MEMBER__SELECTEC)), React__default.createElement("div", { + className: "sendbird-create-channel--scroll", + onScroll: function onScroll(e) { + var hasNext = usersDataSource.hasNext; + var fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight; + + if (hasNext && fetchMore) { + usersDataSource.next(function (usersBatch, error) { + if (error) { + return; + } + + setUsers([].concat(LocalizationContext._toConsumableArray(users), LocalizationContext._toConsumableArray(usersBatch))); + }); + } + } + }, users.map(function (user) { + return !filterUser(idsToFilter)(user.userId) && React__default.createElement(index$2.UserListItem, { + key: user.userId, + user: user, + checkBox: true, + checked: selectedUsers[user.userId], + onChange: function onChange(event) { + var modifiedSelectedUsers = LocalizationContext._objectSpread2({}, selectedUsers, LocalizationContext._defineProperty({}, event.target.id, event.target.checked)); + + if (!event.target.checked) { + delete modifiedSelectedUsers[event.target.id]; + } + + setSelectedUsers(modifiedSelectedUsers); + } + }); + })))); +}; + +InviteMembers.propTypes = { + idsToFilter: PropTypes.arrayOf(PropTypes.string), + swapParams: PropTypes.bool, + userQueryCreator: PropTypes.func.isRequired, + closeModal: PropTypes.func.isRequired, + onSubmit: PropTypes.func.isRequired, + submitText: PropTypes.string, + titleText: PropTypes.string +}; +InviteMembers.defaultProps = { + swapParams: false, + submitText: 'create', + titleText: 'Create new channel', + idsToFilter: [] +}; + +var createDefaultUserListQuery = function createDefaultUserListQuery(_ref) { + var sdk = _ref.sdk, + _ref$userFilledApplic = _ref.userFilledApplicationUserListQuery, + userFilledApplicationUserListQuery = _ref$userFilledApplic === void 0 ? {} : _ref$userFilledApplic; + var params = sdk.createApplicationUserListQuery(); + + if (userFilledApplicationUserListQuery) { + Object.keys(userFilledApplicationUserListQuery).forEach(function (key) { + params[key] = userFilledApplicationUserListQuery[key]; + }); + } + + return params; +}; + +var getApplicationAttributes = function getApplicationAttributes() { + var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _sdk$appInfo = sdk.appInfo, + appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; + var _appInfo$applicationA = appInfo.applicationAttributes, + applicationAttributes = _appInfo$applicationA === void 0 ? [] : _appInfo$applicationA; + return applicationAttributes; +}; + +var isBroadcastChannelEnabled = function isBroadcastChannelEnabled() { + var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel'; + var applicationAttributes = getApplicationAttributes(sdk); + + if (Array.isArray(applicationAttributes)) { + return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL); + } + + return false; +}; +var isSuperGroupChannelEnabled = function isSuperGroupChannelEnabled() { + var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel'; + var applicationAttributes = getApplicationAttributes(sdk); + + if (Array.isArray(applicationAttributes)) { + return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL); + } + + return false; +}; +var setChannelType = function setChannelType(params, type) { + if (type === 'broadcast') { + // eslint-disable-next-line no-param-reassign + params.isBroadcast = true; + } + + if (type === 'supergroup') { + // eslint-disable-next-line no-param-reassign + params.isSuper = true; + } + + return params; +}; +var createChannel = function createChannel(sdk, selectedUsers, onBeforeCreateChannel, userId) { + var type = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'group'; + return new Promise(function (resolve, reject) { + // have custom params + if (onBeforeCreateChannel) { + var _params = onBeforeCreateChannel(selectedUsers); + + setChannelType(_params, type); + sdk.GroupChannel.createChannel(_params, function (response, error) { + var swapParams = sdk.getErrorFirstCallback(); + var groupChannel = response; + var err = error; + + if (swapParams) { + groupChannel = error; + err = response; + } + + if (err) { + reject(err); + } + + resolve(groupChannel); + }); + return; + } + + var params = new sdk.GroupChannelParams(); + params.addUserIds(selectedUsers); + params.isDistinct = false; + + if (userId) { + params.operatorUserIds = [userId]; + } + + setChannelType(params, type); // do not have custom params + + sdk.GroupChannel.createChannel(params, function (response, error) { + var swapParams = sdk.getErrorFirstCallback(); + var groupChannel = response; + var err = error; + + if (swapParams) { + groupChannel = error; + err = response; + } + + if (err) { + reject(err); + } + + resolve(groupChannel); + }); + }); +}; + +var LeaveChannel = function LeaveChannel(props) { + var onCloseModal = props.onCloseModal, + onLeaveChannel = props.onLeaveChannel; + return React__default.createElement(index.Modal, { + onCancel: onCloseModal, + onSubmit: onLeaveChannel, + submitText: "Leave", + titleText: "Leave this channel?" + }); +}; + +LeaveChannel.propTypes = { + onCloseModal: PropTypes.func.isRequired, + onLeaveChannel: PropTypes.func.isRequired +}; + +exports.Badge = Badge; +exports.InviteMembers = InviteMembers; +exports.LeaveChannelModal = LeaveChannel; +exports.createChannel = createChannel; +exports.createDefaultUserListQuery = createDefaultUserListQuery; +exports.isBroadcastChannelEnabled = isBroadcastChannelEnabled; +exports.isSuperGroupChannelEnabled = isSuperGroupChannelEnabled; +//# sourceMappingURL=LeaveChannel-cb2a36b0.js.map diff --git a/dist/cjs/LeaveChannel-cb2a36b0.js.map b/dist/cjs/LeaveChannel-cb2a36b0.js.map new file mode 100644 index 0000000..2bc6b63 --- /dev/null +++ b/dist/cjs/LeaveChannel-cb2a36b0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LeaveChannel-fcc0bfc3.js","sources":["../../../src/ui/Badge/index.jsx","../../../src/smart-components/InviteMembers/index.jsx","../../../src/smart-components/ChannelList/components/utils.js","../../../src/smart-components/ChannelSettings/components/LeaveChannel.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function Badge({\n count,\n maxLevel,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const maximumNumber = parseInt('9'.repeat((maxLevel > 6) ? 6 : maxLevel), 10);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n
\n \n
\n
\n );\n}\n\nBadge.propTypes = {\n count: PropTypes.number.isRequired,\n maxLevel: PropTypes.number,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nBadge.defaultProps = {\n maxLevel: 2,\n className: [],\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Modal from '../../ui/Modal';\nimport { Type as ButtonTypes } from '../../ui/Button/type';\nimport UserListItem from '../../ui/UserListItem';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst filterUser = (idsToFilter) => (currentId) => idsToFilter.includes(currentId);\n\nconst InviteMembers = (props) => {\n const {\n userQueryCreator,\n closeModal,\n onSubmit,\n submitText,\n titleText,\n idsToFilter,\n swapParams,\n } = props;\n\n const [users, setUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState({});\n const { stringSet } = useContext(LocalizationContext);\n const [usersDataSource, setUsersDataSource] = useState({});\n const selectedCount = Object.keys(selectedUsers).length;\n\n useEffect(() => {\n const applicationUserListQuery = userQueryCreator();\n setUsersDataSource(applicationUserListQuery);\n applicationUserListQuery.next((res, err) => {\n // eslint-disable-next-line no-underscore-dangle\n let users_ = res;\n let error = err;\n if (swapParams) {\n users_ = err;\n error = users_;\n }\n if (error) {\n return;\n }\n setUsers(users_);\n });\n }, []);\n\n return (\n {\n const selectedUserList = Object.keys(selectedUsers);\n if (selectedUserList.length > 0) {\n onSubmit(selectedUserList);\n closeModal();\n }\n }}\n submitText={submitText}\n titleText={titleText}\n type={ButtonTypes.PRIMARY}\n >\n
\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = usersDataSource;\n const fetchMore = (\n e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n usersDataSource.next((usersBatch, error) => {\n if (error) {\n return;\n }\n setUsers([\n ...users,\n ...usersBatch,\n ]);\n });\n }\n }}\n >\n {\n users.map((user) => (!filterUser(idsToFilter)(user.userId)) && (\n {\n const modifiedSelectedUsers = {\n ...selectedUsers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedUsers[event.target.id];\n }\n setSelectedUsers(modifiedSelectedUsers);\n }\n }\n />\n ))\n }\n
\n \n \n );\n};\n\nInviteMembers.propTypes = {\n idsToFilter: PropTypes.arrayOf(PropTypes.string),\n swapParams: PropTypes.bool,\n userQueryCreator: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string,\n titleText: PropTypes.string,\n};\nInviteMembers.defaultProps = {\n swapParams: false,\n submitText: 'create',\n titleText: 'Create new channel',\n idsToFilter: [],\n};\n\nexport default InviteMembers;\n","export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n const params = sdk.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.GroupChannel.createChannel(params, (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.GroupChannel.createChannel(\n params,\n (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n },\n );\n});\n\nexport default createChannel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\n\nconst LeaveChannel = (props) => {\n const {\n onCloseModal,\n onLeaveChannel,\n } = props;\n return (\n \n );\n};\n\nLeaveChannel.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nexport default LeaveChannel;\n"],"names":["Badge","count","maxLevel","className","useContext","LocalizationContext","stringSet","maximumNumber","parseInt","repeat","injectingClassName","Array","isArray","React","join","Label","LabelTypography","CAPTION_2","LabelColors","ONCONTENT_1","BADGE__OVER","propTypes","PropTypes","number","isRequired","oneOfType","string","arrayOf","defaultProps","filterUser","idsToFilter","currentId","includes","InviteMembers","props","userQueryCreator","closeModal","onSubmit","submitText","titleText","swapParams","useState","users","setUsers","selectedUsers","setSelectedUsers","usersDataSource","setUsersDataSource","selectedCount","Object","keys","length","useEffect","applicationUserListQuery","next","res","err","users_","error","Modal","selectedUserList","ButtonTypes","PRIMARY","ONBACKGROUND_3","CAPTION_1","MODAL__INVITE_MEMBER__SELECTEC","e","hasNext","fetchMore","target","clientHeight","scrollTop","scrollHeight","usersBatch","map","user","userId","UserListItem","event","modifiedSelectedUsers","id","checked","bool","func","createDefaultUserListQuery","sdk","userFilledApplicationUserListQuery","params","createApplicationUserListQuery","forEach","key","getApplicationAttributes","appInfo","applicationAttributes","isBroadcastChannelEnabled","ALLOW_BROADCAST_CHANNEL","isSuperGroupChannelEnabled","ALLOW_SUPER_GROUP_CHANNEL","setChannelType","type","isBroadcast","isSuper","createChannel","onBeforeCreateChannel","Promise","resolve","reject","GroupChannel","response","getErrorFirstCallback","groupChannel","GroupChannelParams","addUserIds","isDistinct","operatorUserIds","LeaveChannel","onCloseModal","onLeaveChannel"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/LocalizationContext-7c9df62c.js b/dist/cjs/LocalizationContext-7c9df62c.js new file mode 100644 index 0000000..3a72a28 --- /dev/null +++ b/dist/cjs/LocalizationContext-7c9df62c.js @@ -0,0 +1,383 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var React = require('react'); +var React__default = _interopDefault(React); + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); +} + +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); +} + +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); +} + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; + + return arr2; + } +} + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +function _iterableToArray(iter) { + if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); +} + +function _iterableToArrayLimit(arr, i) { + if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { + return; + } + + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance"); +} + +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); +} + +var SendbirdSdkContext = React__default.createContext(); + +var withSendbirdContext = function withSendbirdContext(OriginalComponent, mapStoreToProps) { + var ContextAwareComponent = function ContextAwareComponent(props) { + return React__default.createElement(SendbirdSdkContext.Consumer, null, function (context) { + if (mapStoreToProps && typeof mapStoreToProps !== 'function') { + // eslint-disable-next-line no-console + console.warn('Second parameter to withSendbirdContext must be a pure function'); + } // todo - memoize + + + var mergedProps = mapStoreToProps && typeof mapStoreToProps === 'function' ? _objectSpread2({}, mapStoreToProps(context), {}, props) : _objectSpread2({}, context, {}, props); // eslint-disable-next-line react/jsx-props-no-spreading + + return React__default.createElement(OriginalComponent, mergedProps); + }); + }; + + var componentName = OriginalComponent.displayName || OriginalComponent.name || 'Component'; + ContextAwareComponent.displayName = "SendbirdAware".concat(componentName); + return ContextAwareComponent; +}; + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +exports.__assign = function() { + exports.__assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return exports.__assign.apply(this, arguments); +}; + +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +} + +/* eslint-disable no-bitwise */ + +/* eslint-disable eqeqeq */ + +/* eslint-disable no-mixed-operators */ +// https://stackoverflow.com/a/2117523 +// used mainly for dom key generation +var uuidv4 = function uuidv4() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0; + var v = c === 'x' ? r : r & 0x3 | 0x8; + return v.toString(16); + }); +}; + +var getStringSet = function getStringSet() { + var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en'; + var stringSet = { + en: { + OPEN_CHANNEL_SETTINGS__OPERATOR_TITLE: 'Channel Information', + OPEN_CHANNEL_SETTINGS__OPERATOR_URL: 'URL', + OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE: 'Participants', + OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL: 'Delete channel', + OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE: 'Delete this channel', + OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT: 'Delete', + OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE: 'Participants', + OPEN_CHANNEL_SETTINGS__EMPTY_LIST: 'No participants yet', + OPEN_CHANNEL_SETTINGS__SEE_ALL: 'See all participants', + OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE: 'All participants', + OPEN_CHANNEL_SETTINGS__NO_TITLE: '(No title)', + OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS: 'participants', + TRYING_TO_CONNECT: 'Trying to connect…', + USER_PROFILE__MESSAGE: 'Message', + USER_PROFILE__USER_ID: 'User ID', + EDIT_PROFILE__TITLE: 'My profile', + EDIT_PROFILE__IMAGE_LABEL: 'Profile image', + EDIT_PROFILE__IMAGE_UPLOAD: 'Upload', + EDIT_PROFILE__NICKNAME_LABEL: 'Nickname', + EDIT_PROFILE__NICKNAME_PLACEHOLDER: 'Enter your nickname', + EDIT_PROFILE__USERID_LABEL: 'User ID', + EDIT_PROFILE__THEME_LABEL: 'Dark theme', + CHANNEL_LIST__TITLE: 'Channels', + CHANNEL__MESSAGE_INPUT__PLACE_HOLDER: 'Enter message', + CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED: 'Chat is unavailable in this channel', + CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED: 'Chat is unavailable because you are being muted', + CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE: 'new message(s) since', + CHANNEL__MESSAGE_LIST__NOTIFICATION__ON: 'on', + CHANNEL_SETTING__HEADER__TITLE: 'Channel information', + CHANNEL_SETTING__PROFILE__EDIT: 'Edit', + CHANNEL_SETTING__MEMBERS__TITLE: 'Members', + CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS: 'All members', + CHANNEL_SETTING__MEMBERS__INVITE_MEMBER: 'Invite users', + CHANNEL_SETTING__LEAVE_CHANNEL__TITLE: 'Leave channel', + CHANNEL_SETTING__OPERATORS__TITLE: 'Operators', + CHANNEL_SETTING__OPERATORS__TITLE_ALL: 'All operators', + CHANNEL_SETTING__OPERATORS__TITLE_ADD: 'Add operator', + CHANNEL_SETTING__MUTED_MEMBERS__TITLE: 'Muted members', + CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL: 'All muted members', + CHANNEL_SETTING__BANNED_MEMBERS__TITLE: 'Banned members', + CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL: 'All banned members', + CHANNEL_SETTING__FREEZE_CHANNEL: 'Freeze Channel', + BUTTON__CANCEL: 'Cancel', + BUTTON__DELETE: 'Delete', + BUTTON__SAVE: 'Save', + BUTTON__CREATE: 'Create', + BUTTON__INVITE: 'Invite', + BUTTON__CLOSE: 'Close', + BADGE__OVER: '+', + MODAL__DELETE_MESSAGE__TITLE: 'Delete this message?', + MODAL__CHANNEL_INFORMATION__TITLE: 'Edit channel information', + MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE: 'Channel image', + MODAL__CHANNEL_INFORMATION__UPLOAD: 'Upload', + MODAL__CHANNEL_INFORMATION__CHANNEL_NAME: 'Channel name', + MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER: 'Enter name', + MODAL__INVITE_MEMBER__TITLE: 'Invite member', + MODAL__INVITE_MEMBER__SELECTEC: 'selected', + MODAL__CREATE_CHANNEL__TITLE: 'New channel', + MODAL__CREATE_CHANNEL__SELECTED: 'selected', + MODAL__USER_LIST__TITLE: 'members', + TYPING_INDICATOR__IS_TYPING: 'is typing...', + TYPING_INDICATOR__AND: 'and', + TYPING_INDICATOR__ARE_TYPING: 'are typing...', + TYPING_INDICATOR__MULTIPLE_TYPING: 'Several people are typing...', + MESSAGE_STATUS__SENDING_FAILED: 'Couldn\'t send message.', + MESSAGE_STATUS__TRY_AGAIN: 'Try again', + MESSAGE_STATUS__OR: 'or', + MESSAGE_STATUS__DELETE: 'delete', + PLACE_HOLDER__NO_CHANNEL: 'No channels', + CHANNEL_FROZEN: 'Channel frozen', + MUTED_PL: 'Channel frozen', + PLACE_HOLDER__WRONG: 'Something went wrong', + PLACE_HOLDER__RETRY_TO_CONNECT: 'Retry', + NO_TITLE: 'No title', + NO_NAME: '(No name)', + NO_MEMBERS: '(No members)', + TOOLTIP__AND_YOU: ', and you', + TOOLTIP__YOU: 'you', + TOOLTIP__UNKOWN_USER: '(no name)', + UNKNOWN__UNKNOWN_MESSAGE_TYPE: '(Unknown message type)', + UNKNOWN__CANNOT_READ_MESSAGE: 'Cannot read this message.', + MESSAGE_EDITED: '(edited)', + CONTEXT_MENU_DROPDOWN__COPY: 'Copy', + CONTEXT_MENU_DROPDOWN__EDIT: 'Edit', + CONTEXT_MENU_DROPDOWN__RESEND: 'Resend', + CONTEXT_MENU_DROPDOWN__DELETE: 'Delete' + } + }; + return stringSet[lang]; +}; + +var LocalizationContext = React__default.createContext({ + stringSet: getStringSet('en') +}); + +var LocalizationProvider = function LocalizationProvider(props) { + var children = props.children; + return React__default.createElement(LocalizationContext.Provider, { + value: props + }, children); +}; + +exports.LocalizationContext = LocalizationContext; +exports.LocalizationProvider = LocalizationProvider; +exports.SendbirdSdkContext = SendbirdSdkContext; +exports.__spreadArrays = __spreadArrays; +exports._assertThisInitialized = _assertThisInitialized; +exports._classCallCheck = _classCallCheck; +exports._createClass = _createClass; +exports._defineProperty = _defineProperty; +exports._getPrototypeOf = _getPrototypeOf; +exports._inherits = _inherits; +exports._objectSpread2 = _objectSpread2; +exports._possibleConstructorReturn = _possibleConstructorReturn; +exports._slicedToArray = _slicedToArray; +exports._toConsumableArray = _toConsumableArray; +exports.getStringSet = getStringSet; +exports.uuidv4 = uuidv4; +exports.uuidv4$1 = uuidv4; +exports.withSendbirdContext = withSendbirdContext; +//# sourceMappingURL=LocalizationContext-7c9df62c.js.map diff --git a/dist/cjs/LocalizationContext-7c9df62c.js.map b/dist/cjs/LocalizationContext-7c9df62c.js.map new file mode 100644 index 0000000..d58f756 --- /dev/null +++ b/dist/cjs/LocalizationContext-7c9df62c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LocalizationContext-619bafba.js","sources":["../../../src/lib/SendbirdSdkContext.jsx","../../../node_modules/tslib/tslib.es6.js","../../../src/utils/uuid.ts","../../../src/ui/Label/stringSet.js","../../../src/lib/LocalizationContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport const SendbirdSdkContext = React.createContext();\n\nconst withSendbirdContext = (OriginalComponent, mapStoreToProps) => {\n const ContextAwareComponent = (props) => (\n \n {(context) => {\n if (mapStoreToProps && typeof mapStoreToProps !== 'function') {\n // eslint-disable-next-line no-console\n console.warn('Second parameter to withSendbirdContext must be a pure function');\n }\n // todo - memoize\n const mergedProps = (mapStoreToProps && typeof mapStoreToProps === 'function')\n ? { ...mapStoreToProps(context), ...props }\n : { ...context, ...props };\n // eslint-disable-next-line react/jsx-props-no-spreading\n return ;\n }}\n \n );\n\n const componentName = OriginalComponent.displayName || OriginalComponent.name || 'Component';\n ContextAwareComponent.displayName = `SendbirdAware${componentName}`;\n\n return ContextAwareComponent;\n};\n\nexport default withSendbirdContext;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* eslint-disable no-bitwise */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-mixed-operators */\n// https://stackoverflow.com/a/2117523\n// used mainly for dom key generation\nexport const uuidv4 = (): string => 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n});\n\nexport default uuidv4;\n","const getStringSet = (lang = 'en') => {\n const stringSet = {\n en: {\n OPEN_CHANNEL_SETTINGS__OPERATOR_TITLE: 'Channel Information',\n OPEN_CHANNEL_SETTINGS__OPERATOR_URL: 'URL',\n OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE: 'Participants',\n OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL: 'Delete channel',\n OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE: 'Delete this channel',\n OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT: 'Delete',\n OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE: 'Participants',\n OPEN_CHANNEL_SETTINGS__EMPTY_LIST: 'No participants yet',\n OPEN_CHANNEL_SETTINGS__SEE_ALL: 'See all participants',\n OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE: 'All participants',\n OPEN_CHANNEL_SETTINGS__NO_TITLE: '(No title)',\n OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS: 'participants',\n TRYING_TO_CONNECT: 'Trying to connect…',\n USER_PROFILE__MESSAGE: 'Message',\n USER_PROFILE__USER_ID: 'User ID',\n EDIT_PROFILE__TITLE: 'My profile',\n EDIT_PROFILE__IMAGE_LABEL: 'Profile image',\n EDIT_PROFILE__IMAGE_UPLOAD: 'Upload',\n EDIT_PROFILE__NICKNAME_LABEL: 'Nickname',\n EDIT_PROFILE__NICKNAME_PLACEHOLDER: 'Enter your nickname',\n EDIT_PROFILE__USERID_LABEL: 'User ID',\n EDIT_PROFILE__THEME_LABEL: 'Dark theme',\n CHANNEL_LIST__TITLE: 'Channels',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER: 'Enter message',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED: 'Chat is unavailable in this channel',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED: 'Chat is unavailable because you are being muted',\n CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE: 'new message(s) since',\n CHANNEL__MESSAGE_LIST__NOTIFICATION__ON: 'on',\n CHANNEL_SETTING__HEADER__TITLE: 'Channel information',\n CHANNEL_SETTING__PROFILE__EDIT: 'Edit',\n CHANNEL_SETTING__MEMBERS__TITLE: 'Members',\n CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS: 'All members',\n CHANNEL_SETTING__MEMBERS__INVITE_MEMBER: 'Invite users',\n CHANNEL_SETTING__LEAVE_CHANNEL__TITLE: 'Leave channel',\n CHANNEL_SETTING__OPERATORS__TITLE: 'Operators',\n CHANNEL_SETTING__OPERATORS__TITLE_ALL: 'All operators',\n CHANNEL_SETTING__OPERATORS__TITLE_ADD: 'Add operator',\n CHANNEL_SETTING__MUTED_MEMBERS__TITLE: 'Muted members',\n CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL: 'All muted members',\n CHANNEL_SETTING__BANNED_MEMBERS__TITLE: 'Banned members',\n CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL: 'All banned members',\n CHANNEL_SETTING__FREEZE_CHANNEL: 'Freeze Channel',\n BUTTON__CANCEL: 'Cancel',\n BUTTON__DELETE: 'Delete',\n BUTTON__SAVE: 'Save',\n BUTTON__CREATE: 'Create',\n BUTTON__INVITE: 'Invite',\n BUTTON__CLOSE: 'Close',\n BADGE__OVER: '+',\n MODAL__DELETE_MESSAGE__TITLE: 'Delete this message?',\n MODAL__CHANNEL_INFORMATION__TITLE: 'Edit channel information',\n MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE: 'Channel image',\n MODAL__CHANNEL_INFORMATION__UPLOAD: 'Upload',\n MODAL__CHANNEL_INFORMATION__CHANNEL_NAME: 'Channel name',\n MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER: 'Enter name',\n MODAL__INVITE_MEMBER__TITLE: 'Invite member',\n MODAL__INVITE_MEMBER__SELECTEC: 'selected',\n MODAL__CREATE_CHANNEL__TITLE: 'New channel',\n MODAL__CREATE_CHANNEL__SELECTED: 'selected',\n MODAL__USER_LIST__TITLE: 'members',\n TYPING_INDICATOR__IS_TYPING: 'is typing...',\n TYPING_INDICATOR__AND: 'and',\n TYPING_INDICATOR__ARE_TYPING: 'are typing...',\n TYPING_INDICATOR__MULTIPLE_TYPING: 'Several people are typing...',\n MESSAGE_STATUS__SENDING_FAILED: 'Couldn\\'t send message.',\n MESSAGE_STATUS__TRY_AGAIN: 'Try again',\n MESSAGE_STATUS__OR: 'or',\n MESSAGE_STATUS__DELETE: 'delete',\n PLACE_HOLDER__NO_CHANNEL: 'No channels',\n CHANNEL_FROZEN: 'Channel frozen',\n MUTED_PL: 'Channel frozen',\n PLACE_HOLDER__WRONG: 'Something went wrong',\n PLACE_HOLDER__RETRY_TO_CONNECT: 'Retry',\n NO_TITLE: 'No title',\n NO_NAME: '(No name)',\n NO_MEMBERS: '(No members)',\n TOOLTIP__AND_YOU: ', and you',\n TOOLTIP__YOU: 'you',\n TOOLTIP__UNKOWN_USER: '(no name)',\n UNKNOWN__UNKNOWN_MESSAGE_TYPE: '(Unknown message type)',\n UNKNOWN__CANNOT_READ_MESSAGE: 'Cannot read this message.',\n MESSAGE_EDITED: '(edited)',\n CONTEXT_MENU_DROPDOWN__COPY: 'Copy',\n CONTEXT_MENU_DROPDOWN__EDIT: 'Edit',\n CONTEXT_MENU_DROPDOWN__RESEND: 'Resend',\n CONTEXT_MENU_DROPDOWN__DELETE: 'Delete',\n },\n };\n return stringSet[lang];\n};\n\nexport default getStringSet;\n","import React from 'react';\n\nimport getStringSet from '../ui/Label/stringSet';\n\nconst LocalizationContext = React.createContext({\n stringSet: getStringSet('en'),\n});\n\ninterface LocalizationProviderProps {\n stringSet: Record;\n children: React.Component;\n}\n\nconst LocalizationProvider = (props: LocalizationProviderProps): React.ReactNode => {\n const { children } = props;\n return (\n \n {children}\n \n );\n};\n\nexport { LocalizationContext, LocalizationProvider };\n"],"names":["SendbirdSdkContext","React","createContext","withSendbirdContext","OriginalComponent","mapStoreToProps","ContextAwareComponent","props","context","console","warn","mergedProps","componentName","displayName","name","__assign","uuidv4","replace","c","r","Math","random","v","toString","getStringSet","lang","stringSet","en","OPEN_CHANNEL_SETTINGS__OPERATOR_TITLE","OPEN_CHANNEL_SETTINGS__OPERATOR_URL","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE","OPEN_CHANNEL_SETTINGS__EMPTY_LIST","OPEN_CHANNEL_SETTINGS__SEE_ALL","OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE","OPEN_CHANNEL_SETTINGS__NO_TITLE","OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS","TRYING_TO_CONNECT","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","EDIT_PROFILE__TITLE","EDIT_PROFILE__IMAGE_LABEL","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","EDIT_PROFILE__THEME_LABEL","CHANNEL_LIST__TITLE","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","CHANNEL_SETTING__HEADER__TITLE","CHANNEL_SETTING__PROFILE__EDIT","CHANNEL_SETTING__MEMBERS__TITLE","CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS","CHANNEL_SETTING__MEMBERS__INVITE_MEMBER","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","CHANNEL_SETTING__OPERATORS__TITLE","CHANNEL_SETTING__OPERATORS__TITLE_ALL","CHANNEL_SETTING__OPERATORS__TITLE_ADD","CHANNEL_SETTING__MUTED_MEMBERS__TITLE","CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL","CHANNEL_SETTING__BANNED_MEMBERS__TITLE","CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL","CHANNEL_SETTING__FREEZE_CHANNEL","BUTTON__CANCEL","BUTTON__DELETE","BUTTON__SAVE","BUTTON__CREATE","BUTTON__INVITE","BUTTON__CLOSE","BADGE__OVER","MODAL__DELETE_MESSAGE__TITLE","MODAL__CHANNEL_INFORMATION__TITLE","MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE","MODAL__CHANNEL_INFORMATION__UPLOAD","MODAL__CHANNEL_INFORMATION__CHANNEL_NAME","MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER","MODAL__INVITE_MEMBER__TITLE","MODAL__INVITE_MEMBER__SELECTEC","MODAL__CREATE_CHANNEL__TITLE","MODAL__CREATE_CHANNEL__SELECTED","MODAL__USER_LIST__TITLE","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","MESSAGE_STATUS__SENDING_FAILED","MESSAGE_STATUS__TRY_AGAIN","MESSAGE_STATUS__OR","MESSAGE_STATUS__DELETE","PLACE_HOLDER__NO_CHANNEL","CHANNEL_FROZEN","MUTED_PL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT","NO_TITLE","NO_NAME","NO_MEMBERS","TOOLTIP__AND_YOU","TOOLTIP__YOU","TOOLTIP__UNKOWN_USER","UNKNOWN__UNKNOWN_MESSAGE_TYPE","UNKNOWN__CANNOT_READ_MESSAGE","MESSAGE_EDITED","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","LocalizationContext","LocalizationProvider","children"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/OpenChannel.js b/dist/cjs/OpenChannel.js new file mode 100644 index 0000000..01b32a7 --- /dev/null +++ b/dist/cjs/OpenChannel.js @@ -0,0 +1,2744 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +require('prop-types'); +var index$1 = require('./index-710314fd.js'); +var format = _interopDefault(require('date-fns/format')); +require('react-dom'); +var index$2$1 = require('./index-95b18747.js'); +var isSameDay = _interopDefault(require('date-fns/isSameDay')); + +var getMessageCreatedAt = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var scrollIntoLast = function scrollIntoLast(selector, intialTry) { + if (intialTry === void 0) { + intialTry = 0; + } + + var MAX_TRIES = 10; + var currentTry = intialTry; + + if (currentTry > MAX_TRIES) { + return; + } + + try { + var nodes = document.querySelectorAll(selector); + var last = nodes[nodes.length - 1]; + last.scrollIntoView(false); + /** alignToTop: false */ + } catch (error) { + setTimeout(function () { + scrollIntoLast(selector, currentTry + 1); + }, 500 * currentTry); + } +}; +var isSameGroup = function isSameGroup(message, comparingMessage) { + if (!message || !comparingMessage || message.messageType === 'admin' || comparingMessage.messageType === 'admin') { + return false; + } + + return message.sendingStatus === comparingMessage.sendingStatus && message.sender.userId === comparingMessage.sender.userId && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage); +}; +var compareMessagesForGrouping = function compareMessagesForGrouping(prevMessage, currMessage, nextMessage) { + return [isSameGroup(prevMessage, currMessage), isSameGroup(currMessage, nextMessage)]; +}; +var kFormatter = function kFormatter(num) { + if (Math.abs(num) > 999999) { + return (Math.abs(num) / 1000000).toFixed(1) + "M"; + } + + if (Math.abs(num) > 999) { + return (Math.abs(num) / 1000).toFixed(1) + "K"; + } + + return "" + num; +}; +var isOperator = function isOperator(openChannel, userId) { + var operators = openChannel.operators; + + if (operators.map(function (operator) { + return operator.userId; + }).indexOf(userId) < 0) { + return false; + } + + return true; +}; +var isDisabledBecauseFrozen = function isDisabledBecauseFrozen(openChannel, userId) { + var isFrozen = openChannel.isFrozen; + return isFrozen && !isOperator(openChannel, userId); +}; + +var MessageInputWrapper = function MessageInputWrapper(_a, ref) { + var channel = _a.channel, + user = _a.user, + disabled = _a.disabled, + onSendMessage = _a.onSendMessage, + onFileUpload = _a.onFileUpload, + renderMessageInput = _a.renderMessageInput; + + if (!channel) { + return; + } + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + if (renderMessageInput) { + return renderMessageInput({ + channel: channel, + user: user, + disabled: disabled + }); + } + + return React__default.createElement("div", { + className: "sendbird-openchannel-footer" + }, React__default.createElement(index$2$1.MessageInput, { + ref: ref, + disabled: disabled, + onSendMessage: onSendMessage, + onFileUpload: onFileUpload, + placeholder: disabled && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED // add disabled because of muted state + + })); +}; + +var MessageInputWrapper$1 = React__default.forwardRef(MessageInputWrapper); + +var FrozenNotification = function FrozenNotification() { + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + return React__default.createElement("div", { + className: "sendbird-frozen-channel-notification" + }, React__default.createElement(index$1.Label, { + className: "sendbird-frozen-channel-notification__text", + type: index$1.LabelTypography.CAPTION_2 + }, stringSet.CHANNEL_FROZEN)); +}; + +var COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation-header'; +function OpenchannelConversationHeader(_a) { + var coverImage = _a.coverImage, + _b = _a.title, + title = _b === void 0 ? index$1.LabelStringSet.NO_TITLE : _b, + _c = _a.subTitle, + subTitle = _c === void 0 ? index$1.LabelStringSet.NO_TITLE : _c, + onActionClick = _a.onActionClick; + return React__default.createElement("div", { + className: COMPONENT_CLASS_NAME + }, React__default.createElement("div", { + className: COMPONENT_CLASS_NAME + "__left" + }, coverImage ? React__default.createElement(index$1.Avatar, { + className: COMPONENT_CLASS_NAME + "__left__cover-image", + src: coverImage, + alt: "channel cover image", + width: "32px", + height: "32px" + }) : React__default.createElement(index$1.Icon, { + className: COMPONENT_CLASS_NAME + "__left__cover-image--icon", + width: "32px", + height: "32px", + type: index$1.IconTypes.AVATAR_NO_IMAGE, + fillColor: index$1.IconColors.BACKGROUND_3 + }), React__default.createElement(index$1.Label, { + className: COMPONENT_CLASS_NAME + "__left__title", + type: index$1.LabelTypography.H_2, + color: index$1.LabelColors.ONBACKGROUND_1 + }, title), React__default.createElement(index$1.Label, { + className: COMPONENT_CLASS_NAME + "__left__sub-title", + type: index$1.LabelTypography.BODY_2, + color: index$1.LabelColors.ONBACKGROUND_2 + }, subTitle)), React__default.createElement("div", { + className: COMPONENT_CLASS_NAME + "__right" + }, React__default.createElement(index$1.IconButton, { + className: COMPONENT_CLASS_NAME + "__right__trigger", + width: "32px", + height: "32px", + onClick: onActionClick + }, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.INFO, + fillColor: index$1.IconColors.PRIMARY, + width: "24px", + height: "24px" + })))); +} + +var copyToClipboard = function copyToClipboard(text) { + // @ts-ignore: Unreachable code error + if (window.clipboardData && window.clipboardData.setData) { + // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible. + // @ts-ignore: Unreachable code error + return window.clipboardData.setData('Text', text); + } + + if (document.queryCommandSupported && document.queryCommandSupported('copy')) { + var textarea = document.createElement('textarea'); + textarea.textContent = text; + textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. + + document.body.appendChild(textarea); + textarea.select(); + + try { + return document.execCommand('copy'); // Security exception may be thrown by some browsers. + } catch (ex) { + return false; + } finally { + document.body.removeChild(textarea); + } + } + + return false; +}; + +var OpenChannelMessageStatusTypes = { + NONE: 'none', + PENDING: 'pending', + FAILED: 'failed', + CANCELED: 'canceled', + SUCCEEDED: 'succeeded' +}; +var getSenderFromMessage = function getSenderFromMessage(message) { + return message.sender || message._sender; +}; +var checkIsSent = function checkIsSent(status) { + return status === OpenChannelMessageStatusTypes.SUCCEEDED; +}; +var checkIsByMe = function checkIsByMe(message, userId) { + return getSenderFromMessage(message).userId === userId; +}; +var isFineCopy = function isFineCopy(_a) { + var message = _a.message; + return message.messageType === 'user' && message.message.length > 0; +}; +var isFineResend = function isFineResend(_a) { + var message = _a.message, + status = _a.status, + userId = _a.userId; + return checkIsByMe(message, userId) && !checkIsSent(status) && message.isResendable && message.isResendable(); +}; +var isFineEdit = function isFineEdit(_a) { + var message = _a.message, + status = _a.status, + userId = _a.userId; + return checkIsByMe(message, userId) && checkIsSent(status); +}; +var isFineDelete = function isFineDelete(_a) { + var message = _a.message, + userId = _a.userId; + return checkIsByMe(message, userId); +}; +var showMenuTrigger = function showMenuTrigger(props) { + var message = props.message, + status = props.status, + userId = props.userId; + + if (message.messageType === 'user') { + return isFineDelete({ + message: message, + status: status, + userId: userId + }) || isFineEdit({ + message: message, + status: status, + userId: userId + }) || isFineCopy({ + message: message, + status: status, + userId: userId + }) || isFineResend({ + message: message, + status: status, + userId: userId + }); + } else { + return isFineDelete({ + message: message, + status: status, + userId: userId + }) || isFineResend({ + message: message, + status: status, + userId: userId + }); + } +}; + +function OpenchannelUserMessage(_a) { + var message = _a.message, + className = _a.className, + userId = _a.userId, + resendMessage = _a.resendMessage, + disabled = _a.disabled, + showEdit = _a.showEdit, + showRemove = _a.showRemove, + chainTop = _a.chainTop, + status = _a.status; + + if (!message || message.messageType !== 'user') { + return null; + } // hooks + + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + var _b = React.useContext(index$1.UserProfileContext), + disableUserProfile = _b.disableUserProfile, + renderUserProfile = _b.renderUserProfile; + + var messageRef = React.useRef(null); + var avatarRef = React.useRef(null); + var contextMenuRef = React.useRef(null); + + var _c = React.useState({}), + contextStyle = _c[0], + setContextStyle = _c[1]; // consts + + + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push("sendbird-openchannel-user-message"); + var isByMe = checkIsByMe(message, userId); + var sender = getSenderFromMessage(message); + var MemoizedMessageText = React.useMemo(function () { + return function () { + var splitMessage = message.message.split(/\r/); + var matchedMessage = splitMessage.map(function (word) { + return word !== '' ? word : React__default.createElement("br", null); + }); + + if (message.updatedAt > 0) { + matchedMessage.push(React__default.createElement(index$1.Label, { + key: LocalizationContext.uuidv4$1(), + type: index$1.LabelTypography.BODY_1, + color: index$1.LabelColors.ONBACKGROUND_2, + calssName: "sendbird-openchannel-user-message-word" + }, " " + stringSet.MESSAGE_EDITED + " ")); + } + + return matchedMessage; + }; + }, [message, message.updatedAt]); // place context menu top depending clientHeight of message component + + React.useEffect(function () { + if (messageRef.current.clientHeight > 36) { + setContextStyle({ + top: '8px ' + }); + } else { + setContextStyle({ + top: '2px' + }); + } + }, [window.innerWidth]); + return React__default.createElement("div", { + className: injectingClassName.join(' '), + ref: messageRef + }, React__default.createElement("div", { + className: "sendbird-openchannel-user-message__left" + }, !chainTop && React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.Avatar, { + className: "sendbird-openchannel-user-message__left__avatar", + src: sender.profileUrl || '', + ref: avatarRef, + width: "28px", + height: "28px", + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + } + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentRef: avatarRef, + parentContainRef: avatarRef, + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: sender, + close: closeDropdown + }) : React__default.createElement(index$1.UserProfile, { + user: sender, + onSuccess: closeDropdown, + disableMessaging: true + })); + } + })), React__default.createElement("div", { + className: "sendbird-openchannel-user-message__right" + }, !chainTop && React__default.createElement("div", { + className: "sendbird-openchannel-user-message__right__top" + }, React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-user-message__right__top__sender-name", + type: index$1.LabelTypography.CAPTION_2, + color: isByMe ? index$1.LabelColors.SECONDARY_3 : index$1.LabelColors.ONBACKGROUND_2 + }, sender && (sender.friendName || sender.nickname || sender.userId)), React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-user-message__right__top__sent-at", + type: index$1.LabelTypography.CAPTION_3, + color: index$1.LabelColors.ONBACKGROUND_3 + }, message.createdAt && format(message.createdAt, 'p'))), React__default.createElement("div", { + className: "sendbird-openchannel-user-message__right__bottom" + }, React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-user-message__right__bottom__message", + type: index$1.LabelTypography.BODY_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, MemoizedMessageText()))), React__default.createElement("div", { + className: "sendbird-openchannel-user-message__context-menu", + ref: contextMenuRef, + style: contextStyle + }, React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return showMenuTrigger({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.IconButton, { + className: "sendbird-openchannel-user-message__context-menu--icon", + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + } + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentRef: contextMenuRef, + parentContainRef: contextMenuRef, + closeDropdown: closeDropdown, + openLeft: true + }, isFineCopy({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + className: "sendbird-openchannel-user-message__context-menu__copy", + onClick: function onClick() { + copyToClipboard(message.message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__COPY), isFineEdit({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + className: "sendbird-openchannel-user-message__context-menu__edit", + onClick: function onClick() { + if (disabled) { + return; + } + + showEdit(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__EDIT), isFineResend({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + className: "sendbird-openchannel-user-message__context-menu__resend", + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), isFineDelete({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + className: "sendbird-openchannel-user-message__context-menu__delete", + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }))); +} + +function OpenChannelAdminMessage(_a) { + var message = _a.message, + className = _a.className; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push('sendbird-openchannel-admin-message'); + return React__default.createElement("div", { + className: LocalizationContext.__spreadArrays(injectingClassName).join(' ') + }, React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-admin-message__text", + type: index$1.LabelTypography.CAPTION_2, + color: index$1.LabelColors.ONBACKGROUND_2 + }, message.message || '')); +} + +var URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; +var createUrlTester = function createUrlTester(regexp) { + return function (text) { + return regexp.test(text); + }; +}; +var checkOGIsEnalbed = function checkOGIsEnalbed(message) { + var ogMetaData = message.ogMetaData; + + if (!ogMetaData) { + return false; + } + + var url = ogMetaData.url; + + if (!url) { + return false; + } + + return true; +}; + +function OpenchannelOGMessage(_a) { + var message = _a.message, + className = _a.className, + disabled = _a.disabled, + showEdit = _a.showEdit, + showRemove = _a.showRemove, + resendMessage = _a.resendMessage, + chainTop = _a.chainTop, + status = _a.status, + userId = _a.userId; + + if (!message || message.messageType !== 'user') { + return null; + } + + var ogMetaData = message.ogMetaData; + var defaultImage = ogMetaData.defaultImage; + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + var _b = React.useContext(index$1.UserProfileContext), + disableUserProfile = _b.disableUserProfile, + renderUserProfile = _b.renderUserProfile; + + var _c = React.useState({}), + contextStyle = _c[0], + setContextStyle = _c[1]; + + var messageComponentRef = React.useRef(null); + var contextMenuRef = React.useRef(null); + var avatarRef = React.useRef(null); + var isUrl = createUrlTester(URL_REG); + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push('sendbird-openchannel-og-message'); + var isByMe = checkIsByMe(message, userId); + var sender = getSenderFromMessage(message); + var MemoizedMessageText = React.useMemo(function () { + return function () { + var wordClassName = 'sendbird-openchannel-og-message--word'; + var splitMessage = message.message.split(' '); + var matchedMessage = splitMessage.map(function (word) { + return isUrl(word) ? React__default.createElement(index$2$1.LinkLabel, { + key: LocalizationContext.uuidv4$1(), + className: [wordClassName, 'sendbird-openchannel-og-message--word--link'], + src: word, + type: index$1.LabelTypography.BODY_1, + color: index$1.LabelColors.PRIMARY + }, word) : React__default.createElement(index$1.Label, { + key: LocalizationContext.uuidv4$1(), + className: wordClassName, + type: index$1.LabelTypography.BODY_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, word); + }); + + if (message.updatedAt > 0) { + matchedMessage.push(React__default.createElement(index$1.Label, { + key: LocalizationContext.uuidv4$1(), + className: wordClassName, + type: index$1.LabelTypography.BODY_1, + color: index$1.LabelColors.ONBACKGROUND_2 + }, stringSet.MESSAGE_EDITED)); + } + + return matchedMessage; + }; + }, [message, message.updatedAt]); + + var openLink = function openLink() { + if (checkOGIsEnalbed(message)) { + var url = ogMetaData.url; + window.open(url); + } + }; // place conxt menu top depending clientHeight of message component + + + React.useEffect(function () { + if (messageComponentRef.current.clientHeight > 36) { + setContextStyle({ + top: '8px ' + }); + } else { + setContextStyle({ + top: '2px' + }); + } + }, [window.innerWidth]); + return React__default.createElement("div", { + className: injectingClassName.join(' '), + ref: messageComponentRef + }, React__default.createElement("div", { + className: "sendbird-openchannel-og-message__top" + }, React__default.createElement("div", { + className: "sendbird-openchannel-og-message__top__left" + }, !chainTop && React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.Avatar, { + className: "sendbird-openchannel-og-message__top__left__avatar", + src: sender.profileUrl || '', + ref: avatarRef, + width: "28px", + height: "28px", + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + } + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentRef: avatarRef, + parentContainRef: avatarRef, + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: sender, + close: closeDropdown + }) : React__default.createElement(index$1.UserProfile, { + user: sender, + onSuccess: closeDropdown, + disableMessaging: true + })); + } + })), React__default.createElement("div", { + className: "sendbird-openchannel-og-message__top__right" + }, !chainTop && React__default.createElement("div", { + className: "sendbird-openchannel-og-message__top__right__title" + }, React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-og-message__top__right__title__sender-name", + type: index$1.LabelTypography.CAPTION_2, + color: isByMe ? index$1.LabelColors.SECONDARY_3 : index$1.LabelColors.ONBACKGROUND_2 + }, sender && (sender.friendName || sender.nickname || sender.userId)), React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-og-message__top__right__title__sent-at", + type: index$1.LabelTypography.CAPTION_3, + color: index$1.LabelColors.ONBACKGROUND_3 + }, message.createdAt && format(message.createdAt, 'p'))), React__default.createElement("div", { + className: "sendbird-openchannel-og-message__top__right__description" + }, React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-og-message__top__right__description__message", + type: index$1.LabelTypography.BODY_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, MemoizedMessageText()))), React__default.createElement("div", { + className: "sendbird-openchannel-og-message__top__context-menu", + ref: contextMenuRef, + style: contextStyle + }, React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return showMenuTrigger({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.IconButton, { + className: "sendbird-openchannel-og-message__top__context-menu--icon", + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + } + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentRef: contextMenuRef, + parentContainRef: contextMenuRef, + closeDropdown: closeDropdown, + openLeft: true + }, isFineCopy({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + className: "sendbird-openchannel-og-message__top__context-menu__copy", + onClick: function onClick() { + copyToClipboard(message.message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__COPY), isFineEdit({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + className: "sendbird-openchannel-og-message__top__context-menu__edit", + onClick: function onClick() { + if (disabled) { + return; + } + + showEdit(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__EDIT), isFineResend({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + className: "sendbird-openchannel-og-message__top__context-menu__resend", + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), isFineDelete({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + className: "sendbird-openchannel-og-message__top__context-menu__delete", + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }))), React__default.createElement("div", { + className: "sendbird-openchannel-og-message__bottom" + }, React__default.createElement("div", { + className: "sendbird-openchannel-og-message__bottom__og-tag" + }, ogMetaData.url && React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-og-message__bottom__og-tag__url", + type: index$1.LabelTypography.CAPTION_3, + color: index$1.LabelColors.ONBACKGROUND_2 + }, ogMetaData.url), ogMetaData.title && React__default.createElement(index$2$1.LinkLabel, { + className: "sendbird-openchannel-og-message__bottom__og-tag__title", + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.PRIMARY, + src: ogMetaData.url + }, ogMetaData.title), ogMetaData.description && React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-og-message__bottom__og-tag__description", + type: index$1.LabelTypography.BODY_2, + color: index$1.LabelColors.ONBACKGROUND_1 + }, ogMetaData.description), ogMetaData.url && React__default.createElement("div", { + className: "sendbird-openchannel-og-message__bottom__og-tag__thumbnail", + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, defaultImage && React__default.createElement(index$1.ImageRenderer, { + url: defaultImage.url || '', + alt: defaultImage.alt || '', + className: "sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image", + height: "189px", + defaultComponent: React__default.createElement("div", { + className: "sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image--placeholder" + }, React__default.createElement(index$1.Icon, { + width: "56px", + height: "56px", + type: index$1.IconTypes.NO_THUMBNAIL + })) + }))))); +} + +var SUPPORTING_TYPES = { + IMAGE: 'IMAGE', + VIDEO: 'VIDEO', + UNSUPPORTED: 'UNSUPPORTED' +}; +var SUPPORTED_MIMES = { + IMAGE: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp'], + VIDEO: ['video/mpeg', 'video/ogg', 'video/webm', 'video/mp4'] +}; +var getSupportingFileType = function getSupportingFileType(type) { + if (SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0) { + return SUPPORTING_TYPES.IMAGE; + } + + if (SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0) { + return SUPPORTING_TYPES.VIDEO; + } + + return SUPPORTING_TYPES.UNSUPPORTED; +}; + +function OpenchannelThumbnailMessage(_a) { + var _b; + + var message = _a.message, + className = _a.className, + disabled = _a.disabled, + userId = _a.userId, + status = _a.status, + chainTop = _a.chainTop, + _onClick = _a.onClick, + showRemove = _a.showRemove, + resendMessage = _a.resendMessage; + var type = message.type, + url = message.url, + localUrl = message.localUrl; + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + var _c = React.useContext(index$1.UserProfileContext), + disableUserProfile = _c.disableUserProfile, + renderUserProfile = _c.renderUserProfile; + + var contextMenuRef = React.useRef(null); + var avatarRef = React.useRef(null); + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push('sendbird-openchannel-thumbnail-message'); + var isByMe = checkIsByMe(message, userId); + var isMessageSent = checkIsSent(status); + var sender = getSenderFromMessage(message); + return React__default.createElement("div", { + className: injectingClassName.join(' ') + }, React__default.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__left" + }, !chainTop && React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.Avatar, { + className: "sendbird-openchannel-thumbnail-message__left__avatar", + src: sender.profileUrl || '', + ref: avatarRef, + width: "28px", + height: "28px", + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + } + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentRef: avatarRef, + parentContainRef: avatarRef, + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: sender, + close: closeDropdown + }) : React__default.createElement(index$1.UserProfile, { + user: sender, + onSuccess: closeDropdown, + disableMessaging: true + })); + } + })), React__default.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right" + }, !chainTop && React__default.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__title" + }, React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-thumbnail-message__right__title__sender-name", + type: index$1.LabelTypography.CAPTION_2, + color: isByMe ? index$1.LabelColors.SECONDARY_3 : index$1.LabelColors.ONBACKGROUND_2 + }, sender && (sender.friendName || sender.nickname || sender.userId)), React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-thumbnail-message__right__title__sent-at", + type: index$1.LabelTypography.CAPTION_3, + color: index$1.LabelColors.ONBACKGROUND_3 + }, message.createdAt && format(message.createdAt, 'p'))), React__default.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__body" + }, React__default.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap", + onClick: function onClick() { + if (isMessageSent) { + _onClick(true); + } + }, + onKeyDown: function onKeyDown() { + if (isMessageSent) { + _onClick(true); + } + }, + tabIndex: 0, + role: "button" + }, React__default.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__overlay" + }), (_b = {}, _b[SUPPORTING_TYPES.VIDEO] = url || localUrl ? React__default.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__video" + }, React__default.createElement("video", { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__video__video" + }, React__default.createElement("source", { + src: url || localUrl, + type: type + })), React__default.createElement(index$1.Icon, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__video__icon", + width: "56px", + height: "56px", + type: index$1.IconTypes.PLAY + })) : React__default.createElement(index$1.Icon, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon", + width: "56px", + height: "56px", + type: index$1.IconTypes.PHOTO, + fillColor: index$1.IconColors.ON_BACKGROUND_2 + }), _b[SUPPORTING_TYPES.IMAGE] = url || localUrl ? React__default.createElement(index$1.ImageRenderer, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__image", + height: "270px", + url: url || localUrl, + alt: "image" + }) : React__default.createElement(index$1.Icon, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon", + width: "56px", + height: "56px", + type: index$1.IconTypes.PHOTO, + fillColor: index$1.IconColors.ON_BACKGROUND_2 + }), _b[SUPPORTING_TYPES.UNSUPPORTED] = React__default.createElement(index$1.Icon, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__unknown", + width: "56px", + height: "56px", + type: index$1.IconTypes.PHOTO, + fillColor: index$1.IconColors.ON_BACKGROUND_2 + }), _b)[getSupportingFileType(type)]))), React__default.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__context-menu", + ref: contextMenuRef + }, React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return showMenuTrigger({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.IconButton, { + className: "sendbird-openchannel-thumbnail-message__context-menu--icon", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.MORE, + fillColor: index$1.IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentRef: contextMenuRef, + parentContainRef: contextMenuRef, + closeDropdown: closeDropdown, + openLeft: true + }, isFineResend({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), isFineDelete({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }))); +} + +var checkFileType = function checkFileType(fileUrl) { + var result = null; + var imageFile = /(\.gif|\.jpg|\.jpeg|\.txt|\.pdf)$/i; + var audioFile = /(\.mp3)$/i; + + if (imageFile.test(fileUrl)) { + result = index$1.IconTypes.FILE_DOCUMENT; + } else if (audioFile.test(fileUrl)) { + result = index$1.IconTypes.FILE_AUDIO; + } + + return result; +}; +var truncate = function truncate(fullStr, strLen) { + if (fullStr === null || fullStr === undefined) return ''; + if (fullStr.length <= strLen) return fullStr; + var separator = '...'; + var sepLen = separator.length; + var charsToShow = strLen - sepLen; + var frontChars = Math.ceil(charsToShow / 2); + var backChars = Math.floor(charsToShow / 2); + return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars); +}; + +function OpenchannelFileMessage(_a) { + var message = _a.message, + className = _a.className, + userId = _a.userId, + disabled = _a.disabled, + chainTop = _a.chainTop, + status = _a.status, + showRemove = _a.showRemove, + resendMessage = _a.resendMessage; + var contextMenuRef = React.useRef(null); + var avatarRef = React.useRef(null); + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + var _b = React.useContext(index$1.UserProfileContext), + disableUserProfile = _b.disableUserProfile, + renderUserProfile = _b.renderUserProfile; + + var openFileUrl = function openFileUrl() { + window.open(message.url); + }; + + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push('sendbird-openchannel-file-message'); + var isByMe = checkIsByMe(message, userId); + var sender = getSenderFromMessage(message); + return React__default.createElement("div", { + className: injectingClassName.join(' ') + }, React__default.createElement("div", { + className: "sendbird-openchannel-file-message__left" + }, !chainTop && React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.Avatar, { + className: "sendbird-openchannel-file-message__left__avatar", + src: sender.profileUrl || '', + ref: avatarRef, + width: "28px", + height: "28px", + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + } + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentRef: avatarRef, + parentContainRef: avatarRef, + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: sender, + close: closeDropdown + }) : React__default.createElement(index$1.UserProfile, { + user: sender, + onSuccess: closeDropdown, + disableMessaging: true + })); + } + })), React__default.createElement("div", { + className: "sendbird-openchannel-file-message__right" + }, !chainTop && React__default.createElement("div", { + className: "sendbird-openchannel-file-message__right__title" + }, React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-file-message__right__title__sender-name", + type: index$1.LabelTypography.CAPTION_2, + color: isByMe ? index$1.LabelColors.SECONDARY_3 : index$1.LabelColors.ONBACKGROUND_2 + }, sender && (sender.friendName || sender.nickname || sender.userId)), React__default.createElement(index$1.Label, { + className: "sendbird-openchannel-file-message__right__title__sent-at", + type: index$1.LabelTypography.CAPTION_3, + color: index$1.LabelColors.ONBACKGROUND_3 + }, message.createdAt && format(message.createdAt, 'p'))), React__default.createElement("div", { + className: "sendbird-openchannel-file-message__right__body" + }, checkFileType(message.url) && React__default.createElement(index$1.Icon, { + className: "sendbird-openchannel-file-message__right__body__icon", + width: "48px", + height: "48px", + type: checkFileType(message.url), + color: index$1.IconColors.PRIMARY + }), React__default.createElement(index$1.TextButton, { + className: "sendbird-openchannel-file-message__right__body__file-name", + onClick: openFileUrl + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.BODY_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, truncate(message.url, 40))))), React__default.createElement("div", { + className: "sendbird-openchannel-file-message__context-menu", + ref: contextMenuRef + }, React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return showMenuTrigger({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.IconButton, { + className: "sendbird-openchannel-file-message__context-menu__icon", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.MORE, + width: "24px", + height: "24px" + })); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + parentRef: contextMenuRef, + parentContainRef: contextMenuRef, + closeDropdown: closeDropdown, + openLeft: true + }, isFineResend({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), isFineDelete({ + message: message, + userId: userId, + status: status + }) && React__default.createElement(index$1.MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }))); +} + +function RemoveMessageModal(_a) { + var onCloseModal = _a.onCloseModal, + onDeleteMessage = _a.onDeleteMessage; + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + return React__default.createElement(index$1.Modal, { + onCancel: onCloseModal, + onSubmit: onDeleteMessage, + submitText: "Delete", + titleText: stringSet.MODAL__DELETE_MESSAGE__TITLE + }); +} + +var MessageTypes = { + ADMIN: 'ADMIN', + USER: 'USER', + FILE: 'FILE', + THUMBNAIL: 'THUMBNAIL', + OG: 'OG', + UNKNOWN: 'UNKNOWN' +}; +var SendingMessageStatus = { + NONE: 'none', + SUCCEEDED: 'succeeded', + FAILED: 'failed', + PENDING: 'pending' +}; +var getMessageType = function getMessageType(message) { + if (message.isUserMessage && message.isUserMessage() || message.messageType === 'user') { + return message.ogMetaData ? MessageTypes.OG : MessageTypes.USER; + } + + if (message.isAdminMessage && message.isAdminMessage()) { + return MessageTypes.ADMIN; + } + + if (message.messageType === 'file') { + return index$2$1.isImage(message.type) || index$2$1.isVideo(message.type) ? MessageTypes.THUMBNAIL : MessageTypes.FILE; + } + + return MessageTypes.UNKNOWN; +}; + +function MessageHoc(_a) { + var _b; + + var message = _a.message, + userId = _a.userId, + disabled = _a.disabled, + editDisabled = _a.editDisabled, + hasSeperator = _a.hasSeperator, + deleteMessage = _a.deleteMessage, + updateMessage = _a.updateMessage, + resendMessage = _a.resendMessage, + status = _a.status, + chainTop = _a.chainTop, + chainBottom = _a.chainBottom; + var sender = null; + + if (message.messageType !== 'admin') { + sender = message.sender; + } + + var _c = React.useState(false), + showEdit = _c[0], + setShowEdit = _c[1]; + + var _d = React.useState(false), + showRemove = _d[0], + setShowRemove = _d[1]; + + var _e = React.useState(false), + showFileViewer = _e[0], + setShowFileViewer = _e[1]; + + var editMessageInputRef = React.useRef(null); + var isByMe = false; + + if (sender && message.messageType !== 'admin') { + // pending and failed messages are by me + isByMe = userId === sender.userId || message.requestState === SendingMessageStatus.PENDING || message.requestState === SendingMessageStatus.FAILED; + } + + if (message.messageType === 'user' && showEdit) { + return React__default.createElement(index$2$1.MessageInput, { + isEdit: true, + disabled: editDisabled, + ref: editMessageInputRef, + name: message.messageId, + onSendMessage: updateMessage, + onCancelEdit: function onCancelEdit() { + setShowEdit(false); + }, + value: message.message + }); + } + + return React__default.createElement("div", { + className: "sendbird-msg-hoc sendbird-msg--scroll-ref" + }, hasSeperator && React__default.createElement(index$2$1.DateSeparator, null, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.CAPTION_2, + color: index$1.LabelColors.ONBACKGROUND_2 + }, format(message.createdAt, 'MMMM dd, yyyy'))), (_b = {}, _b[MessageTypes.ADMIN] = function () { + if (message.messageType === 'admin') { + return React__default.createElement(OpenChannelAdminMessage, { + message: message + }); + } + }(), _b[MessageTypes.FILE] = function () { + if (message.messageType === 'file') { + return React__default.createElement(OpenchannelFileMessage, { + message: message, + disabled: disabled, + userId: userId, + showRemove: setShowRemove, + resendMessage: resendMessage, + status: status, + chainTop: chainTop, + chainBottom: chainBottom + }); + } + + return; + }(), _b[MessageTypes.OG] = function () { + if (message.messageType === 'user') { + return React__default.createElement(OpenchannelOGMessage, { + message: message, + status: status, + userId: userId, + showEdit: setShowEdit, + disabled: disabled, + showRemove: setShowRemove, + resendMessage: resendMessage, + chainTop: chainTop, + chainBottom: chainBottom + }); + } + + return; + }(), _b[MessageTypes.THUMBNAIL] = function () { + if (message.messageType === 'file') { + return React__default.createElement(OpenchannelThumbnailMessage, { + message: message, + disabled: disabled, + userId: userId, + showRemove: setShowRemove, + resendMessage: resendMessage, + onClick: setShowFileViewer, + status: status, + chainTop: chainTop, + chainBottom: chainBottom + }); + } + + return; + }(), _b[MessageTypes.USER] = function () { + if (message.messageType === 'user') { + return React__default.createElement(OpenchannelUserMessage, { + message: message, + userId: userId, + disabled: disabled, + showEdit: setShowEdit, + showRemove: setShowRemove, + resendMessage: resendMessage, + status: status, + chainTop: chainTop, + chainBottom: chainBottom + }); + } + + return; + }(), _b[MessageTypes.UNKNOWN] = function () { + return; // return ( + // + // ); + }(), _b)[getMessageType(message)], showRemove && React__default.createElement(RemoveMessageModal, { + onCloseModal: function onCloseModal() { + return setShowRemove(false); + }, + onDeleteMessage: function onDeleteMessage() { + if (message.messageType !== 'admin') { + deleteMessage(message); + } + } + }), showFileViewer && React__default.createElement(index$2$1.FileViewer, { + onClose: function onClose() { + return setShowFileViewer(false); + }, + message: message, + onDelete: deleteMessage, + isByMe: isByMe + })); +} + +function OpenchannelConversationScroll(_a) { + var _b = _a.useMessageGrouping, + useMessageGrouping = _b === void 0 ? true : _b, + openchannel = _a.openchannel, + user = _a.user, + allMessages = _a.allMessages, + _c = _a.isOnline, + isOnline = _c === void 0 ? true : _c, + hasMore = _a.hasMore, + onScroll = _a.onScroll, + scrollDownPromise = _a.scrollDownPromise, + showScrollDownButton = _a.showScrollDownButton, + updateMessage = _a.updateMessage, + deleteMessage = _a.deleteMessage, + resendMessage = _a.resendMessage; + var scrollRef = React.useRef(null); + + var handleOnScroll = function handleOnScroll(e) { + var element = e.target; + var scrollTop = element.scrollTop, + scrollHeight = element.scrollHeight, + clientHeight = element.clientHeight; + + if (showScrollDownButton) { + if (scrollHeight > scrollTop + clientHeight) { + showScrollDownButton(true); + } else { + showScrollDownButton(false); + } + } + + if (scrollTop === 0) { + if (!hasMore) { + return; + } + + var nodes_1 = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref'); + onScroll(function () { + var first = nodes_1[0]; + first.scrollIntoView(); + }); + } + }; + + React.useEffect(function () { + // This promise is created in everytime when user click the scroll to bottom button + // This scope waits when user click the button and scrolls to the bottom of conversation + if (scrollDownPromise && scrollRef && scrollRef.current) { + scrollDownPromise.then(function () { + scrollRef.current.scrollTo(0, scrollRef.current.scrollHeight); + + if (showScrollDownButton) { + showScrollDownButton(false); + } + }); + } + + return; + }, [scrollDownPromise]); + return React__default.createElement("div", { + className: "sendbird-openchannel-conversation-scroll", + onScroll: handleOnScroll, + ref: scrollRef + }, React__default.createElement("div", { + className: "sendbird-openchannel-conversation-scroll__container" + }, React__default.createElement("div", { + className: "sendbird-openchannel-conversation-scroll__container__padding" + }), React__default.createElement("div", { + className: "sendbird-openchannel-conversation-scroll__container__item-container" + }, allMessages.map(function (message, index) { + var status; + + if (message.messageType !== 'admin') { + status = message.sendingStatus; + } + + var previousMessage = allMessages[index - 1]; + var nextMessage = allMessages[index - 1]; + var previousMessageCreatedAt = previousMessage && previousMessage.createdAt; + var currentCreatedAt = message.createdAt; // https://stackoverflow.com/a/41855608 + + var hasSeperator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt)); + + var _a = useMessageGrouping ? compareMessagesForGrouping(previousMessage, message, nextMessage) : [false, false], + chainTop = _a[0], + chainBottom = _a[1]; + + return React__default.createElement(MessageHoc, { + key: message.messageId, + message: message, + status: status, + userId: user.userId, + disabled: !isOnline, + editDisabled: openchannel.isFrozen, + hasSeperator: hasSeperator, + chainTop: chainTop, + chainBottom: chainBottom, + deleteMessage: deleteMessage, + updateMessage: updateMessage, + resendMessage: resendMessage + }); + })))); +} + +var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL'; +var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID'; +var RESET_MESSAGES = 'RESET_MESSAGES'; +var GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS'; +var GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL'; +var SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED'; +var SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED'; +var SENDING_MESSAGE_START = 'SENDING_MESSAGE_START'; +var RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START'; // event handlers + +var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED'; +var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED'; +var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED'; +var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID'; +var ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED'; +var ON_USER_ENTERED = 'ON_USER_ENTERED'; +var ON_USER_EXITED = 'ON_USER_EXITED'; +var ON_USER_MUTED = 'ON_USER_MUTED'; +var ON_USER_UNMUTED = 'ON_USER_UNMUTED'; +var ON_USER_BANNED = 'ON_USER_BANNED'; +var ON_USER_UNBANNED = 'ON_USER_UNBANNED'; +var ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN'; +var ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN'; +var ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED'; +var ON_META_DATA_CREATED = 'ON_META_DATA_CREATED'; +var ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED'; +var ON_META_DATA_DELETED = 'ON_META_DATA_DELETED'; +var ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED'; +var ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED'; +var ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED'; +var ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED'; + +function reducer(state, action) { + switch (action.type) { + case RESET_MESSAGES: + { + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + allMessages: [] + }); + } + + case SET_CURRENT_CHANNEL: + { + var currentChannel = action.payload; + var operators = currentChannel.operators; + + if (!state.isInvalid && state.currentOpenChannel && state.currentOpenChannel.url && state.currentOpenChannel.url === currentChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + currentOpenChannel: currentChannel, + isInvalid: false, + operators: operators, + participants: operators + }); + } + + case SET_CHANNEL_INVALID: + { + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + isInvalid: true + }); + } + + case GET_PREV_MESSAGES_SUCESS: + case GET_PREV_MESSAGES_FAIL: + { + var isFailed = action.type === GET_PREV_MESSAGES_FAIL; + var _a = action.payload, + _b = _a.currentOpenChannel, + currentOpenChannel = _b === void 0 ? {} : _b, + _c = _a.messages, + messages = _c === void 0 ? [] : _c, + hasMore = _a.hasMore, + lastMessageTimestamp = _a.lastMessageTimestamp; + var actionChannelUrl = currentOpenChannel.url; + var receivedMessages_1 = isFailed ? [] : messages; + + var _hasMore = isFailed ? false : hasMore; + + var _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp; + + var stateChannel = state.currentOpenChannel; + var stateChannelUrl = stateChannel.url; + + if (actionChannelUrl !== stateChannelUrl) { + return state; + } + + var filteredAllMessages = state.allMessages.filter(function (message) { + return !receivedMessages_1.find(function (_a) { + var messageId = _a.messageId; + return index$2$1.compareIds(messageId, message.messageId); + }); + }); + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + loading: false, + initialized: true, + hasMore: _hasMore, + lastMessageTimestamp: _lastMessageTimestamp, + allMessages: LocalizationContext.__spreadArrays(receivedMessages_1, filteredAllMessages) + }); + } + + case SENDING_MESSAGE_START: + { + var _d = action.payload, + message = _d.message, + channel = _d.channel; + + if (channel.url !== state.currentOpenChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + allMessages: LocalizationContext.__spreadArrays(state.allMessages, [LocalizationContext.__assign({}, message)]) + }); + } + + case SENDING_MESSAGE_SUCCEEDED: + { + var sentMessage_1 = action.payload; + var newMessages = state.allMessages.map(function (m) { + return index$2$1.compareIds(m.reqId, sentMessage_1.reqId) ? sentMessage_1 : m; + }); + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + allMessages: newMessages + }); + } + + case SENDING_MESSAGE_FAILED: + { + var sentMessage_2 = action.payload; + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + allMessages: state.allMessages.map(function (m) { + return index$2$1.compareIds(m.reqId, sentMessage_2.reqId) ? sentMessage_2 : m; + }) + }); + } + + case RESENDING_MESSAGE_START: + { + var eventedChannel = action.payload.channel; + var resentMessage_1 = action.payload.message; + + if (eventedChannel.url !== state.currentOpenChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + allMessages: state.allMessages.map(function (m) { + return index$2$1.compareIds(m.reqId, resentMessage_1.reqId) ? resentMessage_1 : m; + }) + }); + } + + case ON_MESSAGE_RECEIVED: + { + var eventedChannel = action.payload.channel; + var receivedMessage = action.payload.message; + var currentOpenChannel = state.currentOpenChannel; + + if (!index$2$1.compareIds(eventedChannel.url, currentOpenChannel.url) || !(state.allMessages.map(function (message) { + return message.messageId; + }).indexOf(receivedMessage.messageId) < 0)) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + allMessages: LocalizationContext.__spreadArrays(state.allMessages, [receivedMessage]) + }); + } + + case ON_MESSAGE_UPDATED: + { + var eventedChannel = action.payload.channel; + var updatedMessage_1 = action.payload.message; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + allMessages: state.allMessages.map(function (message) { + return message.isIdentical(updatedMessage_1) ? updatedMessage_1 : message; + }) + }); + } + + case ON_MESSAGE_DELETED: + { + var eventedChannel = action.payload.channel; + var deletedMessageId_1 = action.payload.messageId; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + allMessages: state.allMessages.filter(function (message) { + return !index$2$1.compareIds(message.messageId, deletedMessageId_1); + }) + }); + } + + case ON_MESSAGE_DELETED_BY_REQ_ID: + { + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + allMessages: state.allMessages.filter(function (m) { + return !index$2$1.compareIds(m.reqId, action.payload); + }) + }); + } + + case ON_OPERATOR_UPDATED: + { + var eventedChannel = action.payload.channel; + var updatedOperators = action.payload.operators; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + currentOpenChannel: LocalizationContext.__assign(LocalizationContext.__assign({}, state.currentOpenChannel), { + operators: updatedOperators + }), + operators: updatedOperators + }); + } + + case ON_USER_ENTERED: + { + var eventedChannel = action.payload.channel; + var enteredUser = action.payload.user; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + participants: LocalizationContext.__spreadArrays(state.participants, [enteredUser]) + }); + } + + case ON_USER_EXITED: + { + var eventedChannel = action.payload.channel; + var exitedUser_1 = action.payload.user; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + participants: state.participants.filter(function (participant) { + return !index$2$1.compareIds(participant.userId, exitedUser_1.userId); + }) + }); + } + + case ON_USER_MUTED: + { + // const eventedChannel = action.payload.channel; + // const mutedUser = action.payload.user; + // return { + // ...state + // }; + return state; + } + + case ON_USER_UNMUTED: + { + // const eventedChannel = action.payload.channel; + // const unmutedUser = action.payload.user; + // return { + // ...state + // }; + return state; + } + + case ON_USER_BANNED: + { + // const eventedChannel = action.payload.channel; + // const bannedUser = action.payload.user; + // return { + // ...state + // }; + return state; + } + + case ON_USER_UNBANNED: + { + // const eventedChannel = action.payload.channel; + // const unbannedUser = action.payload.user; + // return { + // ...state + // }; + return state; + } + + case ON_CHANNEL_FROZEN: + { + var frozenChannel = action.payload; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== frozenChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + frozen: true + }); + } + + case ON_CHANNEL_UNFROZEN: + { + var unfrozenChannel = action.payload; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== unfrozenChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + frozen: false + }); + } + + case ON_CHANNEL_CHANGED: + { + var changedChannel = action.payload; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== changedChannel.url) { + return state; + } + + return LocalizationContext.__assign(LocalizationContext.__assign({}, state), { + currentOpenChannel: changedChannel + }); + } + + case ON_META_DATA_CREATED: + { + // const eventedChannel = action.payload.channel; + // const createdMetaData = action.payload.metaData; + // return { + // ...state + // }; + return state; + } + + case ON_META_DATA_UPDATED: + { + // const eventedChannel = action.payload.channel; + // const updatedMetaData = action.payload.metaData; + // return { + // ...state + // }; + return state; + } + + case ON_META_DATA_DELETED: + { + // const eventedChannel = action.payload.channel; + // const deletedMetaDataKeys = action.payload.metaDataKeys; + // return { + // ...state + // }; + return state; + } + + case ON_META_COUNTERS_CREATED: + { + // const eventedChannel = action.payload.channel; + // const createdMetaCounter = action.payload.metaCounter; + // return { + // ...state + // }; + return state; + } + + case ON_META_COUNTERS_UPDATED: + { + // const eventedChannel = action.payload.channel; + // const updatedMetaCounter = action.payload.metaCounter; + // return { + // ...state + // }; + return state; + } + + case ON_META_COUNTERS_DELETED: + { + // const eventedChannel = action.payload.channel; + // const deletedMetaCounterKeys = action.payload.metaCounterKeys; + // return { + // ...state + // }; + return state; + } + + case ON_MENTION_RECEIVED: + { + // const eventedChannel = action.payload.channel; + // const mentionedMessage = action.payload.message; + // return { + // ...state + // }; + return state; + } + + default: + return state; + } +} + +var initialState = { + allMessages: [], + loading: false, + initialized: false, + currentOpenChannel: null, + isInvalid: false, + hasMore: false, + lastMessageTimestamp: 0, + frozen: false, + operators: [], + participants: [] +}; + +var COMPONENT_CLASS_NAME$1 = 'sendbird-openchannel-conversation'; +var OpenchannelConversation = function OpenchannelConversation(props) { + // props + var useMessageGrouping = props.useMessageGrouping, + channelUrl = props.channelUrl, + stores = props.stores, + config = props.config, + _a = props.queries, + queries = _a === void 0 ? {} : _a, + disableUserProfile = props.disableUserProfile, + renderUserProfile = props.renderUserProfile, + renderChannelTitle = props.renderChannelTitle, + renderMessageInput = props.renderMessageInput, + onBeforeSendUserMessage = props.onBeforeSendUserMessage, + onBeforeSendFileMessage = props.onBeforeSendFileMessage, + onChatHeaderActionClick = props.onChatHeaderActionClick; + var sdkStore = stores.sdkStore, + userStore = stores.userStore; + var userId = config.userId, + isOnline = config.isOnline, + logger = config.logger; + var sdk = sdkStore.sdk; + var user = userStore.user; // hook variables + + var _b = React.useReducer(reducer, initialState), + messagesStore = _b[0], + messagesDispatcher = _b[1]; + + var allMessages = messagesStore.allMessages, + loading = messagesStore.loading, + initialized = messagesStore.initialized, + currentOpenChannel = messagesStore.currentOpenChannel, + isInvalid = messagesStore.isInvalid, + hasMore = messagesStore.hasMore, + lastMessageTimestamp = messagesStore.lastMessageTimestamp; // ref + + var messageInputRef = React.useRef(null); // useSendMessageCallback + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + var _c = React.useState(null), + scrollDownPromise = _c[0], + setScrollDownPromise = _c[1]; + + var _d = React.useState(false), + showScrollDownButton = _d[0], + setShowScrollDownButton = _d[1]; // const + + + var sdkInit = sdkStore.initialized; + var userFilledMessageListParams = queries ? queries.messageListParams : null; + var disabled = !initialized || !isOnline || isDisabledBecauseFrozen(currentOpenChannel, userId); // || utils.isDisabledBecauseMuted(mutedParticipantIds, userId) + + var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; + var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; // useSetChannel + + React.useEffect(function () { + if (channelUrl && sdkInit && sdk && sdk.OpenChannel) { + logger.info('OpenChannel | useSetChannel fetching channel', channelUrl); + sdk.OpenChannel.getChannel(channelUrl, function (openChannel, error) { + if (!error) { + logger.info('OpenChannel | useSetChannel fetched channel', openChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: openChannel + }); + openChannel.enter(function (error) { + if (error) { + logger.warning('OpenChannel | useSetChannel enter channel failed', { + channelUrl: channelUrl, + error: error + }); + messagesDispatcher({ + type: SET_CHANNEL_INVALID + }); + } + }); + } else { + logger.warning('OpenChannel | useSetChannel fetch channel failed', { + channelUrl: channelUrl, + error: error + }); + messagesDispatcher({ + type: SET_CHANNEL_INVALID + }); + } + }); // .then((openChannel) => { + // logger.info('OpenChannel | useSetChannel fetched channel', openChannel); + // messagesDispatcher({ + // type: messageActionTypes.SET_CURRENT_CHANNEL, + // payload: openChannel, + // }); + // }) + // .catch((error) => { + // logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error }); + // messagesDispatcher({ + // type: messageActionTypes.SET_CHANNEL_INVALID, + // }); + // }); + } + }, [channelUrl, sdkInit]); // useHandleChannelEvents + + React.useEffect(function () { + var messageReceiverId = LocalizationContext.uuidv4$1(); + + if (currentOpenChannel && currentOpenChannel.url && sdk && sdk.ChannelHandler) { + var ChannelHandler = new sdk.ChannelHandler(); + logger.info('OpenChannel | useHandleChannelEvents: Setup event handler', messageReceiverId); + + ChannelHandler.onMessageReceived = function (channel, message) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { + channelUrl: channelUrl, + message: message + }); + messagesDispatcher({ + type: ON_MESSAGE_RECEIVED, + payload: { + channel: channel, + message: message + } + }); + }; + + ChannelHandler.onMessageUpdated = function (channel, message) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { + channelUrl: channelUrl, + message: message + }); + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: channel, + message: message + } + }); + }; + + ChannelHandler.onMessageDeleted = function (channel, messageId) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { + channelUrl: channelUrl, + messageId: messageId + }); + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: { + channel: channel, + messageId: messageId + } + }); + }; + + ChannelHandler.onOperatorUpdated = function (channel, operators) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { + channelUrl: channelUrl, + operators: operators + }); + messagesDispatcher({ + type: ON_OPERATOR_UPDATED, + payload: { + channel: channel, + operators: operators + } + }); + }; + + ChannelHandler.onUserEntered = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_ENTERED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserExited = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_EXITED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserMuted = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_MUTED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserUnmuted = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_UNMUTED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserBanned = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_BANNED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserUnbanned = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_UNBANNED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onChannelFrozen = function (channel) { + logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel); + messagesDispatcher({ + type: ON_CHANNEL_FROZEN, + payload: channel + }); + }; + + ChannelHandler.onChannelUnfrozen = function (channel) { + logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel); + messagesDispatcher({ + type: ON_CHANNEL_UNFROZEN, + payload: channel + }); + }; + + ChannelHandler.onChannelChanged = function (channel) { + logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel); + messagesDispatcher({ + type: ON_CHANNEL_CHANGED, + payload: channel + }); + }; + + ChannelHandler.onMetaDataCreated = function (channel, metaData) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { + channelUrl: channelUrl, + metaData: metaData + }); + messagesDispatcher({ + type: ON_META_DATA_CREATED, + payload: { + channel: channel, + metaData: metaData + } + }); + }; + + ChannelHandler.onMetaDataUpdated = function (channel, metaData) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { + channelUrl: channelUrl, + metaData: metaData + }); + messagesDispatcher({ + type: ON_META_DATA_UPDATED, + payload: { + channel: channel, + metaData: metaData + } + }); + }; + + ChannelHandler.onMetaDataDeleted = function (channel, metaDataKeys) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { + channelUrl: channelUrl, + metaDataKeys: metaDataKeys + }); + messagesDispatcher({ + type: ON_META_DATA_DELETED, + payload: { + channel: channel, + metaDataKeys: metaDataKeys + } + }); + }; + + ChannelHandler.onMetaCountersCreated = function (channel, metaCounter) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { + channelUrl: channelUrl, + metaCounter: metaCounter + }); + messagesDispatcher({ + type: ON_META_COUNTERS_CREATED, + payload: { + channel: channel, + metaCounter: metaCounter + } + }); + }; + + ChannelHandler.onMetaCountersUpdated = function (channel, metaCounter) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { + channelUrl: channelUrl, + metaCounter: metaCounter + }); + messagesDispatcher({ + type: ON_META_COUNTERS_UPDATED, + payload: { + channel: channel, + metaCounter: metaCounter + } + }); + }; + + ChannelHandler.onMetaCountersDeleted = function (channel, metaCounterKeys) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { + channelUrl: channelUrl, + metaCounterKeys: metaCounterKeys + }); + messagesDispatcher({ + type: ON_META_COUNTERS_DELETED, + payload: { + channel: channel, + metaCounterKeys: metaCounterKeys + } + }); + }; + + ChannelHandler.onMentionReceived = function (channel, message) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { + channelUrl: channelUrl, + message: message + }); + messagesDispatcher({ + type: ON_MENTION_RECEIVED, + payload: { + channel: channel, + message: message + } + }); + }; + + sdk.addChannelHandler(messageReceiverId, ChannelHandler); + } + + return function () { + if (sdk && sdk.removeChannelHandler) { + logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId); + sdk.removeChannelHandler(messageReceiverId); + } + }; + }, [currentOpenChannel]); // useInitialMessagesFetch + + React.useEffect(function () { + logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel); + messagesDispatcher({ + type: RESET_MESSAGES + }); + + if (sdk && sdk.MessageListParams && currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) { + var messageListParams_1 = new sdk.MessageListParams(); + messageListParams_1.prevResultSize = 30; + messageListParams_1.isInclusive = true; + messageListParams_1.includeReplies = false; + messageListParams_1.includeReactions = false; + + if (userFilledMessageListParams) { + Object.keys(userFilledMessageListParams).forEach(function (key) { + messageListParams_1[key] = userFilledMessageListParams[key]; + }); + logger.info('OpenChannel | Used customizedMessageListParams'); + } + + logger.info('OpenChannel | Fetching messages', { + currentOpenChannel: currentOpenChannel, + messageListParams: messageListParams_1 + }); + currentOpenChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams_1, function (messages, error) { + if (!error) { + logger.info('OpenChannel | Fetching messages succeeded', messages); + var hasMore_1 = messages && messages.length > 0; + var lastMessageTimestamp_1 = hasMore_1 ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + currentOpenChannel: currentOpenChannel, + messages: messages, + hasMore: hasMore_1, + lastMessageTimestamp: lastMessageTimestamp_1 + } + }); + setTimeout(function () { + scrollIntoLast('.sendbird-msg--scroll-ref'); + }); + } else { + logger.error('OpenChannel | Fetching messages failed', error); + messagesDispatcher({ + type: GET_PREV_MESSAGES_FAIL, + payload: { + currentOpenChannel: currentOpenChannel, + messages: [], + hasMore: false, + lastMessageTimestamp: 0 + } + }); + } + }); // todo: use promise after CoreSDK adds required TS methods + // .then((messages) => { + // console.log('get messages via getMessagesByTimestamp', messages); + // const hasMore = (messages && messages.length > 0); + // const lastMessageTimestamp = hasMore + // ? messages[0].createdAt + // : null; + // messagesDispatcher({ + // type: messageActionTypes.GET_PREV_MESSAGES_SUCESS, + // payload: { + // currentOpenChannel, + // messages, + // hasMore, + // lastMessageTimestamp, + // }, + // }); + // }) + // .catch((error: Error): void => { + // logger.error('OpenChannel | Fetching messages failed', error); + // messagesDispatcher({ + // type: messageActionTypes.GET_PREV_MESSAGES_FAIL, + // payload: { + // currentOpenChannel, + // messages: [], + // hasMore: false, + // lastMessageTimestamp: 0, + // } + // }); + // }); + } + }, [currentOpenChannel]); // useScrollCallback + + var onScroll = React.useCallback(function (callback) { + if (!hasMore) { + return; + } + + var messageListParams = new sdk.MessageListParams(); + messageListParams.prevResultSize = 30; + messageListParams.includeReplies = false; + messageListParams.includeReactions = false; + + if (userFilledMessageListParams) { + Object.keys(userFilledMessageListParams).forEach(function (key) { + messageListParams[key] = userFilledMessageListParams[key]; + }); + logger.info('OpenChannel: Used userFilledMessageListParams'); + } + + logger.info('OpenChannel: Fetching messages', { + currentOpenChannel: currentOpenChannel, + messageListParams: messageListParams + }); + currentOpenChannel.getMessagesByTimestamp(lastMessageTimestamp || new Date().getTime(), messageListParams, function (messages, error) { + if (!error) { + logger.info('OpenChannel | Fetching messages succeeded', messages); + var hasMore_2 = messages && messages.length > 0; + var lastMessageTimestamp_2 = hasMore_2 ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + currentOpenChannel: currentOpenChannel, + messages: messages, + hasMore: hasMore_2, + lastMessageTimestamp: lastMessageTimestamp_2 + } + }); + setTimeout(function () { + callback(); + }); + } else { + logger.error('OpenChannel | Fetching messages failed', error); + messagesDispatcher({ + type: GET_PREV_MESSAGES_FAIL, + payload: { + currentOpenChannel: currentOpenChannel, + messages: [], + hasMore: false, + lastMessageTimestamp: 0 + } + }); + } + }); + }, [currentOpenChannel, lastMessageTimestamp]); // useSendMessageCallback + + var handleSendMessage = React.useCallback(function () { + var text = messageInputRef.current.value; + + function createParamsDefualt(txt) { + var message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim(); + var params = new sdk.UserMessageParams(); + params.message = message; + return params; + } + + var createCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function'; + + if (createCustomParams) { + logger.info('OpenChannel | Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage); + } + + var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefualt(text); + logger.info('OpenChannel | Sending message has started', params); + var pendingMessage = currentOpenChannel.sendUserMessage(params, function (message, error) { + if (error) { + logger.warning('OpenChannel | Sending message failed', { + message: message + }); + messagesDispatcher({ + type: SENDING_MESSAGE_FAILED, + payload: message + }); + return; + } + + logger.info('OpenChannel | Sending message succeeded', { + message: message + }); + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + }); + messagesDispatcher({ + type: SENDING_MESSAGE_START, + payload: { + message: pendingMessage, + channel: currentOpenChannel + } + }); + }, [currentOpenChannel, onBeforeSendUserMessage]); // useFileUploadCallback + + var handleFileUpload = React.useCallback(function (file) { + function createParamsDefualt(file_) { + var params = new sdk.FileMessageParams(); + params.file = file_; + return params; + } + + var createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function'; + + if (createCustomParams) { + logger.info('OpenChannel | Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage); + } + + var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefualt(file); + logger.info('OpenChannel | Uploading file message start', params); + var pendingMessage = currentOpenChannel.sendFileMessage(params, function (message, error) { + if (error) { + logger.error('OpenChannel | Sending file message failed', { + message: message, + error: error + }); + message.localUrl = URL.createObjectURL(file); + message.file = file; + messagesDispatcher({ + type: SENDING_MESSAGE_FAILED, + payload: message + }); + return; + } + + logger.info('OpenChannel | Sending message succeeded', message); + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + }); + messagesDispatcher({ + type: SENDING_MESSAGE_START, + payload: { + message: LocalizationContext.__assign(LocalizationContext.__assign({}, pendingMessage), { + url: URL.createObjectURL(file), + // pending thumbnail message seems to be failed + requestState: 'pending' + }), + channel: currentOpenChannel + } + }); + }, [currentOpenChannel, onBeforeSendFileMessage]); // useUpdateMessageCallback + + var updateMessage = React.useCallback(function (messageId, text, callback) { + function createParamsDefualt(txt) { + var params = new sdk.UserMessageParams(); + params.message = txt; + return params; + } + + if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') { + logger.info('OpenChannel | Creating params using onBeforeUpdateUserMessage'); + } + + var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefualt(text); + currentOpenChannel.updateUserMessage(messageId, params, function (message, error) { + if (callback) { + callback(); + } + + if (!error) { + logger.info('OpenChannel | Updating message succeeded', { + message: message, + params: params + }); + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: currentOpenChannel, + message: message + } + }); + } else { + logger.warning('OpenChannel | Updating message failed', error); + } + }); + }, [currentOpenChannel, messagesDispatcher, onBeforeSendUserMessage]); // useDeleteMessageCallback + + var deleteMessage = React.useCallback(function (message, callback) { + logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message); + var requestState = message.requestState; + logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState: ', requestState); + + if (requestState === 'failed' || requestState === 'pending') { + logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local: ', message); + messagesDispatcher({ + type: ON_MESSAGE_DELETED_BY_REQ_ID, + payload: message.reqId + }); + + if (callback) { + callback(); + } + + return; + } + + currentOpenChannel.deleteMessage(message, function (error) { + logger.info('OpenChannel | useDeleteMessageCallback: Deleting message from remote: ', requestState); + + if (callback) { + callback(); + } + + if (!error) { + logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message); + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: { + channel: currentOpenChannel, + messageId: message.messageId + } + }); + } else { + logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error); + } + }); + }, [currentOpenChannel, messagesDispatcher]); // useResendMessageCallback + + var resendMessage = React.useCallback(function (failedMessage) { + logger.info('OpenChannel | Reseding message has started', failedMessage); + var messageType = failedMessage.messageType, + file = failedMessage.file; + + if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) { + // eslint-disable-next-line no-param-reassign + failedMessage.requestState = 'pending'; + messagesDispatcher({ + type: RESENDING_MESSAGE_START, + payload: { + channel: currentOpenChannel, + message: failedMessage + } + }); // userMessage + + if (messageType === 'user' && failedMessage.messageType === 'user') { + currentOpenChannel.resendUserMessage(failedMessage, function (message, error) { + if (!error) { + logger.info('OpenChannel | Reseding message succeeded', message); + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + } else { + logger.warning('OpenChannel | Resending message failed', error); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'failed'; + messagesDispatcher({ + type: SENDING_MESSAGE_FAILED, + payload: failedMessage + }); + } + }); + return; + } // fileMessage + + + if (messageType === 'file' && failedMessage.messageType === 'file') { + currentOpenChannel.resendFileMessage(failedMessage, file, function (message, error) { + if (!error) { + logger.info('OpenChannel | Resending file message succeeded', message); + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + } else { + logger.warning('OpenChannel | Resending file message failed', error); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'failed'; + messagesDispatcher({ + type: SENDING_MESSAGE_FAILED, + payload: failedMessage + }); + } + }); + } + } else { + // to alert user on console + // eslint-disable-next-line no-console + console.error('OpenChannel | Message is not resendable'); + logger.warning('OpenChannel | Message is not resendable', failedMessage); + } + }, [currentOpenChannel, messagesDispatcher]); + + var handleClickScrollDownButton = function handleClickScrollDownButton() { + var promise = new Promise(function (resolve) { + resolve(); + }); + setScrollDownPromise(promise); + }; + + if (!currentOpenChannel || !currentOpenChannel.url) { + return React__default.createElement("div", { + className: COMPONENT_CLASS_NAME$1 + }, React__default.createElement(index$1.PlaceHolder, { + type: index$1.PlaceHolderTypes$1.NO_CHANNELS + })); + } + + if (loading) { + return React__default.createElement("div", { + className: COMPONENT_CLASS_NAME$1 + }, React__default.createElement(index$1.PlaceHolder, { + type: index$1.PlaceHolderTypes$1.LOADING + })); + } + + if (isInvalid) { + return React__default.createElement("div", { + className: COMPONENT_CLASS_NAME$1 + }, React__default.createElement(index$1.PlaceHolder, { + type: index$1.PlaceHolderTypes$1.WRONG + })); + } + + return React__default.createElement(index$1.UserProfileProvider, { + className: COMPONENT_CLASS_NAME$1, + disableUserProfile: userDefinedDisableUserProfile, + renderUserProfile: userDefinedRenderProfile + }, showScrollDownButton && React__default.createElement("div", { + className: COMPONENT_CLASS_NAME$1 + "__go-to-bottom", + onClick: handleClickScrollDownButton, + onKeyDown: handleClickScrollDownButton, + tabIndex: 0, + role: "button" + }, React__default.createElement(index$1.Icon, { + width: "24px", + height: "24px", + type: index$1.IconTypes.SHEVRON_DOWN, + fillColor: index$1.IconColors.CONTENT + })), renderChannelTitle ? renderChannelTitle({ + channel: currentOpenChannel, + user: user + }) : React__default.createElement(OpenchannelConversationHeader, { + title: currentOpenChannel.name, + subTitle: kFormatter(currentOpenChannel.participantCount) + " " + stringSet.OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS, + coverImage: currentOpenChannel.coverUrl, + onActionClick: onChatHeaderActionClick + }), currentOpenChannel.isFrozen && React__default.createElement(FrozenNotification, null), React__default.createElement(OpenchannelConversationScroll, { + openchannel: currentOpenChannel, + user: user, + useMessageGrouping: useMessageGrouping, + isOnline: isOnline, + allMessages: allMessages, + onScroll: onScroll, + hasMore: hasMore, + scrollDownPromise: scrollDownPromise, + showScrollDownButton: setShowScrollDownButton, + updateMessage: updateMessage, + deleteMessage: deleteMessage, + resendMessage: resendMessage + }), renderMessageInput ? renderMessageInput({ + channel: currentOpenChannel, + user: user, + disabled: disabled + }) : React__default.createElement(MessageInputWrapper$1, { + channel: currentOpenChannel, + user: user, + ref: messageInputRef, + disabled: disabled, + onSendMessage: handleSendMessage, + onFileUpload: handleFileUpload, + renderMessageInput: renderMessageInput + })); +}; +var index = LocalizationContext.withSendbirdContext(OpenchannelConversation); + +exports.OpenchannelConversation = OpenchannelConversation; +exports.default = index; +//# sourceMappingURL=OpenChannel.js.map diff --git a/dist/cjs/OpenChannel.js.map b/dist/cjs/OpenChannel.js.map new file mode 100644 index 0000000..8adbbac --- /dev/null +++ b/dist/cjs/OpenChannel.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OpenChannel.js","sources":["../../../src/smart-components/OpenchannelConversation/utils.ts","../../../src/smart-components/OpenchannelConversation/components/MessageInpuetWrapper.tsx","../../../src/smart-components/OpenchannelConversation/components/FrozenNotification.tsx","../../../src/ui/OpenchannelConversationHeader/index.tsx","../../../src/ui/OpenchannelUserMessage/utils.ts","../../../src/utils/openChannelUtils.ts","../../../src/ui/OpenchannelUserMessage/index.tsx","../../../src/ui/OpenChannelAdminMessage/index.tsx","../../../src/ui/OpenchannelOGMessage/utils.ts","../../../src/ui/OpenchannelOGMessage/index.tsx","../../../src/ui/OpenchannelThumbnailMessage/utils.ts","../../../src/ui/OpenchannelThumbnailMessage/index.tsx","../../../src/ui/OpenchannelFileMessage/utils.ts","../../../src/ui/OpenchannelFileMessage/index.tsx","../../../src/smart-components/OpenchannelConversation/components/RemoveMessageModal.tsx","../../../src/smart-components/OpenchannelConversation/components/types.ts","../../../src/smart-components/OpenchannelConversation/components/MessageHOC.tsx","../../../src/smart-components/OpenchannelConversation/components/OpenchannelConversationScroll.tsx","../../../src/smart-components/OpenchannelConversation/dux/actionTypes.ts","../../../src/smart-components/OpenchannelConversation/dux/reducers.ts","../../../src/smart-components/OpenchannelConversation/dux/initialState.ts","../../../src/smart-components/OpenchannelConversation/index.tsx"],"sourcesContent":["import format from 'date-fns/format';\nimport Sendbird from 'sendbird';\nimport SendbirdUIKit from '../../index';\n\nexport const getMessageCreatedAt = (message: SendbirdUIKit.EveryMessage): string => format(message.createdAt, 'p');\n\nexport const scrollIntoLast = (selector: string, intialTry = 0): void => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\n\nexport const isSameGroup = (\n message: SendbirdUIKit.EveryMessage,\n comparingMessage: SendbirdUIKit.EveryMessage,\n): boolean => {\n if (\n !message\n || !comparingMessage\n || message.messageType === 'admin'\n || comparingMessage.messageType === 'admin'\n ) {\n return false\n }\n\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: SendbirdUIKit.EveryMessage,\n currMessage: SendbirdUIKit.EveryMessage,\n nextMessage: SendbirdUIKit.EveryMessage,\n): [boolean, boolean] => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n );\n\nexport const kFormatter = (num: number): string => {\n if (Math.abs(num) > 999999) {\n return `${(Math.abs(num) / 1000000).toFixed(1)}M`;\n }\n\n if (Math.abs(num) > 999) {\n return `${(Math.abs(num) / 1000).toFixed(1)}K`;\n }\n\n return `${num}`;\n};\n\nexport const isOperator = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { operators } = openChannel;\n if (operators.map(operator => operator.userId).indexOf(userId) < 0) {\n return false;\n }\n return true;\n};\n\nexport const isDisabledBecauseFrozen = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { isFrozen } = openChannel;\n return isFrozen && !isOperator(openChannel, userId);\n};\n\nexport const isDisabledBecauseMuted = (mutedParticipantIds: string[], userId: string): boolean => {\n return mutedParticipantIds.indexOf(userId) < 0;\n};\n","import React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\nimport { RenderMessageInputProps } from '../../../index';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport MessageInput from '../../../ui/MessageInput';\n\ninterface Props {\n channel: Sendbird.OpenChannel;\n user: Sendbird.User;\n disabled: boolean;\n onSendMessage(): void;\n onFileUpload(file_: File): void;\n renderMessageInput?(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n disabled,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n}: Props, ref: React.RefObject): JSX.Element => {\n if (!channel) {\n return;\n }\n\n const { stringSet } = useContext(LocalizationContext);\n\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport './frozen-notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { ReactElement } from 'react';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, {\n LabelTypography,\n LabelColors,\n LabelStringSet,\n} from '../Label';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation-header';\n\ninterface Props {\n coverImage?: string;\n title?: string;\n subTitle?: string;\n onActionClick?(): void;\n}\n\nexport default function OpenchannelConversationHeader({\n coverImage,\n title = LabelStringSet.NO_TITLE,\n subTitle = LabelStringSet.NO_TITLE,\n onActionClick,\n}: Props): ReactElement {\n return (\n\n
\n
\n {\n coverImage ? (\n \n ) : (\n \n )\n }\n \n {title}\n \n \n {subTitle}\n \n
\n
\n \n \n \n
\n
\n );\n}\n","export const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport default { copyToClipboard };\n","import Sendbird from 'sendbird';\nimport { ClientUserMessage, ClientFileMessage } from '../index';\n\nconst OpenChannelMessageStatusTypes = {\n NONE: 'none',\n PENDING: 'pending',\n FAILED: 'failed',\n CANCELED: 'canceled',\n SUCCEEDED: 'succeeded'\n};\n\nexport const getSenderFromMessage = (message: ClientUserMessage | ClientFileMessage): Sendbird.User => {\n return message.sender || message._sender;\n};\n\nexport const checkIsSent = (status: string): boolean => (status === OpenChannelMessageStatusTypes.SUCCEEDED);\n\nexport const checkIsByMe = (message: ClientFileMessage | ClientUserMessage, userId: string): boolean => (getSenderFromMessage(message).userId === userId);\n\ninterface isFineCopyParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineCopy = ({ message }: isFineCopyParams): boolean => {\n return (message.messageType === 'user' && message.message.length > 0);\n};\n\ninterface isFineResendParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineResend = ({ message, status, userId }: isFineResendParams): boolean => {\n return checkIsByMe(message, userId)\n && !checkIsSent(status)\n && message.isResendable\n && message.isResendable();\n};\n\ninterface isFineEditParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineEdit = ({ message, status, userId }: isFineEditParams): boolean => {\n return checkIsByMe(message, userId) && checkIsSent(status);\n};\n\ninterface isFineDeleteParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineDelete = ({ message, userId }: isFineDeleteParams): boolean => {\n return checkIsByMe(message, userId);\n};\n\ninterface showMenuTriggerParams {\n message: ClientUserMessage | ClientFileMessage;\n status: string;\n userId: string;\n}\nexport const showMenuTrigger = (props: showMenuTriggerParams): boolean => {\n const { message, status, userId } = props;\n if (message.messageType === 'user') {\n return (\n isFineDelete({ message, status, userId })\n || isFineEdit({ message, status, userId })\n || isFineCopy({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n } else {\n return (\n isFineDelete({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n }\n};\n","import React, {\n useMemo,\n useContext,\n useRef,\n useState,\n ReactElement,\n useEffect,\n} from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { copyToClipboard } from './utils';\nimport uuidv4 from '../../utils/uuid';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n userId: string;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n}\n\nexport default function OpenchannelUserMessage({\n message,\n className,\n userId,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n chainTop,\n status,\n}: Props): ReactElement {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n // hooks\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const contextMenuRef = useRef(null);\n const [contextStyle, setContextStyle] = useState({});\n\n // consts\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push(`sendbird-openchannel-user-message`);\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const splitMessage = message.message.split(/\\r/);\n const matchedMessage = splitMessage.map((word) => (word !== '' ? word :
));\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n // place context menu top depending clientHeight of message component\n useEffect(() => {\n if (messageRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status}) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message: message, userId: userId, status: status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message: message, userId: userId, status: status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n );\n}\n","import React, { ReactElement } from 'react';\nimport { ClientAdminMessage } from '../../index';\nimport './index.scss';\n\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\ninterface Props {\n message: ClientAdminMessage;\n className?: string | string[];\n}\n\nexport default function OpenChannelAdminMessage({\n message,\n className,\n}: Props): ReactElement {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-admin-message');\n\n return (\n
\n \n {message.message || ''}\n \n
\n );\n}\n","import Sendbird from 'sendbird';\n\nexport const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const createUrlTester = (regexp: RegExp) => (text: string): boolean => regexp.test(text);\nexport const checkOGIsEnalbed = (message: Sendbird.UserMessage): boolean => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n","import React, { useState, useContext, useMemo, useRef, useEffect } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport LinkLabel from '../LinkLabel';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport uuidv4 from '../../utils/uuid';\nimport { copyToClipboard } from '../OpenchannelUserMessage/utils';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkOGIsEnalbed, createUrlTester, URL_REG } from './utils';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n userId: string;\n}\n\nexport default function OpenchannelOGMessage({\n message,\n className,\n disabled,\n showEdit,\n showRemove,\n resendMessage,\n chainTop,\n status,\n userId,\n}: Props): JSX.Element {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n const { ogMetaData } = message;\n const { defaultImage } = ogMetaData;\n\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const [contextStyle, setContextStyle] = useState({});\n const messageComponentRef = useRef(null);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const isUrl = createUrlTester(URL_REG);\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-og-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const wordClassName = 'sendbird-openchannel-og-message--word';\n const splitMessage = message.message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n // place conxt menu top depending clientHeight of message component\n useEffect(() => {\n if (messageComponentRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status }) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message, userId, status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n
\n
\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n ogMetaData.title && (\n \n {\n ogMetaData.title\n }\n \n )\n }\n {\n ogMetaData.description && (\n \n {ogMetaData.description}\n \n )\n }\n {\n ogMetaData.url && (\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n )\n }\n \n \n \n );\n}\n","export const SUPPORTING_TYPES = {\n IMAGE: 'IMAGE',\n VIDEO: 'VIDEO',\n UNSUPPORTED: 'UNSUPPORTED',\n};\n\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const getSupportingFileType = (type: string): string => {\n if (SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.IMAGE;\n }\n if (SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.VIDEO;\n }\n return SUPPORTING_TYPES.UNSUPPORTED;\n}\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\nimport { SUPPORTING_TYPES, getSupportingFileType } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport {\n checkIsByMe,\n checkIsSent,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n disabled: boolean;\n userId: string;\n status: string;\n chainTop: boolean;\n chainBottom: boolean;\n onClick(bool: boolean): void,\n showRemove(bool: boolean): void,\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelThumbnailMessage({\n message,\n className,\n disabled,\n userId,\n status,\n chainTop,\n onClick,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-thumbnail-message');\n const isByMe = checkIsByMe(message, userId);\n const isMessageSent = checkIsSent(status);\n const sender = getSenderFromMessage(message);\n\n return (\n
\n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n onKeyDown={() => {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n tabIndex={0}\n role=\"button\"\n >\n
\n {\n {\n [SUPPORTING_TYPES.VIDEO]: (\n (url || localUrl)\n ? (\n
\n \n \n \n \n
\n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.IMAGE]: (\n (url || localUrl)\n ? (\n \n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.UNSUPPORTED]: (\n \n ),\n }[getSupportingFileType(type)]\n }\n
\n
\n
\n \n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n
\n \n );\n}\n","import { IconTypes } from '../Icon';\n\nexport const checkFileType = (fileUrl: string): string => {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport const truncate = (fullStr:string, strLen: number): string => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkFileType, truncate } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineDelete,\n isFineResend,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n userId: string;\n disabled?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n\n showRemove(bool: boolean): void;\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelFileMessage({\n message,\n className,\n userId,\n disabled,\n chainTop,\n status,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n\n const openFileUrl = () => { window.open(message.url); };\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-file-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n checkFileType(message.url) && (\n \n )\n }\n \n \n {truncate(message.url, 40)}\n \n \n
\n
\n \n {\n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n if (disabled) { return; }\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n }\n \n \n );\n}\n","import React, { useContext } from 'react'\nimport { ClientFileMessage, ClientUserMessage } from '../../..'\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n onCloseModal(): void;\n onDeleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n}\n\nexport default function RemoveMessageModal({\n onCloseModal,\n onDeleteMessage,\n}: Props): JSX.Element {\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n \n );\n}\n","import { EveryMessage } from '../../..';\nimport { isImage, isVideo } from '../../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message: EveryMessage): string => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if (message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return MessageTypes.UNKNOWN;\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import React, { useState, useRef, ReactElement } from 'react';\n\nimport format from 'date-fns/format';\nimport { ClientFileMessage, ClientUserMessage, EveryMessage } from '../../../index';\n\nimport OpenChannelUserMessage from '../../../ui/OpenchannelUserMessage';\nimport OpenChannelAdminMessage from '../../../ui/OpenChannelAdminMessage';\nimport OpenChannelOGMessage from '../../../ui/OpenchannelOGMessage';\nimport OpenChannelThumbnailMessage from '../../../ui/OpenchannelThumbnailMessage';\nimport OpenChannelFileMessage from '../../../ui/OpenchannelFileMessage';\n// import UnknownMessage from '../../../ui/UnknownMessage';\n\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\n\nimport RemoveMessageModal from './RemoveMessageModal';\nimport {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n} from './types';\n\ninterface Props {\n message: EveryMessage;\n userId: string;\n disabled: boolean;\n editDisabled: boolean;\n hasSeperator: boolean;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n updateMessage(messageId: number, text: string, callback?: () => void): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n status?: string;\n chainTop: boolean;\n chainBottom: boolean;\n}\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n resendMessage,\n status,\n chainTop,\n chainBottom,\n}: Props): ReactElement {\n let sender: SendBird.User = null;\n if (message.messageType !== 'admin') {\n sender = message.sender;\n }\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n let isByMe = false;\n\n if (sender && message.messageType !== 'admin') {\n // pending and failed messages are by me\n isByMe = (userId === sender.userId)\n || (message.requestState === SendingMessageStatus.PENDING)\n || (message.requestState === SendingMessageStatus.FAILED);\n }\n\n if (message.messageType === 'user' && showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: (() => {\n if (message.messageType === 'admin') {\n return (\n \n )\n }\n })(),\n [MessageTypes.FILE]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.OG]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.THUMBNAIL]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.USER]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.UNKNOWN]: (() => {\n return;\n // return (\n // \n // );\n })(),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n if (message.messageType !== 'admin') {\n deleteMessage(message);\n }\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={deleteMessage}\n isByMe={isByMe}\n />\n )\n }\n {/* {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n } */}\n
\n );\n}\n","import React, { ReactElement, useRef, useEffect } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\nimport { ClientFileMessage, ClientUserMessage, EveryMessage } from '../../../index';\nimport MessageHoc from './MessageHOC';\n\nimport './openchannel-conversation-scroll.scss';\nimport { compareMessagesForGrouping } from '../utils';\n\ninterface Props {\n openchannel: SendBird.OpenChannel;\n user: SendBird.User;\n allMessages: EveryMessage[];\n useMessageGrouping: boolean;\n isOnline: boolean;\n hasMore: boolean;\n onScroll(callback?: () => void): void;\n scrollDownPromise: PromiseLike;\n showScrollDownButton?(bool: boolean): void;\n updateMessage(messageId: number, text: string, callback?: () => void ): void;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void ): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n}\n\nexport default function OpenchannelConversationScroll(\n {\n useMessageGrouping = true,\n openchannel,\n user,\n allMessages,\n isOnline = true,\n hasMore,\n onScroll,\n scrollDownPromise,\n showScrollDownButton,\n updateMessage,\n deleteMessage,\n resendMessage,\n }: Props\n): ReactElement {\n const scrollRef = useRef(null);\n\n const handleOnScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n } = element;\n if (showScrollDownButton) {\n if (scrollHeight > scrollTop + clientHeight) {\n showScrollDownButton(true);\n } else {\n showScrollDownButton(false);\n }\n }\n\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n onScroll(() => {\n const first = nodes[0];\n first.scrollIntoView();\n });\n }\n };\n\n useEffect(() => {\n // This promise is created in everytime when user click the scroll to bottom button\n // This scope waits when user click the button and scrolls to the bottom of conversation\n if (scrollDownPromise && scrollRef && scrollRef.current) {\n scrollDownPromise.then(() => {\n scrollRef.current.scrollTo(0, scrollRef.current.scrollHeight);\n if (showScrollDownButton) {\n showScrollDownButton(false);\n }\n });\n }\n return;\n }, [scrollDownPromise]);\n\n return (\n \n
\n
\n
\n {\n allMessages.map((message, index) => {\n let status: string;\n\n if (message.messageType !== 'admin') {\n status = message.sendingStatus;\n }\n\n const previousMessage = allMessages[index - 1];\n const nextMessage = allMessages[index - 1];\n\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = message.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, message, nextMessage)\n : [false, false];\n return (\n \n )\n })\n }\n
\n
\n
\n );\n}\n","export const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';\nexport const SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';\nexport const SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';\nexport const SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';\nexport const RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';\n\n// event handlers\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';\nexport const ON_USER_ENTERED = 'ON_USER_ENTERED';\nexport const ON_USER_EXITED = 'ON_USER_EXITED';\nexport const ON_USER_MUTED = 'ON_USER_MUTED';\nexport const ON_USER_UNMUTED = 'ON_USER_UNMUTED';\nexport const ON_USER_BANNED = 'ON_USER_BANNED';\nexport const ON_USER_UNBANNED = 'ON_USER_UNBANNED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';\nexport const ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';\nexport const ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';\nexport const ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';\nexport const ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';\nexport const ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';\nexport const ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';\n","import { State as initialStateInterface } from './initialState';\nimport * as actionTypes from './actionTypes';\n\nimport compareIds from '../../../utils/compareIds.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore: Unreachable code error\ninterface ActionInterface {\n type: string;\n payload?: any;\n}\n\nexport default function reducer(\n state: initialStateInterface,\n action: ActionInterface,\n): initialStateInterface {\n switch (action.type) {\n case actionTypes.RESET_MESSAGES: {\n return {\n ...state,\n allMessages: [],\n };\n }\n\n case actionTypes.SET_CURRENT_CHANNEL: {\n const currentChannel = action.payload;\n const operators = currentChannel.operators;\n if (\n !state.isInvalid\n && state.currentOpenChannel\n && state.currentOpenChannel.url\n && (state.currentOpenChannel.url === currentChannel.url)\n ) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: currentChannel,\n isInvalid: false,\n operators: operators,\n participants: operators,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_SUCESS:\n case actionTypes.GET_PREV_MESSAGES_FAIL: {\n const isFailed = (action.type === actionTypes.GET_PREV_MESSAGES_FAIL);\n const {\n currentOpenChannel = {},\n messages = [],\n hasMore,\n lastMessageTimestamp,\n } = action.payload;\n const actionChannelUrl = currentOpenChannel.url;\n const receivedMessages = isFailed ? [] : messages;\n const _hasMore = isFailed ? false : hasMore;\n const _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;\n\n const stateChannel = state.currentOpenChannel;\n const stateChannelUrl = stateChannel.url;\n\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n const filteredAllMessages = state.allMessages.filter((message) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, message.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: _hasMore,\n lastMessageTimestamp: _lastMessageTimestamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_START: {\n const {\n message,\n channel,\n } = action.payload;\n if (channel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...message },\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_SUCCEEDED: {\n const sentMessage = action.payload;\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SENDING_MESSAGE_FAILED: {\n const sentMessage = action.payload;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n )),\n };\n }\n case actionTypes.RESENDING_MESSAGE_START: {\n const eventedChannel = action.payload.channel;\n const resentMessage = action.payload.message;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, resentMessage.reqId) ? resentMessage : m\n )),\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const eventedChannel = action.payload.channel;\n const receivedMessage = action.payload.message;\n const {\n currentOpenChannel\n } = state;\n\n if (\n !compareIds(eventedChannel.url, currentOpenChannel.url)\n || (\n !(state.allMessages.map(\n (message) => message.messageId).indexOf(receivedMessage.messageId) < 0\n ))\n ) {\n return state;\n }\n\n return {\n ...state,\n allMessages: [...state.allMessages, receivedMessage],\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedMessage = action.payload.message;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((message) => (\n message.isIdentical(updatedMessage)\n ? updatedMessage\n : message\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED: {\n const eventedChannel = action.payload.channel;\n const deletedMessageId = action.payload.messageId;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.filter((message) => (\n !compareIds(message.messageId, deletedMessageId)\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID: {\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n }\n case actionTypes.ON_OPERATOR_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedOperators = action.payload.operators;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: {\n ...state.currentOpenChannel,\n operators: updatedOperators,\n },\n operators: updatedOperators,\n };\n }\n case actionTypes.ON_USER_ENTERED: {\n const eventedChannel = action.payload.channel;\n const enteredUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, enteredUser],\n };\n }\n case actionTypes.ON_USER_EXITED: {\n const eventedChannel = action.payload.channel;\n const exitedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: state.participants.filter((participant) => (\n !compareIds(participant.userId, exitedUser.userId)\n )),\n };\n }\n case actionTypes.ON_USER_MUTED: {\n // const eventedChannel = action.payload.channel;\n // const mutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNMUTED: {\n // const eventedChannel = action.payload.channel;\n // const unmutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_BANNED: {\n // const eventedChannel = action.payload.channel;\n // const bannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNBANNED: {\n // const eventedChannel = action.payload.channel;\n // const unbannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_CHANNEL_FROZEN: {\n const frozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== frozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: true,\n };\n }\n case actionTypes.ON_CHANNEL_UNFROZEN: {\n const unfrozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== unfrozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: false,\n };\n }\n case actionTypes.ON_CHANNEL_CHANGED: {\n const changedChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== changedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: changedChannel,\n };\n }\n case actionTypes.ON_META_DATA_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaDataKeys = action.payload.metaDataKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaCounterKeys = action.payload.metaCounterKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_MENTION_RECEIVED: {\n // const eventedChannel = action.payload.channel;\n // const mentionedMessage = action.payload.message;\n // return {\n // ...state\n // };\n return state;\n }\n default:\n return state;\n }\n}\n","import Sendbird from 'sendbird';\nimport { EveryMessage } from '../../../index';\n\nexport interface State {\n allMessages: EveryMessage[];\n loading: boolean;\n initialized: boolean;\n currentOpenChannel: Sendbird.OpenChannel;\n isInvalid: boolean;\n hasMore: boolean;\n lastMessageTimestamp: number;\n frozen: boolean;\n operators: Sendbird.User[];\n participants: Sendbird.User[];\n // add banned participant ids\n // add muted participant ids\n}\n\nconst initialState: State = {\n allMessages: [],\n loading: false,\n initialized: false,\n currentOpenChannel: null,\n isInvalid: false,\n hasMore: false,\n lastMessageTimestamp: 0,\n frozen: false,\n operators: [],\n participants: [],\n // bannedParticipantIds\n // mutedParticipantIds\n};\n\nexport default initialState;\n","import React, {\n useRef,\n useCallback,\n useEffect,\n useReducer,\n useContext,\n useState,\n} from 'react';\nimport Sendbird from 'sendbird';\nimport * as utils from './utils';\nimport './index.scss';\n\nimport MessageInputWrapper from './components/MessageInpuetWrapper';\nimport FrozenChannelNotification from './components/FrozenNotification';\nimport OpenchannelConversationHeader from '../../ui/OpenchannelConversationHeader';\nimport OpenchannelConversationScroll from './components/OpenchannelConversationScroll';\nimport Icon, { IconColors, IconTypes } from '../../ui/Icon';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport {\n EveryMessage,\n ClientUserMessage,\n ClientFileMessage,\n OpenChannelProps,\n} from '../../index';\nimport messagesReducer from './dux/reducers';\nimport messagesInitialState from './dux/initialState';\nimport * as messageActionTypes from './dux/actionTypes';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext.jsx';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport uuidv4 from '../../utils/uuid';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation';\n\ninterface Props extends OpenChannelProps {\n stores: {\n sdkStore?: SendbirdUIKit.SdkStore,\n userStore?: {\n user: Sendbird.User,\n },\n };\n config: {\n userId: string,\n isOnline: boolean,\n logger?: SendbirdUIKit.Logger,\n theme?: string,\n disableUserProfile?: boolean;\n renderUserProfile?(): JSX.Element;\n };\n}\n\nexport const OpenchannelConversation = (props: Props): JSX.Element => {\n // props\n const {\n useMessageGrouping,\n channelUrl,\n stores,\n config,\n queries = {},\n disableUserProfile,\n renderUserProfile,\n renderChannelTitle,\n renderMessageInput,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onChatHeaderActionClick\n } = props;\n\n const {\n sdkStore,\n userStore,\n } = stores;\n const {\n userId,\n isOnline,\n logger,\n } = config;\n\n const {\n sdk\n } = sdkStore;\n const {\n user\n } = userStore;\n\n // hook variables\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const {\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n } = messagesStore;\n // ref\n const messageInputRef = useRef(null); // useSendMessageCallback\n const { stringSet } = useContext(LocalizationContext);\n const [scrollDownPromise, setScrollDownPromise] = useState(null);\n const [showScrollDownButton, setShowScrollDownButton] = useState(false);\n\n // const\n const sdkInit = sdkStore.initialized;\n const userFilledMessageListParams = queries ? queries.messageListParams: null;\n const disabled = !initialized\n || !isOnline\n || utils.isDisabledBecauseFrozen(currentOpenChannel, userId);\n // || utils.isDisabledBecauseMuted(mutedParticipantIds, userId)\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n // useSetChannel\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.OpenChannel) {\n logger.info('OpenChannel | useSetChannel fetching channel', channelUrl);\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (!error) {\n logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: openChannel,\n });\n openChannel.enter((error) => {\n if (error) {\n logger.warning('OpenChannel | useSetChannel enter channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n } else {\n logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n // .then((openChannel) => {\n // logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n // messagesDispatcher({\n // type: messageActionTypes.SET_CURRENT_CHANNEL,\n // payload: openChannel,\n // });\n // })\n // .catch((error) => {\n // logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n // messagesDispatcher({\n // type: messageActionTypes.SET_CHANNEL_INVALID,\n // });\n // });\n }\n }, [channelUrl, sdkInit]);\n\n // useHandleChannelEvents\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (currentOpenChannel && currentOpenChannel.url && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('OpenChannel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n\n ChannelHandler.onMessageReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageUpdated = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageDeleted = (channel, messageId) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { channelUrl, messageId });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: { channel, messageId },\n });\n };\n ChannelHandler.onOperatorUpdated = (channel, operators) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { channelUrl, operators });\n messagesDispatcher({\n type: messageActionTypes.ON_OPERATOR_UPDATED,\n payload: { channel, operators },\n });\n };\n ChannelHandler.onUserEntered = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_ENTERED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserExited = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_EXITED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserMuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnmuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNMUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_BANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnbanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNBANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onMetaDataCreated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_CREATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataUpdated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_UPDATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataDeleted = (channel, metaDataKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { channelUrl, metaDataKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_DELETED,\n payload: { channel, metaDataKeys },\n });\n };\n ChannelHandler.onMetaCountersCreated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_CREATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersUpdated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_UPDATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersDeleted = (channel, metaCounterKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { channelUrl, metaCounterKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_DELETED,\n payload: { channel, metaCounterKeys },\n });\n };\n ChannelHandler.onMentionReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MENTION_RECEIVED,\n payload: { channel, message },\n });\n };\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [currentOpenChannel]);\n\n // useInitialMessagesFetch\n useEffect(() => {\n logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams && currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | Used customizedMessageListParams');\n }\n\n logger.info('OpenChannel | Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n },\n );\n // todo: use promise after CoreSDK adds required TS methods\n // .then((messages) => {\n // console.log('get messages via getMessagesByTimestamp', messages);\n // const hasMore = (messages && messages.length > 0);\n // const lastMessageTimestamp = hasMore\n // ? messages[0].createdAt\n // : null;\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n // payload: {\n // currentOpenChannel,\n // messages,\n // hasMore,\n // lastMessageTimestamp,\n // },\n // });\n // })\n // .catch((error: Error): void => {\n // logger.error('OpenChannel | Fetching messages failed', error);\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n // payload: {\n // currentOpenChannel,\n // messages: [],\n // hasMore: false,\n // lastMessageTimestamp: 0,\n // }\n // });\n // });\n }\n }, [currentOpenChannel]);\n\n // useScrollCallback\n const onScroll = useCallback((callback) => {\n if (!hasMore) {\n return;\n }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel: Used userFilledMessageListParams');\n }\n\n logger.info('OpenChannel: Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n lastMessageTimestamp || new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n callback();\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n }\n );\n }, [currentOpenChannel, lastMessageTimestamp]);\n\n // useSendMessageCallback\n const handleSendMessage = useCallback(() => {\n const text = messageInputRef.current.value;\n\n function createParamsDefualt(txt: string | number): Sendbird.UserMessageParams {\n const message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim();\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n }\n\n const createCustomParams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n logger.info('OpenChannel | Sending message has started', params);\n\n const pendingMessage = currentOpenChannel.sendUserMessage(params, (message, error) => {\n if (error) {\n logger.warning('OpenChannel | Sending message failed', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: pendingMessage,\n channel: currentOpenChannel,\n },\n });\n }, [currentOpenChannel, onBeforeSendUserMessage]);\n\n // useFileUploadCallback\n const handleFileUpload = useCallback((file) => {\n function createParamsDefualt(file_: File): Sendbird.FileMessageParams {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n }\n\n const createCustomParams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefualt(file);\n\n logger.info('OpenChannel | Uploading file message start', params);\n\n const pendingMessage = currentOpenChannel.sendFileMessage(\n params,\n (message: EveryMessage, error: Sendbird.SendBirdError) => {\n if (error) {\n logger.error('OpenChannel | Sending file message failed', { message, error });\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n );\n\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n }\n });\n }, [currentOpenChannel, onBeforeSendFileMessage]);\n\n // useUpdateMessageCallback\n const updateMessage = useCallback((messageId: number, text: string, callback?: () => void): void => {\n\n function createParamsDefualt(txt: string): SendBird.UserMessageParams {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n }\n\n if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {\n logger.info('OpenChannel | Creating params using onBeforeUpdateUserMessage');\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n currentOpenChannel.updateUserMessage(messageId, params, (message, error) => {\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | Updating message succeeded', { message, params });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentOpenChannel,\n message,\n },\n });\n } else {\n logger.warning('OpenChannel | Updating message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher, onBeforeSendUserMessage]);\n\n // useDeleteMessageCallback\n const deleteMessage = useCallback((message: ClientUserMessage | ClientFileMessage, callback?: () => void): void => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState: ', requestState);\n\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local: ', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (callback) {\n callback();\n }\n return;\n }\n\n currentOpenChannel.deleteMessage(message, (error) => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message from remote: ', requestState);\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: {\n channel: currentOpenChannel,\n messageId: message.messageId,\n },\n });\n } else {\n logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher]);\n\n // useResendMessageCallback\n const resendMessage = useCallback((failedMessage: ClientUserMessage | ClientFileMessage) => {\n logger.info('OpenChannel | Reseding message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESENDING_MESSAGE_START,\n payload: {\n channel: currentOpenChannel,\n message: failedMessage,\n },\n });\n\n // userMessage\n if (messageType === 'user' && failedMessage.messageType === 'user') {\n currentOpenChannel.resendUserMessage(failedMessage, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Reseding message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n return;\n }\n\n // fileMessage\n if (messageType === 'file' && failedMessage.messageType === 'file') {\n currentOpenChannel.resendFileMessage(failedMessage, file, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Resending file message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending file message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('OpenChannel | Message is not resendable');\n logger.warning('OpenChannel | Message is not resendable', failedMessage);\n }\n }, [currentOpenChannel, messagesDispatcher]);\n\n const handleClickScrollDownButton = () => {\n const promise = new Promise((resolve) => {\n resolve();\n });\n setScrollDownPromise(promise);\n };\n\n if (!currentOpenChannel || !currentOpenChannel.url) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n\n return (\n \n {\n showScrollDownButton && (\n \n \n \n )\n }\n {\n renderChannelTitle\n ? renderChannelTitle({\n channel: currentOpenChannel,\n user: user,\n })\n : (\n \n )\n }\n {\n currentOpenChannel.isFrozen && (\n \n )\n }\n \n {\n renderMessageInput\n ? (\n renderMessageInput({\n channel: currentOpenChannel,\n user: user,\n disabled: disabled,\n })\n )\n : (\n \n )\n }\n \n );\n};\n\nexport default withSendbirdContext(OpenchannelConversation);\n"],"names":["getMessageCreatedAt","message","format","createdAt","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","isSameGroup","comparingMessage","messageType","sendingStatus","sender","userId","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","kFormatter","num","Math","abs","toFixed","isOperator","openChannel","operators","map","operator","indexOf","isDisabledBecauseFrozen","isFrozen","MessageInputWrapper","_a","ref","channel","user","disabled","onSendMessage","onFileUpload","renderMessageInput","stringSet","useContext","LocalizationContext","React","MessageInput","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","forwardRef","FrozenNotification","Label","LabelTypography","CAPTION_2","CHANNEL_FROZEN","COMPONENT_CLASS_NAME","OpenchannelConversationHeader","coverImage","_b","title","LabelStringSet","NO_TITLE","_c","subTitle","onActionClick","Avatar","Icon","IconTypes","AVATAR_NO_IMAGE","IconColors","BACKGROUND_3","H_2","LabelColors","ONBACKGROUND_1","BODY_2","ONBACKGROUND_2","IconButton","INFO","PRIMARY","copyToClipboard","text","window","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","OpenChannelMessageStatusTypes","NONE","PENDING","FAILED","CANCELED","SUCCEEDED","getSenderFromMessage","_sender","checkIsSent","status","checkIsByMe","isFineCopy","isFineResend","isResendable","isFineEdit","isFineDelete","showMenuTrigger","props","OpenchannelUserMessage","className","resendMessage","showEdit","showRemove","chainTop","UserProfileContext","disableUserProfile","renderUserProfile","messageRef","useRef","avatarRef","contextMenuRef","useState","contextStyle","setContextStyle","injectingClassName","Array","isArray","push","isByMe","MemoizedMessageText","useMemo","splitMessage","split","matchedMessage","word","updatedAt","uuidv4","BODY_1","MESSAGE_EDITED","useEffect","current","clientHeight","top","innerWidth","join","ContextMenu","toggleDropdown","profileUrl","closeDropdown","MenuItems","paddingTop","paddingBottom","close","UserProfile","SECONDARY_3","friendName","nickname","CAPTION_3","ONBACKGROUND_3","MORE","CONTENT_INVERSE","MenuItem","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","OpenChannelAdminMessage","__spreadArrays","URL_REG","createUrlTester","regexp","test","checkOGIsEnalbed","ogMetaData","url","OpenchannelOGMessage","defaultImage","messageComponentRef","isUrl","wordClassName","LinkLabel","openLink","open","SUBTITLE_2","description","ImageRenderer","alt","NO_THUMBNAIL","SUPPORTING_TYPES","IMAGE","VIDEO","UNSUPPORTED","SUPPORTED_MIMES","getSupportingFileType","type","OpenchannelThumbnailMessage","onClick","localUrl","isMessageSent","PLAY","PHOTO","ON_BACKGROUND_2","checkFileType","fileUrl","result","imageFile","audioFile","FILE_DOCUMENT","FILE_AUDIO","truncate","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","ceil","backChars","floor","substr","OpenchannelFileMessage","openFileUrl","TextButton","RemoveMessageModal","onCloseModal","onDeleteMessage","Modal","MODAL__DELETE_MESSAGE__TITLE","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","UNKNOWN","SendingMessageStatus","getMessageType","isUserMessage","isAdminMessage","isImage","isVideo","MessageHoc","editDisabled","hasSeperator","deleteMessage","updateMessage","chainBottom","setShowEdit","_d","setShowRemove","_e","showFileViewer","setShowFileViewer","editMessageInputRef","requestState","messageId","DateSeparator","OpenChannelFileMessage","OpenChannelOGMessage","OpenChannelThumbnailMessage","OpenChannelUserMessage","FileViewer","OpenchannelConversationScroll","useMessageGrouping","openchannel","allMessages","isOnline","hasMore","onScroll","scrollDownPromise","showScrollDownButton","scrollRef","handleOnScroll","e","element","target","scrollTop","scrollHeight","nodes_1","first","then","scrollTo","index","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","RESET_MESSAGES","GET_PREV_MESSAGES_SUCESS","GET_PREV_MESSAGES_FAIL","SENDING_MESSAGE_FAILED","SENDING_MESSAGE_SUCCEEDED","SENDING_MESSAGE_START","RESENDING_MESSAGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","ON_OPERATOR_UPDATED","ON_USER_ENTERED","ON_USER_EXITED","ON_USER_MUTED","ON_USER_UNMUTED","ON_USER_BANNED","ON_USER_UNBANNED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_CHANNEL_CHANGED","ON_META_DATA_CREATED","ON_META_DATA_UPDATED","ON_META_DATA_DELETED","ON_META_COUNTERS_CREATED","ON_META_COUNTERS_UPDATED","ON_META_COUNTERS_DELETED","ON_MENTION_RECEIVED","reducer","state","action","actionTypes","currentChannel","payload","isInvalid","currentOpenChannel","participants","isFailed","messages","lastMessageTimestamp","actionChannelUrl","receivedMessages_1","_hasMore","_lastMessageTimestamp","stateChannel","stateChannelUrl","filteredAllMessages","filter","find","compareIds","loading","initialized","sentMessage_1","newMessages","m","reqId","sentMessage_2","eventedChannel","resentMessage_1","receivedMessage","updatedMessage_1","isIdentical","deletedMessageId_1","updatedOperators","enteredUser","exitedUser_1","participant","frozenChannel","frozen","unfrozenChannel","changedChannel","initialState","OpenchannelConversation","channelUrl","stores","config","queries","renderChannelTitle","onBeforeSendUserMessage","onBeforeSendFileMessage","onChatHeaderActionClick","sdkStore","userStore","logger","sdk","useReducer","messagesReducer","messagesInitialState","messagesStore","messagesDispatcher","messageInputRef","setScrollDownPromise","setShowScrollDownButton","sdkInit","userFilledMessageListParams","messageListParams","utils","userDefinedDisableUserProfile","userDefinedRenderProfile","OpenChannel","info","getChannel","messageActionTypes","enter","warning","messageReceiverId","ChannelHandler","onMessageReceived","onMessageUpdated","onMessageDeleted","onOperatorUpdated","onUserEntered","onUserExited","onUserMuted","onUserUnmuted","onUserBanned","onUserUnbanned","onChannelFrozen","onChannelUnfrozen","onChannelChanged","onMetaDataCreated","metaData","onMetaDataUpdated","onMetaDataDeleted","metaDataKeys","onMetaCountersCreated","metaCounter","onMetaCountersUpdated","onMetaCountersDeleted","metaCounterKeys","onMentionReceived","addChannelHandler","removeChannelHandler","MessageListParams","getMessagesByTimestamp","messageListParams_1","prevResultSize","isInclusive","includeReplies","includeReactions","Object","keys","forEach","key","Date","getTime","hasMore_1","lastMessageTimestamp_1","useCallback","callback","hasMore_2","lastMessageTimestamp_2","handleSendMessage","value","createParamsDefualt","txt","trim","toString","params","UserMessageParams","createCustomParams","pendingMessage","sendUserMessage","handleFileUpload","file","file_","FileMessageParams","sendFileMessage","URL","createObjectURL","updateUserMessage","failedMessage","resendUserMessage","resendFileMessage","console","handleClickScrollDownButton","promise","Promise","resolve","PlaceHolder","PlaceHolderTypes","NO_CHANNELS","LOADING","WRONG","UserProfileProvider","SHEVRON_DOWN","CONTENT","name","participantCount","OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS","coverUrl","FrozenChannelNotification","withSendbirdContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/OpenChannelSettings.js b/dist/cjs/OpenChannelSettings.js new file mode 100644 index 0000000..e3af30f --- /dev/null +++ b/dist/cjs/OpenChannelSettings.js @@ -0,0 +1,669 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +require('prop-types'); +var index$1 = require('./index-710314fd.js'); +var utils = require('./utils-6aedec02.js'); +require('date-fns/format'); +require('./type-c7a3bee7.js'); +require('react-dom'); +var index$2 = require('./index-6ca9e95e.js'); +var utils$2 = require('./utils-c8e36c68.js'); +var index$3 = require('./index-c4d028d8.js'); + +function ChannelAvatar(_a) { + var channel = _a.channel, + theme = _a.theme, + _b = _a.height, + height = _b === void 0 ? 56 : _b, + _c = _a.width, + width = _c === void 0 ? 56 : _c; + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + var memoizedAvatar = React.useMemo(function () { + return React__default.createElement(index$1.Avatar, { + className: "sendbird-chat-header__avatar--group-channel", + src: utils.getOpenChannelAvatar(channel), + width: width + "px", + height: height + "px", + alt: channel.name || stringSet.OPEN_CHANNEL_SETTINGS__NO_TITLE + }); + }, [channel.coverUrl, theme]); + return React__default.createElement(React__default.Fragment, null, memoizedAvatar); +} + +var EditDetails = function EditDetails(props) { + var _onSubmit = props.onSubmit, + onCancel = props.onCancel, + channel = props.channel, + theme = props.theme; + var inputRef = React.useRef(null); + var formRef = React.useRef(null); + var hiddenInputRef = React.useRef(null); + + var _a = React.useState(null), + currentImg = _a[0], + setCurrentImg = _a[1]; + + var _b = React.useState(null), + newFile = _b[0], + setNewFile = _b[1]; + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + var title = channel.name; + return React__default.createElement(index$1.Modal, { + titleText: stringSet.MODAL__CHANNEL_INFORMATION__TITLE, + submitText: stringSet.BUTTON__SAVE, + onCancel: onCancel, + onSubmit: function onSubmit() { + if (title !== '' && !inputRef.current.value) { + if (formRef.current.reportValidity) { + // might not work in explorer + formRef.current.reportValidity(); + } + + return; + } + + _onSubmit(newFile, inputRef.current.value); + + onCancel(); + }, + type: index$1.Type.PRIMARY + }, React__default.createElement("form", { + className: "channel-profile-form", + ref: formRef, + onSubmit: function onSubmit(e) { + e.preventDefault(); + } + }, React__default.createElement("div", { + className: "channel-profile-form__img-section" + }, React__default.createElement(index$2.InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE), React__default.createElement("div", { + className: "channel-profile-form__avatar" + }, currentImg ? React__default.createElement(index$1.Avatar, { + height: "80px", + width: "80px", + src: currentImg + }) : React__default.createElement(ChannelAvatar, { + height: 80, + width: 80, + channel: channel, + theme: theme + })), React__default.createElement("input", { + ref: hiddenInputRef, + type: "file", + accept: "image/gif, image/jpeg, image/png", + style: { + display: 'none' + }, + onChange: function onChange(e) { + setCurrentImg(URL.createObjectURL(e.target.files[0])); + setNewFile(e.target.files[0]); + hiddenInputRef.current.value = ''; + } + }), React__default.createElement(index$1.TextButton, { + className: "channel-profile-form__avatar-button", + onClick: function onClick() { + return hiddenInputRef.current.click(); + }, + notUnderline: true + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.BUTTON_1, + color: index$1.LabelColors.PRIMARY + }, stringSet.MODAL__CHANNEL_INFORMATION__UPLOAD))), React__default.createElement("div", { + className: "channel-profile-form__name-section" + }, React__default.createElement(index$2.InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME), React__default.createElement(index$2.Input, { + required: title !== '', + name: "channel-profile-form__name", + ref: inputRef, + value: title, + placeHolder: stringSet.MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER + })))); +}; + +function ChannelProfile(props) { + var disabled = props.disabled, + channel = props.channel, + theme = props.theme, + onChannelInfoChange = props.onChannelInfoChange; + var title = channel.name; + + var _a = React.useState(false), + showModal = _a[0], + setShowModal = _a[1]; + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + return React__default.createElement("div", { + className: "sendbird-openchannel-profile" + }, React__default.createElement("div", { + className: "sendbird-openchannel-profile--inner" + }, React__default.createElement("div", { + className: "sendbird-openchannel-profile__avatar" + }, React__default.createElement(ChannelAvatar, { + channel: channel, + theme: theme, + height: 80, + width: 80 + })), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.ONBACKGROUND_1, + className: "sendbird-openchannel-profile__title" + }, title || stringSet.OPEN_CHANNEL_SETTINGS__NO_TITLE), React__default.createElement(index$1.TextButton, { + disabled: disabled, + className: "sendbird-openchannel-profile__edit", + onClick: function onClick() { + if (disabled) { + return; + } + + setShowModal(true); + }, + notUnderline: true + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.BUTTON_1, + color: disabled ? index$1.LabelColors.ONBACKGROUND_2 : index$1.LabelColors.PRIMARY + }, stringSet.CHANNEL_SETTING__PROFILE__EDIT)), showModal && React__default.createElement(EditDetails, { + onCancel: function onCancel() { + return setShowModal(false); + }, + onSubmit: onChannelInfoChange, + channel: channel, + theme: theme + }))); +} + +function ParticipantsModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel; + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + var _b = React.useState([]), + participants = _b[0], + setParticipants = _b[1]; + + var _c = React.useState(null), + participantListQuery = _c[0], + setParticipantListQuery = _c[1]; + + React.useEffect(function () { + if (!channel || !channel.createParticipantListQuery) { + return; + } + + var participantListQuery = channel.createParticipantListQuery(); + setParticipantListQuery(participantListQuery); + participantListQuery.next(function (participantList, error) { + if (error) { + return; + } + + setParticipants(participantList); + }); + }, []); + return React__default.createElement("div", null, React__default.createElement(index$1.Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: utils.noop, + titleText: stringSet.OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE + }, React__default.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = participantListQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + participantListQuery.next(function (fetchedParticipants, error) { + if (error) { + return; + } + + setParticipants(LocalizationContext.__spreadArrays(participants, fetchedParticipants)); + }); + } + } + }, participants.map(function (p) { + return React__default.createElement(index$2.UserListItem, { + user: p, + key: p.userId + }); + })))); +} + +var SHOWN_MEMBER_MAX = 10; +var UserListItem = function UserListItem(_a) { + var member = _a.member, + _b = _a.currentUser, + currentUser = _b === void 0 ? '' : _b; + var avatarRef = React.useRef(null); + + var _c = React.useContext(index$1.UserProfileContext), + disableUserProfile = _c.disableUserProfile, + renderUserProfile = _c.renderUserProfile; + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + return React__default.createElement("div", { + className: "sendbird-participants-accordion__member" + }, React__default.createElement("div", { + className: "sendbird-participants-accordion__member-avatar" + }, React__default.createElement(index$1.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index$1.Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + ref: avatarRef, + src: member.profileUrl, + width: 24, + height: 24 + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index$1.MenuItems, { + openLeft: true, + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: member, + currentUserId: currentUser, + close: closeDropdown + }) : React__default.createElement(index$1.UserProfile, { + disableMessaging: true, + user: member, + currentUserId: currentUser, + onSuccess: closeDropdown + })); + } + })), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.ONBACKGROUND_1 + }, member.nickname || stringSet.NO_NAME, currentUser === member.userId && stringSet.NO_NAME)); +}; +function ParticipantsAccordion(_a) { + var channel = _a.channel, + currentUser = _a.currentUser; + + var _b = React.useState([]), + participants = _b[0], + setParticipants = _b[1]; + + var _c = React.useState(false), + showMoreModal = _c[0], + setShowMoreModal = _c[1]; + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + React.useEffect(function () { + if (!channel || !channel.createParticipantListQuery) { + return; + } + + var participantListQuery = channel.createParticipantListQuery(); + participantListQuery.next(function (participantList, error) { + if (error) { + return; + } + + setParticipants(participantList); + }); + }, [channel]); + return React__default.createElement(index$3.Accordion, { + className: "sendbird-participants-accordion", + id: "participants", + renderTitle: function renderTitle() { + return React__default.createElement(React__default.Fragment, null, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.MEMBERS, + fillColor: index$1.IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-openchannel-settings__accordion-icon" + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE)); + }, + renderContent: function renderContent() { + return React__default.createElement("div", { + className: "" + }, React__default.createElement("div", { + className: "sendbird-participants-accordion__list" + }, participants.slice(0, SHOWN_MEMBER_MAX).map(function (p) { + return React__default.createElement(UserListItem, { + member: p, + currentUser: currentUser, + key: p.userId + }); + }), participants && participants.length === 0 ? React__default.createElement(index$1.Label, { + className: "sendbird-channel-settings__empty-list", + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.ONBACKGROUND_3 + }, stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST) : null), participants.length >= SHOWN_MEMBER_MAX && React__default.createElement("div", { + className: "sendbird-participants-accordion__footer" + }, React__default.createElement(index$1.Button, { + className: "sendbird-participants-accordion__footer__all-participants", + type: index$1.Type.SECONDARY, + size: index$1.Size.SMALL, + onClick: function onClick() { + return setShowMoreModal(true); + } + }, stringSet.OPEN_CHANNEL_SETTINGS__SEE_ALL), showMoreModal && React__default.createElement(ParticipantsModal, { + currentUser: currentUser, + hideModal: function hideModal() { + setShowMoreModal(false); + }, + channel: channel + }))); + } + }); +} + +function DeleteChannel(_a) { + var isOnline = _a.isOnline, + onDeleteChannel = _a.onDeleteChannel; + + var _b = React.useState(false), + showDeleteChannelModal = _b[0], + setShowDeleteChannelModal = _b[1]; + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { + className: "sendbird-openchannel-settings__panel-item\n sendbird-openchannel-settings__delete-channel\n " + (!isOnline ? 'sendbird-openchannel-settings__panel-item__disabled' : ''), + role: "button", + tabIndex: 0, + onKeyDown: function onKeyDown() { + if (!isOnline) { + return; + } + + setShowDeleteChannelModal(true); + }, + onClick: function onClick() { + if (!isOnline) { + return; + } + + setShowDeleteChannelModal(true); + } + }, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.DELETE, + className: ['sendbird-openchannel-settings__panel-icon-left', 'sendbird-openchannel-settings__panel-icon__delete'].join(' '), + height: "24px", + width: "24px" + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_1, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL)), showDeleteChannelModal && React__default.createElement(index$1.Modal, { + onCancel: function onCancel() { + setShowDeleteChannelModal(false); + }, + onSubmit: function onSubmit() { + onDeleteChannel(); + }, + submitText: stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT, + titleText: stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE + })); +} + +function ParticipantsList(_a) { + var channel = _a.channel, + onCloseClick = _a.onCloseClick, + currentUser = _a.currentUser; + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + + var _b = React.useState([]), + participants = _b[0], + setParticipants = _b[1]; + + var _c = React.useState(null), + participantListQuery = _c[0], + setParticipantListQuery = _c[1]; + + React.useEffect(function () { + if (!channel || !channel.createParticipantListQuery) { + return; + } + + var participantListQuery = channel.createParticipantListQuery(); + setParticipantListQuery(participantListQuery); + participantListQuery.next(function (participantList, error) { + if (error) { + return; + } + + setParticipants(participantList); + }); + }, [channel]); + return React__default.createElement("div", { + className: "sendbird-openchannel-settings__participant" + }, React__default.createElement("div", { + className: "sendbird-openchannel-settings__header" + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.H_2, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE), React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.CLOSE, + className: "sendbird-openchannel-settings__close-icon", + height: "24px", + width: "24px", + onClick: function onClick() { + onCloseClick(); + } + })), React__default.createElement("div", { + className: "sendbird-openchannel-settings__participants-list", + onScroll: function onScroll(e) { + var hasNext = participantListQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + participantListQuery.next(function (fetchedParticipants, error) { + if (error) { + return; + } + + setParticipants(LocalizationContext.__spreadArrays(participants, fetchedParticipants)); + }); + } + } + }, React__default.createElement("div", null, participants.map(function (p) { + return React__default.createElement(UserListItem, { + member: p, + currentUser: currentUser, + key: p.userId + }); + }), participants && participants.length === 0 ? React__default.createElement(index$1.Label, { + className: "sendbird-channel-settings__empty-list", + type: index$1.LabelTypography.SUBTITLE_2, + color: index$1.LabelColors.ONBACKGROUND_3 + }, stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST) : null))); +} + +function InvalidChannel(_a) { + var onCloseClick = _a.onCloseClick; + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + return React__default.createElement("div", { + className: "sendbird-openchannel-settings" + }, React__default.createElement("div", { + className: "sendbird-openchannel-settings__header" + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.H_2, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.CLOSE, + className: "sendbird-openchannel-settings__close-icon", + height: "24px", + width: "24px", + onClick: function onClick() { + onCloseClick(); + } + })), React__default.createElement("div", { + className: "sendbird-openchannel-settings__placeholder" + }, React__default.createElement(index$1.PlaceHolder, { + type: index$1.PlaceHolderTypes.WRONG + }))); +} + +var emptyLogger = function emptyLogger() { + return { + info: utils.noop, + error: utils.noop, + warning: utils.noop + }; +}; + +function OpenChannelSettings(props) { + var channelUrl = props.channelUrl, + _a = props.onCloseClick, + _onCloseClick = _a === void 0 ? utils.noop : _a, + _b = props.onChannelModified, + onChannelModified = _b === void 0 ? utils.noop : _b, + renderChannelProfile = props.renderChannelProfile, + renderUserProfile = props.renderUserProfile, + _c = props.disableUserProfile, + disableUserProfile = _c === void 0 ? false : _c, + _d = props.logger, + logger = _d === void 0 ? emptyLogger() : _d, + sdk = props.sdk, + theme = props.theme, + user = props.user, + isOnline = props.isOnline; + + var currentUser = user.userId; + + var _e = React.useState(null), + channel = _e[0], + setChannel = _e[1]; + + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + React.useEffect(function () { + if (!channelUrl || !sdk || !sdk.getConnectionState) { + setChannel(null); + return; + } + + sdk.OpenChannel.getChannel(channelUrl, function (openChannel, error) { + if (!error) { + setChannel(openChannel); + } else { + setChannel(null); + } + }); + }, [channelUrl, sdk]); + + if (!channel) { + return React__default.createElement(InvalidChannel, { + onCloseClick: function onCloseClick() { + logger.info('OpenChannelSettings: Click close'); + + if (_onCloseClick) { + _onCloseClick(); + } + } + }); + } + + return React__default.createElement(index$1.UserProfileProvider, { + disableUserProfile: disableUserProfile, + renderUserProfile: renderUserProfile, + className: "sendbird-openchannel-settings" + }, channel.isOperator(user) ? React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { + className: "sendbird-openchannel-settings__header" + }, React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.H_2, + color: index$1.LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.CLOSE, + className: "sendbird-openchannel-settings__close-icon", + height: "24px", + width: "24px", + onClick: function onClick() { + _onCloseClick(); + } + })), React__default.createElement("div", { + className: "sendbird-openchannel-settings__profile" + }, renderChannelProfile ? renderChannelProfile({ + channel: channel + }) : React__default.createElement(ChannelProfile, { + disabled: !isOnline, + channel: channel, + theme: theme, + onChannelInfoChange: function onChannelInfoChange(currentImg, currentTitle) { + logger.info('ChannelSettings: Channel information being updated'); + channel.updateChannel(currentTitle, currentImg, channel.data, function (openChannel) { + logger.info('ChannelSettings: Channel information updated', openChannel); + onChannelModified(openChannel); // setChannel(openChannel) => alone not working + + setChannel(null); + setChannel(openChannel); + }); + } + })), React__default.createElement("div", { + className: "sendbird-openchannel-settings__url" + }, React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.COPY, + className: "sendbird-openchannel-settings__copy-icon", + height: "22px", + width: "22px", + onClick: function onClick() { + utils$2.copyToClipboard(channel.url); + } + }), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.CAPTION_2, + color: index$1.LabelColors.ONBACKGROUND_2, + className: "sendbird-openchannel-settings__url-label" + }, stringSet.OPEN_CHANNEL_SETTINGS__OPERATOR_URL), React__default.createElement(index$1.Label, { + type: index$1.LabelTypography.SUBTITLE_2, + className: "sendbird-openchannel-settings__url-value" + }, channel.url)), React__default.createElement(index$3.AccordionGroup, null, React__default.createElement(ParticipantsAccordion, { + channel: channel, + currentUser: currentUser + })), React__default.createElement(DeleteChannel, { + isOnline: isOnline, + onDeleteChannel: function onDeleteChannel() { + channel.delete(function (response, error) { + if (error) { + logger.warning('OpenChannelSettings: Delete channel failed', error); + return; + } + + logger.info('OpenChannelSettings: Delete channel success', response); + }); + } + })) : React__default.createElement(ParticipantsList, { + currentUser: currentUser, + channel: channel, + onCloseClick: function onCloseClick() { + _onCloseClick(); + } + })); +} + +var ChannelSettingsWithSendbird = LocalizationContext.withSendbirdContext(OpenChannelSettings, function (store) { + var logger = store && store.config && store.config.logger; + var theme = store && store.config && store.config.theme || 'light'; + var isOnline = store && store.config && store.config.isOnline; + var user = store && store.stores && store.stores.userStore && store.stores.userStore.user; + return { + sdk: index$1.selectors.getSdk(store), + logger: logger, + theme: theme, + isOnline: isOnline, + user: user + }; +}); + +module.exports = ChannelSettingsWithSendbird; +//# sourceMappingURL=OpenChannelSettings.js.map diff --git a/dist/cjs/OpenChannelSettings.js.map b/dist/cjs/OpenChannelSettings.js.map new file mode 100644 index 0000000..c27b662 --- /dev/null +++ b/dist/cjs/OpenChannelSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OpenChannelSettings.js","sources":["../../../src/ui/ChannelAvatar/OpenChannelAvatar.tsx","../../../src/smart-components/OpenChannelSettings/components/EditDetailsModal.tsx","../../../src/smart-components/OpenChannelSettings/components/ChannelProfile.tsx","../../../src/smart-components/OpenChannelSettings/components/ParticipantsModal.tsx","../../../src/smart-components/OpenChannelSettings/components/ParticipantsAccordion.tsx","../../../src/smart-components/OpenChannelSettings/components/DeleteChannel.tsx","../../../src/smart-components/OpenChannelSettings/components/ParticipantsList.tsx","../../../src/smart-components/OpenChannelSettings/components/InvalidChannel.tsx","../../../src/smart-components/OpenChannelSettings/index.tsx"],"sourcesContent":["import React, { useMemo, useContext } from 'react';\n\nimport Avatar from '../Avatar/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendBird.OpenChannel;\n theme: string;\n height?: number;\n width?: number;\n}\n\nfunction ChannelAvatar({\n channel,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { stringSet } = useContext(LocalizationContext);\n const memoizedAvatar = useMemo(() => {\n return (\n \n );\n }, [channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n","import React, {\n useState,\n useRef,\n useContext,\n ReactElement,\n} from 'react';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Modal from '../../../ui/Modal';\nimport Input, { InputLabel } from '../../../ui/Input';\nimport Avatar from '../../../ui/Avatar/index';\nimport { Type as ButtonType } from '../../../ui/Button/type';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport TextButton from '../../../ui/TextButton';\nimport OpenChannelAvatar from '../../../ui/ChannelAvatar/OpenChannelAvatar';\n\ninterface Props {\n onSubmit(newFile: File, newTitle: string): void;\n onCancel(): void;\n channel: SendBird.OpenChannel;\n theme: string;\n}\n\nconst EditDetails = (props: Props): ReactElement => {\n const {\n onSubmit,\n onCancel,\n channel,\n theme,\n } = props;\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const hiddenInputRef = useRef(null);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n const title = channel.name;\n return (\n {\n if (title !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(newFile, inputRef.current.value);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE}\n \n
\n {\n currentImg\n ? (\n \n ) : (\n \n )\n }\n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME}\n \n \n
\n \n \n );\n};\n\nexport default EditDetails;\n","import React, {\n ReactElement,\n useContext,\n useState,\n} from 'react';\n\nimport './channel-profile.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport TextButton from '../../../ui/TextButton';\nimport OpenChannelAvatar from '../../../ui/ChannelAvatar/OpenChannelAvatar';\nimport EditDetailsModal from './EditDetailsModal';\n\ninterface Props {\n channel: SendBird.OpenChannel;\n disabled: boolean;\n theme: string;\n onChannelInfoChange(currentImg: File, currentTitle: string): void;\n}\n\nexport default function ChannelProfile(props: Props): ReactElement {\n const {\n disabled,\n channel,\n theme,\n onChannelInfoChange,\n } = props;\n const title = channel.name;\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n
\n \n
\n \n {title || stringSet.OPEN_CHANNEL_SETTINGS__NO_TITLE}\n \n {\n if (disabled) { return; }\n setShowModal(true);\n }}\n notUnderline\n >\n \n {stringSet.CHANNEL_SETTING__PROFILE__EDIT}\n \n \n {\n showModal && (\n setShowModal(false)}\n onSubmit={onChannelInfoChange}\n channel={channel}\n theme={theme}\n />\n )\n }\n
\n
\n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react';\n\nimport Modal from '../../../ui/Modal';\nimport UserListItem from '../../../ui/UserListItem';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { noop } from '../../../utils/utils';\n\ninterface Props {\n currentUser: string;\n hideModal(): void;\n channel: SendBird.OpenChannel;\n}\n\nexport default function ParticipantsModal({\n hideModal,\n channel,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const [participants, setParticipants] = useState([]);\n const [participantListQuery, setParticipantListQuery] = useState(null);\n useEffect(() => {\n if (!channel || !channel.createParticipantListQuery) {\n return;\n }\n const participantListQuery = channel.createParticipantListQuery();\n setParticipantListQuery(participantListQuery);\n participantListQuery.next((participantList, error) => {\n if (error) {\n return;\n }\n setParticipants(participantList);\n });\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText={stringSet.OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE}\n >\n {\n const { hasNext } = participantListQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n participantListQuery.next((fetchedParticipants, error) => {\n if (error) {\n return;\n }\n setParticipants([\n ...participants,\n ...fetchedParticipants,\n ])\n });\n }\n }}\n >\n { participants.map((p) => (\n \n ))}\n
\n \n \n )\n}\n","import React, {\n ReactElement,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Button from '../../../ui/Button';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../ui/Button/type';\nimport Accordion from '../../../ui/Accordion';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport Avatar from '../../../ui/Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport ParticipantsModal from './ParticipantsModal';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nconst SHOWN_MEMBER_MAX = 10;\n\ninterface UserListItemProps {\n member: SendBird.User;\n currentUser?: string;\n}\n\nexport const UserListItem = ({\n member,\n currentUser = '',\n}: UserListItemProps): ReactElement => {\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n src={member.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: member,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n
\n \n
\n );\n};\n\ninterface Props {\n channel: SendBird.OpenChannel;\n currentUser: string;\n}\n\nexport default function ParticipantsAccordion({ channel, currentUser }: Props): ReactElement {\n const [participants, setParticipants] = useState([]);\n const [showMoreModal, setShowMoreModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n if (!channel || !channel.createParticipantListQuery) {\n return;\n }\n const participantListQuery = channel.createParticipantListQuery();\n participantListQuery.next((participantList, error) => {\n if (error) {\n return;\n }\n setParticipants(participantList);\n });\n }, [channel]);\n\n return (\n (\n <>\n \n \n {stringSet.OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE}\n \n \n )}\n renderContent={() => (\n
\n
\n {\n participants.slice(0, SHOWN_MEMBER_MAX).map((p) => (\n \n ))\n }\n {\n (participants && participants.length === 0)\n ? (\n \n {stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST}\n \n ): null\n }\n
\n {\n participants.length >= SHOWN_MEMBER_MAX && (\n
\n setShowMoreModal(true)}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__SEE_ALL}\n \n {\n showMoreModal && (\n {\n setShowMoreModal(false);\n }}\n channel={channel}\n />\n )\n }\n
\n )\n }\n
\n )}\n />\n );\n}\n","import React, {\n ReactElement,\n useState,\n useContext,\n} from 'react';\n\nimport Modal from '../../../ui/Modal';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes } from '../../../ui/Icon';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n isOnline: boolean;\n onDeleteChannel(): void;\n}\n\nexport default function DeleteChannel({\n isOnline,\n onDeleteChannel,\n}: Props): ReactElement {\n const [showDeleteChannelModal, setShowDeleteChannelModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n return (\n <>\n {\n if (!isOnline) { return; }\n setShowDeleteChannelModal(true);\n }}\n onClick={() => {\n if (!isOnline) { return; }\n setShowDeleteChannelModal(true);\n }}\n >\n \n \n {stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL}\n \n \n {\n showDeleteChannelModal && (\n {\n setShowDeleteChannelModal(false);\n }}\n onSubmit={() => {\n onDeleteChannel();\n }}\n submitText={stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT}\n titleText={stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE}\n />\n )\n }\n \n )\n}\n","import React, {\n ReactElement,\n useContext,\n useState,\n useEffect,\n} from 'react';\n\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nimport { UserListItem } from './ParticipantsAccordion';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: SendBird.OpenChannel;\n onCloseClick(): void;\n currentUser: string;\n}\n\nexport default function ParticipantsList({\n channel,\n onCloseClick,\n currentUser,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const [participants, setParticipants] = useState([]);\n const [participantListQuery, setParticipantListQuery] = useState(null);\n useEffect(() => {\n if (!channel || !channel.createParticipantListQuery) {\n return;\n }\n const participantListQuery = channel.createParticipantListQuery();\n setParticipantListQuery(participantListQuery);\n participantListQuery.next((participantList, error) => {\n if (error) {\n return;\n }\n setParticipants(participantList);\n });\n }, [channel]);\n return (\n
\n
\n \n {\n onCloseClick();\n }}\n />\n
\n {\n const { hasNext } = participantListQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n participantListQuery.next((fetchedParticipants, error) => {\n if (error) {\n return;\n }\n setParticipants([\n ...participants,\n ...fetchedParticipants,\n ])\n });\n }\n }}\n >\n
\n {\n participants.map((p: SendBird.User) => (\n \n ))\n }\n {\n (participants && participants.length === 0)\n ? (\n \n {stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST}\n \n ): null\n }\n
\n
\n \n )\n}\n","import React, { ReactElement, useContext } from 'react'\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nimport PlaceHolder from '../../../ui/PlaceHolder';\nimport PlaceHolderTypes from '../../../ui/PlaceHolder/type';\n\ninterface Props {\n onCloseClick?(): void;\n}\n\nexport default function InvalidChannel({\n onCloseClick,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n {\n onCloseClick();\n }}\n />\n
\n
\n \n
\n
\n )\n}\n","import React, {\n useContext,\n useState,\n useEffect,\n} from 'react';\nimport { OpenChannelSettingsProps } from '../../index';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport selectors from '../../lib/selectors';\n\nimport { copyToClipboard } from '../../ui/Message/utils.js'\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Icon, { IconTypes } from '../../ui/Icon';\nimport ChannelProfile from './components/ChannelProfile';\nimport ParticipantsAccordion from './components/ParticipantsAccordion';\nimport DeleteChannel from './components/DeleteChannel';\nimport ParticipantsList from './components/ParticipantsList';\nimport InvalidChannel from './components/InvalidChannel';\nimport { AccordionGroup } from '../../ui/Accordion';\nimport { noop } from '../../utils/utils';\n\nconst emptyLogger = () => ({\n info: noop,\n error: noop,\n warning: noop,\n});\n\ninterface Props extends OpenChannelSettingsProps {\n logger: SendbirdUIKit.Logger;\n sdk: SendBird.SendBirdInstance;\n theme: string;\n user: SendBird.User;\n isOnline: boolean;\n}\n\nfunction OpenChannelSettings(props: Props) {\n const {\n channelUrl,\n onCloseClick = noop,\n onChannelModified = noop,\n renderChannelProfile,\n renderUserProfile,\n disableUserProfile = false,\n logger = emptyLogger(),\n sdk,\n theme,\n user,\n isOnline,\n } = props;\n\n const currentUser = user.userId;\n const [channel, setChannel] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n useEffect(() => {\n if (!channelUrl || !sdk || !sdk.getConnectionState) {\n setChannel(null);\n return;\n }\n\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (!error) {\n setChannel(openChannel);\n } else {\n setChannel(null);\n }\n });\n }, [channelUrl, sdk])\n if (!channel) {\n return (\n {\n logger.info('OpenChannelSettings: Click close');\n if (onCloseClick) {\n onCloseClick();\n }\n }}\n />\n );\n }\n return (\n \n {\n channel.isOperator(user)\n ? (\n <>\n
\n \n {\n onCloseClick();\n }}\n />\n
\n
\n {\n renderChannelProfile\n ? renderChannelProfile({ channel })\n : (\n {\n logger.info('ChannelSettings: Channel information being updated');\n channel.updateChannel(\n currentTitle,\n currentImg,\n channel.data,\n (openChannel) => {\n logger.info('ChannelSettings: Channel information updated', openChannel);\n onChannelModified(openChannel);\n // setChannel(openChannel) => alone not working\n setChannel(null);\n setChannel(openChannel);\n },\n );\n }}\n />\n )\n }\n
\n
\n {\n copyToClipboard(channel.url);\n }}\n />\n \n {stringSet.OPEN_CHANNEL_SETTINGS__OPERATOR_URL}\n \n \n {channel.url}\n \n
\n \n \n \n {\n channel.delete((response, error) => {\n if (error) {\n logger.warning('OpenChannelSettings: Delete channel failed', error);\n return;\n }\n logger.info('OpenChannelSettings: Delete channel success', response);\n });\n }}\n />\n \n ) : (\n {\n onCloseClick();\n }}\n />\n )\n }\n \n )\n}\n\nconst ChannelSettingsWithSendbird = withSendbirdContext(OpenChannelSettings, (store) => {\n const logger = (store && store.config && store.config.logger);\n const theme = (store && store.config && store.config.theme) || 'light';\n const isOnline = (store && store.config && store.config.isOnline);\n const user = (store && store.stores && store.stores.userStore\n && store.stores.userStore.user);\n return {\n sdk: selectors.getSdk(store),\n logger,\n theme,\n isOnline,\n user,\n };\n});\n\nexport default ChannelSettingsWithSendbird;\n"],"names":["ChannelAvatar","_a","channel","theme","_b","height","_c","width","stringSet","useContext","LocalizationContext","memoizedAvatar","useMemo","React","Avatar","utils","name","OPEN_CHANNEL_SETTINGS__NO_TITLE","coverUrl","EditDetails","props","onSubmit","onCancel","inputRef","useRef","formRef","hiddenInputRef","useState","currentImg","setCurrentImg","newFile","setNewFile","title","Modal","MODAL__CHANNEL_INFORMATION__TITLE","BUTTON__SAVE","current","value","reportValidity","ButtonType","PRIMARY","e","preventDefault","InputLabel","MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE","OpenChannelAvatar","display","URL","createObjectURL","target","files","TextButton","click","Label","LabelTypography","BUTTON_1","LabelColors","MODAL__CHANNEL_INFORMATION__UPLOAD","MODAL__CHANNEL_INFORMATION__CHANNEL_NAME","Input","MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER","ChannelProfile","disabled","onChannelInfoChange","showModal","setShowModal","SUBTITLE_2","ONBACKGROUND_1","ONBACKGROUND_2","CHANNEL_SETTING__PROFILE__EDIT","EditDetailsModal","ParticipantsModal","hideModal","participants","setParticipants","participantListQuery","setParticipantListQuery","useEffect","createParticipantListQuery","next","participantList","error","noop","OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE","hasNext","fetchMore","clientHeight","scrollTop","scrollHeight","fetchedParticipants","map","p","UserListItem","userId","SHOWN_MEMBER_MAX","member","currentUser","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","ContextMenu","toggleDropdown","profileUrl","closeDropdown","MenuItems","paddingTop","paddingBottom","user","currentUserId","close","UserProfile","nickname","NO_NAME","ParticipantsAccordion","showMoreModal","setShowMoreModal","Accordion","Icon","IconTypes","MEMBERS","IconColors","SUBTITLE_1","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE","slice","length","ONBACKGROUND_3","OPEN_CHANNEL_SETTINGS__EMPTY_LIST","Button","ButtonTypes","SECONDARY","ButtonSizes","SMALL","OPEN_CHANNEL_SETTINGS__SEE_ALL","DeleteChannel","isOnline","onDeleteChannel","showDeleteChannelModal","setShowDeleteChannelModal","DELETE","join","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE","ParticipantsList","onCloseClick","H_2","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE","CLOSE","InvalidChannel","CHANNEL_SETTING__HEADER__TITLE","PlaceHolder","PlaceHolderTypes","WRONG","emptyLogger","info","warning","OpenChannelSettings","channelUrl","onChannelModified","renderChannelProfile","_d","logger","sdk","_e","setChannel","getConnectionState","OpenChannel","getChannel","openChannel","UserProfileProvider","isOperator","currentTitle","updateChannel","data","COPY","copyToClipboard","url","CAPTION_2","OPEN_CHANNEL_SETTINGS__OPERATOR_URL","AccordionGroup","delete","response","ChannelSettingsWithSendbird","withSendbirdContext","store","config","stores","userStore","selectors","getSdk"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/SendbirdProvider.css b/dist/cjs/SendbirdProvider.css new file mode 100644 index 0000000..585ef25 --- /dev/null +++ b/dist/cjs/SendbirdProvider.css @@ -0,0 +1,3843 @@ +.sendbird-openchannel-conversation { + position: relative; + display: flex; + flex-direction: column; + height: 100%; + width: 100%; } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + bottom: 96px; + left: calc(50% - 20px); + width: 40px; + height: 40px; + border-radius: 24px; + z-index: 1; } + .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { + background-color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { + background-color: var(--sendbird-dark-primary-200); } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { + background-color: var(--sendbird-light-primary-400); } + .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { + background-color: var(--sendbird-light-primary-500); } + .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll { + overflow-y: auto; + flex: 1 1 0; + order: 2; + width: 100%; } + .sendbird-openchannel-conversation .sendbird-openchannel-footer { + order: 3; + padding: 12px 24px 24px 24px; } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container { + display: flex; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + flex-direction: column; } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container .sendbird-openchannel-conversation-scroll-padding { + flex: 1 1 0; } + +.sendbird-openchannel-settings { + height: 100%; + width: 320px; + display: inline-block; + overflow-y: scroll; + position: relative; } + .sendbird-theme--light .sendbird-openchannel-settings { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-participants-accordion__footer { + text-align: left; + padding-top: 16px; + padding-left: 16px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__accordion-icon, + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-icon__delete { + position: absolute; + left: 16px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__participant { + height: 100%; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__participants-list { + padding-top: 64px; + height: calc(100% - 64px); + overflow-y: scroll; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { + display: block; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 1; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { + background-color: var(--sendbird-dark-background-600); } + .sendbird-openchannel-settings .sendbird-participants-accordion, + .sendbird-openchannel-settings .sendbird-openchannel-settings__delete-channel { + text-align: left; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__members .sendbird-badge__text { + margin-top: -2px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__header { + height: 64px; + min-height: 64px; + position: relative; + padding: 20px 24px; + box-sizing: border-box; + text-align: left; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__header { + border-bottom: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__header { + border-bottom: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon { + cursor: pointer; + position: absolute; + top: 20px; + right: 16px; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__placeholder { + margin-top: 40%; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url { + padding: 16px; + box-sizing: border-box; + position: relative; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url:hover .sendbird-openchannel-settings__copy-icon { + display: inline-block; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__copy-icon { + cursor: pointer; + position: absolute; + display: none; + top: 10px; + right: 18px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value { + margin-top: 8px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value, + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-label { + text-align: left; + display: block; + word-wrap: break-word; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__url { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__url { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { + display: block; + cursor: pointer; + box-sizing: border-box; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item:focus { + outline: none; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { + cursor: not-allowed; } + .sendbird-openchannel-settings .sendbird-participants-accordion__member { + position: relative; + padding: 12px 0px 12px 56px; + height: 40px; + box-sizing: border-box; + text-align: left; } + .sendbird-openchannel-settings .sendbird-participants-accordion__member .sendbird-label { + max-width: 240px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-openchannel-settings .sendbird-participants-accordion__member-avatar { + position: absolute; + left: 16px; + top: 10px; + cursor: pointer; } + +.sendbird-openchannel-conversation-header { + position: relative; + min-height: 64px; } + .sendbird-theme--light .sendbird-openchannel-conversation-header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-conversation-header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-conversation-header .sendbird-openchannel-conversation-header__left__title { + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + max-width: calc(100% - 120px); } + .sendbird-openchannel-conversation-header__left [class*=sendbird-openchannel-conversation-header__left__cover-image] { + position: absolute; + left: 20px; + top: 16px; } + .sendbird-openchannel-conversation-header__left__title { + position: absolute; + left: 60px; + top: 12px; } + .sendbird-openchannel-conversation-header__left__sub-title { + position: absolute; + left: 60px; + top: 36px; } + .sendbird-openchannel-conversation-header__right { + position: absolute; + top: 0px; + right: 0px; + width: 64px; + height: 64px; } + .sendbird-openchannel-conversation-header__right__trigger { + position: absolute; + top: 16px; + right: 16px; + display: flex; + align-items: center; + justify-content: center; } + +.sendbird-frozen-channel-notification { + position: relative; + margin-top: 8px; + margin-right: 24px; + margin-left: 24px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; } + .sendbird-theme--light .sendbird-frozen-channel-notification { + background-color: var(--sendbird-light-information-100); } + .sendbird-theme--dark .sendbird-frozen-channel-notification { + background-color: var(--sendbird-dark-information-100); } + +.sendbird-avatar { + display: inline-block; + overflow: hidden; + border-radius: 50%; + position: relative; } + .sendbird-avatar:focus { + outline: none; } + .sendbird-avatar .sendbird-avatar-img { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); } + .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:first-child { + transform: translate(2%, -50%); } + .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:last-child { + transform: translate(-102%, -50%); } + .sendbird-avatar .sendbird-avatar--inner__three-child--upper .sendbird-avatar-img:first-child { + transform: translate(-50%, -102%); } + .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:first-child { + transform: translate(-77%, -23%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:last-child { + transform: translate(-23%, -23%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:first-child { + transform: translate(-77%, -77%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(2) { + transform: translate(-23%, -77%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(3) { + transform: translate(-77%, -23%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:last-child { + transform: translate(-23%, -23%) scale(0.5); } + +.sendbird-accordion { + padding: 8px 0px 16px 0px; + position: relative; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-accordion { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-accordion { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-accordion .sendbird-accordion__member { + position: relative; + padding: 12px 0px 12px 44px; + height: 40px; + box-sizing: border-box; } + .sendbird-accordion .sendbird-accordion__footer { + display: flex; + justify-content: flex-start; + margin-top: 8px; } + +.sendbird-accordion__panel-heder { + cursor: pointer; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-accordion__panel-heder { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-accordion__panel-heder { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-accordion__panel-heder:focus { + outline: none; } + .sendbird-accordion__panel-heder.sendbird-accordion__panel-item__disabled { + cursor: not-allowed; } + +.sendbird-accordion__panel-icon-left, +.sendbird-accordion__panel-icon-right { + position: absolute; + top: 10px; } + +.sendbird-accordion__panel-icon-left { + left: 16px; } + +.sendbird-accordion__panel-icon-right { + right: 16px; } + +.sendbird-accordion__panel-icon--open { + transform: rotate(90deg); } + +.sendbird-theme--light .sendbird-accordion__panel-icon--chevron path { + fill: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-accordion__panel-icon--chevron path { + fill: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-accordion__panel-icon__leave path { + fill: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-accordion__panel-icon__leave path { + fill: var(--sendbird-dark-error-300); } + +.sendbird__user-profile { + width: 320px; + border-radius: 4px; + padding: 24px; + box-sizing: border-box; + text-align: center; } + .sendbird-theme--light .sendbird__user-profile { + box-shadow: var(--sendbird-light-shadow-02); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird__user-profile { + box-shadow: var(--sendbird-dark-shadow-02); + background-color: var(--sendbird-dark-background-500); } + .sendbird__user-profile .sendbird__user-profile-avatar { + margin: 8px 0px; } + .sendbird__user-profile .sendbird__user-profile-name { + max-width: 270px; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; } + .sendbird__user-profile .sendbird__user-profile-message { + margin-top: 20px; } + .sendbird__user-profile .sendbird__user-profile-message button { + width: 272px; } + .sendbird__user-profile .sendbird__user-profile-seperator { + margin: 24px 0px; + height: 1px; } + .sendbird-theme--light .sendbird__user-profile .sendbird__user-profile-seperator { + background-color: var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird__user-profile .sendbird__user-profile-seperator { + background-color: var(--sendbird-dark-ondark-04); } + .sendbird__user-profile .sendbird__user-profile-userId--label, + .sendbird__user-profile .sendbird__user-profile-userId--value { + display: block; + text-align: left; } + .sendbird__user-profile .sendbird__user-profile-userId--label { + margin-bottom: 8px; } + +.sendbird-openchannel-profile { + position: relative; + text-align: center; + padding: 32px 40px 27px 40px; } + .sendbird-theme--light .sendbird-openchannel-profile { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-openchannel-profile { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-openchannel-profile .sendbird-openchannel-profile--inner { + height: 116px; } + .sendbird-openchannel-profile .sendbird-openchannel-profile__avatar { + margin-bottom: 16px; + text-align: center; } + .sendbird-openchannel-profile .sendbird-openchannel-profile__title { + max-width: 240px; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + height: 18px; } + .sendbird-openchannel-profile .sendbird-openchannel-profile__edit { + position: absolute; + top: 10px; + right: 16px; } + +.sendbird-openchannel-conversation-scroll { + position: relative; + width: 100%; } + .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container { + position: absolute; + width: 100%; } + .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding { + height: 8px; } + +.sendbird-openchannel-admin-message { + position: relative; + margin: 16px 24px; + padding: 12px 16px; + border-radius: 4px; } + .sendbird-theme--light .sendbird-openchannel-admin-message { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-admin-message { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-admin-message .sendbird-openchannel-admin-message__text { + word-wrap: break-word; } + +.sendbird-openchannel-user-message { + position: relative; + display: flex; + flex-direction: row; + width: 100%; } + .sendbird-theme--light .sendbird-openchannel-user-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-user-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-user-message:hover .sendbird-openchannel-user-message__context-menu { + display: block; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left .sendbird-openchannel-user-message__left__avatar { + position: relative; + display: flex; + margin-top: 8px; + margin-left: 24px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + margin: 8px 24px 8px 12px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top { + position: relative; + display: flex; + margin-bottom: 2px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sender-name { + position: relative; + display: flex; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sent-at { + position: relative; + display: flex; + margin-left: 4px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom { + position: relative; + display: flex; + width: 100%; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom .sendbird-openchannel-user-message__right__bottom__message { + position: relative; + word-break: break-all; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu { + position: absolute; + right: 16px; + display: none; } + .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { + background-color: var(--sendbird-dark-background-400); } + +.sendbird-openchannel-og-message { + position: relative; + display: flex; + flex-direction: column; + width: 100%; } + .sendbird-theme--light .sendbird-openchannel-og-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-og-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-og-message:hover .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { + display: block; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top { + box-sizing: border-box; + position: relative; + display: flex; + flex-direction: row; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left .sendbird-openchannel-og-message__top__left__avatar { + position: absolute; + display: flex; + top: 8px; + left: 24px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right { + position: relative; + display: flex; + box-sizing: border-box; + flex-direction: column; + margin: 8px 24px 8px 12px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title { + position: relative; + display: flex; + margin-bottom: 2px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sender-name { + position: relative; + display: flex; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sent-at { + position: relative; + display: flex; + margin-left: 4px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__description .sendbird-openchannel-og-message__top__right__description__message { + position: relative; + display: inline; + white-space: pre-wrap; + word-break: break-all; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { + position: absolute; + right: 16px; + display: none; } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom { + position: relative; + display: inline; + margin-bottom: 8px; + width: 100%; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { + position: relative; + display: inline-block; + box-sizing: border-box; + width: calc(100% - 64px); + max-width: 360px; + left: 64px; + padding: 12px 12px 4px 12px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { + border: solid 1px var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { + border: solid 1px var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__url { + position: relative; + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-bottom: 8px; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title { + position: relative; + display: inline-block; + white-space: pre-wrap; + overflow-wrap: normal; + margin-bottom: 8px; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { + color: var(--sendbird-dark-primary-200); } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__description { + position: relative; + display: block; + white-space: pre-wrap; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + max-height: 32px; + margin-bottom: 8px; + width: 100%; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail { + box-sizing: border-box; + position: relative; + display: block; + margin-top: 4px; + margin-bottom: 8px; + width: 100%; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail:hover { + cursor: pointer; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image { + border-radius: 8px; + width: 100%; + min-width: 200px; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image--placeholder { + border-radius: 8px; + width: 100%; + min-width: 200px; + max-width: 336px; } + +.sendbird-openchannel-og-message--word { + display: inline; + margin: 0px 2px; + word-break: break-all; } + +.sendbird-theme--light .sendbird-openchannel-og-message--word--link { + color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-openchannel-og-message--word--link { + color: var(--sendbird-dark-primary-200); } + +.sendbird-app__wrap { + width: 100%; + height: 100%; + display: flex; } + .sendbird-app__wrap .sendbird-app__conversation-wrap { + flex: 1; + position: relative; } + .sendbird-app__wrap .sendbird-app__channellist-wrap { + max-width: 320px; } + .sendbird-theme--light .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { + background-color: var(--sendbird-dark-background-700); } + .sendbird-app__wrap .sendbird-channel-settings { + border-left: none; } + .sendbird-app__wrap .sendbird-channel-settings .sendbird-channel-settings__header { + height: 65px; } + +.sendbird-openchannel-file-message { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-openchannel-file-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-file-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-file-message:hover .sendbird-openchannel-file-message__context-menu { + display: block; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left .sendbird-openchannel-file-message__left__avatar { + position: absolute; + display: block; + margin-top: 8px; + margin-left: 24px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right { + position: relative; + display: flex; + flex-direction: column; + margin-left: 12px; + margin-bottom: 4px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title { + position: relative; + display: flex; + margin-top: 8px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sender-name { + position: relative; + display: flex; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sent-at { + position: relative; + display: flex; + margin-left: 4px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { + position: relative; + display: flex; + margin-top: 4px; + margin-bottom: 4px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { + background-color: var(--sendbird-light-background-100); + border: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { + background-color: var(--sendbird-dark-background-500); + border: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { + position: relative; + display: inline-block; + margin: 8px; + border-radius: 8.6px; } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { + background-color: var(--sendbird-dark-background-600); } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__file-name { + position: relative; + display: flex; + margin-top: 22px; + margin-right: 16px; + margin-left: 4px; + overflow: hidden; + height: 20px; + max-height: 20px; + text-overflow: ellipsis; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu { + position: absolute; + display: none; + top: 8px; + right: 16px; } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { + background-color: var(--sendbird-dark-background-400); } + +.sendbird-openchannel-thumbnail-message { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu { + display: block; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left .sendbird-openchannel-thumbnail-message__left__avatar { + position: absolute; + display: inline; + margin-top: 8px; + margin-left: 28px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right { + position: relative; + display: flex; + flex-direction: column; + margin-top: 8px; + margin-bottom: 8px; + margin-left: 12px; + width: calc(100% - 64px); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title { + position: relative; + display: inline; + margin-bottom: 4px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sender-name { + position: relative; + display: inline; + margin-right: 4px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sent-at { + position: relative; + display: inline; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body { + position: relative; + display: inline; + border-radius: 8px; + width: 100%; + max-width: 360px; + height: 100%; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body:hover .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + opacity: 1; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap { + position: relative; + width: 100%; + height: 100%; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + max-width: 360px; + top: 0px; + left: 0px; + border-radius: 8px; + cursor: pointer; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video { + max-width: 360px; + height: 270px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video:hover { + cursor: pointer; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__video { + max-width: 360px; + height: 270px; + border-radius: 8px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { + padding: 107px 152px 107px 152px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image { + border-radius: 8px; + max-width: 360px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { + padding: 107px 152px 107px 152px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { + padding: 107px 152px 107px 152px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__context-menu { + position: absolute; + display: none; + top: 8px; + right: 16px; } + +.sendbird__edit-user-profile section { + margin-top: 16px; } + .sendbird__edit-user-profile section .sendbird-input-label { + display: block; + margin-bottom: 12px; } + +.sendbird__edit-user-profile .sendbird__edit-user-profile__img .sendbird-input-label { + margin-bottom: 12px; } + +.sendbird__edit-user-profile__img { + position: relative; } + +.sendbird__edit-user__avatar-button { + position: absolute; + top: 50px; + left: 96px; } + +.sendbird__edit-user__theme-icon .sendbird-icon { + cursor: pointer; } + +.sendbird-channel-list { + width: 320px; + height: 100%; + display: flex; + flex-direction: column; } + .sendbird-theme--light .sendbird-channel-list { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-list { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-channel-list__header { + height: 64px; + min-height: 64px; } + +.sendbird-channel-list__body { + flex: 1 1 0; + -ms-flex: 1; + overflow-y: auto; + overflow-x: hidden; } + +.sendbird-conversation { + display: flex; + flex-direction: column; + height: 100%; } + .sendbird-theme--light .sendbird-conversation { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-conversation { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-conversation__messages { + overflow-y: auto; + flex: 1 1 0; + order: 2; } + +.sendbird-conversation__messages-list { + display: flex; + flex-direction: column; + height: 100%; + justify-content: flex-end; } + +.sendbird-conversation__footer { + order: 3; + padding: 0px 24px 24px 24px; } + +.sendbird-conversation__scroll-container { + display: flex; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + flex-direction: column; } + .sendbird-conversation__scroll-container .sendbird-conversation__padding { + flex: 1 1 0; } + +.sendbird-conversation__footer { + position: relative; } + .sendbird-conversation__footer .sendbird-conversation__typing-indicator { + position: absolute; + bottom: 8px; } + +.sendbird-channel-settings { + height: 100%; + width: 320px; + display: inline-block; } + .sendbird-theme--light .sendbird-channel-settings { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-channel-settings .sendbird-channel-settings__header-icon { + cursor: pointer; + position: absolute; + top: 18px; + right: 21px; } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-channel-settings .sendbird-channel-settings__members .sendbird-badge__text { + margin-top: -2px; } + .sendbird-channel-settings .sendbird-channel-settings__header { + height: 64px; + min-height: 64px; + position: relative; + padding: 20px 24px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header { + border-bottom: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header { + border-bottom: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-channel-settings .sendbird-channel-settings__scroll-area { + display: flex; + flex-grow: 1; + flex-direction: column; + height: calc(100% - 64px); + overflow-y: auto; } + .sendbird-channel-settings .sendbird-channel-settings__panel-item { + cursor: pointer; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-item { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-item { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-channel-settings .sendbird-channel-settings__panel-item:focus { + outline: none; } + .sendbird-channel-settings .sendbird-channel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { + cursor: not-allowed; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left, + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { + position: absolute; + top: 10px; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left { + left: 16px; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { + right: 16px; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon--open { + transform: rotate(90deg); } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { + fill: var(--sendbird-light-error-300); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { + fill: var(--sendbird-dark-error-300); } + +.sendbird-notification { + margin-top: 8px; + margin-left: 24px; + margin-right: 24px; + border-radius: 4px; + padding: 0px 2px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; } + .sendbird-theme--light .sendbird-notification { + background-color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-notification { + background-color: var(--sendbird-dark-primary-200); } + .sendbird-notification:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-notification:hover { + background-color: var(--sendbird-light-primary-400); } + .sendbird-theme--dark .sendbird-notification:hover { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen { + background-color: var(--sendbird-light-information-100); } + .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen { + background-color: var(--sendbird-dark-information-100); } + .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { + color: var(--sendbird-dark-onlight-01); } + .sendbird-notification .sendbird-notification__text { + display: flex; + align-items: center; + justify-content: center; + margin-right: 8px; } + +.sendbird-muted-avatar { + border-radius: 50%; + display: inline-block; } + .sendbird-muted-avatar .sendbird-muted-avatar__icon { + position: relative; } + .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon { + position: absolute; + top: 4px; + left: 4px; } + .sendbird-muted-avatar .sendbird-muted-avatar__bg { + opacity: .5; + position: absolute; + border-radius: 50%; + top: 0; + left: 0; } + .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg { + background-color: var(--sendbird-light-primary-400); } + .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg { + background-color: var(--sendbird-dark-primary-300); } + +.sendbird-place-holder { + display: flex; + justify-content: center; + align-items: center; + height: 100%; } + .sendbird-place-holder .sendbird-place-holder__body { + display: flex; + flex-direction: column; + height: 104px; + align-items: center; } + .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__icon { + margin-bottom: 10px; } + .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__text { + margin-top: 10px; } + .sendbird-place-holder .sendbird-place-holder__body__reconnect { + margin-top: 18px; + display: flex; + flex-direction: row; + cursor: pointer; } + .sendbird-place-holder .sendbird-place-holder__body__reconnect .sendbird-place-holder__body__reconnect__icon { + margin-right: 4px; } + +.sendbird-channel-settings__operator .sendbird-channel-settings__accordion-icon { + position: absolute; + left: 14px; } + +.sendbird-channel-settings__operator .sendbird-accordion__panel-heder { + position: relative; } + +.sendbird-channel-settings__empty-list { + text-align: center; + margin-top: 12px; + margin-bottom: 4px; + display: block; } + +.sendbird-channel-settings-accordion__footer { + padding-top: 16px; + display: flex; + justify-content: left; + padding-left: 12px; } + .sendbird-channel-settings-accordion__footer .sendbird-button:nth-child(2) { + margin-left: 8px; } + +.sendbird-channel-settings__freeze { + max-width: 320px; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-channel-settings__freeze { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings__freeze { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-channel-settings__frozen-icon { + position: absolute; + right: 20px; + top: 12px; } + .sendbird-channel-settings__frozen-icon .sendbird-icon { + cursor: pointer; } + +.sendbird-channel-settings__members-list .sendbird-badge, +.sendbird-channel-settings__members .sendbird-badge { + position: absolute; + right: 44px; + top: 12px; } + .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--light + .sendbird-channel-settings__members .sendbird-badge { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--dark + .sendbird-channel-settings__members .sendbird-badge { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--light + .sendbird-channel-settings__members .sendbird-badge .sendbird-label { + color: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--dark + .sendbird-channel-settings__members .sendbird-badge .sendbird-label { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-user-list-item--small { + display: block; + position: relative; + box-sizing: border-box; + height: 40px; } + .sendbird-user-list-item--small__avatar { + cursor: pointer; + position: absolute; + top: 10px; + left: 12px; } + .sendbird-user-list-item--small .sendbird-muted-avatar { + position: absolute; + top: 10px; + left: 12px; + z-index: 2; + pointer-events: none; } + .sendbird-user-list-item--small__title { + position: absolute; + top: 10px; + left: 54px; + width: 160px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item--small__subtitle { + position: absolute; + top: 23px; + left: 140px; + max-width: 237px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item--small__checkbox { + position: absolute; + top: 16px; + right: 16px; } + .sendbird-user-list-item--small__action { + display: none; + position: absolute; + right: 10px; + top: 4px; } + .sendbird-user-list-item--small__operator { + position: absolute; + right: 24px; + top: 10px; } + .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed { + background-color: var(--sendbird-dark-background-500); } + .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action { + display: block; } + .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator { + display: none; } + .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { + background-color: var(--sendbird-dark-background-700); } + +.sendbird-iconbutton { + color: var(--sendbird-iconbutton-color); + display: inline-block; + padding: 3px; + background-color: transparent; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 1px solid transparent; + border-radius: 4px; + outline: 0px; } + .sendbird-theme--light .sendbird-iconbutton .sendbird-iconbutton__inner svg { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-iconbutton .sendbird-iconbutton__inner svg { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-theme--light .sendbird-iconbutton:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-iconbutton:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-theme--light .sendbird-iconbutton:focus { + box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } + .sendbird-theme--dark .sendbird-iconbutton:focus { + box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } + .sendbird-theme--light .sendbird-iconbutton:active { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-iconbutton:active { + background-color: var(--sendbird-dark-background-400); } + .sendbird-iconbutton:disabled { + cursor: not-allowed !important; } + .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { + fill: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { + fill: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-iconbutton--pressed { + background-color: var(--sendbird-light-primary-100); } + +.sendbird-theme--dark .sendbird-iconbutton--pressed { + background-color: var(--sendbird-dark-background-700); } + +[class*=sendbird-label] { + font-family: var(--sendbird-font-family-default); } + +.sendbird-label--h-1 { + font-size: 20px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.4; + letter-spacing: -0.2px; } + +.sendbird-label--h-2 { + font-size: 18px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: -0.2px; } + +.sendbird-label--subtitle-1 { + font-size: 16px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.38; + letter-spacing: -0.2px; } + +.sendbird-label--subtitle-2 { + font-size: 14px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.14; + letter-spacing: -0.2px; } + +.sendbird-label--body-1 { + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } + +.sendbird-label--body-2 { + font-size: 12px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.33; + letter-spacing: normal; } + +.sendbird-label--button-1 { + font-size: 14px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } + +.sendbird-label--button-2 { + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } + +.sendbird-label--caption-1 { + font-size: 14px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } + +.sendbird-label--caption-2 { + font-size: 12px; + font-weight: bold; + font-style: normal; + line-height: 1; + letter-spacing: normal; } + +.sendbird-label--caption-3 { + font-size: 12px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; } + +.sendbird-theme--light .sendbird-label--color-onbackground-1 { + color: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-1 { + color: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-label--color-onbackground-2 { + color: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-2 { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-label--color-onbackground-3 { + color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-3 { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-label--color-oncontent-1 { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-1 { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-label--color-oncontent-2 { + color: var(--sendbird-light-ondark-02); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-2 { + color: var(--sendbird-dark-onlight-02); } + +.sendbird-theme--light .sendbird-label--color-primary { + color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-label--color-primary { + color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-label--color-error { + color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-label--color-error { + color: var(--sendbird-dark-error-300); } + +.sendbird-theme--light .sendbird-label--color-secondary-3 { + color: var(--sendbird-light-secondary-300); } + +.sendbird-theme--dark .sendbird-label--color-secondary-3 { + color: var(--sendbird-dark-secondary-200); } + +.sendbird-icon { + display: inline-block; } + .sendbird-icon:focus { + outline: none; } + +.sendbird-theme--light .sendbird-color--primary [class*='fill'] { + fill: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-color--primary [class*='fill'] { + fill: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-color--primary [class*='stroke'] { + stroke: var(--sendbird-light-primary-300); + stroke-width: 2px; + stroke-linejoin: round; } + +.sendbird-theme--dark .sendbird-color--primary [class*='stroke'] { + stroke: var(--sendbird-dark-primary-200); + stroke-width: 2px; + stroke-linejoin: round; } + +.sendbird-theme--light .sendbird-color--secondary [class*='fill'] { + fill: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-color--secondary [class*='fill'] { + fill: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-color--content [class*='fill'] { + fill: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-color--content [class*='fill'] { + fill: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-color--content-inverse [class*='fill'] { + fill: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-color--content-inverse [class*='fill'] { + fill: var(--sendbird-dark-ondark-01); } + +.sendbird-color--white [class*='fill'] { + fill: #ffffff; } + +.sendbird-theme--light .sendbird-color--sent [class*='fill'] { + fill: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-color--sent [class*='fill'] { + fill: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-color--read [class*='fill'] { + fill: var(--sendbird-light-secondary-300); } + +.sendbird-theme--dark .sendbird-color--read [class*='fill'] { + fill: var(--sendbird-dark-secondary-200); } + +.sendbird-theme--light .sendbird-color--on-background-2 [class*='fill'] { + fill: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-color--on-background-2 [class*='fill'] { + fill: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-color--on-background-3 [class*='fill'] { + fill: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-color--on-background-3 [class*='fill'] { + fill: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-color--background-3 [class*='fill'] { + fill: var(--sendbird-light-background-300); } + +.sendbird-theme--dark .sendbird-color--background-3 [class*='fill'] { + fill: var(--sendbird-dark-background-400); } + +.sendbird-textbutton { + text-decoration: underline; + cursor: pointer; } + +.sendbird-textbutton--not-underline { + text-decoration: none; + cursor: pointer; } + +.sendbird-textbutton--disabled { + cursor: not-allowed; } + .sendbird-theme--light .sendbird-textbutton--disabled { + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-textbutton--disabled { + color: var(--sendbird-dark-ondark-03); } + +.sendbird__offline .sendbird-dropdown__menu .sendbird-dropdown__menu-item { + cursor: not-allowed; } + +.sendbird-dropdown__menu { + z-index: 99999; + position: absolute; + top: 100%; + left: 0; + min-width: 140px; + margin: 0px; + padding: 8px 0px; + border-radius: 4px; + list-style: none; } + .sendbird-theme--light .sendbird-dropdown__menu { + box-shadow: var(--sendbird-light-shadow-02); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-dropdown__menu { + box-shadow: var(--sendbird-dark-shadow-02); + background-color: var(--sendbird-dark-background-500); } + .sendbird-dropdown__menu .sendbird-dropdown__menu-item { + cursor: pointer; + white-space: nowrap; + padding: 8px 16px; } + .sendbird-theme--light .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { + background-color: var(--sendbird-dark-background-400); } + +.sendbird-dropdown__reaction-bar { + position: absolute; + top: 100%; + left: 0; + min-width: 44px; + max-width: 352px; + max-height: 208px; + overflow-y: scroll; + margin: 0px; + padding: 8px; + border-radius: 8px; + list-style: none; } + .sendbird-theme--light .sendbird-dropdown__reaction-bar { + box-shadow: var(--sendbird-light-shadow-02); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-dropdown__reaction-bar { + box-shadow: var(--sendbird-dark-shadow-02); + background-color: var(--sendbird-dark-background-500); } + .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button, .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button--selected { + margin: 4px; } + +.sendbird-dropdown__menu-backdrop { + background-color: transparent; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +.sendbird-reactions--pressed { + display: block !important; } + +.sendbird-icon--pressed { + display: block !important; } + +.sendbird-message-input { + display: inline-block; + width: 100%; + position: relative; } + .sendbird-message-input .sendbird-message-input--textarea { + width: 100%; + border-radius: 4px; + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + height: 56px; + overflow-y: hidden; + letter-spacing: normal; + padding: 18px 64px 18px 16px; + box-sizing: border-box; + resize: none; + font-family: var(--sendbird-font-family-default); + background-color: inherit; } + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea { + color: var(--sendbird-light-onlight-01); + caret-color: var(--sendbird-light-primary-300); + border: solid 1px var(--sendbird-light-onlight-03); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea { + color: var(--sendbird-dark-ondark-01); + caret-color: var(--sendbird-dark-primary-200); + border: solid 1px var(--sendbird-dark-ondark-03); + background-color: var(--sendbird-dark-background-500); } + .sendbird-message-input .sendbird-message-input--textarea:focus { + outline: none; } + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:focus { + color: var(--sendbird-light-onlight-01); + border: solid 1px var(--sendbird-light-primary-300); + box-shadow: var(--sendbird-light-shadow-message-input); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:focus { + color: var(--sendbird-dark-ondark-01); + border: solid 1px var(--sendbird-dark-primary-200); + box-shadow: var(--sendbird-dark-shadow-message-input); } + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:active { + border: solid 1px var(--sendbird-message-input-border-active); + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:active { + border: solid 1px var(--sendbird-message-input-border-active); + color: var(--sendbird-dark-ondark-01); } + .sendbird-message-input .sendbird-message-input--placeholder { + position: absolute; + pointer-events: none; + top: 18px; + left: 16px; + font-family: var(--sendbird-font-family-default); + font-size: 14px; + line-height: 1.43; } + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--placeholder { + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--placeholder { + color: var(--sendbird-dark-ondark-03); } + .sendbird-message-input .sendbird-message-input--attach { + position: absolute; + right: 12px; + bottom: 18px; + padding: 6px; } + .sendbird-message-input .sendbird-message-input--send { + position: absolute; + padding: 6px; + right: 16px; + bottom: 16px; } + .sendbird-message-input .sendbird-message-input--attach-input { + display: none; } + +.sendbird-message-input__edit { + padding: 16px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-message-input__edit { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-message-input__edit { + background-color: var(--sendbird-dark-background-700); } + +.sendbird-message-input--edit-action { + text-align: right; + margin-top: 4px; } + .sendbird-message-input--edit-action button:last-child { + margin-left: 8px; } + .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { + width: 80px; } + .sendbird-theme--light .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { + border: solid 1px var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { + border: solid 1px var(--sendbird-dark-ondark-03); } + .sendbird-message-input--edit-action .sendbird-message-input--edit-action__save { + width: 80px; } + +.sendbird-message-input-form__disabled { + cursor: not-allowed; } + +.sendbird-message-input__disabled { + pointer-events: none; + cursor: disabled; } + .sendbird-theme--light .sendbird-message-input__disabled .sendbird-message-input--textarea { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-message-input__disabled .sendbird-message-input--textarea { + background-color: var(--sendbird-dark-background-500); } + .sendbird-theme--light .sendbird-message-input__disabled svg { + fill: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-message-input__disabled svg { + fill: var(--sendbird-dark-ondark-03); } + +.sendbird-image-renderer--hidden-placeholder { + display: none; } + +.sendbird-separator { + width: 100%; + display: flex; + align-items: center; } + .sendbird-separator .sendbird-separator__left { + border: none; + height: 1px; + display: inline-block; + width: 100%; } + .sendbird-separator .sendbird-separator__right { + border: none; + height: 1px; + display: inline-block; + width: 100%; } + .sendbird-separator .sendbird-separator__text { + margin: 0px 16px; + display: flex; + white-space: nowrap; } + +.sendbird-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; } + +.sendbird-modal-content { + width: 480px; + border-radius: 4px; + z-index: 10001; + padding: 18px 24px 24px 24px; + position: relative; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-modal-content { + background-color: var(--sendbird-light-background-50); + box-shadow: var(--sendbird-light-shadow-04); } + .sendbird-theme--dark .sendbird-modal-content { + background-color: var(--sendbird-dark-background-500); + box-shadow: var(--sendbird-dark-shadow-04); } + .sendbird-modal-content .sendbird-modal-close { + position: absolute; + top: 16px; + right: 16px; + cursor: pointer; } + .sendbird-theme--light .sendbird-modal-content .sendbird-modal-close path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-modal-content .sendbird-modal-close path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-modal-content .sendbird-modal-header { + margin-bottom: 16px; } + .sendbird-modal-content .sendbird-modal-footer { + margin-top: 32px; + text-align: right; } + .sendbird-modal-content .sendbird-modal-footer .sendbird-button:last-child { + margin-left: 8px; + width: 80px; + height: 40px; } + +.sendbird-modal-backdrop { + position: fixed; + z-index: 10000; + height: 100%; + width: 100%; + top: 0; + left: 0; } + .sendbird-theme--light .sendbird-modal-backdrop { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-modal-backdrop { + background-color: var(--sendbird-dark-overlay); } + +.sendbird-fileviewer { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 100000; } + .sendbird-theme--light .sendbird-fileviewer { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-fileviewer { + background-color: var(--sendbird-dark-background-600); } + +.sendbird-fileviewer__header { + height: 64px; + min-height: 64px; + box-sizing: border-box; + display: flex; + justify-content: space-between; } + .sendbird-theme--light .sendbird-fileviewer__header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-fileviewer__header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-fileviewer__header .sendbird-fileviewer__header-left { + padding: 16px 0px 16px 20px; + display: flex; + flex: 1; } + .sendbird-fileviewer__header .sendbird-fileviewer__header-right { + display: flex; + width: 160px; + justify-content: flex-end; } + .sendbird-fileviewer__header .sendbird-fileviewer__header-download, + .sendbird-fileviewer__header .sendbird-fileviewer__header-delete, + .sendbird-fileviewer__header .sendbird-fileviewer__header-close { + width: 64px; + padding: 21px; + box-sizing: border-box; + cursor: pointer; } + .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--light + .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--light + .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--dark + .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--dark + .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-close { + border-left: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-close { + border-left: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-fileviewer__header-avatar { + margin-right: 8px; } + +.sendbird-fileviewer__header-actions { + right: 0; + display: flex; + flex-direction: row; } + +.sendbird-fileviewer__header-filename { + max-width: 500px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: inline-block; + padding-top: 2px; } + +.sendbird-fileviewer__header-sendername { + max-width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: inline-block; + margin-left: 8px; + padding-top: 5px; } + +.sendbird-fileviewer__content { + height: calc(100% - 72px); + margin-top: 8px; + overflow-y: auto; + display: flex; + align-items: center; + justify-content: center; } + .sendbird-fileviewer__content .sendbird-fileviewer__video { + max-width: 100%; + max-height: 100%; } + .sendbird-fileviewer__content .sendbird-fileviewer__img { + max-width: 90%; + max-height: 90%; } + .sendbird-fileviewer__content .sendbird-fileviewer__unsupported { + max-width: 100%; + max-height: 100%; + display: flex; + justify-content: center; + align-items: center; } + +.sendbird-input { + display: inline-block; + width: 100%; + height: 40px; + position: relative; } + .sendbird-input .sendbird-input--input { + width: 100%; + height: 100%; + border-radius: 4px; + font-family: var(--sendbird-font-family-default); + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; + padding: 10px 16px; + box-sizing: border-box; + background-color: inherit; } + .sendbird-theme--light .sendbird-input .sendbird-input--input { + color: var(--sendbird-light-onlight-01); + caret-color: var(--sendbird-light-primary-300); + border: solid 1px var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input { + color: var(--sendbird-dark-ondark-01); + caret-color: var(--sendbird-dark-primary-200); + border: solid 1px var(--sendbird-dark-ondark-03); } + .sendbird-input .sendbird-input--input:focus { + outline: none; } + .sendbird-theme--light .sendbird-input .sendbird-input--input:focus { + box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-light-onlight-01); + border: solid 2px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input:focus { + box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-dark-ondark-01); + border: solid 2px var(--sendbird-dark-primary-200); } + .sendbird-theme--light .sendbird-input .sendbird-input--input:active { + box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-light-onlight-01); + border: solid 1px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input:active { + box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-dark-ondark-01); + border: solid 1px var(--sendbird-dark-primary-200); } + .sendbird-input .sendbird-input--input:disabled { + cursor: not-allowed; } + .sendbird-theme--light .sendbird-input .sendbird-input--input:disabled { + background-color: var(--sendbird-light-background-100); + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input:disabled { + background-color: var(--sendbird-dark-background-500); + color: var(--sendbird-dark-ondark-03); } + .sendbird-input .sendbird-input--placeholder { + position: absolute; + pointer-events: none; + top: 10px; + left: 16px; + font-family: var(--sendbird-font-family-default); + font-size: 14px; + line-height: 1.43; } + .sendbird-theme--light .sendbird-input .sendbird-input--placeholder { + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-input .sendbird-input--placeholder { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-input-label { + margin: 4px 0; } + +.sendbird-user-list-item { + display: block; + position: relative; + box-sizing: border-box; + width: 432px; + height: 56px; } + .sendbird-theme--light .sendbird-user-list-item { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-user-list-item { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-500); } + .sendbird-user-list-item__avatar { + position: absolute; + top: 8px; + left: 0px; + z-index: 1; + cursor: pointer; } + .sendbird-user-list-item .sendbird-muted-avatar { + position: absolute; + top: 8px; + left: 0px; + z-index: 2; + pointer-events: none; } + .sendbird-user-list-item__title { + position: absolute; + top: 17px; + left: 56px; + max-width: 280px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item__subtitle { + position: absolute; + top: 23px; + left: 140px; + max-width: 237px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item__checkbox { + position: absolute; + top: 16px; + right: 16px; } + .sendbird-user-list-item__action { + position: absolute; + right: 0; + top: 10px; } + .sendbird-user-list-item__operator { + position: absolute; + right: 40px; + top: 22px; } + +.sendbird__offline .sendbird-channel-preview { + cursor: not-allowed; } + +.sendbird-channel-preview { + position: relative; + cursor: pointer; + box-sizing: border-box; + width: 320px; + height: 80px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + padding: 12px 16px 12px 16px; } + .sendbird-theme--light .sendbird-channel-preview { + border-bottom: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-preview { + border-bottom: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-channel-preview .sendbird-channel-preview__frozen-icon { + padding-left: 4px; } + .sendbird-channel-preview .sendbird-channel-preview__broadcast-icon { + padding-right: 4px; } + .sendbird-channel-preview:focus { + outline: none; } + .sendbird-channel-preview .sendbird-channel-preview__avatar { + width: 56px; + height: 56px; } + .sendbird-channel-preview .sendbird-channel-preview__content { + width: 100%; + height: 100%; + margin-left: 16px; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper { + display: flex; + justify-content: space-between; + width: 216px; + height: 16px; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header { + display: flex; + justify-content: flex-start; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__channel-name { + overflow: hidden; + text-overflow: ellipsis; + max-width: 128px; + word-break: break-all; + white-space: nowrap; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__total-members { + margin-top: 2px; + margin-left: 4px; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__last-message-at { + margin-left: 4px; + margin-bottom: 4px; + white-space: nowrap; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower { + margin-top: 8px; + width: 216px; + height: 32px; + display: flex; + justify-content: space-between; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__last-message { + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__unread-message-count { + margin-left: 8px; + margin-bottom: 12px; } + .sendbird-channel-preview .sendbird-channel-preview__action { + position: absolute; + top: 12px; + right: 12px; + display: inline-block; } + .sendbird-channel-preview .sendbird-channel-preview__action .sendbird-iconbutton { + display: none; } + .sendbird-theme--light .sendbird-channel-preview:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-channel-preview:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-channel-preview:hover .sendbird-channel-preview__action .sendbird-iconbutton { + display: inline-block; } + .sendbird-channel-preview:hover .sendbird-channel-preview__content__upper__last-message-at { + display: none; } + .sendbird-channel-preview:hover .sendbird-channel-preview__content__lower__unread-message-count { + display: none; } + +.sendbird-channel-preview--active { + padding: 12px 16px 12px 12px; } + .sendbird-theme--light .sendbird-channel-preview--active { + border-left: solid 4px var(--sendbird-light-primary-300); + border-bottom: solid 1px var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-channel-preview--active { + border-left: solid 4px var(--sendbird-dark-primary-200); + border-bottom: solid 1px var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-700); } + .sendbird-theme--light .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { + color: var(--sendbird-dark-primary-200); } + +.sendbird-link-label { + text-decoration: unset; } + .sendbird-link-label:hover { + cursor: pointer; + text-decoration: underline; } + .sendbird-link-label:focus { + outline: none; } + .sendbird-link-label__label { + display: inline; } + +.sendbird-theme--light .sendbird-label--color-onbackground-1 { + color: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-1 { + color: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-label--color-onbackground-2 { + color: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-2 { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-label--color-onbackground-3 { + color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-3 { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-label--color-oncontent-1 { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-1 { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-label--color-oncontent-2 { + color: var(--sendbird-light-ondark-02); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-2 { + color: var(--sendbird-dark-onlight-02); } + +.sendbird-theme--light .sendbird-label--color-primary { + color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-label--color-primary { + color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-label--color-error { + color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-label--color-error { + color: var(--sendbird-dark-error-300); } + +.sendbird-theme--light .sendbird-label--color-secondary-3 { + color: var(--sendbird-light-secondary-300); } + +.sendbird-theme--dark .sendbird-label--color-secondary-3 { + color: var(--sendbird-dark-secondary-200); } + +.sendbird-add-channel__rectangle-wrap { + margin-top: 26px; } + +.sendbird-add-channel__rectangle-footer { + text-align: right; + margin-top: 32px; } + +.sendbird-add-channel__rectangle { + width: 432px; + height: 72px; + border-radius: 4px; + margin-bottom: 8px; + padding: 25px 72px; + position: relative; + box-sizing: border-box; + cursor: pointer; } + .sendbird-theme--light .sendbird-add-channel__rectangle { + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-add-channel__rectangle { + border: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-add-channel__rectangle .sendbird-icon { + position: absolute; + left: 22px; + top: 24px; } + +.sendbird-channel-header { + position: relative; + height: 64px; + min-height: 64px; + width: 320px; + padding: 8px 64px 8px 8px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-channel-header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-channel-header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-channel-header.sendbird-channel-header--allow-edit .sendbird-channel-header__title { + cursor: pointer; } + .sendbird-channel-header .sendbird-channel-header__title { + display: flex; + flex-direction: row; + width: 260px; + height: 48px; + border-radius: 4px; } + .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:hover { + background: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:hover { + background: var(--sendbird-dark-background-500); } + .sendbird-channel-header .sendbird-channel-header__title:focus { + outline: none; } + .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:focus { + background: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:focus { + background: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:active { + border: solid 2px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:active { + border: solid 2px var(--sendbird-dark-primary-200); } + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--left { + width: 48px; + padding: 8px; + box-sizing: border-box; } + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--right { + margin-left: 4px; + padding-top: 8px; } + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--name, + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--user-id { + display: block; + max-width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-channel-header .sendbird-channel-header__right-icon { + position: absolute; + right: 16px; + top: 16px; } + +.sendbird-conversation__messages .sendbird-conversation__messages-padding { + padding-left: 24px; + padding-right: 24px; } + +.sendbird-conversation__messages .sendbird-separator, +.sendbird-conversation__messages .sendbird-admin-message { + padding-top: 8px; + padding-bottom: 8px; } + +.sendbird-conversation__connection-status { + display: flex; + align-items: center; + padding-top: 5px; } + +.sendbird-badge { + height: 20px; + min-width: 20px; + border-radius: 10px; + display: inline-block; } + .sendbird-theme--light .sendbird-badge { + background-color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-badge { + background-color: var(--sendbird-dark-primary-200); } + .sendbird-badge .sendbird-badge__text { + margin: 0px 6px; } + +.sendbird-chat-header { + position: relative; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + height: 64px; + min-height: 64px; + padding-left: 20px; + padding-right: 16px; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-theme--light .sendbird-chat-header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-chat-header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-chat-header__left { + margin-right: 24px; } + .sendbird-chat-header__left, .sendbird-chat-header__right { + overflow: hidden; + display: flex; + flex-direction: row; + align-items: center; } + .sendbird-chat-header .sendbird-chat-header__title { + margin-left: 8px; + margin-right: 16px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: 780px; } + .sendbird-chat-header .sendbird-chat-header__subtitle { + max-width: 240px; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-chat-header .sendbird-chat-header__active { + margin-right: 4px; + width: 8px; + height: 8px; + border-radius: 4px; } + .sendbird-theme--light .sendbird-chat-header .sendbird-chat-header__active { + background-color: var(--sendbird-light-secondary-300); } + .sendbird-theme--dark .sendbird-chat-header .sendbird-chat-header__active { + background-color: var(--sendbird-dark-secondary-200); } + .sendbird-chat-header .sendbird-chat-header__mute { + margin-right: 26px; } + .sendbird-chat-header .sendbird-iconbutton--pressed { + background-color: inherit; } + +.sendbird-channel-profile { + position: relative; + text-align: center; + padding: 32px 40px 27px 40px; } + .sendbird-theme--light .sendbird-channel-profile { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-channel-profile { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-channel-profile .sendbird-channel-profile--inner { + height: 92px; } + .sendbird-channel-profile .sendbird-channel-profile__avatar { + margin-bottom: 16px; + text-align: center; } + .sendbird-channel-profile .sendbird-channel-profile__title { + max-width: 240px; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + height: 18px; } + .sendbird-channel-profile .sendbird-channel-profile__edit { + position: absolute; + top: 10px; + right: 16px; } + +.channel-profile-form .channel-profile-form__img-section { + position: relative; } + +.channel-profile-form .channel-profile-form__avatar-button { + position: absolute; + top: 54px; + left: 96px; } + +.channel-profile-form .channel-profile-form__avatar { + margin-top: 16px; } + +.channel-profile-form .channel-profile-form__name-section { + margin-top: 12px; } + .channel-profile-form .channel-profile-form__name-section .sendbird-input { + height: 40px; } + +.sendbird-loader { + display: inline-block; + -webkit-animation: 1s infinite linear; + animation: 1s infinite linear; + -webkit-animation-name: rotate; + animation-name: rotate; } + +@-webkit-keyframes rotate { + from { + transform: rotate(0); } + to { + transform: rotate(360deg); } } + +@keyframes rotate { + from { + transform: rotate(0); } + to { + transform: rotate(360deg); } } + +.sendbird-button { + display: inline-block; + box-shadow: none; + border-radius: 4px; + padding: 0px; + font-family: var(--sendbird-font-family-default); + cursor: pointer; } + .sendbird-button:hover { + box-shadow: none; } + .sendbird-button:focus { + outline: none; } + .sendbird-button:active { + box-shadow: none; } + .sendbird-button.sendbird-button__disabled { + cursor: not-allowed; } + .sendbird-theme--light .sendbird-button.sendbird-button__disabled { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button.sendbird-button__disabled { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-button.sendbird-button__disabled:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button.sendbird-button__disabled:hover { + background-color: var(--sendbird-dark-background-400); } + +.sendbird-button--big { + height: 40px; } + .sendbird-button--big .sendbird-button__text { + margin: 10px 16px; } + +.sendbird-button--small { + height: 32px; } + .sendbird-button--small .sendbird-button__text { + margin: 6px 16px; } + +.sendbird-theme--light .sendbird-button--primary { + border: 1px solid var(--sendbird-light-primary-300); + background-color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-button--primary { + border: 1px solid var(--sendbird-dark-primary-200); + background-color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-button--primary .sendbird-button__text { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-button--primary .sendbird-button__text { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-button--primary:hover { + background-color: var(--sendbird-light-primary-400); + border-color: var(--sendbird-light-primary-400); } + +.sendbird-theme--dark .sendbird-button--primary:hover { + background-color: var(--sendbird-dark-primary-300); + border-color: var(--sendbird-dark-primary-300); } + +.sendbird-theme--light .sendbird-button--primary:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); + border: 1px solid var(--sendbird-button-border-focus); } + +.sendbird-theme--dark .sendbird-button--primary:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); + border: 1px solid var(--sendbird-button-border-focus); } + +.sendbird-theme--light .sendbird-button--primary:active { + background-color: var(--sendbird-light-primary-500); } + +.sendbird-theme--dark .sendbird-button--primary:active { + background-color: var(--sendbird-dark-primary-400); } + +.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:hover { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-400); } + +.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:hover { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-300); } + +.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:active { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-500); } + +.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:active { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-400); } + +.sendbird-button--secondary { + background-color: transparent; } + .sendbird-theme--light .sendbird-button--secondary { + border: 1px solid var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-button--secondary { + border: 1px solid var(--sendbird-dark-ondark-03); } + .sendbird-theme--light .sendbird-button--secondary .sendbird-button__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-button--secondary .sendbird-button__text { + color: var(--sendbird-dark-ondark-01); } + .sendbird-button--secondary:hover { + background-color: transparent; } + .sendbird-theme--light .sendbird-button--secondary:hover { + border: 1px solid var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:hover { + border: 1px solid var(--sendbird-dark-primary-200); } + .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button__text { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button__text { + color: var(--sendbird-dark-primary-200); } + .sendbird-button--secondary.sendbird-button__disabled { + cursor: not-allowed; + border: none; } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { + color: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { + color: var(--sendbird-dark-ondark-02); } + .sendbird-button--secondary.sendbird-button__disabled:hover { + border: none; } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { + color: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { + color: var(--sendbird-dark-ondark-02); } + .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-dark-primary-200); } + .sendbird-button--secondary:focus { + border: 1px solid transparent; + background-color: transparent; } + .sendbird-theme--light .sendbird-button--secondary:focus { + box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } + .sendbird-theme--dark .sendbird-button--secondary:focus { + box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } + .sendbird-theme--light .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-dark-ondark-01); } + .sendbird-button--secondary:active { + box-shadow: none; } + .sendbird-theme--light .sendbird-button--secondary:active { + border: 1px solid var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:active { + border: 1px solid var(--sendbird-dark-primary-200); } + .sendbird-theme--light .sendbird-button--secondary:active .sendbird-button__text { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:active .sendbird-button__text { + color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-button--danger { + border: 1px solid var(--sendbird-light-error-300); + background-color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-button--danger { + border: 1px solid var(--sendbird-dark-error-300); + background-color: var(--sendbird-dark-error-300); } + +.sendbird-theme--light .sendbird-button--danger .sendbird-button__text { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-button--danger .sendbird-button__text { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-button--danger:hover { + background-color: var(--sendbird-light-error-400); + border-color: var(--sendbird-light-error-400); } + +.sendbird-theme--dark .sendbird-button--danger:hover { + background-color: var(--sendbird-dark-error-400); + border-color: var(--sendbird-dark-error-400); } + +.sendbird-theme--light .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-300); + border-color: var(--sendbird-button-border-focus); } + +.sendbird-theme--dark .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-300); + border-color: var(--sendbird-button-border-focus); } + +.sendbird-button--danger:active { + box-shadow: none; } + .sendbird-theme--light .sendbird-button--danger:active { + background-color: var(--sendbird-light-error-500); } + .sendbird-theme--dark .sendbird-button--danger:active { + background-color: var(--sendbird-dark-error-500); } + +.sendbird-theme--light .sendbird-button--danger:hover .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-400); } + +.sendbird-theme--dark .sendbird-button--danger:hover .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-400); } + +.sendbird-theme--light .sendbird-button--danger:active .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-500); } + +.sendbird-theme--dark .sendbird-button--danger:active .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-500); } + +.sendbird-button--disabled { + border: 1px solid transparent; + cursor: not-allowed; } + .sendbird-theme--light .sendbird-button--disabled { + background-color: var(--sendbird-light-background-200); + color: var(--sendbird-light-ondark-01); } + .sendbird-theme--dark .sendbird-button--disabled { + background-color: var(--sendbird-dark-background-400); + color: var(--sendbird-dark-onlight-01); } + +.sendbird-members-accordion { + padding: 8px 16px 16px 16px; + position: relative; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-members-accordion { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-members-accordion { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-members-accordion .sendbird-members-accordion__member { + position: relative; + padding: 12px 0px 12px 44px; + height: 40px; + box-sizing: border-box; } + .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label { + max-width: 240px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-members-accordion .sendbird-members-accordion__member-avatar { + position: absolute; + left: 0; + top: 10px; + cursor: pointer; } + .sendbird-members-accordion .sendbird-members-accordion__footer { + display: flex; + justify-content: flex-start; + margin-top: 8px; } + .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members { + margin-right: 16px; } + +.sendbird-more-members__popup-scroll { + max-height: 420px; + overflow-y: auto; } + +.sendbird-create-channel--content { + width: 480px; + max-height: 552px; } + +.sendbird-create-channel--scroll { + height: 360px; + overflow-y: auto; } + +.sendbird-reaction-button { + border-radius: 8px; + display: inline-block; + border: solid 1px transparent; + cursor: pointer; } + .sendbird-theme--light .sendbird-reaction-button:hover { + border: solid 1px var(--sendbird-light-background-100); + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-reaction-button:hover { + border: solid 1px var(--sendbird-dark-background-400); + background-color: var(--sendbird-dark-background-400); } + .sendbird-reaction-button__inner { + margin: 3px; } + +.sendbird-reaction-button--selected { + cursor: pointer; + border-radius: 8px; + display: inline-block; } + .sendbird-theme--light .sendbird-reaction-button--selected { + border: solid 1px var(--sendbird-light-primary-100); + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-reaction-button--selected { + border: solid 1px var(--sendbird-dark-primary-400); + background-color: var(--sendbird-dark-primary-400); } + .sendbird-reaction-button--selected:hover { + border: solid 1px var(--sendbird-selected-reaction-button-border-hover); } + .sendbird-reaction-button--selected__inner { + margin: 3px; } + .sendbird-reaction-button--selected.sendbird-reactions--pressed { + display: block !important; } + +.sendbird-sort-by-row { + display: flex; + justify-content: flex-start; + align-items: center; } + +.sendbird-checkbox { + display: block; + position: relative; + padding-left: 35px; + margin-bottom: 12px; + cursor: pointer; + font-size: 22px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.sendbird-checkbox input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; } + +.sendbird-checkbox--checkmark { + position: absolute; + top: 0; + left: 0; + height: 18px; + width: 18px; + border-radius: 2px; + background-color: inherit; } + .sendbird-theme--light .sendbird-checkbox--checkmark { + border: 2px solid var(--sendbird-light-background-400); } + .sendbird-theme--dark .sendbird-checkbox--checkmark { + border: 2px solid var(--sendbird-dark-background-300); } + +.sendbird-theme--light .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { + background-color: var(--sendbird-light-primary-300); + border: 2px solid var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { + background-color: var(--sendbird-dark-primary-200); + border: 2px solid var(--sendbird-dark-primary-200); } + +.sendbird-checkbox--checkmark:after { + content: ""; + position: absolute; + display: none; } + +.sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark:after { + display: block; } + +.sendbird-theme--light .sendbird-checkbox .sendbird-checkbox--checkmark:after { + left: 5px; + top: -0.5px; + width: 7px; + height: 12px; + border: solid var(--sendbird-light-background-50); + border-width: 0 2px 2px 0; + transform: rotate(45deg); } + +.sendbird-theme--dark .sendbird-checkbox .sendbird-checkbox--checkmark:after { + left: 5px; + top: -0.5px; + width: 7px; + height: 12px; + border: solid var(--sendbird-dark-background-600); + border-width: 0 2px 2px 0; + transform: rotate(45deg); } + +.sendbird-theme--light .sendbird-color--onbackground-1 { + color: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-color--onbackground-1 { + color: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-color--onbackground-1--background-color { + background-color: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-color--onbackground-1--background-color { + background-color: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-color--onbackground-2 { + color: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-color--onbackground-2 { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-color--onbackground-2--background-color { + background-color: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-color--onbackground-2--background-color { + background-color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-color--onbackground-3 { + color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-color--onbackground-3 { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-color--onbackground-3--background-color { + background-color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-color--onbackground-3--background-color { + background-color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-color--onbackground-4 { + color: var(--sendbird-light-onlight-04); } + +.sendbird-theme--dark .sendbird-color--onbackground-4 { + color: var(--sendbird-dark-ondark-04); } + +.sendbird-theme--light .sendbird-color--onbackground-4--background-color { + background-color: var(--sendbird-light-onlight-04); } + +.sendbird-theme--dark .sendbird-color--onbackground-4--background-color { + background-color: var(--sendbird-dark-ondark-04); } + +.sendbird-theme--light .sendbird-color--oncontent-1 { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-color--oncontent-1 { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-color--oncontent-1--background-color { + background-color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-color--oncontent-1--background-color { + background-color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-color--primary { + color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-color--primary { + color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-color--primary--background-color { + background-color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-color--primary--background-color { + background-color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-color--error { + color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-color--error { + color: var(--sendbird-dark-error-300); } + +.sendbird-theme--light .sendbird-color--error--background-color { + background-color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-color--error--background-color { + background-color: var(--sendbird-dark-error-300); } + +.sendbird-message { + position: relative; + line-height: 0; } + .sendbird-message--outgoing { + text-align: right; } + .sendbird-message--incoming { + text-align: left; } + +.sendbird-user-message--copy { + cursor: pointer !important; } + +.sendbird-user-message--outgoing { + position: relative; + right: 0px; + display: inline-block; + max-width: 496px; + text-align: right; } + .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-400); } + .sendbird-user-message--outgoing:hover .sendbird-user-message__left-padding .sendbird-user-message__more { + display: block; } + .sendbird-user-message--outgoing .sendbird-user-message--inner { + display: flex; + flex-direction: row; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding { + position: relative; + width: 68px; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more { + display: none; + position: absolute; + right: 4px; + top: 2px; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more[class*='--pressed'] { + display: block !important; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__status { + position: absolute; + bottom: 2px; + right: 4px; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; + text-align: left; } + .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { + display: flex; + flex-direction: column; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { + padding: 8px 12px; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + display: inline; + white-space: pre-wrap; + overflow-wrap: normal; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + position: relative; + bottom: 0px; } + .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-300); } + +.sendbird-user-message--incoming { + position: relative; + left: 0px; + display: inline-block; + padding-left: 40px; + max-width: 536px; + text-align: left; } + .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__more { + display: block; } + .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__sent-at { + display: none; } + .sendbird-user-message--incoming .sendbird-user-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-user-message--incoming .sendbird-user-message--body { + display: flex; + flex-direction: column; } + .sendbird-user-message--incoming .sendbird-user-message__right-padding { + position: relative; + width: 68px; } + .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__sent-at { + position: absolute; + left: 4px; + bottom: 2px; } + .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__more { + position: absolute; + display: none; + top: 18px; + left: 4px; } + .sendbird-user-message--incoming .sendbird-user-message__avatar { + position: absolute; + bottom: 4px; + left: -40px; + cursor: pointer; } + .sendbird-user-message--incoming .sendbird-user-message__sender-name { + margin-left: 12px; + margin-bottom: 4px; } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon { + margin-top: 4px; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; } + .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { + display: flex; + flex-direction: column; } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { + padding: 8px 12px; } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + display: inline; + white-space: pre-wrap; + overflow-wrap: normal; } + .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + color: var(--sendbird-dark-ondark-01); } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + position: relative; + bottom: 0px; } + .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + +.sendbird-user-message__text-balloon__inner__text-place__text { + word-break: break-word; + display: flex; + flex-direction: row; + flex-wrap: wrap; } + +.sendbird-user-message__text-balloon { + display: inline-block; } + +.sendbird-user-message-word { + display: inline; + margin: 0px 2px; } + +.sendbird-admin-message { + display: flex; + justify-content: center; + align-items: center; } + .sendbird-admin-message .sendbird-admin-message__text { + display: flex; } + +.sendbird-file-message--outgoing { + text-align: right; } + +.sendbird-file-message--incoming { + text-align: left; } + +.sendbird-file-message__outgoing { + position: relative; + right: 0px; + display: inline-block; + max-width: 496px; + text-align: right; + line-height: 0px; } + .sendbird-file-message__outgoing .sendbird-file-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-400); } + .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__more { + display: block; } + .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__status { + display: none; } + .sendbird-file-message__outgoing .sendbird-file-message__left-padding { + position: relative; + width: 68px; } + .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__more { + display: none; + position: absolute; + right: 4px; + top: 2px; } + .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__status { + position: absolute; + text-align: right; + right: 4px; + bottom: 4px; } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip { + display: flex; + flex-direction: column; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; } + .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { + display: flex; + flex: row; + padding: 8px 12px; + text-align: left; } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + border-radius: 10px; + margin-right: 8px; + background-color: var(--sendbird-file-message-icon-background); } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { + white-space: nowrap; + overflow-wrap: break-word; + margin: 4px 0px; + cursor: pointer; } + .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-300); } + +.sendbird-file-message__incoming { + position: relative; + left: 0px; + display: inline-block; + padding-left: 40px; + max-width: 536px; + text-align: left; + line-height: 0px; } + .sendbird-file-message__incoming .sendbird-file-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-file-message__incoming .sendbird-file-message__right-padding { + position: relative; + width: 68px; } + .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__more { + position: absolute; + display: none; + left: 4px; + top: 18px; } + .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__sent-at { + position: absolute; + left: 4px; + bottom: 4px; } + .sendbird-file-message__incoming:hover .sendbird-file-message__right-padding .sendbird-file-message__more { + display: block; } + .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-file-message__incoming .sendbird-file-message__avatar { + position: absolute; + bottom: 2px; + left: -40px; + cursor: pointer; } + .sendbird-file-message__incoming .sendbird-file-message__sender-name { + margin-left: 12px; + margin-bottom: 4px; } + .sendbird-file-message__incoming .sendbird-file-message__tooltip { + display: flex; + flex-direction: column; + margin-top: 4px; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; } + .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-background-500); } + .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { + display: flex; + flex-direction: row; + padding: 8px 12px; } + .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + border-radius: 10px; + margin-right: 8px; } + .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + background-color: var(--sendbird-dark-background-600); } + .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { + white-space: nowrap; + overflow-wrap: normal; + margin: 4px 0px; + cursor: pointer; } + .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + +.sendbird-unknown-message { + position: relative; + line-height: 0px; } + .sendbird-unknown-message--outgoing { + text-align: right; } + .sendbird-unknown-message--incoming { + text-align: left; } + +.sendbird-outgoing-unknown-message { + position: relative; + right: 0px; + display: inline-block; + text-align: right; + padding-left: 36px; + box-sizing: border-box; } + .sendbird-outgoing-unknown-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__more { + display: block; } + .sendbird-outgoing-unknown-message--left-padding { + position: relative; + width: 68px; } + .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__more { + display: none; + position: absolute; + top: 4px; + right: 4px; } + .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__message-status { + position: absolute; + text-align: right; + right: 4px; + bottom: 4px; } + .sendbird-outgoing-unknown-message__body { + display: flex; + flex-direction: column; } + .sendbird-outgoing-unknown-message__body__text-balloon { + box-sizing: border-box; + text-align: left; + border-radius: 16px; + padding: 8px 12px; + width: 198px; + height: 56px; } + .sendbird-theme--light .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-primary-300); } + +.sendbird-incoming-unknown-message { + position: relative; + left: 0px; + display: flex; + flex-direction: row; + text-align: left; } + .sendbird-incoming-unknown-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-incoming-unknown-message__left { + width: 38px; } + .sendbird-incoming-unknown-message__left__sender-profile-image { + position: absolute; + bottom: 4px; } + .sendbird-incoming-unknown-message__body { + width: 198px; + display: flex; + flex-direction: column; } + .sendbird-incoming-unknown-message__body__sender-name { + margin-left: 10px; + margin-bottom: 4px; } + .sendbird-incoming-unknown-message__body__text-balloon { + width: 198px; + height: 56px; + border-radius: 16px; + text-align: left; + padding: 8px 12px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-unknown-message--right-padding { + position: relative; + width: 68px; } + .sendbird-incoming-unknown-message--right-padding .sendbird-incoming-unknown-message__sent-at { + position: absolute; + left: 4px; + bottom: 4px; } + +.sendbird-message-status { + display: inline; + text-align: right; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again { + text-decoration: underline; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again:hover { + cursor: pointer; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete { + text-decoration: underline; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete:hover { + cursor: pointer; } + +.sendbird-emoji-reactions { + display: inline-block; + border-radius: 16px; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + min-height: 24px; + padding: 7px 5px 3px 5px; } + .sendbird-theme--light .sendbird-emoji-reactions { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-emoji-reactions { + background-color: var(--sendbird-dark-background-600); } + .sendbird-emoji-reactions .sendbird-emoji-reactions--inner { + display: flex; + flex-wrap: wrap; } + .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction { + margin-left: 2px; + margin-right: 2px; + margin-bottom: 4px; } + .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction-add { + width: 36px; + height: 24px; } + .sendbird-emoji-reactions:focus { + outline: none; } + +.sendbird-tooltip { + position: relative; + display: inline-flex; + justify-content: center; + max-width: 200px; + border-radius: 8px; + padding: 8px 16px; + background-color: var(--sendbird-tooltip-background); } + .sendbird-tooltip::after { + content: ''; + position: absolute; + bottom: -4px; + width: 8px; + height: 8px; + transform: rotate(45deg); + background-color: var(--sendbird-tooltip-background); } + .sendbird-tooltip__text { + font-family: var(--sendbird-font-family-default); + font-size: 12px; + font-weight: bold; + font-stretch: normal; + font-style: normal; + line-height: 1.33; + letter-spacing: normal; + color: var(--sendbird-tooltip-text-color); } + +.sendbird-tooltip-wrapper { + position: relative; + display: inline-flex; } + .sendbird-tooltip-wrapper__hover-tooltip { + position: absolute; + display: inline-flex; + width: 200px; } + .sendbird-tooltip-wrapper__hover-tooltip__inner__tooltip-container { + position: relative; + display: inline-flex; } + +.sendbird-reaction-badge { + display: inline-block; + border-radius: 15px; + width: 50px; + height: 24px; } + .sendbird-theme--light .sendbird-reaction-badge { + background-color: var(--sendbird-light-background-100); + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-reaction-badge { + background-color: var(--sendbird-dark-background-500); + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-reaction-badge:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-reaction-badge:hover { + border: solid 1px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-reaction-badge:hover { + border: solid 1px var(--sendbird-dark-primary-200); } + +.sendbird-reaction-badge--is-add { + display: inline-block; + border-radius: 15px; + width: 36px; + height: 24px; } + .sendbird-theme--light .sendbird-reaction-badge--is-add { + background-color: var(--sendbird-light-background-100); + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-reaction-badge--is-add { + background-color: var(--sendbird-dark-background-500); + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-reaction-badge--is-add:hover { + cursor: pointer; + border: solid 1px var(--sendbird-add-reaction-button-border-hover); } + .sendbird-reaction-badge--is-add .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { + left: 8px; } + +.sendbird-reaction-badge--selected { + display: inline-block; + border-radius: 15px; + width: 50px; + height: 24px; } + .sendbird-theme--light .sendbird-reaction-badge--selected { + background-color: var(--sendbird-light-primary-100); + border: solid 1px var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-reaction-badge--selected { + background-color: var(--sendbird-dark-primary-400); + border: solid 1px var(--sendbird-dark-primary-400); } + .sendbird-reaction-badge--selected:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-reaction-badge--selected:hover { + border: solid 1px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-reaction-badge--selected:hover { + border: solid 1px var(--sendbird-dark-primary-200); } + +.sendbird-reaction-badge__inner { + position: relative; + display: flex; + height: 24px; + flex-direction: row; + align-items: center; + justify-content: center; + padding-left: 20px; + padding-right: 4px; } + .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { + position: absolute; + top: 2px; + left: 4px; } + .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__count { + margin-left: 4px; } + +.sendbird-thumbnail { + text-align: right; + position: relative; } + .sendbird-thumbnail .sendbird-thumbnail__body { + position: relative; + display: inline-block; } + .sendbird-thumbnail .sendbird-thumbnail__more { + display: none; + position: absolute; + top: 10px; } + .sendbird-thumbnail:hover .sendbird-thumbnail__more { + display: block; } + .sendbird-thumbnail .sendbird-thumbnail__wrap { + position: relative; + display: flex; + flex-direction: column; + border-radius: 16px; + margin: 8px 0px; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap { + background-color: var(--sendbird-dark-background-500); } + .sendbird-thumbnail .sendbird-thumbnail__wrap:focus { + outline: none; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner { + cursor: pointer; } + .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + opacity: 1; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner { + width: 100%; + height: 100%; + position: relative; } + .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + border-radius: 16px; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-thumbnail .sendbird-thumbnail__avatar { + position: absolute; + bottom: 30px; + left: 0px; } + .sendbird-thumbnail .sendbird-thumbnail__sender-name { + margin-left: 12px; } + .sendbird-thumbnail.sendbird-thumbnail--incoming { + text-align: left; + padding-left: 40px; + box-sizing: border-box; } + .sendbird-thumbnail .sendbird-thumbnail__video-icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + .sendbird-thumbnail .sendbird-thumbnail__video, + .sendbird-thumbnail .sendbird-thumbnail__img { + display: block; + max-width: var(--sendbird-message-balloon-width); + max-height: 360px; + border-radius: 16px; } + +.sendbird-outgoing-thumbnail-message { + position: relative; + text-align: right; + line-height: 0px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message--inner { + display: inline-flex; + flex-direction: row; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding { + position: relative; + width: 68px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { + display: none; + position: absolute; + top: 4px; + right: 4px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__status { + position: absolute; + right: 4px; + bottom: 4px; } + .sendbird-outgoing-thumbnail-message:hover .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { + display: block; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body { + position: relative; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { + position: relative; + display: flex; + flex-direction: column; + border-radius: 16px; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { + background-color: var(--sendbird-dark-background-500); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:focus { + outline: none; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner { + cursor: pointer; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + opacity: 1; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner { + width: 100%; + height: 100%; + position: relative; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + border-radius: 16px; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video, + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__img { + display: block; + max-width: var(--sendbird-message-balloon-width); + max-height: 360px; + border-radius: 16px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video-icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + +.sendbird-incoming-thumbnail-message { + position: relative; + text-align: left; + padding-left: 40px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__sender-name { + position: relative; + box-sizing: border-box; + left: 12px; + height: 12px; + margin-bottom: 4px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__avatar { + position: absolute; + left: -40px; + bottom: 4px; + cursor: pointer; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message--inner { + display: flex; + flex-direction: row; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body { + position: relative; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { + position: relative; + display: flex; + flex-direction: column; + border-radius: 16px; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:focus { + outline: none; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner { + cursor: pointer; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + opacity: 1; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner { + width: 100%; + height: 100%; + position: relative; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + top: 0px; + left: 0px; + border-radius: 16px; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video, + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__img { + display: block; + max-width: var(--sendbird-message-balloon-width); + max-height: 360px; + border-radius: 16px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video-icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding { + position: relative; + width: 68px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__sent-at { + position: absolute; + left: 4px; + bottom: 4px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { + position: absolute; + left: 4px; + top: 4px; + display: none; } + .sendbird-incoming-thumbnail-message:hover .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { + display: block; } + +.sendbird-og-message { + position: relative; } + .sendbird-og-message--outgoing { + text-align: right; + line-height: 0px; } + .sendbird-og-message--incoming { + text-align: left; } + +.sendbird-outgoing-og-message { + position: relative; + right: 0px; + display: inline-block; + box-sizing: border-box; + text-align: right; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message__og-tag__url { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + display: inline-block; + width: 296px; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-400); } + .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { + display: block; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding { + position: relative; + width: 68px; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { + display: none; + position: absolute; + top: 2px; + right: 4px; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more[class*='--pressed'] { + display: block !important; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__message-status { + position: absolute; + right: 4px; + bottom: 4px; + text-align: right; } + .sendbird-outgoing-og-message__text-balloon { + box-sizing: border-box; + width: 320px; + padding: 8px 12px; + border-radius: 16px 16px 0px 0px; + word-break: break-all; + text-align: left; } + .sendbird-theme--light .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-outgoing-og-message__thumbnail--disabled:hover { + cursor: not-allowed !important; } + .sendbird-outgoing-og-message__thumbnail { + width: 320px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-outgoing-og-message__thumbnail { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__thumbnail { + background-color: var(--sendbird-dark-background-500); } + .sendbird-outgoing-og-message__thumbnail__image__placeholder { + width: 320px; + height: 160px; + display: flex; + justify-content: center; + align-items: center; } + .sendbird-outgoing-og-message__thumbnail:hover { + cursor: pointer; } + .sendbird-outgoing-og-message__thumbnail:focus { + outline: none; } + .sendbird-outgoing-og-message__og-tag--disabled:hover { + cursor: not-allowed !important; } + .sendbird-outgoing-og-message__og-tag { + padding: 8px 12px 12px 12px; + border-radius: 0px 0px 16px 16px; + text-align: left; + box-sizing: border-box; + width: 320px; } + .sendbird-theme--light .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-dark-background-500); } + .sendbird-outgoing-og-message__og-tag__title { + max-height: 150px; + overflow-y: hidden; + margin-bottom: 4px; } + .sendbird-outgoing-og-message__og-tag__description { + margin-bottom: 8px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .sendbird-outgoing-og-message__og-tag__url__label { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .sendbird-outgoing-og-message__og-tag__emoji-reactions--wrapper:focus { + outline: none; } + .sendbird-outgoing-og-message__og-tag__emoji-reactions { + margin: 8px -12px -12px -12px; + width: 320px; } + .sendbird-theme--light .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-500); } + .sendbird-outgoing-og-message__og-tag__emoji-reactions:hover { + cursor: default; } + .sendbird-outgoing-og-message__og-tag__emoji-reactions:focus { + outline: none; } + .sendbird-outgoing-og-message__og-tag:hover { + cursor: pointer; } + .sendbird-outgoing-og-message__og-tag:focus { + outline: none; } + +.sendbird-og-message-word { + display: inline; + margin: 0px 2px; } + +.sendbird-incoming-og-message { + position: relative; + left: 0px; + display: inline-block; + box-sizing: border-box; + text-align: left; + padding-left: 40px; } + .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-400); } + .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { + display: block; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body { + position: relative; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__avatar { + position: absolute; + bottom: 4px; + left: -40px; + cursor: pointer; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__sender-name { + margin-left: 12px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + box-sizing: border-box; + max-width: 320px; + padding: 8px 12px; + border-radius: 16px 16px 0px 0px; + word-break: break-all; + text-align: left; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail--disabled:hover { + cursor: not-allowed !important; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { + box-sizing: border-box; + width: 320px; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail .sendbird-incoming-og-message__thumbnail__image__placeholder { + width: 320px; + height: 160px; + display: flex; + justify-content: center; + align-items: center; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:hover { + cursor: pointer; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:focus { + outline: none; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag--disabled:hover { + cursor: not-allowed !important; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + padding: 8px 12px 12px 12px; + border-radius: 0px 0px 16px 16px; + text-align: left; + box-sizing: border-box; + width: 320px; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__title { + max-height: 150px; + overflow-y: hidden; + margin-bottom: 4px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__description { + margin-bottom: 8px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__url .sendbird-incoming-og-message__og-tag__url__label { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + display: inline-block; + width: 296px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper:focus { + outline: none; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + margin: 8px -12px -12px -12px; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:hover { + cursor: default; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:focus { + outline: none; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding { + position: relative; + width: 68px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__sent-at { + position: absolute; + bottom: 4px; + left: 4px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { + position: absolute; + top: 18px; + left: 4px; + display: none; } + +@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap"); +:root { + --sendbird-light-primary-500: #4d2aa6; + --sendbird-light-primary-400: #6440C4; + --sendbird-light-primary-300: #7B53EF; + --sendbird-light-primary-200: #9E8CF5; + --sendbird-light-primary-100: #E2DFFF; + --sendbird-light-secondary-500: #007A7A; + --sendbird-light-secondary-400: #189A8D; + --sendbird-light-secondary-300: #2EBA9F; + --sendbird-light-secondary-200: #6FD6BE; + --sendbird-light-secondary-100: #AEF2DC; + --sendbird-light-information-100: #b2d9ff; + --sendbird-light-error-500: #A30E2D; + --sendbird-light-error-400: #C11F41; + --sendbird-light-error-300: #E53157; + --sendbird-light-error-200: #FF6183; + --sendbird-light-error-100: #FFABBD; + --sendbird-light-background-700: #000000; + --sendbird-light-background-600: #161616; + --sendbird-light-background-500: #2C2C2C; + --sendbird-light-background-400: #393939; + --sendbird-light-background-300: #A8A8A8; + --sendbird-light-background-200: #D9D9D9; + --sendbird-light-background-100: #F0F0F0; + --sendbird-light-background-50: #FFFFFF; + --sendbird-light-overlay: rgba(0, 0, 0, 0.32); + --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88); + --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50); + --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38); + --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12); + --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88); + --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50); + --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38); + --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12); + --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + --sendbird-light-theme-surface-2: #EAEAEA; } + +:root { + --sendbird-dark-primary-500: #4d2aa6; + --sendbird-dark-primary-400: #6440C4; + --sendbird-dark-primary-300: #7B53EF; + --sendbird-dark-primary-200: #9E8CF5; + --sendbird-dark-primary-100: #E2DFFF; + --sendbird-dark-secondary-500: #007A7A; + --sendbird-dark-secondary-400: #189A8D; + --sendbird-dark-secondary-300: #2EBA9F; + --sendbird-dark-secondary-200: #6FD6BE; + --sendbird-dark-secondary-100: #AEF2DC; + --sendbird-dark-information-100: #b2d9ff; + --sendbird-dark-error-500: #A30E2D; + --sendbird-dark-error-400: #C11F41; + --sendbird-dark-error-300: #E53157; + --sendbird-dark-error-200: #FF6183; + --sendbird-dark-error-100: #FFABBD; + --sendbird-dark-background-700: #000000; + --sendbird-dark-background-600: #161616; + --sendbird-dark-background-500: #2C2C2C; + --sendbird-dark-background-400: #393939; + --sendbird-dark-background-300: #A8A8A8; + --sendbird-dark-background-200: #D9D9D9; + --sendbird-dark-background-100: #F0F0F0; + --sendbird-dark-background-50: #FFFFFF; + --sendbird-dark-overlay: rgba(0, 0, 0, 0.32); + --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88); + --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50); + --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38); + --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12); + --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88); + --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50); + --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38); + --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12); + --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } + +:root { + --sendbird-iconbutton-color: #825eeb; + --sendbird-message-input-border-active: #7B53EF; + --sendbird-selected-reaction-button-border-hover: #9E8CF5; + --sendbird-add-reaction-button-border-hover: #9E8CF5; + --sendbird-tooltip-background: #000000; + --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88); + --sendbird-button-border-focus: #FFFFFF; + --sendbird-file-message-icon-background: #FFFFFF; + --sendbird-font-family-default: 'Open Sans', sans-serif; + --sendbird-message-balloon-width: 404px; } + +/*# sourceMappingURL=SendbirdProvider.css.map */ \ No newline at end of file diff --git a/dist/cjs/SendbirdProvider.css.map b/dist/cjs/SendbirdProvider.css.map new file mode 100644 index 0000000..ead2079 --- /dev/null +++ b/dist/cjs/SendbirdProvider.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.scss","frozen-notification.scss","channel-profile.scss","openchannel-conversation-scroll.scss","notification.scss","muted-avatar-overlay.scss","user-list-item.scss","add-channel.scss","conversation-scroll.scss","members-accordion.scss","color.scss"],"names":[],"mappings":"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","file":"SendbirdProvider.css","sourcesContent":["@import url(\"https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap\");\n:root {\n --sendbird-light-primary-500: #4d2aa6;\n --sendbird-light-primary-400: #6440C4;\n --sendbird-light-primary-300: #7B53EF;\n --sendbird-light-primary-200: #9E8CF5;\n --sendbird-light-primary-100: #E2DFFF;\n --sendbird-light-secondary-500: #007A7A;\n --sendbird-light-secondary-400: #189A8D;\n --sendbird-light-secondary-300: #2EBA9F;\n --sendbird-light-secondary-200: #6FD6BE;\n --sendbird-light-secondary-100: #AEF2DC;\n --sendbird-light-information-100: #b2d9ff;\n --sendbird-light-error-500: #A30E2D;\n --sendbird-light-error-400: #C11F41;\n --sendbird-light-error-300: #E53157;\n --sendbird-light-error-200: #FF6183;\n --sendbird-light-error-100: #FFABBD;\n --sendbird-light-background-700: #000000;\n --sendbird-light-background-600: #161616;\n --sendbird-light-background-500: #2C2C2C;\n --sendbird-light-background-400: #393939;\n --sendbird-light-background-300: #A8A8A8;\n --sendbird-light-background-200: #D9D9D9;\n --sendbird-light-background-100: #F0F0F0;\n --sendbird-light-background-50: #FFFFFF;\n --sendbird-light-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-theme-surface-2: #EAEAEA; }\n\n:root {\n --sendbird-dark-primary-500: #4d2aa6;\n --sendbird-dark-primary-400: #6440C4;\n --sendbird-dark-primary-300: #7B53EF;\n --sendbird-dark-primary-200: #9E8CF5;\n --sendbird-dark-primary-100: #E2DFFF;\n --sendbird-dark-secondary-500: #007A7A;\n --sendbird-dark-secondary-400: #189A8D;\n --sendbird-dark-secondary-300: #2EBA9F;\n --sendbird-dark-secondary-200: #6FD6BE;\n --sendbird-dark-secondary-100: #AEF2DC;\n --sendbird-dark-information-100: #b2d9ff;\n --sendbird-dark-error-500: #A30E2D;\n --sendbird-dark-error-400: #C11F41;\n --sendbird-dark-error-300: #E53157;\n --sendbird-dark-error-200: #FF6183;\n --sendbird-dark-error-100: #FFABBD;\n --sendbird-dark-background-700: #000000;\n --sendbird-dark-background-600: #161616;\n --sendbird-dark-background-500: #2C2C2C;\n --sendbird-dark-background-400: #393939;\n --sendbird-dark-background-300: #A8A8A8;\n --sendbird-dark-background-200: #D9D9D9;\n --sendbird-dark-background-100: #F0F0F0;\n --sendbird-dark-background-50: #FFFFFF;\n --sendbird-dark-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }\n\n:root {\n --sendbird-iconbutton-color: #825eeb;\n --sendbird-message-input-border-active: #7B53EF;\n --sendbird-selected-reaction-button-border-hover: #9E8CF5;\n --sendbird-add-reaction-button-border-hover: #9E8CF5;\n --sendbird-tooltip-background: #000000;\n --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88);\n --sendbird-button-border-focus: #FFFFFF;\n --sendbird-file-message-icon-background: #FFFFFF;\n --sendbird-font-family-default: 'Open Sans', sans-serif;\n --sendbird-message-balloon-width: 404px; }\n",".sendbird-frozen-channel-notification {\n position: relative;\n margin-top: 8px;\n margin-right: 24px;\n margin-left: 24px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px; }\n .sendbird-theme--light .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-dark-information-100); }\n",".sendbird-channel-profile {\n position: relative;\n text-align: center;\n padding: 32px 40px 27px 40px; }\n .sendbird-theme--light .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-channel-profile .sendbird-channel-profile--inner {\n height: 92px; }\n .sendbird-channel-profile .sendbird-channel-profile__avatar {\n margin-bottom: 16px;\n text-align: center; }\n .sendbird-channel-profile .sendbird-channel-profile__title {\n max-width: 240px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 18px; }\n .sendbird-channel-profile .sendbird-channel-profile__edit {\n position: absolute;\n top: 10px;\n right: 16px; }\n\n.channel-profile-form .channel-profile-form__img-section {\n position: relative; }\n\n.channel-profile-form .channel-profile-form__avatar-button {\n position: absolute;\n top: 54px;\n left: 96px; }\n\n.channel-profile-form .channel-profile-form__avatar {\n margin-top: 16px; }\n\n.channel-profile-form .channel-profile-form__name-section {\n margin-top: 12px; }\n .channel-profile-form .channel-profile-form__name-section .sendbird-input {\n height: 40px; }\n",".sendbird-openchannel-conversation-scroll {\n position: relative;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container {\n position: absolute;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding {\n height: 8px; }\n",".sendbird-notification {\n margin-top: 8px;\n margin-left: 24px;\n margin-right: 24px;\n border-radius: 4px;\n padding: 0px 2px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center; }\n .sendbird-theme--light .sendbird-notification {\n background-color: var(--sendbird-light-primary-300); }\n .sendbird-theme--dark .sendbird-notification {\n background-color: var(--sendbird-dark-primary-200); }\n .sendbird-notification:hover {\n cursor: pointer; }\n .sendbird-theme--light .sendbird-notification:hover {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-notification:hover {\n background-color: var(--sendbird-dark-primary-300); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-dark-information-100); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-light-onlight-01); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-dark-onlight-01); }\n .sendbird-notification .sendbird-notification__text {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 8px; }\n",".sendbird-muted-avatar {\n border-radius: 50%;\n display: inline-block; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon {\n position: relative; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon {\n position: absolute;\n top: 4px;\n left: 4px; }\n .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n opacity: .5;\n position: absolute;\n border-radius: 50%;\n top: 0;\n left: 0; }\n .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-dark-primary-300); }\n",".sendbird-user-list-item--small {\n display: block;\n position: relative;\n box-sizing: border-box;\n height: 40px; }\n .sendbird-user-list-item--small__avatar {\n cursor: pointer;\n position: absolute;\n top: 10px;\n left: 12px; }\n .sendbird-user-list-item--small .sendbird-muted-avatar {\n position: absolute;\n top: 10px;\n left: 12px;\n z-index: 2;\n pointer-events: none; }\n .sendbird-user-list-item--small__title {\n position: absolute;\n top: 10px;\n left: 54px;\n width: 160px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__subtitle {\n position: absolute;\n top: 23px;\n left: 140px;\n max-width: 237px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__checkbox {\n position: absolute;\n top: 16px;\n right: 16px; }\n .sendbird-user-list-item--small__action {\n display: none;\n position: absolute;\n right: 10px;\n top: 4px; }\n .sendbird-user-list-item--small__operator {\n position: absolute;\n right: 24px;\n top: 10px; }\n .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-light-background-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-dark-background-500); }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action {\n display: block; }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator {\n display: none; }\n .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-light-primary-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-dark-background-700); }\n",".sendbird-add-channel__rectangle-wrap {\n margin-top: 26px; }\n\n.sendbird-add-channel__rectangle-footer {\n text-align: right;\n margin-top: 32px; }\n\n.sendbird-add-channel__rectangle {\n width: 432px;\n height: 72px;\n border-radius: 4px;\n margin-bottom: 8px;\n padding: 25px 72px;\n position: relative;\n box-sizing: border-box;\n cursor: pointer; }\n .sendbird-theme--light .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-light-onlight-04); }\n .sendbird-theme--dark .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-dark-ondark-04); }\n .sendbird-add-channel__rectangle .sendbird-icon {\n position: absolute;\n left: 22px;\n top: 24px; }\n",".sendbird-conversation__messages .sendbird-conversation__messages-padding {\n padding-left: 24px;\n padding-right: 24px; }\n\n.sendbird-conversation__messages .sendbird-separator,\n.sendbird-conversation__messages .sendbird-admin-message {\n padding-top: 8px;\n padding-bottom: 8px; }\n",".sendbird-members-accordion {\n padding: 8px 16px 16px 16px;\n position: relative;\n box-sizing: border-box; }\n .sendbird-theme--light .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-members-accordion .sendbird-members-accordion__member {\n position: relative;\n padding: 12px 0px 12px 44px;\n height: 40px;\n box-sizing: border-box; }\n .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label {\n max-width: 240px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-members-accordion .sendbird-members-accordion__member-avatar {\n position: absolute;\n left: 0;\n top: 10px;\n cursor: pointer; }\n .sendbird-members-accordion .sendbird-members-accordion__footer {\n display: flex;\n justify-content: flex-start;\n margin-top: 8px; }\n .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members {\n margin-right: 16px; }\n\n.sendbird-more-members__popup-scroll {\n max-height: 420px;\n overflow-y: auto; }\n",".sendbird-theme--light .sendbird-color--onbackground-1 {\n color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1 {\n color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2 {\n color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2 {\n color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3 {\n color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3 {\n color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4 {\n color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4 {\n color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1 {\n color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1 {\n color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--primary {\n color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary {\n color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--primary--background-color {\n background-color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary--background-color {\n background-color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--error {\n color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error {\n color: var(--sendbird-dark-error-300); }\n\n.sendbird-theme--light .sendbird-color--error--background-color {\n background-color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error--background-color {\n background-color: var(--sendbird-dark-error-300); }\n"]} \ No newline at end of file diff --git a/dist/cjs/SendbirdProvider.js b/dist/cjs/SendbirdProvider.js new file mode 100644 index 0000000..b1e183c --- /dev/null +++ b/dist/cjs/SendbirdProvider.js @@ -0,0 +1,716 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +var PropTypes = _interopDefault(require('prop-types')); +var Sb = _interopDefault(require('sendbird')); +var actionTypes = require('./actionTypes-920b541f.js'); +var cssVars = _interopDefault(require('css-vars-ponyfill')); + +var INIT_SDK = 'INIT_SDK'; +var SET_SDK_LOADING = 'SET_SDK_LOADING'; +var RESET_SDK = 'RESET_SDK'; +var SDK_ERROR = 'SDK_ERROR'; + +var APP_VERSION_STRING = '2.0.0-alpha.0'; +var disconnectSdk = function disconnectSdk(_ref) { + var sdkDispatcher = _ref.sdkDispatcher, + userDispatcher = _ref.userDispatcher, + sdk = _ref.sdk, + onDisconnect = _ref.onDisconnect; + sdkDispatcher({ + type: SET_SDK_LOADING, + payload: true + }); + + if (sdk && sdk.disconnect) { + sdk.disconnect().then(function () { + sdkDispatcher({ + type: RESET_SDK + }); + userDispatcher({ + type: actionTypes.RESET_USER + }); + }).finally(function () { + onDisconnect(); + }); + } else { + onDisconnect(); + } +}; +var handleConnection = function handleConnection(_ref2, dispatchers) { + var userId = _ref2.userId, + appId = _ref2.appId, + nickname = _ref2.nickname, + profileUrl = _ref2.profileUrl, + accessToken = _ref2.accessToken, + sdk = _ref2.sdk, + logger = _ref2.logger; + var sdkDispatcher = dispatchers.sdkDispatcher, + userDispatcher = dispatchers.userDispatcher; + disconnectSdk({ + sdkDispatcher: sdkDispatcher, + userDispatcher: userDispatcher, + sdk: sdk, + logger: logger, + onDisconnect: function onDisconnect() { + logger.info('Setup connection'); + sdkDispatcher({ + type: SET_SDK_LOADING, + payload: true + }); + + if (userId && appId) { + var newSdk = new Sb({ + appId: appId + }); // to check if code is released version from rollup and *not from storybook* + // see rollup config file + + { + newSdk.addExtension('sb_uikit', APP_VERSION_STRING); + } + + var connectCbSucess = function connectCbSucess(user) { + sdkDispatcher({ + type: INIT_SDK, + payload: newSdk + }); + userDispatcher({ + type: actionTypes.INIT_USER, + payload: user + }); // use nickname/profileUrl if provided + // or set userID as nickname + + var newNickName = nickname || user.nickname; + var newProfileUrl = profileUrl || user.profileUrl; + newSdk.updateCurrentUserInfo(newNickName, newProfileUrl).then(function (namedUser) { + userDispatcher({ + type: actionTypes.UPDATE_USER_INFO, + payload: namedUser + }); + }); + }; + + var connectCbError = function connectCbError(e) { + logger.error('Connection failed', "".concat(e)); + sdkDispatcher({ + type: RESET_SDK + }); + sdkDispatcher({ + type: actionTypes.RESET_USER + }); + sdkDispatcher({ + type: SDK_ERROR + }); + }; + + if (accessToken) { + newSdk.connect(userId, accessToken).then(function (res) { + return connectCbSucess(res); + }).catch(function (err) { + return connectCbError(err); + }); + } else { + newSdk.connect(userId).then(function (res) { + return connectCbSucess(res); + }).catch(function (err) { + return connectCbError(err); + }); + } + } else { + sdkDispatcher({ + type: SDK_ERROR + }); + logger.warning('Connection failed', 'UserId or appId missing'); + } + } + }); +}; + +var isEmpty = function isEmpty(obj) { + if (obj === null || obj === undefined) { + return true; + } + + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + return false; + } + } + + return JSON.stringify(obj) === JSON.stringify({}); +}; + +var useTheme = function useTheme(overrides) { + React.useLayoutEffect(function () { + if (!isEmpty(overrides)) { + cssVars({ + variables: LocalizationContext.__assign({ + '--sendbird-dark-primary-500': '#4d2aa6', + '--sendbird-dark-primary-400': '#6440C4', + '--sendbird-dark-primary-300': '#7B53EF', + '--sendbird-dark-primary-200': '#9E8CF5', + '--sendbird-dark-primary-100': '#E2DFFF', + '--sendbird-dark-secondary-500': '#007A7A', + '--sendbird-dark-secondary-400': '#189A8D', + '--sendbird-dark-secondary-300': '#2EBA9F', + '--sendbird-dark-secondary-200': '#6FD6BE', + '--sendbird-dark-secondary-100': '#AEF2DC', + '--sendbird-dark-information-100': '#b2d9ff', + '--sendbird-dark-error-500': '#A30E2D', + '--sendbird-dark-error-400': '#C11F41', + '--sendbird-dark-error-300': '#E53157', + '--sendbird-dark-error-200': '#FF6183', + '--sendbird-dark-error-100': '#FFABBD', + '--sendbird-dark-background-700': '#000000', + '--sendbird-dark-background-600': '#161616', + '--sendbird-dark-background-500': '#2C2C2C', + '--sendbird-dark-background-400': '#393939', + '--sendbird-dark-background-300': '#A8A8A8', + '--sendbird-dark-background-200': '#D9D9D9', + '--sendbird-dark-background-100': '#F0F0F0', + '--sendbird-dark-background-50': '#FFFFFF', + '--sendbird-dark-overlay': 'rgba(0, 0, 0, 0.32)', + '--sendbird-dark-onlight-01': 'rgba(0, 0, 0, 0.88)', + '--sendbird-dark-onlight-02': 'rgba(0, 0, 0, 0.50)', + '--sendbird-dark-onlight-03': 'rgba(0, 0, 0, 0.38)', + '--sendbird-dark-onlight-04': 'rgba(0, 0, 0, 0.12)', + '--sendbird-dark-ondark-01': 'rgba(255, 255, 255, 0.88)', + '--sendbird-dark-ondark-02': 'rgba(255, 255, 255, 0.50)', + '--sendbird-dark-ondark-03': 'rgba(255, 255, 255, 0.38)', + '--sendbird-dark-ondark-04': 'rgba(255, 255, 255, 0.12)', + '--sendbird-dark-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)', + '--sendbird-dark-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)', + '--sendbird-dark-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)', + '--sendbird-dark-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)', + '--sendbird-dark-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)', + '--sendbird-light-primary-500': '#4d2aa6', + '--sendbird-light-primary-400': '#6440C4', + '--sendbird-light-primary-300': '#7B53EF', + '--sendbird-light-primary-200': '#9E8CF5', + '--sendbird-light-primary-100': '#E2DFFF', + '--sendbird-light-secondary-500': '#007A7A', + '--sendbird-light-secondary-400': '#189A8D', + '--sendbird-light-secondary-300': '#2EBA9F', + '--sendbird-light-secondary-200': '#6FD6BE', + '--sendbird-light-secondary-100': '#AEF2DC', + '--sendbird-light-information-100': '#b2d9ff', + '--sendbird-light-error-500': '#A30E2D', + '--sendbird-light-error-400': '#C11F41', + '--sendbird-light-error-300': '#E53157', + '--sendbird-light-error-200': '#FF6183', + '--sendbird-light-error-100': '#FFABBD', + '--sendbird-light-background-700': '#000000', + '--sendbird-light-background-600': '#161616', + '--sendbird-light-background-500': '#2C2C2C', + '--sendbird-light-background-400': '#393939', + '--sendbird-light-background-300': '#A8A8A8', + '--sendbird-light-background-200': '#D9D9D9', + '--sendbird-light-background-100': '#F0F0F0', + '--sendbird-light-background-50': ' #FFFFFF', + '--sendbird-light-overlay': 'rgba(0, 0, 0, 0.32)', + '--sendbird-light-onlight-01': 'rgba(0, 0, 0, 0.88)', + '--sendbird-light-onlight-02': 'rgba(0, 0, 0, 0.50)', + '--sendbird-light-onlight-03': 'rgba(0, 0, 0, 0.38)', + '--sendbird-light-onlight-04': 'rgba(0, 0, 0, 0.12)', + '--sendbird-light-ondark-01': 'rgba(255, 255, 255, 0.88)', + '--sendbird-light-ondark-02': 'rgba(255, 255, 255, 0.50)', + '--sendbird-light-ondark-03': 'rgba(255, 255, 255, 0.38)', + '--sendbird-light-ondark-04': 'rgba(255, 255, 255, 0.12)', + '--sendbird-light-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)', + '--sendbird-light-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)', + '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)', + '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)', + '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)', + '--sendbird-light-theme-surface-2': '#EAEAEA' + }, overrides) + }); + } + }, [overrides]); +}; + +var sdkInitialState = { + initialized: false, + loading: false, + sdk: {}, + error: false +}; + +function reducer(state, action) { + switch (action.type) { + case SET_SDK_LOADING: + return LocalizationContext._objectSpread2({}, state, { + initialized: false, + loading: action.payload + }); + + case SDK_ERROR: + return LocalizationContext._objectSpread2({}, state, { + initialized: false, + loading: false, + error: true + }); + + case INIT_SDK: + return { + sdk: action.payload, + initialized: true, + loading: false, + error: false + }; + + case RESET_SDK: + return sdkInitialState; + + default: + return state; + } +} + +var userInitialState = { + initialized: false, + loading: false, + user: {} +}; + +function reducer$1(state, action) { + switch (action.type) { + case actionTypes.INIT_USER: + return { + initialized: true, + loading: false, + user: action.payload + }; + + case actionTypes.RESET_USER: + return userInitialState; + + case actionTypes.UPDATE_USER_INFO: + return LocalizationContext._objectSpread2({}, state, { + user: action.payload + }); + + default: + return state; + } +} + +function useConnectionStatus(sdk, logger) { + var _useState = React.useState(true), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + isOnline = _useState2[0], + setIsOnline = _useState2[1]; + + React.useEffect(function () { + var uniqueHandlerId = LocalizationContext.uuidv4(); + logger.warning('sdk changed', uniqueHandlerId); + var handler; + + if (sdk && sdk.ConnectionHandler) { + handler = new sdk.ConnectionHandler(); + + handler.onReconnectStarted = function () { + setIsOnline(false); + logger.warning('onReconnectStarted', { + isOnline: isOnline + }); + }; + + handler.onReconnectSucceeded = function () { + setIsOnline(true); + logger.warning('onReconnectSucceeded', { + isOnline: isOnline + }); + }; + + handler.onReconnectFailed = function () { + sdk.reconnect(); + logger.warning('onReconnectFailed'); + }; + + logger.info('Added ConnectionHandler', uniqueHandlerId); + sdk.addConnectionHandler(uniqueHandlerId, handler); + } + + return function () { + try { + sdk.removeConnectionHandler(uniqueHandlerId); + logger.info('Removed ConnectionHandler', uniqueHandlerId); + } catch (_unused) {// + } + }; + }, [sdk]); + React.useEffect(function () { + var tryReconnect = function tryReconnect() { + try { + logger.warning('Try reconnecting SDK'); + + if (sdk.getConnectionState() !== 'OPEN') { + // connection is not broken yet + sdk.reconnect(); + } + } catch (_unused2) {// + } + }; // addEventListener version + + + window.addEventListener('online', tryReconnect); + return function () { + window.removeEventListener('online', tryReconnect); + }; + }, [sdk]); // add offline-class to body + + React.useEffect(function () { + var body = document.querySelector('body'); + + if (!isOnline) { + try { + body.classList.add('sendbird__offline'); + logger.info('Added class sendbird__offline to body'); + } catch (e) {// + } + } else { + try { + body.classList.remove('sendbird__offline'); + logger.info('Removed class sendbird__offline from body'); + } catch (e) {// + } + } + }, [isOnline]); + return isOnline; +} + +var LOG_LEVELS = { + DEBUG: 'debug', + WARNING: 'warning', + ERROR: 'error', + INFO: 'info', + ALL: 'all' +}; + +var colorLog = function colorLog(level) { + switch (level) { + case LOG_LEVELS.WARNING: + return 'color: Orange'; + + case LOG_LEVELS.ERROR: + return 'color: Red'; + + default: + return 'color: Gray'; + } +}; + +var printLog = function printLog(_ref) { + var level = _ref.level, + title = _ref.title, + _ref$description = _ref.description, + description = _ref$description === void 0 ? '' : _ref$description; + // eslint-disable-next-line no-console + console.log("%c SendbirdUIKit | ".concat(level, " | ").concat(new Date().toISOString(), " | ").concat(title, " ").concat(description && '|'), colorLog(level), description); +}; +var getDefaultLogger = function getDefaultLogger() { + return { + info: function info() {}, + error: function error() {}, + warning: function warning() {} + }; +}; +var LoggerFactory = function LoggerFactory(lvl, customInterface) { + var logInterface = customInterface || printLog; + var lvlArray = Array.isArray(lvl) ? lvl : [lvl]; + + var applyLog = function applyLog(lgLvl) { + return function (title, description) { + return logInterface({ + level: lgLvl, + title: title, + description: description + }); + }; + }; + + var logger = lvlArray.reduce(function (accumulator, currentLvl) { + if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) { + return LocalizationContext._objectSpread2({}, accumulator, { + info: applyLog(LOG_LEVELS.INFO), + error: applyLog(LOG_LEVELS.ERROR), + warning: applyLog(LOG_LEVELS.WARNING) + }); + } + + if (currentLvl === LOG_LEVELS.INFO) { + return LocalizationContext._objectSpread2({}, accumulator, { + info: applyLog(LOG_LEVELS.INFO) + }); + } + + if (currentLvl === LOG_LEVELS.ERROR) { + return LocalizationContext._objectSpread2({}, accumulator, { + error: applyLog(LOG_LEVELS.ERROR) + }); + } + + if (currentLvl === LOG_LEVELS.WARNING) { + return LocalizationContext._objectSpread2({}, accumulator, { + warning: applyLog(LOG_LEVELS.WARNING) + }); + } + + return LocalizationContext._objectSpread2({}, accumulator); + }, getDefaultLogger()); + return logger; +}; + +// https://davidwalsh.name/pubsub-javascript +var pubSubFactory = (function () { + var topics = {}; + var hOP = topics.hasOwnProperty; + return { + __getTopics: function __getTopics() { + return topics; + }, + subscribe: function subscribe(topic, listener) { + // Create the topic's object if not yet created + if (!hOP.call(topics, topic)) { + topics[topic] = []; + } // Add the listener to queue + + + var index = topics[topic].push(listener) - 1; // Provide handle back for removal of topic + + return { + remove: function remove() { + delete topics[topic][index]; + } + }; + }, + publish: function publish(topic, info) { + // If the topic doesn't exist, or there's no listeners in queue, just leave + if (!hOP.call(topics, topic)) { + return; + } // Cycle through topics queue, fire! + + + topics[topic].forEach(function (item) { + item(info !== undefined ? info : {}); + }); + } + }; +}); + +function useAppendDomNode() { + var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var rootSelector = arguments.length > 1 ? arguments[1] : undefined; + React.useEffect(function () { + var root = document.querySelector(rootSelector); + ids.forEach(function (id) { + var elem = document.createElement('div'); + elem.setAttribute('id', id); + root.appendChild(elem); + }); + return function () { + ids.forEach(function (id) { + var target = document.getElementById(id); + + if (target) { + root.removeChild(target); + } + }); + }; + }, []); +} + +function Sendbird(props) { + var userId = props.userId, + appId = props.appId, + accessToken = props.accessToken, + children = props.children, + disableUserProfile = props.disableUserProfile, + renderUserProfile = props.renderUserProfile, + allowProfileEdit = props.allowProfileEdit, + theme = props.theme, + nickname = props.nickname, + profileUrl = props.profileUrl, + userListQuery = props.userListQuery, + _props$config = props.config, + config = _props$config === void 0 ? {} : _props$config, + colorSet = props.colorSet, + stringSet = props.stringSet; + var _config$logLevel = config.logLevel, + logLevel = _config$logLevel === void 0 ? '' : _config$logLevel; + + var _useState = React.useState(LoggerFactory(logLevel)), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + logger = _useState2[0], + setLogger = _useState2[1]; + + var _useState3 = React.useState(), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + pubSub = _useState4[0], + setPubSub = _useState4[1]; + + var _useReducer = React.useReducer(reducer, sdkInitialState), + _useReducer2 = LocalizationContext._slicedToArray(_useReducer, 2), + sdkStore = _useReducer2[0], + sdkDispatcher = _useReducer2[1]; + + var _useReducer3 = React.useReducer(reducer$1, userInitialState), + _useReducer4 = LocalizationContext._slicedToArray(_useReducer3, 2), + userStore = _useReducer4[0], + userDispatcher = _useReducer4[1]; + + useTheme(colorSet); + React.useEffect(function () { + setPubSub(pubSubFactory()); + }, []); + React.useEffect(function () { + logger.info('App Init'); // dispatch action + + handleConnection({ + userId: userId, + appId: appId, + accessToken: accessToken, + sdkStore: sdkStore, + nickname: nickname, + profileUrl: profileUrl, + sdk: sdkStore.sdk, + logger: logger + }, { + sdkDispatcher: sdkDispatcher, + userDispatcher: userDispatcher + }); + }, [userId, appId, accessToken]); // to create a pubsub to communicate between parent and child + + React.useEffect(function () { + setLogger(LoggerFactory(logLevel)); + }, [logLevel]); + useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body'); // should move to reducer + + var _useState5 = React.useState(theme), + _useState6 = LocalizationContext._slicedToArray(_useState5, 2), + currenttheme = _useState6[0], + setCurrenttheme = _useState6[1]; + + React.useEffect(function () { + setCurrenttheme(theme); + }, [theme]); // add-remove theme from body + + React.useEffect(function () { + logger.info('Setup theme', "Theme: ".concat(currenttheme)); + + try { + var body = document.querySelector('body'); + body.classList.remove('sendbird-theme--light'); + body.classList.remove('sendbird-theme--dark'); + body.classList.add("sendbird-theme--".concat(currenttheme || 'light')); + logger.info('Finish setup theme'); // eslint-disable-next-line no-empty + } catch (e) { + logger.warning('Setup theme failed', "".concat(e)); + } + + return function () { + try { + var _body = document.querySelector('body'); + + _body.classList.remove('sendbird-theme--light'); + + _body.classList.remove('sendbird-theme--dark'); // eslint-disable-next-line no-empty + + } catch (_unused) {} + }; + }, [currenttheme]); + var isOnline = useConnectionStatus(sdkStore.sdk, logger); + var localeStringSet = React__default.useMemo(function () { + if (!stringSet) { + return LocalizationContext.getStringSet('en'); + } + + return LocalizationContext._objectSpread2({}, LocalizationContext.getStringSet('en'), {}, stringSet); + }, [stringSet]); + return React__default.createElement(LocalizationContext.SendbirdSdkContext.Provider, { + value: { + stores: { + sdkStore: sdkStore, + userStore: userStore + }, + dispatchers: { + sdkDispatcher: sdkDispatcher, + userDispatcher: userDispatcher, + reconnect: function reconnect() { + handleConnection({ + userId: userId, + appId: appId, + accessToken: accessToken, + sdkStore: sdkStore, + nickname: nickname, + profileUrl: profileUrl, + logger: logger, + sdk: sdkStore.sdk + }, { + sdkDispatcher: sdkDispatcher, + userDispatcher: userDispatcher + }); + } + }, + config: { + disableUserProfile: disableUserProfile, + renderUserProfile: renderUserProfile, + allowProfileEdit: allowProfileEdit, + isOnline: isOnline, + userId: userId, + appId: appId, + accessToken: accessToken, + theme: currenttheme, + setCurrenttheme: setCurrenttheme, + userListQuery: userListQuery, + logger: logger, + pubSub: pubSub + } + } + }, React__default.createElement(LocalizationContext.LocalizationProvider, { + stringSet: localeStringSet + }, children)); +} +Sendbird.propTypes = { + userId: PropTypes.string.isRequired, + appId: PropTypes.string.isRequired, + accessToken: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, + theme: PropTypes.string, + nickname: PropTypes.string, + profileUrl: PropTypes.string, + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + allowProfileEdit: PropTypes.bool, + userListQuery: PropTypes.func, + config: PropTypes.shape({ + // None Error Warning Info 'All/Debug' + logLevel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + pubSub: PropTypes.shape({ + subscribe: PropTypes.func, + publish: PropTypes.func + }) + }), + stringSet: PropTypes.objectOf(PropTypes.string), + colorSet: PropTypes.objectOf(PropTypes.string) +}; +Sendbird.defaultProps = { + accessToken: '', + theme: 'light', + nickname: '', + profileUrl: '', + disableUserProfile: false, + renderUserProfile: null, + allowProfileEdit: false, + userListQuery: null, + config: {}, + stringSet: null, + colorSet: null +}; + +module.exports = Sendbird; +//# sourceMappingURL=SendbirdProvider.js.map diff --git a/dist/cjs/SendbirdProvider.js.map b/dist/cjs/SendbirdProvider.js.map new file mode 100644 index 0000000..a4999ed --- /dev/null +++ b/dist/cjs/SendbirdProvider.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SendbirdProvider.js","sources":["../../../src/lib/dux/sdk/actionTypes.js","../../../src/lib/dux/sdk/thunks.js","../../../src/lib/hooks/useTheme.ts","../../../src/lib/dux/sdk/initialState.js","../../../src/lib/dux/sdk/reducers.js","../../../src/lib/dux/user/initialState.js","../../../src/lib/dux/user/reducers.js","../../../src/lib/hooks/useOnlineStatus.js","../../../src/lib/Logger/index.js","../../../src/lib/pubSub/index.js","../../../src/hooks/useAppendDomNode.js","../../../src/lib/Sendbird.jsx"],"sourcesContent":["export const INIT_SDK = 'INIT_SDK';\nexport const SET_SDK_LOADING = 'SET_SDK_LOADING';\nexport const RESET_SDK = 'RESET_SDK';\nexport const SDK_ERROR = 'SDK_ERROR';\n","import Sb from 'sendbird';\n\nimport {\n INIT_SDK,\n SET_SDK_LOADING,\n RESET_SDK,\n SDK_ERROR,\n} from './actionTypes';\nimport { INIT_USER, UPDATE_USER_INFO, RESET_USER } from '../user/actionTypes';\n\nconst APP_VERSION_STRING = '__uikit_app_version__';\nconst IS_ROLLUP = '__is_rollup__';\nconst IS_ROLLUP_REPLACE = '__is_rollup_replace__';\n\nexport const disconnectSdk = ({\n sdkDispatcher,\n userDispatcher,\n sdk,\n onDisconnect,\n}) => {\n sdkDispatcher({ type: SET_SDK_LOADING, payload: true });\n if (sdk && sdk.disconnect) {\n sdk.disconnect()\n .then(() => {\n sdkDispatcher({ type: RESET_SDK });\n userDispatcher({ type: RESET_USER });\n })\n .finally(() => {\n onDisconnect();\n });\n } else {\n onDisconnect();\n }\n};\n\nexport const handleConnection = ({\n userId,\n appId,\n nickname,\n profileUrl,\n accessToken,\n sdk,\n logger,\n}, dispatchers) => {\n const {\n sdkDispatcher,\n userDispatcher,\n } = dispatchers;\n disconnectSdk({\n sdkDispatcher,\n userDispatcher,\n sdk,\n logger,\n onDisconnect: () => {\n logger.info('Setup connection');\n sdkDispatcher({ type: SET_SDK_LOADING, payload: true });\n if (userId && appId) {\n const newSdk = new Sb({ appId });\n // to check if code is released version from rollup and *not from storybook*\n // see rollup config file\n if (IS_ROLLUP === IS_ROLLUP_REPLACE) {\n newSdk.addExtension('sb_uikit', APP_VERSION_STRING);\n }\n const connectCbSucess = (user) => {\n sdkDispatcher({ type: INIT_SDK, payload: newSdk });\n userDispatcher({ type: INIT_USER, payload: user });\n // use nickname/profileUrl if provided\n // or set userID as nickname\n const newNickName = nickname || user.nickname;\n const newProfileUrl = profileUrl || user.profileUrl;\n newSdk.updateCurrentUserInfo(newNickName, newProfileUrl)\n .then((namedUser) => {\n userDispatcher({ type: UPDATE_USER_INFO, payload: namedUser });\n });\n };\n\n const connectCbError = (e) => {\n logger.error('Connection failed', `${e}`);\n sdkDispatcher({ type: RESET_SDK });\n sdkDispatcher({ type: RESET_USER });\n sdkDispatcher({ type: SDK_ERROR });\n };\n\n if (accessToken) {\n newSdk.connect(userId, accessToken)\n .then((res) => connectCbSucess(res))\n .catch((err) => connectCbError(err));\n } else {\n newSdk.connect(userId)\n .then((res) => connectCbSucess(res))\n .catch((err) => connectCbError(err));\n }\n } else {\n sdkDispatcher({ type: SDK_ERROR });\n logger.warning('Connection failed', 'UserId or appId missing');\n }\n },\n });\n};\n","import { useLayoutEffect } from 'react';\nimport cssVars from 'css-vars-ponyfill';\n\nconst isEmpty = (obj) => {\n if (obj === null || obj === undefined) {\n return true;\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n return JSON.stringify(obj) === JSON.stringify({});\n}\n\nconst useTheme = (overrides: Record): void => {\n useLayoutEffect(() => {\n if (!isEmpty(overrides)) {\n cssVars({\n variables: {\n ...{\n '--sendbird-dark-primary-500': '#4d2aa6',\n '--sendbird-dark-primary-400': '#6440C4',\n '--sendbird-dark-primary-300': '#7B53EF',\n '--sendbird-dark-primary-200': '#9E8CF5',\n '--sendbird-dark-primary-100': '#E2DFFF',\n\n '--sendbird-dark-secondary-500': '#007A7A',\n '--sendbird-dark-secondary-400': '#189A8D',\n '--sendbird-dark-secondary-300': '#2EBA9F',\n '--sendbird-dark-secondary-200': '#6FD6BE',\n '--sendbird-dark-secondary-100': '#AEF2DC',\n\n '--sendbird-dark-information-100': '#b2d9ff',\n\n '--sendbird-dark-error-500': '#A30E2D',\n '--sendbird-dark-error-400': '#C11F41',\n '--sendbird-dark-error-300': '#E53157',\n '--sendbird-dark-error-200': '#FF6183',\n '--sendbird-dark-error-100': '#FFABBD',\n\n '--sendbird-dark-background-700': '#000000',\n '--sendbird-dark-background-600': '#161616',\n '--sendbird-dark-background-500': '#2C2C2C',\n '--sendbird-dark-background-400': '#393939',\n '--sendbird-dark-background-300': '#A8A8A8',\n '--sendbird-dark-background-200': '#D9D9D9',\n '--sendbird-dark-background-100': '#F0F0F0',\n '--sendbird-dark-background-50': '#FFFFFF',\n\n '--sendbird-dark-overlay': 'rgba(0, 0, 0, 0.32)',\n\n '--sendbird-dark-onlight-01': 'rgba(0, 0, 0, 0.88)',\n '--sendbird-dark-onlight-02': 'rgba(0, 0, 0, 0.50)',\n '--sendbird-dark-onlight-03': 'rgba(0, 0, 0, 0.38)',\n '--sendbird-dark-onlight-04': 'rgba(0, 0, 0, 0.12)',\n\n '--sendbird-dark-ondark-01': 'rgba(255, 255, 255, 0.88)',\n '--sendbird-dark-ondark-02': 'rgba(255, 255, 255, 0.50)',\n '--sendbird-dark-ondark-03': 'rgba(255, 255, 255, 0.38)',\n '--sendbird-dark-ondark-04': 'rgba(255, 255, 255, 0.12)',\n\n '--sendbird-dark-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',\n\n '--sendbird-dark-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-primary-500': '#4d2aa6',\n '--sendbird-light-primary-400': '#6440C4',\n '--sendbird-light-primary-300': '#7B53EF',\n '--sendbird-light-primary-200': '#9E8CF5',\n '--sendbird-light-primary-100': '#E2DFFF',\n\n '--sendbird-light-secondary-500': '#007A7A',\n '--sendbird-light-secondary-400': '#189A8D',\n '--sendbird-light-secondary-300': '#2EBA9F',\n '--sendbird-light-secondary-200': '#6FD6BE',\n '--sendbird-light-secondary-100': '#AEF2DC',\n\n '--sendbird-light-information-100': '#b2d9ff',\n\n '--sendbird-light-error-500': '#A30E2D',\n '--sendbird-light-error-400': '#C11F41',\n '--sendbird-light-error-300': '#E53157',\n '--sendbird-light-error-200': '#FF6183',\n '--sendbird-light-error-100': '#FFABBD',\n\n '--sendbird-light-background-700': '#000000',\n '--sendbird-light-background-600': '#161616',\n '--sendbird-light-background-500': '#2C2C2C',\n '--sendbird-light-background-400': '#393939',\n '--sendbird-light-background-300': '#A8A8A8',\n '--sendbird-light-background-200': '#D9D9D9',\n '--sendbird-light-background-100': '#F0F0F0',\n '--sendbird-light-background-50': ' #FFFFFF',\n\n '--sendbird-light-overlay': 'rgba(0, 0, 0, 0.32)',\n\n '--sendbird-light-onlight-01': 'rgba(0, 0, 0, 0.88)',\n '--sendbird-light-onlight-02': 'rgba(0, 0, 0, 0.50)',\n '--sendbird-light-onlight-03': 'rgba(0, 0, 0, 0.38)',\n '--sendbird-light-onlight-04': 'rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-ondark-01': 'rgba(255, 255, 255, 0.88)',\n '--sendbird-light-ondark-02': 'rgba(255, 255, 255, 0.50)',\n '--sendbird-light-ondark-03': 'rgba(255, 255, 255, 0.38)',\n '--sendbird-light-ondark-04': 'rgba(255, 255, 255, 0.12)',\n\n '--sendbird-light-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-light-theme-surface-2': '#EAEAEA',\n },\n ...overrides,\n },\n });\n }\n }, [overrides]);\n};\n\nexport default useTheme;\n","export default {\n initialized: false,\n loading: false,\n sdk: {},\n error: false,\n};\n","import * as sdkActions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case sdkActions.SET_SDK_LOADING:\n return {\n ...state,\n initialized: false,\n loading: action.payload,\n };\n case sdkActions.SDK_ERROR:\n return {\n ...state,\n initialized: false,\n loading: false,\n error: true,\n };\n case sdkActions.INIT_SDK:\n return {\n sdk: action.payload,\n initialized: true,\n loading: false,\n error: false,\n };\n case sdkActions.RESET_SDK:\n return initialState;\n default:\n return state;\n }\n}\n","export default {\n initialized: false,\n loading: false,\n user: {},\n};\n","import * as actions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actions.INIT_USER:\n return {\n initialized: true,\n loading: false,\n user: action.payload,\n };\n case actions.RESET_USER:\n return initialState;\n case actions.UPDATE_USER_INFO:\n return {\n ...state,\n user: action.payload,\n };\n default:\n return state;\n }\n}\n","import { useState, useEffect } from 'react';\n\nimport { uuidv4 } from '../../utils/uuid';\n\nfunction useConnectionStatus(sdk, logger) {\n const [isOnline, setIsOnline] = useState(true);\n\n useEffect(() => {\n const uniqueHandlerId = uuidv4();\n logger.warning('sdk changed', uniqueHandlerId);\n let handler;\n if (sdk && sdk.ConnectionHandler) {\n handler = new sdk.ConnectionHandler();\n\n handler.onReconnectStarted = () => {\n setIsOnline(false);\n logger.warning('onReconnectStarted', { isOnline });\n };\n handler.onReconnectSucceeded = () => {\n setIsOnline(true);\n logger.warning('onReconnectSucceeded', { isOnline });\n };\n handler.onReconnectFailed = () => {\n sdk.reconnect();\n logger.warning('onReconnectFailed');\n };\n logger.info('Added ConnectionHandler', uniqueHandlerId);\n sdk.addConnectionHandler(uniqueHandlerId, handler);\n }\n return () => {\n try {\n sdk.removeConnectionHandler(uniqueHandlerId);\n logger.info('Removed ConnectionHandler', uniqueHandlerId);\n } catch {\n //\n }\n };\n }, [sdk]);\n\n useEffect(() => {\n const tryReconnect = () => {\n try {\n logger.warning('Try reconnecting SDK');\n if (sdk.getConnectionState() !== 'OPEN') { // connection is not broken yet\n sdk.reconnect();\n }\n } catch {\n //\n }\n };\n // addEventListener version\n window.addEventListener('online', tryReconnect);\n return () => {\n window.removeEventListener('online', tryReconnect);\n };\n }, [sdk]);\n\n // add offline-class to body\n useEffect(() => {\n const body = document.querySelector('body');\n if (!isOnline) {\n try {\n body.classList.add('sendbird__offline');\n logger.info('Added class sendbird__offline to body');\n } catch (e) {\n //\n }\n } else {\n try {\n body.classList.remove('sendbird__offline');\n logger.info('Removed class sendbird__offline from body');\n } catch (e) {\n //\n }\n }\n }, [isOnline]);\n\n return isOnline;\n}\n\nexport default useConnectionStatus;\n","export const LOG_LEVELS = {\n DEBUG: 'debug',\n WARNING: 'warning',\n ERROR: 'error',\n INFO: 'info',\n ALL: 'all',\n};\n\nconst colorLog = (level) => {\n switch (level) {\n case LOG_LEVELS.WARNING:\n return ('color: Orange');\n case LOG_LEVELS.ERROR:\n return ('color: Red');\n default:\n return ('color: Gray');\n }\n};\n\nexport const printLog = ({\n level,\n title,\n description = '',\n}) => {\n // eslint-disable-next-line no-console\n console.log(\n `%c SendbirdUIKit | ${level} | ${new Date().toISOString()} | ${title} ${description && '|'}`, colorLog(level),\n description,\n );\n};\n\nexport const getDefaultLogger = () => ({\n info: () => {},\n error: () => {},\n warning: () => {},\n});\n\nexport const LoggerFactory = (lvl, customInterface) => {\n const logInterface = customInterface || printLog;\n const lvlArray = Array.isArray(lvl) ? lvl : [lvl];\n\n const applyLog = (lgLvl) => (title, description) => logInterface({\n level: lgLvl,\n title,\n description,\n });\n\n const logger = lvlArray.reduce((accumulator, currentLvl) => {\n if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) {\n return ({\n ...accumulator,\n info: applyLog(LOG_LEVELS.INFO),\n error: applyLog(LOG_LEVELS.ERROR),\n warning: applyLog(LOG_LEVELS.WARNING),\n });\n }\n\n if (currentLvl === LOG_LEVELS.INFO) {\n return ({\n ...accumulator,\n info: applyLog(LOG_LEVELS.INFO),\n });\n }\n\n if (currentLvl === LOG_LEVELS.ERROR) {\n return ({\n ...accumulator,\n error: applyLog(LOG_LEVELS.ERROR),\n });\n }\n\n if (currentLvl === LOG_LEVELS.WARNING) {\n return ({\n ...accumulator,\n warning: applyLog(LOG_LEVELS.WARNING),\n });\n }\n\n return { ...accumulator };\n }, getDefaultLogger());\n return logger;\n};\n","// https://davidwalsh.name/pubsub-javascript\nexport default () => {\n const topics = {};\n const hOP = topics.hasOwnProperty;\n\n return {\n __getTopics: () => topics,\n subscribe: (topic, listener) => {\n // Create the topic's object if not yet created\n if (!hOP.call(topics, topic)) { topics[topic] = []; }\n\n // Add the listener to queue\n const index = topics[topic].push(listener) - 1;\n\n // Provide handle back for removal of topic\n return {\n remove: () => {\n delete topics[topic][index];\n },\n };\n },\n publish: (topic, info) => {\n // If the topic doesn't exist, or there's no listeners in queue, just leave\n if (!hOP.call(topics, topic)) { return; }\n\n // Cycle through topics queue, fire!\n topics[topic].forEach((item) => {\n item(info !== undefined ? info : {});\n });\n },\n };\n};\n","import { useEffect } from 'react';\n\nfunction useAppendDomNode(ids = [], rootSelector) {\n useEffect(() => {\n const root = document.querySelector(rootSelector);\n ids.forEach((id) => {\n const elem = document.createElement('div');\n elem.setAttribute('id', id);\n root.appendChild(elem);\n });\n return () => {\n ids.forEach((id) => {\n const target = document.getElementById(id);\n if (target) {\n root.removeChild(target);\n }\n });\n };\n }, []);\n}\n\nexport default useAppendDomNode;\n","import './index.scss';\n\nimport React, { useEffect, useReducer, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SendbirdSdkContext } from './SendbirdSdkContext';\nimport { handleConnection } from './dux/sdk/thunks';\n\nimport useTheme from './hooks/useTheme';\n\nimport sdkReducers from './dux/sdk/reducers';\nimport userReducers from './dux/user/reducers';\nimport sdkInitialState from './dux/sdk/initialState';\nimport userInitialState from './dux/user/initialState';\n\nimport useOnlineStatus from './hooks/useOnlineStatus';\n\nimport { LoggerFactory } from './Logger';\nimport pubSubFactory from './pubSub/index';\nimport useAppendDomNode from '../hooks/useAppendDomNode';\n\nimport { LocalizationProvider } from './LocalizationContext';\nimport getStringSet from '../ui/Label/stringSet';\n\nexport default function Sendbird(props) {\n const {\n userId,\n appId,\n accessToken,\n children,\n disableUserProfile,\n renderUserProfile,\n allowProfileEdit,\n theme,\n nickname,\n profileUrl,\n userListQuery,\n config = {},\n colorSet,\n stringSet,\n } = props;\n\n const {\n logLevel = '',\n } = config;\n const [logger, setLogger] = useState(LoggerFactory(logLevel));\n const [pubSub, setPubSub] = useState();\n const [sdkStore, sdkDispatcher] = useReducer(sdkReducers, sdkInitialState);\n const [userStore, userDispatcher] = useReducer(userReducers, userInitialState);\n\n useTheme(colorSet);\n\n useEffect(() => {\n setPubSub(pubSubFactory());\n }, []);\n\n useEffect(() => {\n logger.info('App Init');\n // dispatch action\n handleConnection({\n userId,\n appId,\n accessToken,\n sdkStore,\n nickname,\n profileUrl,\n sdk: sdkStore.sdk,\n logger,\n }, {\n sdkDispatcher,\n userDispatcher,\n });\n }, [userId, appId, accessToken]);\n\n // to create a pubsub to communicate between parent and child\n useEffect(() => {\n setLogger(LoggerFactory(logLevel));\n }, [logLevel]);\n\n useAppendDomNode([\n 'sendbird-modal-root',\n 'sendbird-dropdown-portal',\n 'sendbird-emoji-list-portal',\n ], 'body');\n\n // should move to reducer\n const [currenttheme, setCurrenttheme] = useState(theme);\n useEffect(() => {\n setCurrenttheme(theme);\n }, [theme]);\n // add-remove theme from body\n useEffect(() => {\n logger.info('Setup theme', `Theme: ${currenttheme}`);\n try {\n const body = document.querySelector('body');\n body.classList.remove('sendbird-theme--light');\n body.classList.remove('sendbird-theme--dark');\n body.classList.add(`sendbird-theme--${currenttheme || 'light'}`);\n logger.info('Finish setup theme');\n // eslint-disable-next-line no-empty\n } catch (e) {\n logger.warning('Setup theme failed', `${e}`);\n }\n return () => {\n try {\n const body = document.querySelector('body');\n body.classList.remove('sendbird-theme--light');\n body.classList.remove('sendbird-theme--dark');\n // eslint-disable-next-line no-empty\n } catch { }\n };\n }, [currenttheme]);\n\n const isOnline = useOnlineStatus(sdkStore.sdk, logger);\n\n const localeStringSet = React.useMemo(() => {\n if (!stringSet) {\n return getStringSet('en');\n }\n return {\n ...getStringSet('en'),\n ...stringSet,\n };\n }, [stringSet]);\n\n return (\n {\n handleConnection({\n userId,\n appId,\n accessToken,\n sdkStore,\n nickname,\n profileUrl,\n logger,\n sdk: sdkStore.sdk,\n }, {\n sdkDispatcher,\n userDispatcher,\n });\n },\n },\n config: {\n disableUserProfile,\n renderUserProfile,\n allowProfileEdit,\n isOnline,\n userId,\n appId,\n accessToken,\n theme: currenttheme,\n setCurrenttheme,\n userListQuery,\n logger,\n pubSub,\n },\n }}\n >\n \n {children}\n \n \n );\n}\n\nSendbird.propTypes = {\n userId: PropTypes.string.isRequired,\n appId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n theme: PropTypes.string,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n userListQuery: PropTypes.func,\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }),\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n};\n\nSendbird.defaultProps = {\n accessToken: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n disableUserProfile: false,\n renderUserProfile: null,\n allowProfileEdit: false,\n userListQuery: null,\n config: {},\n stringSet: null,\n colorSet: null,\n};\n"],"names":["INIT_SDK","SET_SDK_LOADING","RESET_SDK","SDK_ERROR","APP_VERSION_STRING","disconnectSdk","sdkDispatcher","userDispatcher","sdk","onDisconnect","type","payload","disconnect","then","RESET_USER","finally","handleConnection","dispatchers","userId","appId","nickname","profileUrl","accessToken","logger","info","newSdk","Sb","addExtension","connectCbSucess","user","INIT_USER","newNickName","newProfileUrl","updateCurrentUserInfo","namedUser","UPDATE_USER_INFO","connectCbError","e","error","connect","res","catch","err","warning","isEmpty","obj","undefined","prop","hasOwnProperty","JSON","stringify","useTheme","overrides","useLayoutEffect","cssVars","variables","initialized","loading","reducer","state","action","sdkActions","initialState","actions","useConnectionStatus","useState","isOnline","setIsOnline","useEffect","uniqueHandlerId","uuidv4","handler","ConnectionHandler","onReconnectStarted","onReconnectSucceeded","onReconnectFailed","reconnect","addConnectionHandler","removeConnectionHandler","tryReconnect","getConnectionState","window","addEventListener","removeEventListener","body","document","querySelector","classList","add","remove","LOG_LEVELS","DEBUG","WARNING","ERROR","INFO","ALL","colorLog","level","printLog","title","description","console","log","Date","toISOString","getDefaultLogger","LoggerFactory","lvl","customInterface","logInterface","lvlArray","Array","isArray","applyLog","lgLvl","reduce","accumulator","currentLvl","topics","hOP","__getTopics","subscribe","topic","listener","call","index","push","publish","forEach","item","useAppendDomNode","ids","rootSelector","root","id","elem","createElement","setAttribute","appendChild","target","getElementById","removeChild","Sendbird","props","children","disableUserProfile","renderUserProfile","allowProfileEdit","theme","userListQuery","config","colorSet","stringSet","logLevel","setLogger","pubSub","setPubSub","useReducer","sdkReducers","sdkInitialState","sdkStore","userReducers","userInitialState","userStore","pubSubFactory","currenttheme","setCurrenttheme","useOnlineStatus","localeStringSet","React","useMemo","getStringSet","SendbirdSdkContext","stores","LocalizationProvider","propTypes","PropTypes","string","isRequired","oneOfType","element","arrayOf","any","bool","func","shape","objectOf","defaultProps"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/actionTypes-920b541f.js b/dist/cjs/actionTypes-920b541f.js new file mode 100644 index 0000000..8d6cfe0 --- /dev/null +++ b/dist/cjs/actionTypes-920b541f.js @@ -0,0 +1,10 @@ +'use strict'; + +var INIT_USER = 'INIT_USER'; +var RESET_USER = 'RESET_USER'; +var UPDATE_USER_INFO = 'UPDATE_USER_INFO'; + +exports.INIT_USER = INIT_USER; +exports.RESET_USER = RESET_USER; +exports.UPDATE_USER_INFO = UPDATE_USER_INFO; +//# sourceMappingURL=actionTypes-920b541f.js.map diff --git a/dist/cjs/actionTypes-920b541f.js.map b/dist/cjs/actionTypes-920b541f.js.map new file mode 100644 index 0000000..f851ae8 --- /dev/null +++ b/dist/cjs/actionTypes-920b541f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"actionTypes-a85c0eaa.js","sources":["../../../src/lib/dux/user/actionTypes.js"],"sourcesContent":["export const INIT_USER = 'INIT_USER';\nexport const RESET_USER = 'RESET_USER';\nexport const SET_USER_LOADING = 'SET_USER_LOADING';\nexport const UPDATE_USER_INFO = 'UPDATE_USER_INFO';\n"],"names":["INIT_USER","RESET_USER","UPDATE_USER_INFO"],"mappings":";;IAAaA,SAAS,GAAG;IACZC,UAAU,GAAG;IAEbC,gBAAgB,GAAG;;;;;;"} \ No newline at end of file diff --git a/dist/cjs/index-64dcc5d9.js b/dist/cjs/index-64dcc5d9.js new file mode 100644 index 0000000..26508dd --- /dev/null +++ b/dist/cjs/index-64dcc5d9.js @@ -0,0 +1,48 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var React = require('react'); +var React__default = _interopDefault(React); +var index = require('./index-710314fd.js'); +var utils = require('./utils-6aedec02.js'); + +function ChannelAvatar(_a) { + var channel = _a.channel, + userId = _a.userId, + theme = _a.theme, + _b = _a.height, + height = _b === void 0 ? 56 : _b, + _c = _a.width, + width = _c === void 0 ? 56 : _c; + var isBroadcast = channel.isBroadcast; + var memoizedAvatar = React.useMemo(function () { + return isBroadcast ? utils.useDefaultAvatar(channel) ? theme === 'dark' ? React__default.createElement(index.Icon, { + type: index.IconTypes.BROADCAST_LARGE_DARK, + width: width, + height: height, + className: "sendbird-chat-header__default--broadcast-channel-dark" + }) : React__default.createElement(index.Icon, { + type: index.IconTypes.BROADCAST_LARGE_LIGHT, + width: width, + height: height, + className: "sendbird-chat-header__default--broadcast-channel-light" + }) : React__default.createElement(index.Avatar, { + className: "sendbird-chat-header__avatar--broadcast-channel", + src: utils.getChannelAvatarSource(channel, userId), + width: width, + height: height, + alt: channel.name + }) : React__default.createElement(index.Avatar, { + className: "sendbird-chat-header__avatar--group-channel", + src: utils.getChannelAvatarSource(channel, userId), + width: width + "px", + height: height + "px", + alt: channel.name + }); + }, [channel.members, channel.coverUrl, theme]); + return React__default.createElement(React__default.Fragment, null, memoizedAvatar); +} + +exports.ChannelAvatar = ChannelAvatar; +//# sourceMappingURL=index-64dcc5d9.js.map diff --git a/dist/cjs/index-64dcc5d9.js.map b/dist/cjs/index-64dcc5d9.js.map new file mode 100644 index 0000000..b57bd18 --- /dev/null +++ b/dist/cjs/index-64dcc5d9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-a199094e.js","sources":["../../../src/ui/ChannelAvatar/index.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes } from '../Icon';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendBird.GroupChannel;\n userId: string;\n theme: string;\n height?: number,\n width?: number,\n}\n\nfunction ChannelAvatar({\n channel,\n userId,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { isBroadcast } = channel;\n const memoizedAvatar = useMemo(() => (\n isBroadcast\n ? (\n utils.useDefaultAvatar(channel)\n ? (\n theme === 'dark'\n ? (\n \n )\n : (\n \n )\n )\n : (\n \n )\n )\n : (\n \n )\n ),[channel.members, channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n"],"names":["ChannelAvatar","_a","channel","userId","theme","_b","height","_c","width","isBroadcast","memoizedAvatar","useMemo","utils","React","Icon","IconTypes","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","Avatar","name","members","coverUrl"],"mappings":";;;;;;;;;AAeA,SAASA,aAAT,CAAuBC,EAAvB;MACEC,OAAO;MACPC,MAAM;MACNC,KAAK;MACLC;MAAAC,MAAM,mBAAG;MACTC;MAAAC,KAAK,mBAAG;AAEA,MAAAC,WAAW,GAAKP,OAAO,YAAvB;AACR,MAAMQ,cAAc,GAAGC,aAAO,CAAC;AAAM,WACnCF,WAAW,GAEPG,sBAAA,CAAuBV,OAAvB,IAEIE,KAAK,KAAK,MAAV,GAEIS,6BAACC,UAAD;AACE,MAAA,IAAI,EAAEC,eAAS,CAACC,oBADlB;AAEE,MAAA,KAAK,EAAER,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAFJ,GAUIO,6BAACC,UAAD;AACE,MAAA,IAAI,EAAEC,eAAS,CAACE,qBADlB;AAEE,MAAA,KAAK,EAAET,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAZR,GAqBIO,6BAACK,YAAD;AACE,MAAA,SAAS,EAAC,iDADZ;AAEE,MAAA,GAAG,EAAEN,4BAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAEK,KAHT;AAIE,MAAA,MAAM,EAAEF,MAJV;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACiB;AALf,MAvBG,GAiCPN,6BAACK,YAAD;AACE,MAAA,SAAS,EAAC,6CADZ;AAEE,MAAA,GAAG,EAAEN,4BAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAKK,KAAK,OAHjB;AAIE,MAAA,MAAM,EAAKF,MAAM,OAJnB;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACiB;AALf,MAlC+B;AA0CpC,GA1C6B,EA0C5B,CAACjB,OAAO,CAACkB,OAAT,EAAkBlB,OAAO,CAACmB,QAA1B,EAAoCjB,KAApC,CA1C4B,CAA9B;AA2CA,SACES,4DAAIH,cAAJ,CADF;AAGD;;;;"} \ No newline at end of file diff --git a/dist/cjs/index-6ca9e95e.js b/dist/cjs/index-6ca9e95e.js new file mode 100644 index 0000000..afc1966 --- /dev/null +++ b/dist/cjs/index-6ca9e95e.js @@ -0,0 +1,259 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +var PropTypes = _interopDefault(require('prop-types')); +var index = require('./index-710314fd.js'); + +var InputLabel = function InputLabel(_ref) { + var children = _ref.children; + return React__default.createElement(index.Label, { + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_1, + className: "sendbird-input-label" + }, children); +}; +InputLabel.propTypes = { + children: PropTypes.string.isRequired +}; // future: add validations? onChange? more props etc etc + +var Input = React__default.forwardRef(function (props, ref) { + var value = props.value, + placeHolder = props.placeHolder, + disabled = props.disabled, + name = props.name, + required = props.required; + + var _useState = React.useState(value), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + inputValue = _useState2[0], + setInputValue = _useState2[1]; + + return React__default.createElement("div", { + className: "sendbird-input" + }, React__default.createElement("input", { + required: required, + ref: ref, + name: name, + disabled: disabled, + value: inputValue, + className: "sendbird-input--input", + onChange: function onChange(e) { + setInputValue(e.target.value); + } + }), placeHolder && !inputValue && React__default.createElement(index.Label, { + className: "sendbird-input--placeholder", + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_3 + }, placeHolder)); +}); +Input.propTypes = { + value: PropTypes.string, + placeHolder: PropTypes.string, + name: PropTypes.string.isRequired, + disabled: PropTypes.bool, + required: PropTypes.bool +}; +Input.defaultProps = { + value: '', + placeHolder: '', + disabled: false, + required: false +}; + +function MutedAvatarOverlay(props) { + var _a = props.height, + height = _a === void 0 ? 24 : _a, + _b = props.width, + width = _b === void 0 ? 24 : _b; + return React__default.createElement("div", { + className: "sendbird-muted-avatar", + style: { + height: height + "px", + width: width + "px" + } + }, React__default.createElement("div", { + className: "sendbird-muted-avatar__icon" + }, React__default.createElement("div", { + className: "sendbird-muted-avatar__bg", + style: { + height: height + "px", + width: width + "px" + } + }), React__default.createElement(index.Icon, { + fillColor: index.IconColors.WHITE, + type: index.IconTypes.ICON_MUTED, + width: height - 8 + "px", + height: width - 8 + "px" + }))); +} + +function Checkbox(_ref) { + var id = _ref.id, + checked = _ref.checked, + onChange = _ref.onChange; + + var _useState = React.useState(checked), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + isChecked = _useState2[0], + setCheck = _useState2[1]; + + return React__default.createElement("label", { + className: "sendbird-checkbox", + htmlFor: id + }, React__default.createElement("input", { + id: id, + type: "checkbox", + checked: isChecked, + onClick: function onClick() { + return setCheck(!isChecked); + }, + onChange: onChange + }), React__default.createElement("span", { + className: "sendbird-checkbox--checkmark" + })); +} +Checkbox.propTypes = { + id: PropTypes.string, + checked: PropTypes.bool, + onChange: PropTypes.func +}; +Checkbox.defaultProps = { + id: 'sendbird-checkbox-input', + checked: false, + onChange: function onChange() {} +}; + +var COMPONENT_NAME = 'sendbird-user-list-item'; +function UserListItem(_ref) { + var user = _ref.user, + className = _ref.className, + checkBox = _ref.checkBox, + _ref$disableMessaging = _ref.disableMessaging, + disableMessaging = _ref$disableMessaging === void 0 ? false : _ref$disableMessaging, + currentUser = _ref.currentUser, + checked = _ref.checked, + _onChange = _ref.onChange, + action = _ref.action; + var injectingClassNames = Array.isArray(className) ? className : [className]; + var uniqueKey = user.userId; + var actionRef = React__default.useRef(null); + var parentRef = React__default.useRef(null); + var avatarRef = React__default.useRef(null); + + var _useContext = React.useContext(index.UserProfileContext), + disableUserProfile = _useContext.disableUserProfile, + renderUserProfile = _useContext.renderUserProfile; + + var _useContext2 = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext2.stringSet; + + return React__default.createElement("div", { + ref: parentRef, + className: [COMPONENT_NAME].concat(LocalizationContext._toConsumableArray(injectingClassNames)).join(' ') + }, user.isMuted && React__default.createElement(MutedAvatarOverlay, { + height: 40, + width: 40 + }), React__default.createElement(index.ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React__default.createElement(index.Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + ref: avatarRef, + className: "".concat(COMPONENT_NAME, "__avatar"), + src: user.profileUrl, + width: "40px", + height: "40px" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React__default.createElement(index.MenuItems, { + openLeft: true, + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: user, + currentUserId: currentUser, + close: closeDropdown + }) : React__default.createElement(index.UserProfile, { + disableMessaging: disableMessaging, + user: user, + currentUserId: currentUser, + onSuccess: closeDropdown + })); + } + }), React__default.createElement(index.Label, { + className: "".concat(COMPONENT_NAME, "__title"), + type: index.LabelTypography.SUBTITLE_1, + color: index.LabelColors.ONBACKGROUND_1 + }, user.nickname || stringSet.NO_NAME, currentUser === user.userId && ' (You)'), // if there is now nickname, display userId + !user.nickname && React__default.createElement(index.Label, { + className: "".concat(COMPONENT_NAME, "__subtitle"), + type: index.LabelTypography.CAPTION_3, + color: index.LabelColors.ONBACKGROUND_2 + }, user.userId), checkBox && // eslint-disable-next-line jsx-a11y/label-has-associated-control + React__default.createElement("label", { + className: "".concat(COMPONENT_NAME, "__checkbox"), + htmlFor: uniqueKey + }, React__default.createElement(Checkbox, { + id: uniqueKey, + checked: checked, + onChange: function onChange(event) { + return _onChange(event); + } + })), user.role === 'operator' && React__default.createElement(index.Label, { + className: "".concat(COMPONENT_NAME, "__operator"), + type: index.LabelTypography.SUBTITLE_2, + color: index.LabelColors.ONBACKGROUND_2 + }, "Operator"), action && React__default.createElement("div", { + ref: actionRef, + className: "".concat(COMPONENT_NAME, "__action") + }, action({ + actionRef: actionRef, + parentRef: parentRef + }))); +} +UserListItem.propTypes = { + user: PropTypes.shape({ + userId: PropTypes.string, + role: PropTypes.string, + isMuted: PropTypes.bool, + nickname: PropTypes.string, + profileUrl: PropTypes.string + }).isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + disableMessaging: PropTypes.bool, + currentUser: PropTypes.string, + action: PropTypes.element, + checkBox: PropTypes.bool, + checked: PropTypes.bool, + onChange: PropTypes.func +}; +UserListItem.defaultProps = { + className: '', + currentUser: '', + checkBox: false, + disableMessaging: false, + checked: false, + action: null, + onChange: function onChange() {} +}; + +exports.Input = Input; +exports.InputLabel = InputLabel; +exports.MutedAvatarOverlay = MutedAvatarOverlay; +exports.UserListItem = UserListItem; +//# sourceMappingURL=index-6ca9e95e.js.map diff --git a/dist/cjs/index-6ca9e95e.js.map b/dist/cjs/index-6ca9e95e.js.map new file mode 100644 index 0000000..6b7181b --- /dev/null +++ b/dist/cjs/index-6ca9e95e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-73379213.js","sources":["../../../src/ui/Input/index.jsx","../../../src/ui/Avatar/MutedAvatarOverlay.tsx","../../../src/ui/Checkbox/index.jsx","../../../src/ui/UserListItem/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nexport const InputLabel = ({ children }) => (\n \n {children}\n \n);\n\nInputLabel.propTypes = {\n children: PropTypes.string.isRequired,\n};\n\n// future: add validations? onChange? more props etc etc\nconst Input = React.forwardRef((props, ref) => {\n const {\n value,\n placeHolder,\n disabled,\n name,\n required,\n } = props;\n const [inputValue, setInputValue] = useState(value);\n return (\n
\n {\n setInputValue(e.target.value);\n }}\n />\n {(placeHolder && !inputValue) && (\n \n {placeHolder}\n \n )}\n
\n );\n});\n\nInput.propTypes = {\n value: PropTypes.string,\n placeHolder: PropTypes.string,\n name: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n};\n\nInput.defaultProps = {\n value: '',\n placeHolder: '',\n disabled: false,\n required: false,\n};\n\nexport default Input;\n","import './muted-avatar-overlay.scss';\n\nimport React, { ReactElement } from 'react'\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\ninterface Props {\n height?: number;\n width?: number;\n}\n\nexport default function MutedAvatarOverlay(props: Props): ReactElement {\n const { height = 24, width = 24 } = props;\n return (\n \n
\n \n \n
\n \n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nexport default function Checkbox({\n id,\n checked,\n onChange,\n}) {\n const [isChecked, setCheck] = useState(checked);\n return (\n \n );\n}\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nCheckbox.defaultProps = {\n id: 'sendbird-checkbox-input',\n checked: false,\n onChange: () => { },\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport MutedAvatarOverlay from '../Avatar/MutedAvatarOverlay';\nimport Checkbox from '../Checkbox';\nimport UserProfile from '../UserProfile';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item';\n\nexport default function UserListItem({\n user,\n className,\n checkBox,\n disableMessaging = false,\n currentUser,\n checked,\n onChange,\n action,\n}) {\n const injectingClassNames = Array.isArray(className) ? className : [className];\n const uniqueKey = user.userId;\n const actionRef = React.useRef(null);\n const parentRef = React.useRef(null);\n const avatarRef = React.useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width=\"40px\"\n height=\"40px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n ' (You)'\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n checkBox && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n onChange(event)}\n />\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n \n );\n}\n\nUserListItem.propTypes = {\n user: PropTypes.shape({\n userId: PropTypes.string,\n role: PropTypes.string,\n isMuted: PropTypes.bool,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n disableMessaging: PropTypes.bool,\n currentUser: PropTypes.string,\n action: PropTypes.element,\n checkBox: PropTypes.bool,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nUserListItem.defaultProps = {\n className: '',\n currentUser: '',\n checkBox: false,\n disableMessaging: false,\n checked: false,\n action: null,\n onChange: () => { },\n};\n"],"names":["InputLabel","children","React","Label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_1","propTypes","PropTypes","string","isRequired","Input","forwardRef","props","ref","value","placeHolder","disabled","name","required","useState","inputValue","setInputValue","e","target","BODY_1","ONBACKGROUND_3","bool","defaultProps","MutedAvatarOverlay","_a","height","_b","width","Icon","IconColors","WHITE","IconTypes","ICON_MUTED","Checkbox","id","checked","onChange","isChecked","setCheck","func","COMPONENT_NAME","UserListItem","user","className","checkBox","disableMessaging","currentUser","action","injectingClassNames","Array","isArray","uniqueKey","userId","actionRef","useRef","parentRef","avatarRef","useContext","UserProfileContext","disableUserProfile","renderUserProfile","LocalizationContext","stringSet","join","isMuted","ContextMenu","toggleDropdown","Avatar","profileUrl","closeDropdown","MenuItems","paddingTop","paddingBottom","currentUserId","close","UserProfile","SUBTITLE_1","nickname","NO_NAME","ONBACKGROUND_2","event","role","SUBTITLE_2","shape","oneOfType","arrayOf","element"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/index-710314fd.js b/dist/cjs/index-710314fd.js new file mode 100644 index 0000000..77a90e0 --- /dev/null +++ b/dist/cjs/index-710314fd.js @@ -0,0 +1,3343 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +var PropTypes = _interopDefault(require('prop-types')); +var reactDom = require('react-dom'); + +var UserProfileContext = React__default.createContext({ + disableUserProfile: true, + isOpenChannel: false, + renderUserProfile: null +}); + +var UserProfileProvider = function UserProfileProvider(props) { + var children = props.children, + className = props.className; + return React__default.createElement(UserProfileContext.Provider, { + value: props + }, React__default.createElement("div", { + className: className + }, children)); +}; + +UserProfileProvider.propTypes = { + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, + // eslint-disable-next-line react/no-unused-prop-types + isOpenChannel: PropTypes.bool, + // eslint-disable-next-line react/no-unused-prop-types + disableUserProfile: PropTypes.bool, + // eslint-disable-next-line react/no-unused-prop-types + renderUserProfile: PropTypes.func, + className: PropTypes.string +}; +UserProfileProvider.defaultProps = { + className: null, + isOpenChannel: false, + disableUserProfile: false, + renderUserProfile: null +}; + +/* + ImageRenderer displays image with url or source + it checks if the source exist with img tag first + if it exists onLoad is called, if not onError is called + and those properties switch img tag to real purposing element +*/ + +function ImageRenderer(_ref) { + var alt = _ref.alt, + url = _ref.url, + width = _ref.width, + height = _ref.height, + className = _ref.className, + defaultComponent = _ref.defaultComponent, + circle = _ref.circle; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift('sendbird-image-renderer'); + + var _useState = React.useState(null), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + realElement = _useState2[0], + setRealElement = _useState2[1]; + + React.useEffect(function () { + setRealElement(null); + }, [url]); + return realElement || React__default.createElement("img", { + className: "sendbird-image-renderer--hidden-placeholder ".concat(injectingClassName.join(' ')), + src: url, + alt: alt, + onError: function onError() { + setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent); + }, + onLoad: function onLoad() { + setRealElement(React__default.createElement("div", { + className: injectingClassName.join(' '), + style: { + width: width, + height: height, + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center', + backgroundSize: 'cover', + backgroundImage: "url(".concat(url, ")"), + borderRadius: circle ? '50%' : null + } + })); + } + }); +} +ImageRenderer.propTypes = { + alt: PropTypes.string, + url: PropTypes.string.isRequired, + width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + className: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]), + defaultComponent: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + circle: PropTypes.bool +}; +ImageRenderer.defaultProps = { + alt: '', + className: '', + circle: false, + defaultComponent: null, + width: null, + height: null +}; + +var Type = { + ADD: 'ADD', + ATTACH: 'ATTACH', + ARROW_LEFT: 'ARROW_LEFT', + AVATAR_DARK: 'AVATAR_DARK', + AVATAR_LIGHT: 'AVATAR_LIGHT', + AVATAR_NO_IMAGE: 'AVATAR_NO_IMAGE', + BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK', + BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT', + BROADCAST_DARK: 'BROADCAST_DARK', + BROADCAST_LIGHT: 'BROADCAST_LIGHT', + BROADCAST: 'BROADCAST', + FROZEN_DARK: 'FROZEN_DARK', + FROZEN_LIGHT: 'FROZEN_LIGHT', + CAMERA: 'CAMERA', + MORE: 'MORE', + MUTE: 'MUTE', + NO_THUMBNAIL: 'NO_THUMBNAIL', + CHECKBOX: 'CHECKBOX', + CHECKBOX_OFF: 'CHECKBOX_OFF', + CLOSE: 'CLOSE', + COPY: 'COPY', + CHAT: 'CHAT', + CREATE: 'CREATE', + DELETE: 'DELETE', + DISCONNECTED: 'DISCONNECTED', + DUMMY: 'DUMMY', + EDIT: 'EDIT', + ERROR: 'ERROR', + ERROR_FILLED: 'ERROR_FILLED', + EMOJI_FAILED: 'EMOJI_FAILED', + EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD', + EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY', + DELIVERED: 'DELIVERED', + DOCUMENT: 'DOCUMENT', + DOWNLOAD: 'DOWNLOAD', + FILE_AUDIO: 'FILE_AUDIO', + FILE_DOCUMENT: 'FILE_DOCUMENT', + GIF: 'GIF', + INFO: 'INFO', + LEAVE: 'LEAVE', + MEMBERS: 'MEMBERS', + NOTIFICATIONS: 'NOTIFICATIONS', + PHOTO: 'PHOTO', + PLAY: 'PLAY', + PLUS: 'PLUS', + READ: 'READ', + REFRESH: 'REFRESH', + SEND: 'SEND', + SENT: 'SENT', + SUPER_GROUP: 'SUPER_GROUP', + SHEVRON: 'SHEVRON', + SHEVRON_DOWN: 'SHEVRON_DOWN', + SPINNER: 'SPINNER', + SPINNER_LARGE: 'SPINNER_LARGE', + USER: 'USER', + ICON_OPERATOR: 'ICON_OPERATOR', + ICON_BANNED: 'ICON_BANNED', + ICON_FREEZE: 'ICON_FREEZE', + ICON_MUTED: 'ICON_MUTED', + ICON_MUTED_FG: 'ICON_MUTED_FG', + TOGGLE_ON: 'TOGGLE_ON', + TOGGLE_OFF: 'TOGGLE_OFF' +}; + +function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + +var _ref = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-add_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M19 2a3 3 0 013 3v14a3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3zm0 2H5a1 1 0 00-1 1v14a1 1 0 001 1h14a1 1 0 001-1V5a1 1 0 00-1-1zm-7 3a1 1 0 01.993.883L13 8v3h3a1 1 0 01.117 1.993L16 13h-3v3a1 1 0 01-1.993.117L11 16v-3H8a1 1 0 01-.117-1.993L8 11h3V8a1 1 0 011-1z" +}); + +function SvgIconAdd(props) { + return React__default.createElement("svg", _extends({ + viewBox: "0 0 24 24" + }, props), _ref); +} + +function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); } + +var _ref$1 = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-attach_svg__fill", + fillOpacity: 0.88, + fillRule: "evenodd", + d: "M19.021 9.943l-8.424 8.023c-1.795 1.71-4.723 1.71-6.518 0-1.77-1.685-1.77-4.398 0-6.084l8.424-8.023c1.079-1.027 2.845-1.027 3.924 0a2.461 2.461 0 010 3.614l-8.433 8.022a.984.984 0 01-1.33 0 .772.772 0 010-1.142l7.782-7.403a.917.917 0 00-1.264-1.328L5.4 13.025a2.605 2.605 0 000 3.798 2.816 2.816 0 003.858 0l8.433-8.022a4.294 4.294 0 000-6.27C15.905.83 13.025.83 11.24 2.531l-8.425 8.023c-2.528 2.408-2.528 6.332 0 8.74 2.504 2.384 6.544 2.384 9.047 0l8.425-8.023a.917.917 0 10-1.265-1.328z" +}); + +function SvgIconAttach(props) { + return React__default.createElement("svg", _extends$1({ + viewBox: "0 0 22 22" + }, props), _ref$1); +} + +function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); } + +var _ref$2 = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-arrow-left_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12.707 3.293a1 1 0 01.083 1.32l-.083.094L6.415 11H21a1 1 0 01.117 1.993L21 13H6.415l6.292 6.293a1 1 0 01.083 1.32l-.083.094a1 1 0 01-1.32.083l-.094-.083-8-8a1 1 0 01-.083-1.32l.083-.094 8-8a1 1 0 011.414 0z" +}); + +function SvgIconArrowLeft(props) { + return React__default.createElement("svg", _extends$2({ + viewBox: "0 0 24 24" + }, props), _ref$2); +} + +function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); } + +var _ref$3 = +/*#__PURE__*/ +React__default.createElement("path", { + fill: "#393939", + d: "M0 0h56v56H0z" +}); + +var _ref2 = +/*#__PURE__*/ +React__default.createElement("path", { + fillOpacity: 0.88, + d: "M34.667 31.333a8.334 8.334 0 018.325 7.972l.008.362V43a1.667 1.667 0 01-3.322.194L39.667 43v-3.333a5 5 0 00-4.707-4.992l-.293-.008H21.333a5 5 0 00-4.991 4.706l-.009.294V43a1.667 1.667 0 01-3.322.194L13 43v-3.333a8.333 8.333 0 017.972-8.326l.361-.008h13.334zm-6.667-20A8.333 8.333 0 1128 28a8.333 8.333 0 010-16.667zm0 3.334a5 5 0 100 10 5 5 0 000-10z" +}); + +function SvgIconAvatarDark(props) { + return React__default.createElement("svg", _extends$3({ + viewBox: "0 0 56 56" + }, props), _ref$3, _ref2); +} + +function _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); } + +var _ref$4 = +/*#__PURE__*/ +React__default.createElement("path", { + fill: "#A8A8A8", + d: "M0 0h56v56H0z" +}); + +var _ref2$1 = +/*#__PURE__*/ +React__default.createElement("path", { + fill: "#FFF", + fillOpacity: 0.88, + d: "M34.667 31.333a8.334 8.334 0 018.325 7.972l.008.362V43a1.667 1.667 0 01-3.322.194L39.667 43v-3.333a5 5 0 00-4.707-4.992l-.293-.008H21.333a5 5 0 00-4.991 4.706l-.009.294V43a1.667 1.667 0 01-3.322.194L13 43v-3.333a8.333 8.333 0 017.972-8.326l.361-.008h13.334zm-6.667-20A8.333 8.333 0 1128 28a8.333 8.333 0 010-16.667zm0 3.334a5 5 0 100 10 5 5 0 000-10z" +}); + +function SvgIconAvatarLight(props) { + return React__default.createElement("svg", _extends$4({ + viewBox: "0 0 56 56" + }, props), _ref$4, _ref2$1); +} + +function _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); } + +var _ref$5 = +/*#__PURE__*/ +React__default.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("circle", { + cx: 16, + cy: 16, + r: 16, + className: "avatar-no-image-light_svg__fill" +}), React__default.createElement("path", { + d: "M19.043 8.381l.089.004a.762.762 0 01.677.753l-.004.089-.415 3.725h2.705a.762.762 0 01.089 1.519l-.089.005H19.22l-.338 3.048h3.213a.762.762 0 01.089 1.518l-.089.005h-3.382l-.432 3.894a.762.762 0 01-1.519-.079l.004-.09.414-3.725h-3.038l-.433 3.894a.76.76 0 01-1.519-.079l.005-.09.414-3.725H9.905a.76.76 0 01-.089-1.518l.089-.005h2.872l.339-3.048H9.905a.762.762 0 01-.089-1.519l.089-.005h3.381l.433-3.893a.76.76 0 01.752-.678l.09.004a.763.763 0 01.677.753l-.005.089-.414 3.725h3.038l.433-3.893a.762.762 0 01.753-.678zm-1.694 9.143l.34-3.048h-3.04l-.338 3.048h3.038z", + fill: "#FFF", + fillOpacity: 0.88 +})); + +function SvgAvatarNoImageLight(props) { + return React__default.createElement("svg", _extends$5({ + viewBox: "0 0 32 32" + }, props), _ref$5); +} + +function _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); } + +var _ref$6 = +/*#__PURE__*/ +React__default.createElement("g", { + className: "icon-broadcast-lrg-dark_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("circle", { + cx: 28, + cy: 28, + r: 28, + fill: "#6FD6BE" +}), React__default.createElement("path", { + fill: "#000", + fillOpacity: 0.88, + d: "M41.273 16.083c.04.128.06.262.06.397v23.04a1.333 1.333 0 01-1.731 1.273l-8.975-2.805A5.335 5.335 0 0120 37.333v-2.666h-2.667a4 4 0 01-3.995-3.8l-.005-.2v-5.334a4 4 0 014-4H20l19.602-6.125a1.332 1.332 0 011.67.875zM22.667 35.627v1.706a2.667 2.667 0 005.326.199l.007-.239-5.333-1.666zm16-17.334l-16 4.999v9.415l16 4.998V18.293zM20 24h-2.667c-.683 0-1.247.515-1.324 1.178l-.009.155v5.334c0 .736.597 1.333 1.333 1.333H20v-8z" +})); + +function SvgIconBroadcastLrgDark(props) { + return React__default.createElement("svg", _extends$6({ + viewBox: "0 0 56 56" + }, props), _ref$6); +} + +function _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); } + +var _ref$7 = +/*#__PURE__*/ +React__default.createElement("g", { + className: "icon-broadcast-lrg-light_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("circle", { + cx: 28, + cy: 28, + r: 28, + fill: "#2EBA9F" +}), React__default.createElement("path", { + fill: "#FFF", + fillOpacity: 0.88, + d: "M41.273 16.083c.04.128.06.262.06.397v23.04a1.333 1.333 0 01-1.731 1.273l-8.975-2.805A5.335 5.335 0 0120 37.333v-2.666h-2.667a4 4 0 01-3.995-3.8l-.005-.2v-5.334a4 4 0 014-4H20l19.602-6.125a1.332 1.332 0 011.67.875zM22.667 35.627v1.706a2.667 2.667 0 005.326.199l.007-.239-5.333-1.666zm16-17.334l-16 4.999v9.415l16 4.998V18.293zM20 24h-2.667c-.683 0-1.247.515-1.324 1.178l-.009.155v5.334c0 .736.597 1.333 1.333 1.333H20v-8z" +})); + +function SvgIconBroadcastLrgLight(props) { + return React__default.createElement("svg", _extends$7({ + viewBox: "0 0 56 56" + }, props), _ref$7); +} + +function _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); } + +var _ref$8 = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-broadcast-dark_svg__fill", + fill: "#6FD6BE", + fillRule: "evenodd", + d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" +}); + +function SvgIconBroadcastDark(props) { + return React__default.createElement("svg", _extends$8({ + viewBox: "0 0 16 16" + }, props), _ref$8); +} + +function _extends$9() { _extends$9 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); } + +var _ref$9 = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-broadcast-light_svg__fill", + fill: "#2EBA9F", + fillRule: "evenodd", + d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" +}); + +function SvgIconBroadcastLight(props) { + return React__default.createElement("svg", _extends$9({ + viewBox: "0 0 16 16" + }, props), _ref$9); +} + +function _extends$a() { _extends$a = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); } + +var _ref$a = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-broadcast_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" +}); + +function SvgIconBroadcast(props) { + return React__default.createElement("svg", _extends$a({ + viewBox: "0 0 16 16" + }, props), _ref$a); +} + +function _extends$b() { _extends$b = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$b.apply(this, arguments); } + +var _ref$b = +/*#__PURE__*/ +React__default.createElement("path", { + className: "frozen-dark_svg__fill", + fill: "#9E8CF5", + fillRule: "evenodd", + d: "M10.409.806l.063.056c.24.24.259.618.055.88l-.055.063-1.805 1.804v3.236l2.801-1.618.662-2.465a.665.665 0 011.304.263l-.016.082-.56 2.088 2.088.56a.665.665 0 01.488.734l-.016.082a.666.666 0 01-.735.488l-.082-.016-2.465-.661L9.334 8l2.801 1.618 2.466-.66.082-.017a.667.667 0 01.735.488l.016.082a.666.666 0 01-.488.734l-2.088.56.56 2.088.016.082a.666.666 0 01-1.304.263l-.662-2.465-2.801-1.618v3.236l1.805 1.804a.668.668 0 01-.88.999l-.063-.056L8 13.61l-1.528 1.53a.668.668 0 01-.88.055l-.063-.056a.668.668 0 01-.056-.88l.056-.063 1.804-1.805V9.155L4.53 10.773l-.66 2.465a.667.667 0 01-1.304-.263l.017-.082.559-2.088-2.088-.56a.667.667 0 01-.488-.734l.017-.082a.665.665 0 01.734-.488l.082.016 2.466.66L6.666 8 3.864 6.382l-2.465.66-.082.017a.666.666 0 01-.734-.488L.566 6.49a.667.667 0 01.488-.734l2.088-.56-.56-2.088-.016-.082a.667.667 0 011.305-.263l.659 2.465 2.803 1.618V3.61L5.529 1.805a.668.668 0 01.88-.999l.063.056L8 2.39 9.53.862a.668.668 0 01.88-.056z" +}); + +function SvgFrozenDark(props) { + return React__default.createElement("svg", _extends$b({ + viewBox: "0 0 16 16" + }, props), _ref$b); +} + +function _extends$c() { _extends$c = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$c.apply(this, arguments); } + +var _ref$c = +/*#__PURE__*/ +React__default.createElement("path", { + className: "frozen-light_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M10.409.806l.063.056c.24.24.259.618.055.88l-.055.063-1.805 1.804v3.236l2.801-1.618.662-2.465a.665.665 0 011.304.263l-.016.082-.56 2.088 2.088.56a.665.665 0 01.488.734l-.016.082a.666.666 0 01-.735.488l-.082-.016-2.465-.661L9.334 8l2.801 1.618 2.466-.66.082-.017a.667.667 0 01.735.488l.016.082a.666.666 0 01-.488.734l-2.088.56.56 2.088.016.082a.666.666 0 01-1.304.263l-.662-2.465-2.801-1.618v3.236l1.805 1.804a.668.668 0 01-.88.999l-.063-.056L8 13.61l-1.528 1.53a.668.668 0 01-.88.055l-.063-.056a.668.668 0 01-.056-.88l.056-.063 1.804-1.805V9.155L4.53 10.773l-.66 2.465a.667.667 0 01-1.304-.263l.017-.082.559-2.088-2.088-.56a.667.667 0 01-.488-.734l.017-.082a.665.665 0 01.734-.488l.082.016 2.466.66L6.666 8 3.864 6.382l-2.465.66-.082.017a.666.666 0 01-.734-.488L.566 6.49a.667.667 0 01.488-.734l2.088-.56-.56-2.088-.016-.082a.667.667 0 011.305-.263l.659 2.465 2.803 1.618V3.61L5.529 1.805a.668.668 0 01.88-.999l.063.056L8 2.39 9.53.862a.668.668 0 01.88-.056z" +}); + +function SvgFrozenLight(props) { + return React__default.createElement("svg", _extends$c({ + viewBox: "0 0 16 16" + }, props), _ref$c); +} + +function _extends$d() { _extends$d = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$d.apply(this, arguments); } + +var _ref$d = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-camera_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M15 2a1 1 0 01.832.445L17.535 5H21a3 3 0 012.995 2.824L24 8v11a3 3 0 01-3 3H3a3 3 0 01-3-3V8a3 3 0 013-3h3.464l1.704-2.555a1 1 0 01.708-.437L9 2zm-.536 2H9.535L7.832 6.555a1 1 0 01-.708.437L7 7H3a1 1 0 00-1 1v11a1 1 0 001 1h18a1 1 0 001-1V8a1 1 0 00-1-1h-4a1 1 0 01-.832-.445L14.464 4zM12 8a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z" +}); + +function SvgIconCamera(props) { + return React__default.createElement("svg", _extends$d({ + viewBox: "0 0 24 24" + }, props), _ref$d); +} + +function _extends$e() { _extends$e = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$e.apply(this, arguments); } + +var _ref$e = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-more_svg__fill", + fillRule: "evenodd", + d: "M12 17a2 2 0 110 4 2 2 0 010-4zm0-6.5a2 2 0 110 4 2 2 0 010-4zM12 4a2 2 0 110 4 2 2 0 010-4z" +}); + +function SvgIconMore(props) { + return React__default.createElement("svg", _extends$e({ + viewBox: "0 0 24 24" + }, props), _ref$e); +} + +function _extends$f() { _extends$f = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$f.apply(this, arguments); } + +var _ref$f = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-mute_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M15.125 20.09c0 .602-.694 2.41-2.778 2.41-1.389 0-2.315-.804-2.778-2.41zM12.789 1.606a6.496 6.496 0 015.388 2.861l2.464-2.463a.788.788 0 011.025-.077l.088.077a.788.788 0 010 1.113L3.378 21.494a.788.788 0 01-1.025.077l-.088-.077a.788.788 0 010-1.113l1.9-1.903-.04-.004a.387.387 0 01-.241-.596l1.557-2.295.001-.208a545.875 545.875 0 00-.028-6.563l-.008-.614a6.503 6.503 0 016.414-6.59h.969zm6.381 5.246c.08.407.122.827.122 1.257l-.001 7.53 1.52 2.238a.387.387 0 01-.32.604H7.54l3.214-3.214 8.415-8.415z" +}); + +function SvgIconMute(props) { + return React__default.createElement("svg", _extends$f({ + viewBox: "0 0 24 24" + }, props), _ref$f); +} + +function _extends$g() { _extends$g = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); } + +var _ref$g = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-no-thumbnail_svg__fill", + fillOpacity: 0.5, + fillRule: "evenodd", + d: "M30.333 4.667a2.333 2.333 0 110 4.666H11.667a2.334 2.334 0 00-2.334 2.334v32.666c0 1.001.63 1.855 1.516 2.186l24.834-24.836a2.336 2.336 0 013.3 0l7.684 7.683v-3.7c0-1.234.96-2.245 2.173-2.327l.16-.006a2.333 2.333 0 012.333 2.334v18.666a7 7 0 01-7 7H11.665a6.999 6.999 0 01-6.998-7V11.667a7 7 0 017-7zm7 21.966L17.3 46.666h27.034a2.333 2.333 0 002.328-2.173l.006-.16v-8.367l-9.334-9.333zM19.833 14a5.834 5.834 0 110 11.668 5.834 5.834 0 010-11.668zm0 4.667a1.166 1.166 0 100 2.332 1.166 1.166 0 000-2.332zm29.85-15.65a2.334 2.334 0 013.3 3.3L48.8 10.499l4.184 4.184c.87.87.91 2.256.119 3.173l-.119.127a2.334 2.334 0 01-3.3 0L45.5 13.8l-4.183 4.184c-.87.87-2.256.91-3.173.119l-.127-.119a2.334 2.334 0 010-3.3L42.2 10.5l-4.183-4.182a2.334 2.334 0 01-.119-3.173l.119-.127a2.334 2.334 0 013.3 0L45.5 7.2z" +}); + +function SvgIconNoThumbnail(props) { + return React__default.createElement("svg", _extends$g({ + viewBox: "0 0 56 56" + }, props), _ref$g); +} + +function _extends$h() { _extends$h = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); } + +var _ref$h = +/*#__PURE__*/ +React__default.createElement("g", { + className: "icon-checkbox_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd" +}, React__default.createElement("path", { + d: "M18 1H6a5 5 0 00-5 5v12a5 5 0 005 5h12a5 5 0 005-5V6a5 5 0 00-5-5zm0 2a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h12z" +}), React__default.createElement("path", { + d: "M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" +})); + +function SvgIconCheckbox(props) { + return React__default.createElement("svg", _extends$h({ + viewBox: "0 0 24 24" + }, props), _ref$h); +} + +function _extends$i() { _extends$i = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); } + +var _ref$i = +/*#__PURE__*/ +React__default.createElement("g", { + className: "icon-checkbox-off_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd" +}, React__default.createElement("path", { + d: "M18 1H6a5 5 0 00-5 5v12a5 5 0 005 5h12a5 5 0 005-5V6a5 5 0 00-5-5zm0 2a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h12z" +}), React__default.createElement("path", { + d: "M19 19H5V5h14v14zm0-16H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" +})); + +function SvgIconCheckboxOff(props) { + return React__default.createElement("svg", _extends$i({ + viewBox: "0 0 24 24" + }, props), _ref$i); +} + +function _extends$j() { _extends$j = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); } + +var _ref$j = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-close_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M6.613 5.21l.094.083L12 10.585l5.293-5.292a1 1 0 011.497 1.32l-.083.094L13.415 12l5.292 5.293a1 1 0 01-1.32 1.497l-.094-.083L12 13.415l-5.293 5.292a1 1 0 01-1.497-1.32l.083-.094L10.585 12 5.293 6.707a1 1 0 011.32-1.497z" +}); + +function SvgIconClose(props) { + return React__default.createElement("svg", _extends$j({ + viewBox: "0 0 24 24" + }, props), _ref$j); +} + +function _extends$k() { _extends$k = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); } + +var _ref$k = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-copy_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M20 8a3 3 0 013 3v9a3 3 0 01-3 3h-9a3 3 0 01-3-3v-9a3 3 0 013-3zm0 2h-9a1 1 0 00-1 1v9a1 1 0 001 1h9a1 1 0 001-1v-9a1 1 0 00-1-1zm-7-9a3 3 0 012.995 2.824L16 4v1a1 1 0 01-1.993.117L14 5V4a1 1 0 00-.883-.993L13 3H4a1 1 0 00-.993.883L3 4v9a1 1 0 00.883.993L4 14h1a1 1 0 01.117 1.993L5 16H4a3 3 0 01-2.995-2.824L1 13V4a3 3 0 012.824-2.995L4 1h9z" +}); + +function SvgIconCopy(props) { + return React__default.createElement("svg", _extends$k({ + viewBox: "0 0 24 24" + }, props), _ref$k); +} + +function _extends$l() { _extends$l = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); } + +var _ref$l = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-chat_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11c-1.67 0-3.255-.373-4.673-1.039l-.657.218c-2.237.716-3.8.964-4.69.742-1.049-.261-1.256-.72-.62-1.373.439-.524.805-1.178 1.097-1.963.234-.625.142-1.5-.276-2.625A10.933 10.933 0 011 12C1 5.925 5.925 1 12 1zm0 2a9 9 0 00-8.187 12.742l.152.314.051.101.04.107c.569 1.532.709 2.859.275 4.02l-.143.365-.072.162.088-.019a23.181 23.181 0 001.832-.511l.646-.213.765-.26.73.343A8.962 8.962 0 0012 21a9 9 0 000-18z" +}); + +function SvgIconChat(props) { + return React__default.createElement("svg", _extends$l({ + viewBox: "0 0 24 24" + }, props), _ref$l); +} + +function _extends$m() { _extends$m = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); } + +var _ref$m = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-supergroup_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M16.139 18.818c2.89 0 5.303 2.05 5.438 4.696l.006.235v1.626a1.166 1.166 0 01-2.326.136l-.007-.136v-1.626c0-1.343-1.255-2.501-2.903-2.592l-.208-.006H11.86c-1.679 0-3.001 1.105-3.105 2.431l-.006.167v1.626a1.166 1.166 0 01-2.325.136l-.008-.136v-1.626c0-2.68 2.329-4.806 5.19-4.926l.254-.005h4.278zm8.128-7.565c.116 0 .232.018.343.052 2.026.624 3.289 2.1 3.384 4.239l.006.26v5.6a1.166 1.166 0 01-2.325.136l-.008-.137v-5.599c-.001-1.135-.509-1.825-1.543-2.202l-.046-.016h-1.095c-.598 0-1.091-.45-1.158-1.03l-.008-.136c0-.598.45-1.092 1.03-1.159l.136-.008h1.284zm-19.25 0l.136.008c.58.067 1.03.56 1.03 1.159l-.008.136c-.067.58-.56 1.03-1.158 1.03H3.919l-.052.018c-.983.372-1.533 1.126-1.534 2.252v5.547l-.008.136A1.166 1.166 0 010 21.404v-5.548l.006-.259c.099-2.132 1.402-3.681 3.374-4.29.112-.035.228-.053.345-.053h1.292zM14 8.732c2.412 0 4.375 1.928 4.375 4.318 0 2.39-1.963 4.319-4.375 4.319S9.625 15.44 9.625 13.05c0-2.39 1.963-4.318 4.375-4.318zm0 2.333c-1.132 0-2.042.893-2.042 1.985s.91 1.986 2.042 1.986c1.132 0 2.042-.894 2.042-1.986s-.91-1.985-2.042-1.985zM7.583 1.167c2.412 0 4.375 1.929 4.375 4.318 0 2.39-1.963 4.32-4.375 4.32-2.411 0-4.375-1.93-4.375-4.32 0-2.39 1.964-4.318 4.375-4.318zm12.834 0c2.411 0 4.375 1.929 4.375 4.318 0 2.39-1.964 4.32-4.375 4.32-2.412 0-4.375-1.93-4.375-4.32 0-2.39 1.963-4.318 4.375-4.318zM7.583 3.5c-1.132 0-2.041.894-2.041 1.985 0 1.092.91 1.986 2.041 1.986 1.132 0 2.042-.894 2.042-1.986 0-1.091-.91-1.985-2.042-1.985zm12.834 0c-1.132 0-2.042.894-2.042 1.985 0 1.092.91 1.986 2.042 1.986 1.132 0 2.041-.894 2.041-1.986 0-1.091-.91-1.985-2.041-1.985z" +}); + +function SvgIconSupergroup(props) { + return React__default.createElement("svg", _extends$m({ + viewBox: "0 0 28 28" + }, props), _ref$m); +} + +function _extends$n() { _extends$n = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$n.apply(this, arguments); } + +var _ref$n = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-create_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11c-1.67 0-3.255-.373-4.673-1.039l-.657.218c-2.237.716-3.8.964-4.69.742-1.049-.261-1.256-.72-.62-1.373.439-.524.805-1.178 1.097-1.963.234-.625.142-1.5-.276-2.625A10.933 10.933 0 011 12C1 5.925 5.925 1 12 1zm0 2a9 9 0 00-8.187 12.742l.152.314.051.101.04.107c.569 1.532.709 2.859.275 4.02l-.143.365-.072.162.088-.019a23.181 23.181 0 001.832-.511l.646-.213.765-.26.73.343A8.962 8.962 0 0012 21a9 9 0 000-18zm1 6v2h2c1.333 0 1.333 2 0 2h-2v2c0 1.333-2 1.333-2 0v-2H9c-1.333 0-1.333-2 0-2h2V9c0-1.333 2-1.333 2 0z" +}); + +function SvgIconCreate(props) { + return React__default.createElement("svg", _extends$n({ + viewBox: "0 0 24 24" + }, props), _ref$n); +} + +function _extends$o() { _extends$o = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$o.apply(this, arguments); } + +var _ref$o = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-delete_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M14 1a3 3 0 012.995 2.824L17 4v1h4a1 1 0 01.117 1.993L21 7h-1v13a3 3 0 01-2.824 2.995L17 23H7a3 3 0 01-2.995-2.824L4 20V7H3a1 1 0 01-.117-1.993L3 5h4V4a3 3 0 012.824-2.995L10 1h4zm4 6H6v13a1 1 0 00.883.993L7 21h10a1 1 0 00.993-.883L18 20V7zm-8 3a1 1 0 01.993.883L11 11v6a1 1 0 01-1.993.117L9 17v-6a1 1 0 011-1zm4 0a1 1 0 01.993.883L15 11v6a1 1 0 01-1.993.117L13 17v-6a1 1 0 011-1zm0-7h-4a1 1 0 00-.993.883L9 4v1h6V4a1 1 0 00-.883-.993L14 3z" +}); + +function SvgIconDelete(props) { + return React__default.createElement("svg", _extends$o({ + viewBox: "0 0 24 24" + }, props), _ref$o); +} + +function _extends$p() { _extends$p = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$p.apply(this, arguments); } + +var _ref$p = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-dummy_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" +}); + +function SvgIconDummy(props) { + return React__default.createElement("svg", _extends$p({ + viewBox: "0 0 24 24" + }, props), _ref$p); +} + +function _extends$q() { _extends$q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$q.apply(this, arguments); } + +var _ref$q = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-edit_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M21.875 21.875a1.042 1.042 0 01.121 2.076l-.121.007H3.125a1.042 1.042 0 01-.121-2.076l.121-.007h18.75zM13.847 1.347a1.042 1.042 0 011.473 0l4.167 4.166a1.042 1.042 0 010 1.474L8.028 18.445c-.195.195-.46.305-.736.305H3.125a1.042 1.042 0 01-1.042-1.042v-4.166c0-.277.11-.542.305-.737zm.736 2.21L4.167 13.973v2.694h2.691L17.276 6.25l-2.693-2.693z" +}); + +function SvgIconEdit(props) { + return React__default.createElement("svg", _extends$q({ + viewBox: "0 0 26 26" + }, props), _ref$q); +} + +function _extends$r() { _extends$r = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$r.apply(this, arguments); } + +var _ref$r = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-error_svg__fill", + fill: "#E53157", + fillRule: "evenodd", + d: "M8 1.265c.655 0 1.266.32 1.64.856l.072.11 5.652 9.436c.355.615.357 1.373.006 1.99-.33.579-.925.953-1.59 1.004l-.133.006H2.346a2.001 2.001 0 01-1.772-2.883l.067-.127 5.649-9.43A2 2 0 018 1.266zm0 1.333a.669.669 0 00-.52.248l-.048.07-5.641 9.417a.669.669 0 00.477.994l.085.006H13.64a.664.664 0 00.612-.914l-.036-.076L8.57 2.919a.663.663 0 00-.57-.32zm0 8.069A.667.667 0 118 12a.667.667 0 010-1.333zm0-5.334c.342 0 .624.258.662.59L8.667 6v2.667a.667.667 0 01-1.329.077l-.005-.077V6c0-.368.299-.667.667-.667z" +}); + +function SvgIconError(props) { + return React__default.createElement("svg", _extends$r({ + viewBox: "0 0 16 16" + }, props), _ref$r); +} + +function _extends$s() { _extends$s = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$s.apply(this, arguments); } + +var _ref$s = +/*#__PURE__*/ +React__default.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("path", { + className: "icon-error-filled_svg__fill", + fill: "#E53157", + d: "M10.281 4.18L1.77 17.85a1.87 1.87 0 00-.005 1.924c.353.597 1.01.968 1.724.976h17.024a2.024 2.024 0 001.724-.976 1.87 1.87 0 00-.005-1.924L13.719 4.18A2.028 2.028 0 0012 3.25a2.03 2.03 0 00-1.719.93z" +}), React__default.createElement("path", { + fill: "#FFF", + fillRule: "nonzero", + d: "M11.125 12.875V8.5c0-1.167 1.75-1.167 1.75 0v4.375c0 1.167-1.75 1.167-1.75 0zm0 3.5c0-1.167 1.75-1.167 1.75 0s-1.75 1.167-1.75 0z" +})); + +function SvgIconErrorFilled(props) { + return React__default.createElement("svg", _extends$s({ + viewBox: "0 0 24 24" + }, props), _ref$s); +} + +function _extends$t() { _extends$t = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$t.apply(this, arguments); } + +var _ref$t = +/*#__PURE__*/ +React__default.createElement("g", { + className: "emoji-fail_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("rect", { + width: 26.526, + height: 26.526, + x: 0.737, + y: 0.737, + fill: "#FFF", + rx: 4 +}), React__default.createElement("path", { + fill: "#000", + fillOpacity: 0.12, + d: "M14 23.456a9.457 9.457 0 11.001-18.913A9.457 9.457 0 0114 23.456zm0-1.72a7.736 7.736 0 100-15.473 7.737 7.737 0 000 15.474zm.714-6.005a.86.86 0 11-1.72 0v-.867a.86.86 0 01.588-.816 5.248 5.248 0 001.084-.544c.592-.395.907-.815.907-1.22a1.72 1.72 0 00-3.341-.574.86.86 0 11-1.622-.57 3.438 3.438 0 016.682 1.145c0 1.1-.651 1.969-1.672 2.65a6.81 6.81 0 01-.906.508v.288zm-1.72 2.425a.86.86 0 011.72 0v.142a.86.86 0 11-1.72 0V18.156z" +})); + +function SvgEmojiFail(props) { + return React__default.createElement("svg", _extends$t({ + viewBox: "0 0 28 28" + }, props), _ref$t); +} + +function _extends$u() { _extends$u = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$u.apply(this, arguments); } + +var _ref$u = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-reactions-add_svg__fill", + fillOpacity: 0.88, + fillRule: "evenodd", + d: "M11.033 1.107a9.98 9.98 0 012.669.362.734.734 0 01-.393 1.413A8.466 8.466 0 002.567 11.04 8.466 8.466 0 1019.2 8.8a.736.736 0 01.514-.902.735.735 0 01.901.514c.233.85.352 1.731.352 2.628 0 5.486-4.448 9.933-9.934 9.933-5.486 0-9.933-4.447-9.933-9.933s4.447-9.933 9.933-9.933zm3.68 11.96c.5 0 .854.49.696.965-.644 1.933-2.385 3.261-4.376 3.261-1.99 0-3.732-1.328-4.375-3.261a.733.733 0 01.597-.959l.098-.006h7.36zm-1.195 1.466h-4.97l.101.131a3.115 3.115 0 002.012 1.14l.198.018.174.005c.868 0 1.672-.38 2.254-1.012l.13-.15.101-.132zM7.353 7.547c.374 0 .683.28.728.641l.006.092v1.84a.734.734 0 01-1.461.092l-.006-.092V8.28c0-.405.328-.733.733-.733zm7.36 0c.374 0 .683.28.728.641l.006.092v1.84a.734.734 0 01-1.461.092l-.006-.092V8.28c0-.405.328-.733.733-.733zM18.398 0c.405 0 .733.328.733.733v2.218h2.209a.734.734 0 010 1.467h-2.21v2.209a.732.732 0 11-1.466 0V4.418h-2.217a.734.734 0 110-1.466l2.216-.001.001-2.218c0-.405.328-.733.733-.733z" +}); + +function SvgIconReactionsAdd(props) { + return React__default.createElement("svg", _extends$u({ + viewBox: "0 0 22 22" + }, props), _ref$u); +} + +function _extends$v() { _extends$v = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$v.apply(this, arguments); } + +var _ref$v = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-emoji-reactions-add_svg__fill", + fillOpacity: 0.38, + fillRule: "evenodd", + d: "M10.03 1.006c.828 0 1.643.112 2.426.33a.666.666 0 11-.357 1.284 7.741 7.741 0 00-2.069-.28 7.697 7.697 0 107.697 7.696c0-.696-.092-1.379-.272-2.037a.667.667 0 011.287-.352c.21.773.319 1.574.319 2.39a9.03 9.03 0 01-9.03 9.03 9.03 9.03 0 11-.001-18.06zm3.346 10.873c.455 0 .776.445.632.877-.585 1.757-2.168 2.965-3.978 2.965s-3.392-1.208-3.978-2.965a.667.667 0 01.538-.87l.095-.007h6.69zm-1.087 1.333H7.771l.092.12c.46.563 1.103.938 1.813 1.033l.196.018.158.005c.784 0 1.512-.341 2.04-.91l.128-.147.091-.12zM6.685 6.86c.34 0 .62.254.661.583l.006.083V9.2a.667.667 0 01-1.329.084L6.018 9.2V7.527c0-.368.299-.666.667-.666zm6.69 0c.34 0 .621.254.662.583l.005.083V9.2a.667.667 0 01-1.328.084L12.71 9.2V7.527c0-.368.299-.666.667-.666zM16.726 0c.368 0 .667.298.667.667l-.001 2.016H19.4a.667.667 0 010 1.334l-2.01-.001.002 2.008a.667.667 0 01-1.334 0V4.016h-2.016a.666.666 0 110-1.333h2.016V.667c0-.369.299-.667.667-.667z" +}); + +function SvgIconEmojiReactionsAdd(props) { + return React__default.createElement("svg", _extends$v({ + viewBox: "0 0 20 20" + }, props), _ref$v); +} + +function _extends$w() { _extends$w = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$w.apply(this, arguments); } + +var _ref$w = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-delivered_svg__fill", + fillOpacity: 0.38, + fillRule: "evenodd", + d: "M2.207 11.793l5 5a1 1 0 01-1.414 1.414l-5-5a1 1 0 011.414-1.414zm19.586-6a1 1 0 011.414 1.414l-11 11a1 1 0 01-1.414 0l-5-5a1 1 0 011.414-1.414l4.293 4.293zm-3.586 0a1 1 0 010 1.414l-5.999 5.999a1 1 0 01-1.414-1.414l5.999-6a1 1 0 011.414 0z" +}); + +function SvgIconDelivered(props) { + return React__default.createElement("svg", _extends$w({ + viewBox: "0 0 24 24" + }, props), _ref$w); +} + +function _extends$x() { _extends$x = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$x.apply(this, arguments); } + +var _ref$x = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-disconnected_svg__fill", + fillRule: "evenodd", + d: "M3.55 2.276l.093.081L10.9 9.615a.895.895 0 01.148.147l10.594 10.595a.91.91 0 01-1.193 1.367l-.093-.081-5.015-5.015a.913.913 0 01-.705-.15 4.545 4.545 0 00-5.265 0 .91.91 0 01-1.053-1.483 6.358 6.358 0 014.24-1.151l-2.529-2.53c-1.4.316-2.706.96-3.81 1.883a.91.91 0 01-1.167-1.394 10.854 10.854 0 013.504-1.962L6.445 7.728a13.518 13.518 0 00-3.461 2.226.909.909 0 01-1.204-1.362 15.38 15.38 0 013.299-2.229l-2.722-2.72A.91.91 0 013.55 2.276zm13.14 8.052c.812.397 1.572.894 2.262 1.479a.908.908 0 11-1.177 1.386 9.015 9.015 0 00-1.883-1.23.91.91 0 01.798-1.635zm5.53-1.737a.91.91 0 01-1.203 1.363A13.642 13.642 0 0010.9 6.588a.91.91 0 01-.146-1.813A15.457 15.457 0 0122.22 8.591z" +}); + +function SvgIconDisconnected(props) { + return React__default.createElement("svg", _extends$x({ + viewBox: "0 0 24 24" + }, props), _ref$x); +} + +function _extends$y() { _extends$y = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$y.apply(this, arguments); } + +var _ref$y = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-document_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M14 1a1.01 1.01 0 01.25.031l.03.009c.03.009.061.02.091.031l.027.012a.914.914 0 01.195.112c.04.03.078.062.114.098l-.093-.082.011.009.082.073 6 6a1.006 1.006 0 01.21.309l.012.027c.012.03.022.06.031.091l.008.03A.921.921 0 0121 8l-.008-.126.001.01L21 8v12a3 3 0 01-3 3H6a3 3 0 01-3-3V4a3 3 0 013-3h8zm-1 2H6a1 1 0 00-1 1v16a1 1 0 001 1h12a1 1 0 001-1V9h-5a1 1 0 01-.993-.883L13 8V3zm4.585 4L15 4.415V7h2.585z" +}); + +function SvgIconDocument(props) { + return React__default.createElement("svg", _extends$y({ + viewBox: "0 0 24 24" + }, props), _ref$y); +} + +function _extends$z() { _extends$z = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$z.apply(this, arguments); } + +var _ref$z = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-download_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M21 16a1 1 0 01.993.883L22 17v3a3 3 0 01-2.824 2.995L19 23H5a3 3 0 01-2.995-2.824L2 20v-3a1 1 0 011.993-.117L4 17v3a1 1 0 00.883.993L5 21h14a1 1 0 00.993-.883L20 20v-3a1 1 0 011-1zM12 1a1 1 0 01.993.883L13 2v11.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-4 4a1.006 1.006 0 01-.09.08l.09-.08a1.008 1.008 0 01-.674.292L12 17h-.032l-.054-.004L12 17a1.008 1.008 0 01-.613-.21 1.037 1.037 0 01-.094-.083l-4-4a1 1 0 011.32-1.497l.094.083L11 13.585V2a1 1 0 011-1z" +}); + +function SvgIconDownload(props) { + return React__default.createElement("svg", _extends$z({ + viewBox: "0 0 24 24" + }, props), _ref$z); +} + +function _extends$A() { _extends$A = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$A.apply(this, arguments); } + +var _ref$A = +/*#__PURE__*/ +React__default.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("rect", { + fill: "#FFF", + fillRule: "nonzero", + rx: 10 +}), React__default.createElement("path", { + className: "icon-file-audio_svg__fill", + fill: "#7B53EF", + d: "M18.815 9.185c2.913 2.934 2.913 7.696 0 10.63a.617.617 0 01-.894-.013.67.67 0 01.012-.925 6.215 6.215 0 000-8.754.67.67 0 01-.012-.925.617.617 0 01.894-.013zm-5.291 0a.646.646 0 011.044.517v9.596c0 .544-.62.85-1.044.516l-3.31-2.702H7.646A.65.65 0 017 16.458v-3.916a.65.65 0 01.647-.654h2.566zm2.886 2.42a4.113 4.113 0 010 5.783.617.617 0 01-.893-.012.67.67 0 01.012-.925 2.772 2.772 0 000-3.908.67.67 0 01-.012-.925.617.617 0 01.893-.013z" +})); + +function SvgIconFileAudio(props) { + return React__default.createElement("svg", _extends$A({ + viewBox: "0 0 28 28" + }, props), _ref$A); +} + +function _extends$B() { _extends$B = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$B.apply(this, arguments); } + +var _ref$B = +/*#__PURE__*/ +React__default.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("rect", { + fill: "#FFF", + fillRule: "nonzero", + rx: 10 +}), React__default.createElement("path", { + className: "icon-file-document_svg__fill", + fill: "#7B53EF", + d: "M16.317 5.667H9.05C7.907 5.667 7 6.58 7 7.687v12.625c0 1.107.907 2.021 2.05 2.021h9.9c1.143 0 2.05-.914 2.05-2.02v-9.97a.673.673 0 00-.198-.473l-3.95-3.984a.753.753 0 00-.535-.22z" +}), React__default.createElement("path", { + fill: "#FFF", + d: "M17.025 16.667c.354 0 .642.302.642.675 0 .372-.288.675-.642.675h-6.383c-.355 0-.642-.303-.642-.675 0-.373.287-.675.642-.675zm0-2.667c.354 0 .642.302.642.675 0 .373-.288.675-.642.675h-6.383c-.355 0-.642-.302-.642-.675 0-.373.287-.675.642-.675zm-3.357-2.667c.369 0 .668.303.668.675 0 .373-.3.675-.668.675h-3a.672.672 0 01-.668-.675c0-.372.3-.675.668-.675z" +})); + +function SvgIconFileDocument(props) { + return React__default.createElement("svg", _extends$B({ + viewBox: "0 0 28 28" + }, props), _ref$B); +} + +function _extends$C() { _extends$C = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$C.apply(this, arguments); } + +var _ref$C = +/*#__PURE__*/ +React__default.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("circle", { + cx: 28, + cy: 28, + r: 28, + fill: "#FFF", + fillOpacity: 0.88 +}), React__default.createElement("path", { + className: "icon-gif_svg__fill", + fill: "#000", + fillOpacity: 0.55, + d: "M20.608 35.182c1.094 0 2.09-.162 2.99-.487.899-.325 1.595-.783 2.087-1.372v-5.296h-5.223v2.015h2.489v2.287c-.438.438-1.17.657-2.197.657-1.02 0-1.796-.356-2.324-1.067-.529-.71-.793-1.762-.793-3.153v-.848c.006-1.38.252-2.418.738-3.117.486-.699 1.194-1.048 2.124-1.048.729 0 1.302.176 1.718.528.416.353.685.909.806 1.668h2.662c-.164-1.434-.69-2.526-1.577-3.276s-2.118-1.126-3.691-1.126c-1.13 0-2.116.257-2.958.77-.842.514-1.486 1.255-1.932 2.224-.447.97-.67 2.116-.67 3.44v.903c.012 1.288.253 2.41.724 3.363.471.954 1.14 1.682 2.006 2.183.865.502 1.873.752 3.021.752zm10.2-.182V21.73h-2.735V35h2.734zm5.268 0v-5.423h5.25V27.37h-5.25v-3.427h5.906v-2.215h-8.64V35h2.734z" +})); + +function SvgIconGif(props) { + return React__default.createElement("svg", _extends$C({ + viewBox: "0 0 56 56" + }, props), _ref$C); +} + +function _extends$D() { _extends$D = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$D.apply(this, arguments); } + +var _ref$D = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-info_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 2a9 9 0 100 18 9 9 0 000-18zm0 8a1 1 0 011 1v4a1 1 0 01-2 0v-4a1 1 0 011-1zm0-3a1 1 0 110 2 1 1 0 010-2z" +}); + +function SvgIconInfo(props) { + return React__default.createElement("svg", _extends$D({ + viewBox: "0 0 24 24" + }, props), _ref$D); +} + +function _extends$E() { _extends$E = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$E.apply(this, arguments); } + +var _ref$E = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-leave_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 2a1 1 0 01.117 1.993L12 4H4a1 1 0 00-.993.883L3 5v14a1 1 0 00.883.993L4 20h8a1 1 0 01.117 1.993L12 22H4a3 3 0 01-2.995-2.824L1 19V5a3 3 0 012.824-2.995L4 2h8zm6.613 5.21l.094.083 4 4a1 1 0 01.083 1.32l-.083.094-4 4a1 1 0 01-1.497-1.32l.083-.094 1.792-1.793H7.5a1 1 0 01-.117-1.993L7.5 11.5h12.585l-2.792-2.793a1 1 0 01-.083-1.32l.083-.094a1 1 0 011.32-.083z" +}); + +function SvgIconLeave(props) { + return React__default.createElement("svg", _extends$E({ + viewBox: "0 0 24 24" + }, props), _ref$E); +} + +function _extends$F() { _extends$F = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$F.apply(this, arguments); } + +var _ref$F = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-members_svg__fill", + fillRule: "evenodd", + d: "M13 14a5 5 0 014.995 4.783L18 19v2a1 1 0 01-1.993.117L16 21v-2a3 3 0 00-2.824-2.995L13 16H5a3 3 0 00-2.995 2.824L2 19v2a1 1 0 01-1.993.117L0 21v-2a5 5 0 014.783-4.995L5 14h8zm7.25.162a5 5 0 013.745 4.611L24 19v2a1 1 0 01-1.993.117L22 21v-2a3 3 0 00-2.25-2.902 1 1 0 11.5-1.936zM9 2a5 5 0 110 10A5 5 0 019 2zm7.248.161a5 5 0 010 9.688 1 1 0 01-.496-1.938 3 3 0 000-5.812 1 1 0 11.496-1.938zM9 4a3 3 0 100 6 3 3 0 000-6z" +}); + +function SvgIconMembers(props) { + return React__default.createElement("svg", _extends$F({ + viewBox: "0 0 24 24" + }, props), _ref$F); +} + +function _extends$G() { _extends$G = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$G.apply(this, arguments); } + +var _ref$G = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-notifications_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M13.73 20a1 1 0 01.865 1.502 3 3 0 01-5.19 0 1 1 0 01.752-1.496L10.27 20h3.46zM12 1a8 8 0 017.996 7.75L20 9v5a2 2 0 001.85 1.995l.283.012c1.111.12 1.154 1.73.128 1.965l-.128.021L22 18H2l-.133-.007c-1.156-.124-1.156-1.862 0-1.986l.282-.012a2 2 0 001.845-1.838L4 14V9a8 8 0 018-8zm0 2a6 6 0 00-5.996 5.775L6 9v5c0 .586-.126 1.142-.352 1.643l-.103.212-.082.145h13.073l-.08-.145a3.973 3.973 0 01-.43-1.402l-.021-.253L18 14V9a6 6 0 00-6-6z" +}); + +function SvgIconNotifications(props) { + return React__default.createElement("svg", _extends$G({ + viewBox: "0 0 24 24" + }, props), _ref$G); +} + +function _extends$H() { _extends$H = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$H.apply(this, arguments); } + +var _ref$H = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-photo_svg__fill", + fillRule: "evenodd", + d: "M19 2a3 3 0 013 3v14a3 3 0 01-3 3H4.941v-.002l-.117-.003A3 3 0 012 19V5a3 3 0 013-3zm-3 9.415L7.414 20H19a1 1 0 00.993-.883L20 19v-3.585l-4-4zM19 4H5a1 1 0 00-1 1v14a1 1 0 00.65.937L15.292 9.293a1 1 0 011.32-.083l.094.083L20 12.585V5a1 1 0 00-.883-.993L19 4zM8.5 6a2.5 2.5 0 110 5 2.5 2.5 0 010-5zm0 2a.5.5 0 100 1 .5.5 0 000-1z" +}); + +function SvgIconPhoto(props) { + return React__default.createElement("svg", _extends$H({ + viewBox: "0 0 24 24" + }, props), _ref$H); +} + +function _extends$I() { _extends$I = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$I.apply(this, arguments); } + +var _ref$I = +/*#__PURE__*/ +React__default.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("circle", { + cx: 28, + cy: 28, + r: 28, + fill: "#FFF", + fillOpacity: 0.88 +}), React__default.createElement("path", { + className: "icon-play_svg__fill", + fill: "#000", + fillOpacity: 0.55, + d: "M38.91 29.987c1.009-.63 1.007-1.664.007-2.304l-17.29-11.055c-1.006-.643-1.809-.2-1.793 1.004l.277 21.891c.015 1.198.847 1.657 1.855 1.029L38.91 29.987z" +})); + +function SvgIconPlay(props) { + return React__default.createElement("svg", _extends$I({ + viewBox: "0 0 56 56" + }, props), _ref$I); +} + +function _extends$J() { _extends$J = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$J.apply(this, arguments); } + +var _ref$J = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-plus_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M13 11h7c1.333 0 1.333 2 0 2h-7v7c0 1.333-2 1.333-2 0v-7H4c-1.333 0-1.333-2 0-2h7V4c0-1.333 2-1.333 2 0v7z" +}); + +function SvgIconPlus(props) { + return React__default.createElement("svg", _extends$J({ + viewBox: "0 0 24 24" + }, props), _ref$J); +} + +function _extends$K() { _extends$K = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$K.apply(this, arguments); } + +var _ref$K = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-read_svg__fill", + fill: "#2EBA9F", + fillRule: "evenodd", + d: "M2.207 11.793l5 5a1 1 0 01-1.414 1.414l-5-5a1 1 0 011.414-1.414zm19.586-6a1 1 0 011.414 1.414l-11 11a1 1 0 01-1.414 0l-5-5a1 1 0 011.414-1.414l4.293 4.293zm-3.586 0a1 1 0 010 1.414l-5.999 5.999a1 1 0 01-1.414-1.414l5.999-6a1 1 0 011.414 0z" +}); + +function SvgIconRead(props) { + return React__default.createElement("svg", _extends$K({ + viewBox: "0 0 24 24" + }, props), _ref$K); +} + +function _extends$L() { _extends$L = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$L.apply(this, arguments); } + +var _ref$L = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-refresh_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M14.419 4.51l.175.167 2.073 1.927V4.167c0-.428.321-.78.736-.828l.097-.006c.427 0 .78.322.828.736l.005.098v5c0 .427-.321.78-.736.827L17.5 10h-5a.833.833 0 01-.097-1.661l.097-.006h3.578L13.44 5.88a5.982 5.982 0 00-7.05-.986C4.083 6.15 2.898 8.756 3.48 11.286c.58 2.534 2.792 4.385 5.425 4.537 2.635.152 5.05-1.433 5.928-3.883a.833.833 0 011.569.561c-1.127 3.15-4.223 5.18-7.593 4.986-3.37-.195-6.206-2.57-6.954-5.828-.748-3.261.778-6.617 3.738-8.229 2.884-1.57 6.453-1.118 8.826 1.08z" +}); + +function SvgIconRefresh(props) { + return React__default.createElement("svg", _extends$L({ + width: 20, + height: 20 + }, props), _ref$L); +} + +function _extends$M() { _extends$M = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$M.apply(this, arguments); } + +var _ref$M = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-send_svg__fill", + fillRule: "evenodd", + d: "M20.554 10.117L2.52 1.024C1.613.619.605 1.428 1.008 2.337l2.115 5.685a2 2 0 001.545 1.275l10.345 1.73-10.345 1.728a2 2 0 00-1.545 1.275l-2.115 5.685c-.302.91.605 1.718 1.511 1.213l18.035-9.094c.706-.303.706-1.313 0-1.717z" +}); + +function SvgIconSend(props) { + return React__default.createElement("svg", _extends$M({ + viewBox: "0 0 22 22" + }, props), _ref$M); +} + +function _extends$N() { _extends$N = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$N.apply(this, arguments); } + +var _ref$N = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-sent_svg__fill", + fillOpacity: 0.38, + fillRule: "evenodd", + d: "M4.707 11.793a1 1 0 10-1.414 1.414l5 5a1 1 0 001.414 0l11-11a1 1 0 10-1.414-1.414L9 16.086l-4.293-4.293z" +}); + +function SvgIconSent(props) { + return React__default.createElement("svg", _extends$N({ + viewBox: "0 0 24 24" + }, props), _ref$N); +} + +function _extends$O() { _extends$O = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$O.apply(this, arguments); } + +var _ref$O = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-shevron_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M8.293 17.293a1 1 0 001.414 1.414l6-6a1 1 0 000-1.414l-6-6a1 1 0 00-1.414 1.414L13.586 12l-5.293 5.293z" +}); + +function SvgIconShevron(props) { + return React__default.createElement("svg", _extends$O({ + viewBox: "0 0 24 24" + }, props), _ref$O); +} + +function _extends$P() { _extends$P = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$P.apply(this, arguments); } + +var _ref$P = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-shevron-down_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M6.045 8.205a1.125 1.125 0 10-1.59 1.59l6.75 6.75c.439.44 1.151.44 1.59 0l6.75-6.75a1.125 1.125 0 10-1.59-1.59L12 14.159 6.045 8.205z" +}); + +function SvgIconShevronDown(props) { + return React__default.createElement("svg", _extends$P({ + viewBox: "0 0 24 24" + }, props), _ref$P); +} + +function _extends$Q() { _extends$Q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Q.apply(this, arguments); } + +var _ref$Q = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-spinner-small_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 22.5c5.799 0 10.5-4.701 10.5-10.5S17.799 1.5 12 1.5 1.5 6.201 1.5 12a1.432 1.432 0 002.864 0A7.636 7.636 0 1112 19.636a1.432 1.432 0 000 2.864z" +}); + +function SvgIconSpinnerSmall(props) { + return React__default.createElement("svg", _extends$Q({ + viewBox: "0 0 24 24" + }, props), _ref$Q); +} + +function _extends$R() { _extends$R = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$R.apply(this, arguments); } + +var _ref$R = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-spinner-large_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24a2.323 2.323 0 104.645 0C4.645 13.31 13.311 4.645 24 4.645c10.69 0 19.355 8.666 19.355 19.355 0 10.69-8.666 19.355-19.355 19.355A2.323 2.323 0 0024 48z" +}); + +function SvgIconSpinnerLarge(props) { + return React__default.createElement("svg", _extends$R({ + viewBox: "0 0 48 48" + }, props), _ref$R); +} + +function _extends$S() { _extends$S = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$S.apply(this, arguments); } + +var _ref$S = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-user_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M16 14a5 5 0 014.995 4.783L21 19v2a1 1 0 01-1.993.117L19 21v-2a3 3 0 00-2.824-2.995L16 16H8a3 3 0 00-2.995 2.824L5 19v2a1 1 0 01-1.993.117L3 21v-2a5 5 0 014.783-4.995L8 14h8zM12 2a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z" +}); + +function SvgIconUser(props) { + return React__default.createElement("svg", _extends$S({ + viewBox: "0 0 24 24" + }, props), _ref$S); +} + +function _extends$T() { _extends$T = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$T.apply(this, arguments); } + +var _ref$T = +/*#__PURE__*/ +React__default.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("path", { + className: "icon-operator_svg__stroke", + d: "M2 6l5 4 5-7 5 7 5-4-3 14H5z" +}), React__default.createElement("circle", { + className: "icon-operator_svg__fill", + cx: 12, + cy: 14, + r: 2 +})); + +function SvgIconOperator(props) { + return React__default.createElement("svg", _extends$T({ + viewBox: "0 0 24 24" + }, props), _ref$T); +} + +function _extends$U() { _extends$U = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$U.apply(this, arguments); } + +var _ref$U = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-banned_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 2a9 9 0 10.001 18.001A9 9 0 0012 3zm4 8a1 1 0 010 2H8a1 1 0 010-2h8z" +}); + +function SvgIconBanned(props) { + return React__default.createElement("svg", _extends$U({ + viewBox: "0 0 24 24" + }, props), _ref$U); +} + +function _extends$V() { _extends$V = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$V.apply(this, arguments); } + +var _ref$V = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-muted_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M20.857 7.357l.026.045A9.96 9.96 0 0122 12a9.937 9.937 0 01-1.074 4.51c-.38 1.021-.463 1.817-.25 2.386.265.713.598 1.308.997 1.784.578.594.39 1.01-.565 1.249-.763.19-2.073 0-3.929-.571l-.333-.105-.598-.198A9.965 9.965 0 0112 22a9.952 9.952 0 01-4.622-1.13l-.022-.011 1.5-1.5c.982.42 2.046.641 3.144.641 1.073 0 2.114-.21 3.079-.613l.318-.142.722-.339 1.355.449.26.082c.228.07.445.133.65.19l.298.08.182.045-.063-.157-.075-.223c-.295-.974-.189-2.057.225-3.275l.1-.284.04-.107.198-.406A7.949 7.949 0 0020 12a7.97 7.97 0 00-.64-3.143l1.497-1.5zM12 2c2.401 0 4.604.846 6.328 2.257l1.965-1.964a1 1 0 011.497 1.32l-.083.094-18 18a1 1 0 01-1.497-1.32l.083-.094 1.963-1.965a9.956 9.956 0 01-2.25-5.998L2 12C2 6.477 6.477 2 12 2zm0 2a8 8 0 00-6.32 12.906L16.905 5.68a7.957 7.957 0 00-4.607-1.675L12 4z" +}); + +function SvgIconMuted(props) { + return React__default.createElement("svg", _extends$V({ + viewBox: "0 0 24 24" + }, props), _ref$V); +} + +function _extends$W() { _extends$W = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$W.apply(this, arguments); } + +var _ref$W = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-muted-foreground_svg__fill", + fill: "#FFF", + fillOpacity: 0.88, + fillRule: "evenodd", + d: "M13.904 4.904l.018.03c.476.919.745 1.96.745 3.066a6.628 6.628 0 01-.716 3.006c-.253.682-.309 1.212-.168 1.591.178.476.4.872.666 1.19.385.396.26.674-.377.832-.503.125-1.361.003-2.576-.367l-.266-.083-.398-.132c-.86.404-1.82.63-2.832.63a6.632 6.632 0 01-3.082-.754l-.014-.007 1-1c.655.28 1.364.427 2.096.427a5.32 5.32 0 001.999-.386l.266-.117.481-.226.903.299.174.055c.152.047.296.089.433.126l.199.054.121.03-.042-.105-.05-.149c-.192-.635-.129-1.34.133-2.132l.084-.24.026-.071.132-.271a5.294 5.294 0 00.474-2.2c0-.732-.147-1.44-.427-2.096l.998-1zm.567-3.375c.24.24.26.618.056.88l-.056.062-12 12a.666.666 0 01-.998-.88l.056-.062 1.31-1.31a6.636 6.636 0 01-1.5-3.94L1.333 8A6.667 6.667 0 0112.22 2.838l1.309-1.31c.26-.26.682-.26.942 0zM8 2.667a5.332 5.332 0 00-4.213 8.603l7.484-7.484a5.32 5.32 0 00-3.006-1.113L8 2.667z" +}); + +function SvgIconMutedForeground(props) { + return React__default.createElement("svg", _extends$W({ + viewBox: "0 0 16 16" + }, props), _ref$W); +} + +function _extends$X() { _extends$X = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$X.apply(this, arguments); } + +var _ref$X = +/*#__PURE__*/ +React__default.createElement("path", { + className: "icon-freeze_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M9.613 1.21l.095.083L12 3.585l2.293-2.292a1 1 0 011.32-.083l.095.083a1 1 0 01.083 1.32l-.083.094L13 5.414v4.853l4.203-2.427.992-3.697a1 1 0 011.957.395l-.025.123-.84 3.131 3.133.84c.492.132.8.61.732 1.102l-.025.123c-.132.492-.61.8-1.102.732l-.123-.025-3.698-.991L14.001 12l4.203 2.426 3.698-.99.123-.025c.492-.068.97.24 1.102.732l.025.123a1 1 0 01-.732 1.102l-3.133.839.84 3.132.025.123a1 1 0 01-1.957.395l-.992-3.698L13 13.732v4.853l2.708 2.708a1 1 0 01-1.32 1.497l-.095-.083L12 20.414l-2.292 2.293a1 1 0 01-1.32.083l-.095-.083a1 1 0 01-.083-1.32l.083-.094L11 18.585v-4.853l-4.203 2.427-.99 3.698a1.002 1.002 0 01-1.958-.395l.025-.123.839-3.131-3.132-.84c-.492-.132-.8-.61-.732-1.102l.025-.123c.132-.492.61-.8 1.102-.732l.123.025 3.697.99 4.203-2.427-4.203-2.426-3.697.991-.123.025c-.492.068-.97-.24-1.102-.732L.85 9.734a1 1 0 01.732-1.102l3.132-.84-.839-3.131-.025-.123a1 1 0 011.957-.395l.991 3.697L11 10.267V5.414L8.293 2.707a1 1 0 011.32-1.497z" +}); + +function SvgIconFreeze(props) { + return React__default.createElement("svg", _extends$X({ + viewBox: "0 0 24 24" + }, props), _ref$X); +} + +function _extends$Y() { _extends$Y = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Y.apply(this, arguments); } + +var _ref$Y = +/*#__PURE__*/ +React__default.createElement("g", { + className: "icon-toggleon_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("rect", { + width: 40, + height: 20, + x: 2, + y: 2, + fill: "#7B53EF", + rx: 10 +}), React__default.createElement("circle", { + cx: 32, + cy: 12, + r: 6, + fill: "#FFF" +}), React__default.createElement("path", { + fill: "#7B53EF", + d: "M32 0H12C5.373 0 0 5.373 0 12s5.373 12 12 12h20c6.627 0 12-5.373 12-12S38.627 0 32 0zm0 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20z" +})); + +function SvgIconToggleon(props) { + return React__default.createElement("svg", _extends$Y({ + viewBox: "0 0 44 24" + }, props), _ref$Y); +} + +function _extends$Z() { _extends$Z = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Z.apply(this, arguments); } + +var _ref$Z = +/*#__PURE__*/ +React__default.createElement("g", { + className: "icon-toggleoff_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React__default.createElement("rect", { + width: 40, + height: 20, + x: 2, + y: 2, + fill: "#A8A8A8", + rx: 10 +}), React__default.createElement("circle", { + cx: 12, + cy: 12, + r: 6, + fill: "#FFF" +}), React__default.createElement("path", { + fill: "#A8A8A8", + d: "M32 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20zm0 1H12a9 9 0 00-.265 17.996L12 21h20a9 9 0 00.265-17.996L32 3z" +}), React__default.createElement("path", { + fill: "#FFF", + d: "M32 0H12C5.373 0 0 5.373 0 12s5.373 12 12 12h20c6.627 0 12-5.373 12-12S38.627 0 32 0zm0 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20z" +})); + +function SvgIconToggleoff(props) { + return React__default.createElement("svg", _extends$Z({ + viewBox: "0 0 44 24" + }, props), _ref$Z); +} + +var Colors = { + DEFAULT: 'DEFAULT', + PRIMARY: 'PRIMARY', + SECONDARY: 'SECONDARY', + CONTENT: 'CONTENT', + CONTENT_INVERSE: 'CONTENT_INVERSE', + WHITE: 'WHITE', + SENT: 'SENT', + READ: 'READ', + ON_BACKGROUND_2: 'ON_BACKGROUND_2', + ON_BACKGROUND_3: 'ON_BACKGROUND_3', + BACKGROUND_3: 'BACKGROUND_3' +}; + +function changeColorToClassName(color) { + switch (color) { + case Colors.PRIMARY: + return 'sendbird-color--primary'; + + case Colors.SECONDARY: + return 'sendbird-color--secondary'; + + case Colors.CONTENT: + return 'sendbird-color--content'; + + case Colors.CONTENT_INVERSE: + return 'sendbird-color--content-inverse'; + + case Colors.WHITE: + return 'sendbird-color--white'; + + case Colors.SENT: + return 'sendbird-color--sent'; + + case Colors.READ: + return 'sendbird-color--read'; + + case Colors.ON_BACKGROUND_2: + return 'sendbird-color--on-background-2'; + + case Colors.ON_BACKGROUND_3: + return 'sendbird-color--on-background-3'; + + case Colors.BACKGROUND_3: + return 'sendbird-color--background-3'; + + default: + return ''; + } +} + +function changeTypeToIconComponent(type) { + switch (type) { + case Type.ADD: + return React__default.createElement(SvgIconAdd, null); + + case Type.ARROW_LEFT: + return React__default.createElement(SvgIconArrowLeft, null); + + case Type.CAMERA: + return React__default.createElement(SvgIconCamera, null); + + case Type.ATTACH: + return React__default.createElement(SvgIconAttach, null); + + case Type.AVATAR_DARK: + return React__default.createElement(SvgIconAvatarDark, null); + + case Type.AVATAR_LIGHT: + return React__default.createElement(SvgIconAvatarLight, null); + + case Type.AVATAR_NO_IMAGE: + return React__default.createElement(SvgAvatarNoImageLight, null); + + case Type.BROADCAST_LARGE_DARK: + return React__default.createElement(SvgIconBroadcastLrgDark, null); + + case Type.BROADCAST_LARGE_LIGHT: + return React__default.createElement(SvgIconBroadcastLrgLight, null); + + case Type.BROADCAST_DARK: + return React__default.createElement(SvgIconBroadcastDark, null); + + case Type.BROADCAST_LIGHT: + return React__default.createElement(SvgIconBroadcastLight, null); + + case Type.BROADCAST: + return React__default.createElement(SvgIconBroadcast, null); + + case Type.FROZEN_DARK: + return React__default.createElement(SvgFrozenDark, null); + + case Type.FROZEN_LIGHT: + return React__default.createElement(SvgFrozenLight, null); + + case Type.MORE: + return React__default.createElement(SvgIconMore, null); + + case Type.MUTE: + return React__default.createElement(SvgIconMute, null); + + case Type.NO_THUMBNAIL: + return React__default.createElement(SvgIconNoThumbnail, null); + + case Type.CHECKBOX: + return React__default.createElement(SvgIconCheckbox, null); + + case Type.CHECKBOX_OFF: + return React__default.createElement(SvgIconCheckboxOff, null); + + case Type.CLOSE: + return React__default.createElement(SvgIconClose, null); + + case Type.COPY: + return React__default.createElement(SvgIconCopy, null); + + case Type.CHAT: + return React__default.createElement(SvgIconChat, null); + + case Type.SUPER_GROUP: + return React__default.createElement(SvgIconSupergroup, null); + + case Type.CREATE: + return React__default.createElement(SvgIconCreate, null); + + case Type.DELETE: + return React__default.createElement(SvgIconDelete, null); + + case Type.DISCONNECTED: + return React__default.createElement(SvgIconDisconnected, null); + + case Type.DUMMY: + return React__default.createElement(SvgIconDummy, null); + + case Type.EDIT: + return React__default.createElement(SvgIconEdit, null); + + case Type.ERROR: + return React__default.createElement(SvgIconError, null); + + case Type.ERROR_FILLED: + return React__default.createElement(SvgIconErrorFilled, null); + + case Type.EMOJI_FAILED: + return React__default.createElement(SvgEmojiFail, null); + + case Type.EMOJI_REACTIONS_ADD: + return React__default.createElement(SvgIconReactionsAdd, null); + + case Type.EMOJI_REACTIONS_ADD_GRAY: + return React__default.createElement(SvgIconEmojiReactionsAdd, null); + + case Type.DELIVERED: + return React__default.createElement(SvgIconDelivered, null); + + case Type.DOCUMENT: + return React__default.createElement(SvgIconDocument, null); + + case Type.DOWNLOAD: + return React__default.createElement(SvgIconDownload, null); + + case Type.FILE_AUDIO: + return React__default.createElement(SvgIconFileAudio, null); + + case Type.FILE_DOCUMENT: + return React__default.createElement(SvgIconFileDocument, null); + + case Type.GIF: + return React__default.createElement(SvgIconGif, null); + + case Type.INFO: + return React__default.createElement(SvgIconInfo, null); + + case Type.LEAVE: + return React__default.createElement(SvgIconLeave, null); + + case Type.MEMBERS: + return React__default.createElement(SvgIconMembers, null); + + case Type.NOTIFICATIONS: + return React__default.createElement(SvgIconNotifications, null); + + case Type.PHOTO: + return React__default.createElement(SvgIconPhoto, null); + + case Type.PLAY: + return React__default.createElement(SvgIconPlay, null); + + case Type.PLUS: + return React__default.createElement(SvgIconPlus, null); + + case Type.READ: + return React__default.createElement(SvgIconRead, null); + + case Type.REFRESH: + return React__default.createElement(SvgIconRefresh, null); + + case Type.SEND: + return React__default.createElement(SvgIconSend, null); + + case Type.SENT: + return React__default.createElement(SvgIconSent, null); + + case Type.SHEVRON: + return React__default.createElement(SvgIconShevron, null); + + case Type.SHEVRON_DOWN: + return React__default.createElement(SvgIconShevronDown, null); + + case Type.SPINNER: + return React__default.createElement(SvgIconSpinnerSmall, null); + + case Type.SPINNER_LARGE: + return React__default.createElement(SvgIconSpinnerLarge, null); + + case Type.USER: + return React__default.createElement(SvgIconUser, null); + + case Type.ICON_OPERATOR: + return React__default.createElement(SvgIconOperator, null); + + case Type.ICON_BANNED: + return React__default.createElement(SvgIconBanned, null); + + case Type.ICON_MUTED: + return React__default.createElement(SvgIconMuted, null); + + case Type.ICON_MUTED_FG: + return React__default.createElement(SvgIconMutedForeground, null); + + case Type.ICON_FREEZE: + return React__default.createElement(SvgIconFreeze, null); + + case Type.TOGGLE_ON: + return React__default.createElement(SvgIconToggleon, null); + + case Type.TOGGLE_OFF: + return React__default.createElement(SvgIconToggleoff, null); + + default: + return null; + } +} + +function Icon(_ref) { + var type = _ref.type, + width = _ref.width, + height = _ref.height, + children = _ref.children, + className = _ref.className, + onClick = _ref.onClick, + fillColor = _ref.fillColor; + var iconStyle = { + width: typeof width === 'string' ? width : "".concat(width, "px"), + minWidth: typeof width === 'string' ? width : "".concat(width, "px"), + height: typeof height === 'string' ? height : "".concat(height, "px"), + minHeight: typeof height === 'string' ? height : "".concat(height, "px") + }; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + onClick: onClick, + onKeyDown: onClick, + role: "button", + tabIndex: "0", + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), ['sendbird-icon', changeColorToClassName(fillColor)]).join(' '), + style: iconStyle + }, children || changeTypeToIconComponent(type)); +} +Icon.propTypes = { + type: PropTypes.oneOfType([PropTypes.oneOf(Object.keys(Type)), PropTypes.string]).isRequired, + width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + onClick: PropTypes.func, + children: PropTypes.element, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + fillColor: PropTypes.oneOf(Object.keys(Colors)) +}; +Icon.defaultProps = { + onClick: function onClick() {}, + width: 26, + height: 26, + children: null, + className: '', + fillColor: Colors.DEFAULT +}; +var IconTypes = Type; +var IconColors = Colors; + +var imageRendererClassName = 'sendbird-avatar-img'; + +var defaultComponent = function defaultComponent(_a) { + var width = _a.width, + height = _a.height; + return function () { + return document.querySelector('.sendbird-theme--dark') ? React__default.createElement(Icon, { + className: imageRendererClassName, + type: IconTypes.AVATAR_DARK, + width: width, + height: height + }) : React__default.createElement(Icon, { + className: imageRendererClassName, + type: IconTypes.AVATAR_LIGHT, + width: width, + height: height + }); + }; +}; + +var AvatarInner = function AvatarInner(_a) { + var _b = _a.src, + src = _b === void 0 ? '' : _b, + _c = _a.alt, + alt = _c === void 0 ? '' : _c, + height = _a.height, + width = _a.width; + + if (typeof src === 'string') { + return React__default.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src, + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }); + } + + if (src && src.length) { + if (src.length === 1) { + return React__default.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[0], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }); + } + + if (src.length === 2) { + return React__default.createElement("div", { + className: "sendbird-avatar--inner__two-child" + }, React__default.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[0], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }), React__default.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[1], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + })); + } + + if (src.length === 3) { + return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { + className: "sendbird-avatar--inner__three-child--upper" + }, React__default.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[0], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + })), React__default.createElement("div", { + className: "sendbird-avatar--inner__three-child--lower" + }, React__default.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[1], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }), React__default.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[2], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }))); + } + + return React__default.createElement("div", { + className: "sendbird-avatar--inner__four-child" + }, src.slice(0, 4).map(function (i) { + return React__default.createElement(ImageRenderer, { + className: imageRendererClassName, + url: i, + height: height, + width: width, + alt: alt, + key: LocalizationContext.uuidv4(), + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }); + })); + } // default img + + + return React__default.createElement(ImageRenderer, { + className: imageRendererClassName, + url: "", + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }); +}; + +function Avatar(_a, ref) { + var _b = _a.src, + src = _b === void 0 ? '' : _b, + _c = _a.alt, + alt = _c === void 0 ? '' : _c, + _d = _a.width, + width = _d === void 0 ? '56px' : _d, + _e = _a.height, + height = _e === void 0 ? '56px' : _e, + onClick = _a.onClick, + _f = _a.className, + className = _f === void 0 ? '' : _f; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + className: LocalizationContext.__spreadArrays(injectingClassName, ['sendbird-avatar']).join(' '), + ref: ref, + style: { + height: height, + width: width + }, + onClick: onClick, + role: "button", + tabIndex: 0, + onKeyDown: onClick + }, React__default.createElement(AvatarInner, { + src: src, + height: height, + width: width, + alt: alt + })); +} + +var Avatar$1 = React__default.forwardRef(Avatar); + +var Typography = { + H_1: 'H_1', + H_2: 'H_2', + SUBTITLE_1: 'SUBTITLE_1', + SUBTITLE_2: 'SUBTITLE_2', + BODY_1: 'BODY_1', + BODY_2: 'BODY_2', + BUTTON_1: 'BUTTON_1', + BUTTON_2: 'BUTTON_2', + CAPTION_1: 'CAPTION_1', + CAPTION_2: 'CAPTION_2', + CAPTION_3: 'CAPTION_3' +}; +var Colors$1 = { + ONBACKGROUND_1: 'ONBACKGROUND_1', + ONBACKGROUND_2: 'ONBACKGROUND_2', + ONBACKGROUND_3: 'ONBACKGROUND_3', + ONCONTENT_1: 'ONCONTENT_1', + ONCONTENT_2: 'ONCONTENT_2', + PRIMARY: 'PRIMARY', + ERROR: 'ERROR', + SECONDARY_3: 'SECONDARY_3' +}; + +function changeTypographyToClassName(type) { + switch (type) { + case Typography.H_1: + return 'sendbird-label--h-1'; + + case Typography.H_2: + return 'sendbird-label--h-2'; + + case Typography.SUBTITLE_1: + return 'sendbird-label--subtitle-1'; + + case Typography.SUBTITLE_2: + return 'sendbird-label--subtitle-2'; + + case Typography.BODY_1: + return 'sendbird-label--body-1'; + + case Typography.BODY_2: + return 'sendbird-label--body-2'; + + case Typography.BUTTON_1: + return 'sendbird-label--button-1'; + + case Typography.BUTTON_2: + return 'sendbird-label--button-2'; + + case Typography.CAPTION_1: + return 'sendbird-label--caption-1'; + + case Typography.CAPTION_2: + return 'sendbird-label--caption-2'; + + case Typography.CAPTION_3: + return 'sendbird-label--caption-3'; + + default: + return null; + } +} +function changeColorToClassName$1(color) { + switch (color) { + case Colors$1.ONBACKGROUND_1: + return 'sendbird-label--color-onbackground-1'; + + case Colors$1.ONBACKGROUND_2: + return 'sendbird-label--color-onbackground-2'; + + case Colors$1.ONBACKGROUND_3: + return 'sendbird-label--color-onbackground-3'; + + case Colors$1.ONCONTENT_1: + return 'sendbird-label--color-oncontent-1'; + + case Colors$1.ONCONTENT_2: + return 'sendbird-label--color-oncontent-2'; + + case Colors$1.PRIMARY: + return 'sendbird-label--color-primary'; + // should be Primary-3 fix me + + case Colors$1.ERROR: + return 'sendbird-label--color-error'; + + case Colors$1.SECONDARY_3: + return 'sendbird-label--color-secondary-3'; + + default: + return null; + } +} + +var CLASS_NAME = 'sendbird-label'; +function Label(_ref) { + var type = _ref.type, + color = _ref.color, + children = _ref.children, + className = _ref.className; + var injectingClassName = Array.isArray(className) ? [CLASS_NAME].concat(LocalizationContext._toConsumableArray(className)) : [CLASS_NAME, className]; + + if (type) { + injectingClassName.push(changeTypographyToClassName(type)); + } + + if (color) { + injectingClassName.push(changeColorToClassName$1(color)); + } + + return React__default.createElement("span", { + className: injectingClassName.join(' ') + }, children); +} +Label.propTypes = { + type: PropTypes.oneOf([].concat(LocalizationContext._toConsumableArray(Object.keys(Typography)), [''])), + color: PropTypes.oneOf([].concat(LocalizationContext._toConsumableArray(Object.keys(Colors$1)), [''])), + children: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.element, PropTypes.any]), + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +Label.defaultProps = { + type: '', + color: '', + className: [], + children: null +}; +var LabelTypography = Typography; +var LabelColors = Colors$1; +var LabelStringSet = LocalizationContext.getStringSet('en'); + +var CLASS_NAME$1 = 'sendbird-iconbutton'; +var IconButton = React__default.forwardRef(function (props, ref) { + var children = props.children, + className = props.className, + _props$disabled = props.disabled, + disabled = _props$disabled === void 0 ? false : _props$disabled, + type = props.type, + height = props.height, + width = props.width, + _onClick = props.onClick, + _onBlur = props.onBlur, + style = props.style; + + var _useState = React.useState(''), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + pressed = _useState2[0], + setPressed = _useState2[1]; + + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift(CLASS_NAME$1); + return (// eslint-disable-next-line react/button-has-type + React__default.createElement("button", { + className: "".concat(injectingClassName.join(' '), " ").concat(pressed), + disabled: disabled, + ref: ref, + type: type, + style: LocalizationContext._objectSpread2({}, style, { + height: height, + width: width + }), + onClick: function onClick(e) { + if (disabled) { + return; + } + + setPressed('sendbird-iconbutton--pressed'); + + _onClick(e); + }, + onBlur: function onBlur(e) { + setPressed(''); + + _onBlur(e); + } + }, React__default.createElement("span", { + className: "sendbird-iconbutton__inner" + }, children)) + ); +}); +IconButton.propTypes = { + height: PropTypes.string, + width: PropTypes.string, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, + type: PropTypes.string, + disabled: PropTypes.bool, + onClick: PropTypes.func, + onBlur: PropTypes.func, + style: PropTypes.shape({}) +}; +IconButton.defaultProps = { + height: '56px', + width: '56px', + className: '', + type: 'button', + disabled: false, + onClick: function onClick() {}, + onBlur: function onBlur() {}, + style: {} +}; + +// simple component to be used as modal root +var MODAL_ROOT = 'sendbird-modal-root'; + +var Type$1 = { + PRIMARY: 'PRIMARY', + SECONDARY: 'SECONDARY', + DANGER: 'DANGER', + DISABLED: 'DISABLED' +}; +var Size = { + BIG: 'BIG', + SMALL: 'SMALL' +}; + +function changeTypeToClassName(type) { + switch (type) { + case Type$1.PRIMARY: + return 'sendbird-button--primary'; + + case Type$1.SECONDARY: + return 'sendbird-button--secondary'; + + case Type$1.DANGER: + return 'sendbird-button--danger'; + + case Type$1.DISABLED: + return 'sendbird-button--disabled'; + + default: + return null; + } +} +function changeSizeToClassName(size) { + switch (size) { + case Size.BIG: + return 'sendbird-button--big'; + + case Size.SMALL: + return 'sendbird-button--small'; + + default: + return null; + } +} + +function Button(_ref) { + var type = _ref.type, + size = _ref.size, + children = _ref.children, + disabled = _ref.disabled, + onClick = _ref.onClick, + className = _ref.className; + var injectingClassNames = ['sendbird-button', disabled ? 'sendbird-button__disabled' : '', changeTypeToClassName(type), changeSizeToClassName(size)].concat(LocalizationContext._toConsumableArray(Array.isArray(className) ? className : [className])).join(' '); + return React__default.createElement("button", { + type: "button", + className: injectingClassNames, + onClick: onClick, + disabled: disabled + }, React__default.createElement(Label, { + className: "sendbird-button__text", + type: LabelTypography.BUTTON_1, + color: LabelColors.ONCONTENT_1 + }, children)); +} +Button.propTypes = { + children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.arrayOf(PropTypes.element)]), + disabled: PropTypes.bool, + type: PropTypes.oneOf(Object.keys(Type$1)), + size: PropTypes.oneOf(Object.keys(Size)), + onClick: PropTypes.func, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +Button.defaultProps = { + children: 'Button', + type: Type$1.PRIMARY, + disabled: false, + size: Size.BIG, + onClick: function onClick() {}, + className: '' +}; + +var ModalHeader = function ModalHeader(_ref) { + var titleText = _ref.titleText; + return React__default.createElement("div", { + className: "sendbird-modal-header" + }, React__default.createElement(Label, { + type: LabelTypography.H_1, + color: LabelColors.ONBACKGROUND_1 + }, titleText)); +}; +ModalHeader.propTypes = { + titleText: PropTypes.string.isRequired +}; +var ModalBody = function ModalBody(_ref2) { + var children = _ref2.children; + return React__default.createElement("div", { + className: "sendbird-modal-body" + }, children); +}; +ModalBody.propTypes = { + children: PropTypes.oneOfType([PropTypes.element.isRequired, PropTypes.arrayOf(PropTypes.element.isRequired)]) +}; +ModalBody.defaultProps = { + children: null +}; +var ModalFooter = function ModalFooter(_ref3) { + var onSubmit = _ref3.onSubmit, + onCancel = _ref3.onCancel, + _ref3$disabled = _ref3.disabled, + disabled = _ref3$disabled === void 0 ? false : _ref3$disabled, + submitText = _ref3.submitText, + type = _ref3.type; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + return React__default.createElement("div", { + className: "sendbird-modal-footer" + }, React__default.createElement(Button, { + type: Type$1.SECONDARY, + onClick: onCancel + }, React__default.createElement(Label, { + type: LabelTypography.BUTTON_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.BUTTON__CANCEL)), React__default.createElement(Button, { + type: type, + disabled: disabled, + onClick: onSubmit + }, submitText)); +}; +ModalFooter.propTypes = { + onCancel: PropTypes.func.isRequired, + onSubmit: PropTypes.func.isRequired, + submitText: PropTypes.string.isRequired, + disabled: PropTypes.bool, + type: PropTypes.string +}; +ModalFooter.defaultProps = { + disabled: false, + type: Type$1.DANGER +}; + +function Modal(props) { + var children = props.children, + onCancel = props.onCancel, + onSubmit = props.onSubmit, + disabled = props.disabled, + submitText = props.submitText, + titleText = props.titleText, + hideFooter = props.hideFooter, + type = props.type; + return reactDom.createPortal(React__default.createElement("div", { + className: "sendbird-modal" + }, React__default.createElement("div", { + className: "sendbird-modal-content" + }, React__default.createElement(ModalHeader, { + titleText: titleText + }), React__default.createElement(ModalBody, null, children), !hideFooter && React__default.createElement(ModalFooter, { + disabled: disabled, + onCancel: onCancel, + onSubmit: onSubmit, + submitText: submitText, + type: type + }), React__default.createElement("div", { + className: "sendbird-modal-close" + }, React__default.createElement(IconButton, { + width: "32px", + height: "32px", + onClick: onCancel + }, React__default.createElement(Icon, { + type: IconTypes.CLOSE, + fillColor: IconColors.SECONDARY, + width: "24px", + height: "24px" + })))), React__default.createElement("div", { + className: "sendbird-modal-backdrop" + })), document.getElementById(MODAL_ROOT)); +} + +Modal.propTypes = { + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]), + onCancel: PropTypes.func.isRequired, + onSubmit: PropTypes.func.isRequired, + hideFooter: PropTypes.bool, + disabled: PropTypes.bool, + type: PropTypes.string +}; +Modal.defaultProps = { + children: null, + hideFooter: false, + disabled: false, + type: Type$1.DANGER +}; + +var Colors$2 = { + ONBACKGROUND_1: 'ONBACKGROUND_1', + ONBACKGROUND_2: 'ONBACKGROUND_2', + ONBACKGROUND_3: 'ONBACKGROUND_3', + ONBACKGROUND_4: 'ONBACKGROUND_4', + ONCONTENT_1: 'ONCONTENT_1', + PRIMARY: 'PRIMARY', + ERROR: 'ERROR' +}; +function changeColorToClassName$2(color) { + switch (color) { + case Colors$2.ONBACKGROUND_1: + return 'sendbird-color--onbackground-1'; + + case Colors$2.ONBACKGROUND_2: + return 'sendbird-color--onbackground-2'; + + case Colors$2.ONBACKGROUND_3: + return 'sendbird-color--onbackground-3'; + + case Colors$2.ONBACKGROUND_4: + return 'sendbird-color--onbackground-4'; + + case Colors$2.ONCONTENT_1: + return 'sendbird-color--oncontent-1'; + + case Colors$2.PRIMARY: + return 'sendbird-color--primary'; + + case Colors$2.ERROR: + return 'sendbird-color--error'; + + default: + return null; + } +} + +function TextButton(_ref) { + var color = _ref.color, + children = _ref.children, + disabled = _ref.disabled, + className = _ref.className, + onClick = _ref.onClick, + notUnderline = _ref.notUnderline; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + role: "button", + tabIndex: 0, + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), [changeColorToClassName$2(color), notUnderline ? 'sendbird-textbutton--not-underline' : 'sendbird-textbutton', disabled ? 'sendbird-textbutton--disabled' : '']).join(' '), + onClick: onClick, + onKeyPress: onClick + }, children); +} +TextButton.propTypes = { + color: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + onClick: PropTypes.func, + notUnderline: PropTypes.bool, + disabled: PropTypes.bool +}; +TextButton.defaultProps = { + color: Colors$2.ONBACKGROUND_1, + className: '', + onClick: function onClick() {}, + notUnderline: false, + disabled: false +}; + +function Types() { + return { + LOADING: 'LOADING', + NO_CHANNELS: 'NO_CHANNELS', + WRONG: 'WRONG' + }; +} +var PlaceHolderTypes = Types(); + +var SEND_MESSAGE_START = 'SEND_MESSAGE_START'; +var SEND_USER_MESSAGE = 'SEND_USER_MESSAGE'; +var SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE'; +var UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE'; +var DELETE_MESSAGE = 'DELETE_MESSAGE'; +var LEAVE_CHANNEL = 'LEAVE_CHANNEL'; +var CREATE_CHANNEL = 'CREATE_CHANNEL'; + +var getSdk = function getSdk(store) { + var _store$stores = store.stores, + stores = _store$stores === void 0 ? {} : _store$stores; + var _stores$sdkStore = stores.sdkStore, + sdkStore = _stores$sdkStore === void 0 ? {} : _stores$sdkStore; + var sdk = sdkStore.sdk; + return sdk; +}; +var getPubSub = function getPubSub(store) { + var _store$config = store.config, + config = _store$config === void 0 ? {} : _store$config; + var pubSub = config.pubSub; + return pubSub; +}; // SendBird disconnect. Invalidates currentUser +// eslint-disable-next-line max-len + +var getConnect = function getConnect(store) { + return function (userId, accessToken) { + return new Promise(function (resolve, reject) { + var sdk = getSdk(store); + + if (!sdk) { + reject(new Error('Sdk not found')); + } + + if (!accessToken) { + sdk.connect(userId).then(function (res) { + return resolve(res); + }).catch(function (err) { + return reject(err); + }); + } else { + sdk.connect(userId, accessToken).then(function (res) { + return resolve(res); + }).catch(function (err) { + return reject(err); + }); + } + }); + }; +}; // SendBird disconnect. Invalidates currentUser + +var getDisconnect = function getDisconnect(store) { + return function () { + return new Promise(function (resolve, reject) { + var sdk = getSdk(store); + + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.disconnect().then(function (res) { + return resolve(res); + }).catch(function (err) { + return reject(err); + }); + }); + }; +}; // Using the updateCurrentUserInfo() method +// you can update a user's nickname and profile image with a URL +// eslint-disable-next-line max-len + +var getUpdateUserInfo = function getUpdateUserInfo(store) { + return function (nickName, profileUrl) { + return new Promise(function (resolve, reject) { + var sdk = getSdk(store); + + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.updateCurrentUserInfo(nickName, profileUrl).then(function (res) { + return resolve(res); + }).catch(function (err) { + return reject(err); + }); + }); + }; +}; +var getSendUserMessage = function getSendUserMessage(store) { + return function (channelUrl, userMessageParams) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + var promisify = function promisify() { + var pendingMsg = null; + var pendingPromise = new Promise(function (resolve_, reject_) { + pendingMsg = channel.sendUserMessage(userMessageParams, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject_(error); + return; + } + + resolve_(message); + pubsub.publish(SEND_USER_MESSAGE, { + message: message, + channel: channel + }); + }); + pubsub.publish(SEND_MESSAGE_START, { + message: pendingMsg, + channel: channel + }); + }); + + pendingPromise.get = function () { + return pendingMsg; + }; + + return pendingPromise; + }; + + resolve(promisify()); + }).catch(reject); + }); + }; +}; +var getSendFileMessage = function getSendFileMessage(store) { + return function (channelUrl, fileMessageParams) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + var promisify = function promisify() { + var pendingMsg = null; + var pendingPromise = new Promise(function (resolve_, reject_) { + pendingMsg = channel.sendFileMessage(fileMessageParams, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject_(error); + return; + } + + resolve_(message); + pubsub.publish(SEND_FILE_MESSAGE, { + message: message, + channel: channel + }); + }); + }); + + if (fileMessageParams.file) { + // keep the file's local version in pendingMsg.localUrl + // because promise doesnt allow overriding of pendingMsg.url + // eslint-disable-next-line no-param-reassign + pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file); + } + + if (fileMessageParams.fileUrl) { + // eslint-disable-next-line no-param-reassign + pendingMsg.localUrl = fileMessageParams.fileUrl; + } // eslint-disable-next-line no-param-reassign + + + pendingMsg.requestState = 'pending'; + pubsub.publish(SEND_MESSAGE_START, { + message: pendingMsg, + channel: channel + }); + + pendingPromise.get = function () { + return pendingMsg; + }; + + return pendingPromise; + }; + + resolve(promisify()); + }).catch(reject); + }); + }; +}; +var getUpdateUserMessage = function getUpdateUserMessage(store) { + return function (channelUrl, messageId, params) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.updateUserMessage(messageId, params, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject(error); + return; + } + + resolve(message); + pubsub.publish(UPDATE_USER_MESSAGE, { + message: message, + channel: channel, + // workaround for updating channelPreview on message-edit + // https://sendbird.atlassian.net/browse/UIKIT-268 + fromSelector: true + }); + }); + }).catch(reject); + }); + }; +}; +var getDeleteMessage = function getDeleteMessage(store) { + return function (channelUrl, message) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + var messageId = message.messageId; + channel.deleteMessage(message, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var error = err; + + if (swapParams) { + error = res; + } + + if (error) { + reject(error); + return; + } + + resolve(message); + pubsub.publish(DELETE_MESSAGE, { + messageId: messageId, + channel: channel + }); + }); + }).catch(reject); + }); + }; +}; +var getResendUserMessage = function getResendUserMessage(store) { + return function (channelUrl, failedMessage) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.resendUserMessage(failedMessage).then(function (message) { + resolve(message); + pubsub.publish(SEND_USER_MESSAGE, { + message: message, + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var getResendFileMessage = function getResendFileMessage(store) { + return function (channelUrl, failedMessage) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.resendFileMessage(failedMessage).then(function (message) { + resolve(message); + pubsub.publish(SEND_FILE_MESSAGE, { + message: message, + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var getCreateChannel = function getCreateChannel(store) { + return function (params) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.createChannel(params).then(function (channel) { + resolve(channel); + pubsub.publish(CREATE_CHANNEL, { + channel: channel + }); + }).catch(reject); + }); + }; +}; +var getLeaveChannel = function getLeaveChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.leave().then(function () { + resolve(channel); + pubsub.publish(LEAVE_CHANNEL, { + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var getFreezeChannel = function getFreezeChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.freeze().then(function () { + // do not need pubsub here - event listener works + resolve(channel); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var getUnFreezeChannel = function getUnFreezeChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.unfreeze().then(function () { + // do not need pubsub here - event listener works + resolve(channel); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var selectors = { + getSdk: getSdk, + getConnect: getConnect, + getDisconnect: getDisconnect, + getUpdateUserInfo: getUpdateUserInfo, + getSendUserMessage: getSendUserMessage, + getSendFileMessage: getSendFileMessage, + getUpdateUserMessage: getUpdateUserMessage, + getDeleteMessage: getDeleteMessage, + getResendUserMessage: getResendUserMessage, + getResendFileMessage: getResendFileMessage, + getFreezeChannel: getFreezeChannel, + getUnFreezeChannel: getUnFreezeChannel, + getCreateChannel: getCreateChannel, + getLeaveChannel: getLeaveChannel +}; + +function UserProfile(_a) { + var user = _a.user, + currentUserId = _a.currentUserId, + sdk = _a.sdk, + logger = _a.logger, + _b = _a.disableMessaging, + disableMessaging = _b === void 0 ? false : _b, + createChannel = _a.createChannel, + onSuccess = _a.onSuccess; + var stringSet = React.useContext(LocalizationContext.LocalizationContext).stringSet; + return React__default.createElement("div", { + className: "sendbird__user-profile" + }, React__default.createElement("section", { + className: "sendbird__user-profile-avatar" + }, React__default.createElement(Avatar$1, { + height: "80px", + width: "80px", + src: user.profileUrl + })), React__default.createElement("section", { + className: "sendbird__user-profile-name" + }, React__default.createElement(Label, { + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, user.nickname || stringSet.NO_NAME)), user.userId !== currentUserId && !disableMessaging && React__default.createElement("section", { + className: "sendbird__user-profile-message" + }, React__default.createElement(Button, { + type: Type$1.SECONDARY, + onClick: function onClick() { + var params = new sdk.GroupChannelParams(); + params.isDistinct = true; + params.addUserIds([user.userId]); + onSuccess(); + createChannel(params).then(function (groupChannel) { + logger.info('UserProfile, channel create', groupChannel); + }); + } + }, stringSet.USER_PROFILE__MESSAGE)), React__default.createElement("div", { + className: "sendbird__user-profile-seperator" + }), React__default.createElement("section", { + className: "sendbird__user-profile-userId" + }, React__default.createElement(Label, { + className: "sendbird__user-profile-userId--label", + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, stringSet.USER_PROFILE__USER_ID), React__default.createElement(Label, { + className: "sendbird__user-profile-userId--value", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, user.userId))); +} + +var mapStoreToProps = function mapStoreToProps(store) { + return { + sdk: getSdk(store), + createChannel: getCreateChannel(store), + logger: store.config.logger, + pubsub: store.config.pubSub + }; +}; + +var ConnectedUserProfile = LocalizationContext.withSendbirdContext(UserProfile, mapStoreToProps); + +var MenuItems = +/*#__PURE__*/ +function (_Component) { + LocalizationContext._inherits(MenuItems, _Component); + + function MenuItems(props) { + var _this; + + LocalizationContext._classCallCheck(this, MenuItems); + + _this = LocalizationContext._possibleConstructorReturn(this, LocalizationContext._getPrototypeOf(MenuItems).call(this, props)); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "showParent", function () { + var _this$props$parentCon = _this.props.parentContainRef, + parentContainRef = _this$props$parentCon === void 0 ? {} : _this$props$parentCon; + var current = parentContainRef.current; + + if (parentContainRef && current) { + current.classList.add('sendbird-icon--pressed'); + } + }); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "hideParent", function () { + var _this$props$parentCon2 = _this.props.parentContainRef, + parentContainRef = _this$props$parentCon2 === void 0 ? {} : _this$props$parentCon2; + var current = parentContainRef.current; + + if (parentContainRef && current) { + current.classList.remove('sendbird-icon--pressed'); + } + }); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "setupEvents", function () { + var closeDropdown = _this.props.closeDropdown; + + var _assertThisInitialize = LocalizationContext._assertThisInitialized(_this), + menuRef = _assertThisInitialize.menuRef; + + var handleClickOutside = function handleClickOutside(event) { + if (menuRef.current && !menuRef.current.contains(event.target)) { + closeDropdown(); + } + }; + + _this.setState({ + handleClickOutside: handleClickOutside + }); + + document.addEventListener('mousedown', handleClickOutside); + }); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "cleanUpEvents", function () { + var handleClickOutside = _this.state.handleClickOutside; + document.removeEventListener('mousedown', handleClickOutside); + }); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "getMenuPosition", function () { + var _this$props = _this.props, + parentRef = _this$props.parentRef, + openLeft = _this$props.openLeft; + var parentRect = parentRef.current.getBoundingClientRect(); + var x = parentRect.x || parentRect.left; + var y = parentRect.y || parentRect.top; + var menuStyle = { + top: y, + left: x + }; + if (!_this.menuRef.current) return menuStyle; + var _window = window, + innerWidth = _window.innerWidth, + innerHeight = _window.innerHeight; + + var rect = _this.menuRef.current.getBoundingClientRect(); + + if (y + rect.height > innerHeight) { + menuStyle.top -= rect.height; + } + + if (x + rect.width > innerWidth && !openLeft) { + menuStyle.left -= rect.width; + } + + if (menuStyle.top < 0) { + menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0; + } + + if (menuStyle.left < 0) { + menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0; + } + + menuStyle.top += 32; + + if (openLeft) { + var padding = Number.isNaN(rect.width - 30) ? 108 // default + : rect.width - 30; + menuStyle.left -= padding; + } + + return _this.setState({ + menuStyle: menuStyle + }); + }); + + _this.menuRef = React__default.createRef(); + _this.state = { + menuStyle: {}, + handleClickOutside: function handleClickOutside() {} + }; + return _this; + } + + LocalizationContext._createClass(MenuItems, [{ + key: "componentDidMount", + value: function componentDidMount() { + this.setupEvents(); + this.getMenuPosition(); + this.showParent(); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.cleanUpEvents(); + this.hideParent(); + } + }, { + key: "render", + value: function render() { + var menuStyle = this.state.menuStyle; + var _this$props2 = this.props, + children = _this$props2.children, + style = _this$props2.style; + return reactDom.createPortal(React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { + className: "sendbird-dropdown__menu-backdrop" + }), React__default.createElement("ul", { + className: "sendbird-dropdown__menu", + ref: this.menuRef, + style: LocalizationContext._objectSpread2({ + display: 'inline-block', + position: 'fixed', + left: "".concat(Math.round(menuStyle.left), "px"), + top: "".concat(Math.round(menuStyle.top), "px") + }, style) + }, children)), document.getElementById('sendbird-dropdown-portal')); + } + }]); + + return MenuItems; +}(React.Component); +MenuItems.propTypes = { + closeDropdown: PropTypes.func.isRequired, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired, + style: PropTypes.shape({}), + // https://stackoverflow.com/a/51127130 + parentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ + current: PropTypes.instanceOf(Element) + })]).isRequired, + parentContainRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ + current: PropTypes.instanceOf(Element) + })]).isRequired, + openLeft: PropTypes.bool +}; +MenuItems.defaultProps = { + style: {}, + openLeft: false +}; + +var componentClassName = 'sendbird-sort-by-row'; +function SortByRow(_ref) { + var className = _ref.className, + maxItemCount = _ref.maxItemCount, + itemWidth = _ref.itemWidth, + itemHeight = _ref.itemHeight, + children = _ref.children; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift(componentClassName); + + if (children.length > maxItemCount) { + var result = []; + + for (var i = 0; i < children.length; i += maxItemCount) { + result.push(React__default.createElement("div", { + className: injectingClassName.join(' '), + style: { + width: itemWidth * maxItemCount, + height: itemHeight + }, + key: className + i + }, children.slice(i, i + maxItemCount))); + } + + return result; + } + + return React__default.createElement("div", { + className: injectingClassName.join(' '), + style: { + width: itemWidth * children.length, + height: itemHeight + } + }, children); +} +SortByRow.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + maxItemCount: PropTypes.number.isRequired, + itemWidth: PropTypes.number.isRequired, + itemHeight: PropTypes.number.isRequired, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).isRequired +}; +SortByRow.defaultProps = { + className: '' +}; + +var EmojiListItems = +/*#__PURE__*/ +function (_Component) { + LocalizationContext._inherits(EmojiListItems, _Component); + + function EmojiListItems(props) { + var _this; + + LocalizationContext._classCallCheck(this, EmojiListItems); + + _this = LocalizationContext._possibleConstructorReturn(this, LocalizationContext._getPrototypeOf(EmojiListItems).call(this, props)); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "showParent", function () { + var _this$props$parentCon = _this.props.parentContainRef, + parentContainRef = _this$props$parentCon === void 0 ? {} : _this$props$parentCon; + var current = parentContainRef.current; + + if (parentContainRef && current) { + current.classList.add('sendbird-reactions--pressed'); + } + }); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "hideParent", function () { + var _this$props$parentCon2 = _this.props.parentContainRef, + parentContainRef = _this$props$parentCon2 === void 0 ? {} : _this$props$parentCon2; + var current = parentContainRef.current; + + if (parentContainRef && current) { + current.classList.remove('sendbird-reactions--pressed'); + } + }); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "setupEvents", function () { + var closeDropdown = _this.props.closeDropdown; + + var _assertThisInitialize = LocalizationContext._assertThisInitialized(_this), + reactionRef = _assertThisInitialize.reactionRef; + + var handleClickOutside = function handleClickOutside(event) { + if (reactionRef.current && !reactionRef.current.contains(event.target)) { + closeDropdown(); + } + }; + + _this.setState({ + handleClickOutside: handleClickOutside + }); + + document.addEventListener('mousedown', handleClickOutside); + }); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "cleanUpEvents", function () { + var handleClickOutside = _this.state.handleClickOutside; + document.removeEventListener('mousedown', handleClickOutside); + }); + + LocalizationContext._defineProperty(LocalizationContext._assertThisInitialized(_this), "getBarPosition", function () { + var _this$props = _this.props, + parentRef = _this$props.parentRef, + spaceFromTrigger = _this$props.spaceFromTrigger; + var spaceFromTriggerX = spaceFromTrigger.x || 0; + var spaceFromTriggerY = spaceFromTrigger.y || 0; + var parentRect = parentRef.current.getBoundingClientRect(); + var x = parentRect.x || parentRect.left; + var y = parentRect.y || parentRect.top; + var reactionStyle = { + top: y, + left: x + }; + if (!_this.reactionRef.current) return reactionStyle; + + var rect = _this.reactionRef.current.getBoundingClientRect(); // const childRect = this.reactionRef.current.children[0].getBoundingClientRect(); + + + if (reactionStyle.top < rect.height) { + reactionStyle.top += parentRect.height; + reactionStyle.top += spaceFromTriggerY; + } else { + reactionStyle.top -= rect.height; + reactionStyle.top -= spaceFromTriggerY; + } + + reactionStyle.left -= rect.width / 2; + reactionStyle.left += parentRect.height / 2 - 2; + reactionStyle.left += spaceFromTriggerX; + var maximumLeft = window.innerWidth - rect.width; + + if (maximumLeft < reactionStyle.left) { + reactionStyle.left = maximumLeft; + } + + if (reactionStyle.left < 0) { + reactionStyle.left = 0; + } + + return _this.setState({ + reactionStyle: reactionStyle + }); + }); + + _this.reactionRef = React__default.createRef(); + _this.state = { + reactionStyle: {}, + handleClickOutside: function handleClickOutside() {} + }; + return _this; + } + + LocalizationContext._createClass(EmojiListItems, [{ + key: "componentDidMount", + value: function componentDidMount() { + this.setupEvents(); + this.getBarPosition(); + this.showParent(); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.cleanUpEvents(); + this.hideParent(); + } + }, { + key: "render", + value: function render() { + var reactionStyle = this.state.reactionStyle; + var children = this.props.children; + return reactDom.createPortal(React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { + className: "sendbird-dropdown__menu-backdrop" + }), React__default.createElement("ul", { + className: "sendbird-dropdown__reaction-bar", + ref: this.reactionRef, + style: { + display: 'inline-block', + position: 'fixed', + left: "".concat(Math.round(reactionStyle.left), "px"), + top: "".concat(Math.round(reactionStyle.top), "px") + } + }, React__default.createElement(SortByRow, { + className: "sendbird-dropdown__reaction-bar__row", + maxItemCount: 8, + itemWidth: 44, + itemHeight: 40 + }, children))), document.getElementById('sendbird-emoji-list-portal')); + } + }]); + + return EmojiListItems; +}(React.Component); +EmojiListItems.propTypes = { + closeDropdown: PropTypes.func.isRequired, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired, + parentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ + current: PropTypes.instanceOf(Element) + })]).isRequired, + parentContainRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ + current: PropTypes.instanceOf(Element) + })]).isRequired, + spaceFromTrigger: PropTypes.shape({ + x: PropTypes.number, + y: PropTypes.number + }) +}; +EmojiListItems.defaultProps = { + spaceFromTrigger: {} +}; + +var ENTER = 13; +var MenuItems$1 = MenuItems; +var EmojiListItems$1 = EmojiListItems; +var MenuItem = function MenuItem(_ref) { + var children = _ref.children, + onClick = _ref.onClick, + className = _ref.className; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("li", { + tabIndex: 0, + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), ['sendbird-dropdown__menu-item']).join(' '), + onClick: onClick, + onKeyPress: function onKeyPress(e) { + if (e.keyCode === ENTER) { + onClick(e); + } + }, + role: "menuitem" + }, React__default.createElement(Label, { + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1, + className: "sendbird-dropdown__menu-item__text" + }, children)); +}; +MenuItem.propTypes = { + onClick: PropTypes.func.isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired +}; +MenuItem.defaultProps = { + className: '' +}; +function ContextMenu(_ref2) { + var menuTrigger = _ref2.menuTrigger, + menuItems = _ref2.menuItems; + + var _useState = React.useState(false), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + showMenu = _useState2[0], + setShowMenu = _useState2[1]; + + return React__default.createElement("div", { + className: "sendbird-context-menu", + style: { + display: 'inline' + } + }, menuTrigger(function () { + return setShowMenu(!showMenu); + }), showMenu && menuItems(function () { + return setShowMenu(false); + })); +} +ContextMenu.propTypes = { + menuTrigger: PropTypes.func.isRequired, + menuItems: PropTypes.func.isRequired +}; + +function Loader(_ref) { + var children = _ref.children, + className = _ref.className, + width = _ref.width, + height = _ref.height; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), ['sendbird-loader']).join(' '), + style: { + width: typeof width === 'string' ? width : "".concat(width, "px"), + height: typeof height === 'string' ? height : "".concat(height, "px") + } + }, children); +} +Loader.propTypes = { + children: PropTypes.element, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) +}; +Loader.defaultProps = { + children: React__default.createElement(Icon, { + type: IconTypes.SPINNER, + width: "26px", + height: "26px" + }), + className: '', + width: '26px', + height: '26px' +}; + +var PlaceHolderTypes$1 = PlaceHolderTypes; +function PlaceHolder(_ref) { + var className = _ref.className, + type = _ref.type, + retryToConnect = _ref.retryToConnect; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), ['sendbird-place-holder']).join(' ') + }, type === PlaceHolderTypes$1.LOADING ? React__default.createElement(Loader, { + width: "48px", + height: "48px" + }, React__default.createElement(Icon, { + type: IconTypes.SPINNER_LARGE, + width: "48px", + height: "48px" + })) : null, type === PlaceHolderTypes$1.NO_CHANNELS || type === PlaceHolderTypes$1.WRONG ? React__default.createElement("div", { + className: "sendbird-place-holder__body" + }, type === PlaceHolderTypes$1.NO_CHANNELS && React__default.createElement(Icon, { + className: "sendbird-place-holder__body__icon", + type: IconTypes.CHAT, + fillColor: IconColors.ON_BACKGROUND_3, + width: "64px", + height: "64px" + }), type === PlaceHolderTypes$1.WRONG && React__default.createElement(Icon, { + className: "sendbird-place-holder__body__icon", + type: IconTypes.ERROR, + fillColor: IconColors.ON_BACKGROUND_3, + width: "64px", + height: "64px" + }), React__default.createElement(Label, { + className: "sendbird-place-holder__body__text", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_2 + }, type === PlaceHolderTypes$1.NO_CHANNELS ? stringSet.PLACE_HOLDER__NO_CHANNEL : stringSet.PLACE_HOLDER__WRONG), retryToConnect ? React__default.createElement("div", { + className: "sendbird-place-holder__body__reconnect", + role: "button", + tabIndex: 0, + onClick: retryToConnect, + onKeyPress: retryToConnect + }, React__default.createElement(Icon, { + className: "sendbird-place-holder__body__reconnect__icon", + type: IconTypes.REFRESH, + fillColor: IconColors.PRIMARY, + width: "20px", + height: "20px" + }), React__default.createElement(Label, { + className: "sendbird-place-holder__body__reconnect__text", + type: LabelTypography.BUTTON_1, + color: LabelColors.PRIMARY + }, stringSet.PLACE_HOLDER__RETRY_TO_CONNECT)) : null) : null); +} +PlaceHolder.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + type: PropTypes.oneOfType([PropTypes.oneOf(Object.keys(PlaceHolderTypes$1)), PropTypes.string]).isRequired, + retryToConnect: PropTypes.func +}; +PlaceHolder.defaultProps = { + className: '', + retryToConnect: null +}; + +exports.Avatar = Avatar$1; +exports.Button = Button; +exports.CREATE_CHANNEL = CREATE_CHANNEL; +exports.Colors = Colors$2; +exports.ContextMenu = ContextMenu; +exports.DELETE_MESSAGE = DELETE_MESSAGE; +exports.EmojiListItems = EmojiListItems$1; +exports.Icon = Icon; +exports.IconButton = IconButton; +exports.IconColors = IconColors; +exports.IconTypes = IconTypes; +exports.ImageRenderer = ImageRenderer; +exports.LEAVE_CHANNEL = LEAVE_CHANNEL; +exports.Label = Label; +exports.LabelColors = LabelColors; +exports.LabelStringSet = LabelStringSet; +exports.LabelTypography = LabelTypography; +exports.Loader = Loader; +exports.MODAL_ROOT = MODAL_ROOT; +exports.MenuItem = MenuItem; +exports.MenuItems = MenuItems$1; +exports.Modal = Modal; +exports.PlaceHolder = PlaceHolder; +exports.PlaceHolderTypes = PlaceHolderTypes; +exports.PlaceHolderTypes$1 = PlaceHolderTypes$1; +exports.SEND_FILE_MESSAGE = SEND_FILE_MESSAGE; +exports.SEND_MESSAGE_START = SEND_MESSAGE_START; +exports.SEND_USER_MESSAGE = SEND_USER_MESSAGE; +exports.Size = Size; +exports.TextButton = TextButton; +exports.Type = Type$1; +exports.UPDATE_USER_MESSAGE = UPDATE_USER_MESSAGE; +exports.UserProfile = ConnectedUserProfile; +exports.UserProfileContext = UserProfileContext; +exports.UserProfileProvider = UserProfileProvider; +exports.changeColorToClassName = changeColorToClassName$2; +exports.changeColorToClassName$1 = changeColorToClassName$1; +exports.getSdk = getSdk; +exports.selectors = selectors; +//# sourceMappingURL=index-710314fd.js.map diff --git a/dist/cjs/index-710314fd.js.map b/dist/cjs/index-710314fd.js.map new file mode 100644 index 0000000..c6fc1ad --- /dev/null +++ b/dist/cjs/index-710314fd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-0c67ae90.js","sources":["../../../src/lib/UserProfileContext.jsx","../../../src/ui/ImageRenderer/index.jsx","../../../src/ui/Icon/type.js","../../../src/ui/Icon/index.jsx","../../../src/ui/Avatar/index.tsx","../../../src/ui/Label/types.js","../../../src/ui/Label/utils.js","../../../src/ui/Label/index.jsx","../../../src/ui/IconButton/index.jsx","../../../src/hooks/useModal/ModalRoot/index.jsx","../../../src/ui/Button/type.js","../../../src/ui/Button/utils.js","../../../src/ui/Button/index.jsx","../../../src/ui/Modal/index.jsx","../../../src/utils/color.js","../../../src/ui/TextButton/index.jsx","../../../src/ui/PlaceHolder/type.js","../../../src/lib/pubSub/topics.js","../../../src/lib/selectors.js","../../../src/ui/UserProfile/index.tsx","../../../src/ui/ContextMenu/items/MenuItems.jsx","../../../src/ui/SortByRow/index.jsx","../../../src/ui/ContextMenu/items/EmojiListItems.jsx","../../../src/ui/ContextMenu/index.jsx","../../../src/ui/Loader/index.jsx","../../../src/ui/PlaceHolder/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst UserProfileContext = React.createContext({\n disableUserProfile: true,\n isOpenChannel: false,\n renderUserProfile: null,\n});\n\nconst UserProfileProvider = (props) => {\n const { children, className } = props;\n return (\n \n
\n {children}\n
\n
\n );\n};\n\nUserProfileProvider.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n isOpenChannel: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n disableUserProfile: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n renderUserProfile: PropTypes.func,\n className: PropTypes.string,\n};\n\nUserProfileProvider.defaultProps = {\n className: null,\n isOpenChannel: false,\n disableUserProfile: false,\n renderUserProfile: null,\n};\n\nexport { UserProfileContext, UserProfileProvider };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\n/*\n ImageRenderer displays image with url or source\n it checks if the source exist with img tag first\n if it exists onLoad is called, if not onError is called\n and those properties switch img tag to real purposing element\n*/\n\nexport default function ImageRenderer({\n alt,\n url,\n width,\n height,\n className,\n defaultComponent,\n circle,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-image-renderer');\n const [realElement, setRealElement] = useState(null);\n useEffect(() => {\n setRealElement(null);\n }, [url]);\n return (\n realElement || (\n {\n setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent);\n }}\n onLoad={() => {\n setRealElement((\n \n ));\n }}\n />\n )\n );\n}\n\nImageRenderer.propTypes = {\n alt: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n defaultComponent: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n circle: PropTypes.bool,\n};\nImageRenderer.defaultProps = {\n alt: '',\n className: '',\n circle: false,\n defaultComponent: null,\n width: null,\n height: null,\n};\n","export default {\n ADD: 'ADD',\n ATTACH: 'ATTACH',\n ARROW_LEFT: 'ARROW_LEFT',\n AVATAR_DARK: 'AVATAR_DARK',\n AVATAR_LIGHT: 'AVATAR_LIGHT',\n AVATAR_NO_IMAGE: 'AVATAR_NO_IMAGE',\n BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK',\n BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT',\n BROADCAST_DARK: 'BROADCAST_DARK',\n BROADCAST_LIGHT: 'BROADCAST_LIGHT',\n BROADCAST: 'BROADCAST',\n FROZEN_DARK: 'FROZEN_DARK',\n FROZEN_LIGHT: 'FROZEN_LIGHT',\n CAMERA: 'CAMERA',\n MORE: 'MORE',\n MUTE: 'MUTE',\n NO_THUMBNAIL: 'NO_THUMBNAIL',\n CHECKBOX: 'CHECKBOX',\n CHECKBOX_OFF: 'CHECKBOX_OFF',\n CLOSE: 'CLOSE',\n COPY: 'COPY',\n CHAT: 'CHAT',\n CREATE: 'CREATE',\n DELETE: 'DELETE',\n DISCONNECTED: 'DISCONNECTED',\n DUMMY: 'DUMMY',\n EDIT: 'EDIT',\n ERROR: 'ERROR',\n ERROR_FILLED: 'ERROR_FILLED',\n EMOJI_FAILED: 'EMOJI_FAILED',\n EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD',\n EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY',\n DELIVERED: 'DELIVERED',\n DOCUMENT: 'DOCUMENT',\n DOWNLOAD: 'DOWNLOAD',\n FILE_AUDIO: 'FILE_AUDIO',\n FILE_DOCUMENT: 'FILE_DOCUMENT',\n GIF: 'GIF',\n INFO: 'INFO',\n LEAVE: 'LEAVE',\n MEMBERS: 'MEMBERS',\n NOTIFICATIONS: 'NOTIFICATIONS',\n PHOTO: 'PHOTO',\n PLAY: 'PLAY',\n PLUS: 'PLUS',\n READ: 'READ',\n REFRESH: 'REFRESH',\n SEND: 'SEND',\n SENT: 'SENT',\n SUPER_GROUP: 'SUPER_GROUP',\n SHEVRON: 'SHEVRON',\n SHEVRON_DOWN: 'SHEVRON_DOWN',\n SPINNER: 'SPINNER',\n SPINNER_LARGE: 'SPINNER_LARGE',\n USER: 'USER',\n ICON_OPERATOR: 'ICON_OPERATOR',\n ICON_BANNED: 'ICON_BANNED',\n ICON_FREEZE: 'ICON_FREEZE',\n ICON_MUTED: 'ICON_MUTED',\n ICON_MUTED_FG: 'ICON_MUTED_FG',\n TOGGLE_ON: 'TOGGLE_ON',\n TOGGLE_OFF: 'TOGGLE_OFF',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Type from './type';\n\nimport IconAdd from '../../svgs/icon-add.svg';\nimport IconAttach from '../../svgs/icon-attach.svg';\nimport IconArrowLeft from '../../svgs/icon-arrow-left.svg';\nimport IconAvatarDark from '../../svgs/icon-avatar-dark.svg';\nimport IconAvatarLight from '../../svgs/icon-avatar-light.svg';\nimport IconAvatarNoImage from '../../svgs/avatar-no-image-light.svg';\nimport BroadcastLargeDark from '../../svgs/icon-broadcast-lrg-dark.svg';\nimport BroadcastLargeLight from '../../svgs/icon-broadcast-lrg-light.svg';\nimport BroadcastDark from '../../svgs/icon-broadcast-dark.svg';\nimport BroadcastLight from '../../svgs/icon-broadcast-light.svg';\nimport Broadcast from '../../svgs/icon-broadcast.svg';\nimport FrozenDark from '../../svgs/frozen-dark.svg';\nimport FrozenLight from '../../svgs/frozen-light.svg';\nimport IconCamera from '../../svgs/icon-camera.svg';\nimport IconMore from '../../svgs/icon-more.svg';\nimport IconMute from '../../svgs/icon-mute.svg';\nimport IconNoThumbnail from '../../svgs/icon-no-thumbnail.svg';\nimport IconCheckbox from '../../svgs/icon-checkbox.svg';\nimport IconCheckboxOff from '../../svgs/icon-checkbox-off.svg';\nimport IconClose from '../../svgs/icon-close.svg';\nimport IconCopy from '../../svgs/icon-copy.svg';\nimport IconChat from '../../svgs/icon-chat.svg';\nimport IconSupergroup from '../../svgs/icon-supergroup.svg';\nimport IconCreate from '../../svgs/icon-create.svg';\nimport IconDelete from '../../svgs/icon-delete.svg';\nimport IconDummy from '../../svgs/icon-dummy.svg';\nimport IconEdit from '../../svgs/icon-edit.svg';\nimport IconError from '../../svgs/icon-error.svg';\nimport IconErrorFilled from '../../svgs/icon-error-filled.svg';\nimport IconEmojiFailed from '../../svgs/emoji-fail.svg';\nimport IconEmojiReactionsAdd from '../../svgs/icon-reactions-add.svg';\nimport IconEmojiReactionsAddGray from '../../svgs/icon-emoji-reactions-add.svg';\nimport IconDelivered from '../../svgs/icon-delivered.svg';\nimport IconDisconnected from '../../svgs/icon-disconnected.svg';\nimport IconDocument from '../../svgs/icon-document.svg';\nimport IconDownload from '../../svgs/icon-download.svg';\nimport IconFileAudio from '../../svgs/icon-file-audio.svg';\nimport IconFileDocument from '../../svgs/icon-file-document.svg';\nimport IconGif from '../../svgs/icon-gif.svg';\nimport IconInfo from '../../svgs/icon-info.svg';\nimport IconLeave from '../../svgs/icon-leave.svg';\nimport IconMembers from '../../svgs/icon-members.svg';\nimport IconNotifications from '../../svgs/icon-notifications.svg';\nimport IconPhoto from '../../svgs/icon-photo.svg';\nimport IconPlay from '../../svgs/icon-play.svg';\nimport IconPlus from '../../svgs/icon-plus.svg';\nimport IconRead from '../../svgs/icon-read.svg';\nimport IconRefresh from '../../svgs/icon-refresh.svg';\nimport IconSend from '../../svgs/icon-send.svg';\nimport IconSent from '../../svgs/icon-sent.svg';\nimport IconShevron from '../../svgs/icon-shevron.svg';\nimport IconShevronDown from '../../svgs/icon-shevron-down.svg';\nimport IconSpinner from '../../svgs/icon-spinner-small.svg';\nimport IconSpinnerLarge from '../../svgs/icon-spinner-large.svg';\nimport IconUser from '../../svgs/icon-user.svg';\nimport IconOperator from '../../svgs/icon-operator.svg';\nimport IconBanned from '../../svgs/icon-banned.svg';\nimport IconMuted from '../../svgs/icon-muted.svg';\nimport IconMutedFg from '../../svgs/icon-muted-foreground.svg';\nimport IconFreeze from '../../svgs/icon-freeze.svg';\nimport ToggleOn from '../../svgs/icon-toggleon.svg';\nimport ToggleOff from '../../svgs/icon-toggleoff.svg';\n\nconst Colors = {\n DEFAULT: 'DEFAULT',\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n CONTENT: 'CONTENT',\n CONTENT_INVERSE: 'CONTENT_INVERSE',\n WHITE: 'WHITE',\n SENT: 'SENT',\n READ: 'READ',\n ON_BACKGROUND_2: 'ON_BACKGROUND_2',\n ON_BACKGROUND_3: 'ON_BACKGROUND_3',\n BACKGROUND_3: 'BACKGROUND_3',\n};\n\nfunction changeColorToClassName(color) {\n switch (color) {\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.SECONDARY: return 'sendbird-color--secondary';\n case Colors.CONTENT: return 'sendbird-color--content';\n case Colors.CONTENT_INVERSE: return 'sendbird-color--content-inverse';\n case Colors.WHITE: return 'sendbird-color--white';\n case Colors.SENT: return 'sendbird-color--sent';\n case Colors.READ: return 'sendbird-color--read';\n case Colors.ON_BACKGROUND_2: return 'sendbird-color--on-background-2';\n case Colors.ON_BACKGROUND_3: return 'sendbird-color--on-background-3';\n case Colors.BACKGROUND_3: return 'sendbird-color--background-3';\n default: return '';\n }\n}\n\nfunction changeTypeToIconComponent(type) {\n switch (type) {\n case Type.ADD: return ;\n case Type.ARROW_LEFT: return ;\n case Type.CAMERA: return ;\n case Type.ATTACH: return ;\n case Type.AVATAR_DARK: return ;\n case Type.AVATAR_LIGHT: return ;\n case Type.AVATAR_NO_IMAGE: return ;\n case Type.BROADCAST_LARGE_DARK: return ;\n case Type.BROADCAST_LARGE_LIGHT: return ;\n case Type.BROADCAST_DARK: return ;\n case Type.BROADCAST_LIGHT: return ;\n case Type.BROADCAST: return ;\n case Type.FROZEN_DARK: return ;\n case Type.FROZEN_LIGHT: return ;\n case Type.MORE: return ;\n case Type.MUTE: return ;\n case Type.NO_THUMBNAIL: return ;\n case Type.CHECKBOX: return ;\n case Type.CHECKBOX_OFF: return ;\n case Type.CLOSE: return ;\n case Type.COPY: return ;\n case Type.CHAT: return ;\n case Type.SUPER_GROUP: return ;\n case Type.CREATE: return ;\n case Type.DELETE: return ;\n case Type.DISCONNECTED: return ;\n case Type.DUMMY: return ;\n case Type.EDIT: return ;\n case Type.ERROR: return ;\n case Type.ERROR_FILLED: return ;\n case Type.EMOJI_FAILED: return ;\n case Type.EMOJI_REACTIONS_ADD: return ;\n case Type.EMOJI_REACTIONS_ADD_GRAY: return ;\n case Type.DELIVERED: return ;\n case Type.DOCUMENT: return ;\n case Type.DOWNLOAD: return ;\n case Type.FILE_AUDIO: return ;\n case Type.FILE_DOCUMENT: return ;\n case Type.GIF: return ;\n case Type.INFO: return ;\n case Type.LEAVE: return ;\n case Type.MEMBERS: return ;\n case Type.NOTIFICATIONS: return ;\n case Type.PHOTO: return ;\n case Type.PLAY: return ;\n case Type.PLUS: return ;\n case Type.READ: return ;\n case Type.REFRESH: return ;\n case Type.SEND: return ;\n case Type.SENT: return ;\n case Type.SHEVRON: return ;\n case Type.SHEVRON_DOWN: return ;\n case Type.SPINNER: return ;\n case Type.SPINNER_LARGE: return ;\n case Type.USER: return ;\n case Type.ICON_OPERATOR: return ;\n case Type.ICON_BANNED: return ;\n case Type.ICON_MUTED: return ;\n case Type.ICON_MUTED_FG: return ;\n case Type.ICON_FREEZE: return ;\n case Type.TOGGLE_ON: return ;\n case Type.TOGGLE_OFF: return ;\n default: return null;\n }\n}\n\nexport default function Icon({\n type,\n width,\n height,\n children,\n className,\n onClick,\n fillColor,\n}) {\n const iconStyle = {\n width: typeof width === 'string' ? width : `${width}px`,\n minWidth: typeof width === 'string' ? width : `${width}px`,\n height: typeof height === 'string' ? height : `${height}px`,\n minHeight: typeof height === 'string' ? height : `${height}px`,\n };\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {\n children || changeTypeToIconComponent(type)\n }\n \n );\n}\n\nIcon.propTypes = {\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(Type)),\n PropTypes.string,\n ]).isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n onClick: PropTypes.func,\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n fillColor: PropTypes.oneOf(Object.keys(Colors)),\n};\n\nIcon.defaultProps = {\n onClick: () => { },\n width: 26,\n height: 26,\n children: null,\n className: '',\n fillColor: Colors.DEFAULT,\n};\n\nexport const IconTypes = Type;\nexport const IconColors = Colors;\n","import React, { ReactElement } from 'react';\n\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes } from '../Icon';\n\nimport './index.scss';\nimport { uuidv4 } from '../../utils/uuid';\n\nconst imageRendererClassName = 'sendbird-avatar-img';\n\ninterface DefaultComponentProps {\n width: string | number,\n height: string | number,\n}\n\nconst defaultComponent = (\n {\n width,\n height,\n }: DefaultComponentProps\n) => (): ReactElement => (\n document.querySelector('.sendbird-theme--dark')\n ? \n : \n);\n\ninterface AvatarInnerProps {\n height: string | number,\n width: string | number,\n src?: string | string[],\n alt?: string,\n}\n\nexport const AvatarInner = ({\n src = '',\n alt = '',\n height,\n width,\n}: AvatarInnerProps): ReactElement => {\n if (typeof src === 'string') {\n return (\n \n );\n }\n\n if (src && src.length) {\n if (src.length === 1) {\n return (\n \n );\n }\n\n if (src.length === 2) {\n return (\n
\n \n \n
\n );\n }\n\n if (src.length === 3) {\n return (\n <>\n
\n \n
\n
\n \n \n
\n \n );\n }\n\n return (\n
\n {\n src.slice(0, 4)\n .map((i) => (\n \n ))\n }\n
\n );\n }\n // default img\n return (\n \n );\n};\n\ninterface AvatarProps {\n height?: string | number,\n width?: string | number,\n src?: string | string[],\n alt?: string,\n onClick?(): void,\n className?: string | string[],\n}\n\nfunction Avatar(\n {\n src = '',\n alt = '',\n width = '56px',\n height = '56px',\n onClick,\n className = '',\n }: AvatarProps,\n ref: React.Ref,\n): ReactElement {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n \n \n );\n}\n\nexport default React.forwardRef(Avatar);\n","export const Typography = {\n H_1: 'H_1',\n H_2: 'H_2',\n SUBTITLE_1: 'SUBTITLE_1',\n SUBTITLE_2: 'SUBTITLE_2',\n BODY_1: 'BODY_1',\n BODY_2: 'BODY_2',\n BUTTON_1: 'BUTTON_1',\n BUTTON_2: 'BUTTON_2',\n CAPTION_1: 'CAPTION_1',\n CAPTION_2: 'CAPTION_2',\n CAPTION_3: 'CAPTION_3',\n};\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONCONTENT_1: 'ONCONTENT_1',\n ONCONTENT_2: 'ONCONTENT_2',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n SECONDARY_3: 'SECONDARY_3',\n};\n","import { Typography, Colors } from './types';\n\nexport function changeTypographyToClassName(type) {\n switch (type) {\n case Typography.H_1: return 'sendbird-label--h-1';\n case Typography.H_2: return 'sendbird-label--h-2';\n case Typography.SUBTITLE_1: return 'sendbird-label--subtitle-1';\n case Typography.SUBTITLE_2: return 'sendbird-label--subtitle-2';\n case Typography.BODY_1: return 'sendbird-label--body-1';\n case Typography.BODY_2: return 'sendbird-label--body-2';\n case Typography.BUTTON_1: return 'sendbird-label--button-1';\n case Typography.BUTTON_2: return 'sendbird-label--button-2';\n case Typography.CAPTION_1: return 'sendbird-label--caption-1';\n case Typography.CAPTION_2: return 'sendbird-label--caption-2';\n case Typography.CAPTION_3: return 'sendbird-label--caption-3';\n default: return null;\n }\n}\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-label--color-onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-label--color-onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-label--color-onbackground-3';\n case Colors.ONCONTENT_1: return 'sendbird-label--color-oncontent-1';\n case Colors.ONCONTENT_2: return 'sendbird-label--color-oncontent-2';\n case Colors.PRIMARY: return 'sendbird-label--color-primary'; // should be Primary-3 fix me\n case Colors.ERROR: return 'sendbird-label--color-error';\n case Colors.SECONDARY_3: return 'sendbird-label--color-secondary-3';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { Typography, Colors } from './types';\nimport { changeTypographyToClassName, changeColorToClassName } from './utils';\nimport getStringSet from './stringSet';\n\nconst CLASS_NAME = 'sendbird-label';\n\nexport default function Label({\n type,\n color,\n children,\n className,\n}) {\n const injectingClassName = (Array.isArray(className))\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n if (type) {\n injectingClassName.push(changeTypographyToClassName(type));\n }\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n\n return (\n \n {children}\n \n );\n}\n\nLabel.propTypes = {\n type: PropTypes.oneOf([...Object.keys(Typography), '']),\n color: PropTypes.oneOf([...Object.keys(Colors), '']),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.element,\n PropTypes.any,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nLabel.defaultProps = {\n type: '',\n color: '',\n className: [],\n children: null,\n};\n\nconst LabelTypography = Typography;\nconst LabelColors = Colors;\nconst LabelStringSet = getStringSet('en');\nexport { LabelTypography, LabelColors, LabelStringSet };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-iconbutton';\n\nconst IconButton = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n disabled = false,\n type,\n height,\n width,\n onClick,\n onBlur,\n style,\n } = props;\n\n const [pressed, setPressed] = useState('');\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n // eslint-disable-next-line react/button-has-type\n {\n if (disabled) { return; }\n setPressed('sendbird-iconbutton--pressed');\n onClick(e);\n }}\n onBlur={(e) => {\n setPressed('');\n onBlur(e);\n }}\n >\n \n {children}\n \n \n );\n});\n\nIconButton.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nIconButton.defaultProps = {\n height: '56px',\n width: '56px',\n className: '',\n type: 'button',\n disabled: false,\n onClick: () => { },\n onBlur: () => { },\n style: {},\n};\n\nexport default IconButton;\n","// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n
\n);\n","export const Type = {\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n DANGER: 'DANGER',\n DISABLED: 'DISABLED',\n};\n\nexport const Size = {\n BIG: 'BIG',\n SMALL: 'SMALL',\n};\n","import { Type, Size } from './type';\n\nexport function changeTypeToClassName(type) {\n switch (type) {\n case Type.PRIMARY: return 'sendbird-button--primary';\n case Type.SECONDARY: return 'sendbird-button--secondary';\n case Type.DANGER: return 'sendbird-button--danger';\n case Type.DISABLED: return 'sendbird-button--disabled';\n default: return null;\n }\n}\n\nexport function changeSizeToClassName(size) {\n switch (size) {\n case Size.BIG: return 'sendbird-button--big';\n case Size.SMALL: return 'sendbird-button--small';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { Type, Size } from './type';\nimport { changeTypeToClassName, changeSizeToClassName } from './utils';\n\nexport default function Button({\n type,\n size,\n children,\n disabled,\n onClick,\n className,\n}) {\n const injectingClassNames = [\n 'sendbird-button',\n (disabled ? 'sendbird-button__disabled' : ''),\n changeTypeToClassName(type),\n changeSizeToClassName(size),\n ...((Array.isArray(className)) ? className : [className]),\n ].join(' ');\n\n return (\n \n );\n}\n\nButton.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n disabled: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(Type)),\n size: PropTypes.oneOf(Object.keys(Size)),\n onClick: PropTypes.func,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nButton.defaultProps = {\n children: 'Button',\n type: Type.PRIMARY,\n disabled: false,\n size: Size.BIG,\n onClick: () => { },\n className: '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport const ModalHeader = ({ titleText }) => (\n
\n \n
\n);\nModalHeader.propTypes = {\n titleText: PropTypes.string.isRequired,\n};\n\nexport const ModalBody = ({ children }) => (\n
{children}
\n);\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element.isRequired,\n PropTypes.arrayOf(PropTypes.element.isRequired),\n ]),\n};\nModalBody.defaultProps = {\n children: null,\n};\n\nexport const ModalFooter = ({\n onSubmit,\n onCancel,\n disabled = false,\n submitText,\n type,\n}) => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n \n
\n );\n};\n\nModalFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModalFooter.defaultProps = {\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nfunction Modal(props) {\n const {\n children,\n onCancel,\n onSubmit,\n disabled,\n submitText,\n titleText,\n hideFooter,\n type,\n } = props;\n return createPortal((\n
\n
\n \n {children}\n {\n !hideFooter && (\n \n )\n }\n
\n \n \n \n
\n
\n
\n
\n ), document.getElementById(MODAL_ROOT));\n}\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n hideFooter: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModal.defaultProps = {\n children: null,\n hideFooter: false,\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nexport default Modal;\n","import './color.scss';\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONBACKGROUND_4: 'ONBACKGROUND_4',\n ONCONTENT_1: 'ONCONTENT_1',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-color--onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-color--onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-color--onbackground-3';\n case Colors.ONBACKGROUND_4: return 'sendbird-color--onbackground-4';\n case Colors.ONCONTENT_1: return 'sendbird-color--oncontent-1';\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.ERROR: return 'sendbird-color--error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\n\nexport default function TextButton({\n color,\n children,\n disabled,\n className,\n onClick,\n notUnderline,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nTextButton.propTypes = {\n color: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClick: PropTypes.func,\n notUnderline: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nTextButton.defaultProps = {\n color: Colors.ONBACKGROUND_1,\n className: '',\n onClick: () => { },\n notUnderline: false,\n disabled: false,\n};\n","export function Types() {\n return {\n LOADING: 'LOADING',\n NO_CHANNELS: 'NO_CHANNELS',\n WRONG: 'WRONG',\n };\n}\n\nexport default Types();\n","export const USER_UPDATED = 'USER_UPDATED';\nexport const SEND_MESSAGE_START = 'SEND_MESSAGE_START';\nexport const SEND_USER_MESSAGE = 'SEND_USER_MESSAGE';\nexport const SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE';\nexport const UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE';\nexport const DELETE_MESSAGE = 'DELETE_MESSAGE';\nexport const LEAVE_CHANNEL = 'LEAVE_CHANNEL';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\n","import * as topics from './pubSub/topics';\n\nexport const getSdk = (store) => {\n const { stores = {} } = store;\n const { sdkStore = {} } = stores;\n const { sdk } = sdkStore;\n return sdk;\n};\n\nexport const getPubSub = (store) => {\n const { config = {} } = store;\n const { pubSub } = config;\n return pubSub;\n};\n\n// SendBird disconnect. Invalidates currentUser\n// eslint-disable-next-line max-len\nexport const getConnect = (store) => (userId, accessToken) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n if (!accessToken) {\n sdk.connect(userId)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n } else {\n sdk.connect(userId, accessToken)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n }\n});\n\n// SendBird disconnect. Invalidates currentUser\nexport const getDisconnect = (store) => () => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.disconnect()\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\n// Using the updateCurrentUserInfo() method\n// you can update a user's nickname and profile image with a URL\n// eslint-disable-next-line max-len\nexport const getUpdateUserInfo = (store) => (nickName, profileUrl) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.updateCurrentUserInfo(nickName, profileUrl)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\nexport const getSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\nexport const getDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nexport const getResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getCreateChannel = (store) => (params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n pubsub.publish(\n topics.CREATE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n });\n};\n\nexport const getLeaveChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.leave()\n .then(() => {\n resolve(channel);\n pubsub.publish(\n topics.LEAVE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.freeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getUnFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.unfreeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport default {\n getSdk,\n getConnect,\n getDisconnect,\n getUpdateUserInfo,\n getSendUserMessage,\n getSendFileMessage,\n getUpdateUserMessage,\n getDeleteMessage,\n getResendUserMessage,\n getResendFileMessage,\n getFreezeChannel,\n getUnFreezeChannel,\n getCreateChannel,\n getLeaveChannel,\n};\n","import React, { ReactElement, useContext } from 'react';\nimport { SendbirdTypes } from '../../types';\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { getSdk, getCreateChannel } from '../../lib/selectors';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\n\ninterface Logger {\n info?(message: string, channel: SendbirdTypes['GroupChannel']): void;\n}\n\ninterface Props {\n user: SendbirdTypes['User'];\n currentUserId?: string;\n sdk?: SendbirdTypes['SendBirdInstance'];\n logger?: Logger;\n disableMessaging?: boolean;\n createChannel?(params: SendbirdTypes['GroupChannelParams']): Promise;\n onSuccess?(): void;\n}\n\nfunction UserProfile({\n user,\n currentUserId,\n sdk,\n logger,\n disableMessaging = false,\n createChannel,\n onSuccess,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n
\n
\n \n
\n {\n (user.userId !== currentUserId) && !disableMessaging && (\n
\n {\n const params = new sdk.GroupChannelParams();\n params.isDistinct = true;\n params.addUserIds([user.userId]);\n onSuccess();\n createChannel(params)\n .then((groupChannel) => {\n logger.info('UserProfile, channel create', groupChannel);\n });\n }}\n >\n {stringSet.USER_PROFILE__MESSAGE}\n \n
\n )\n }\n
\n
\n \n {stringSet.USER_PROFILE__USER_ID}\n \n \n {user.userId}\n \n
\n
\n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n createChannel: getCreateChannel(store),\n logger: store.config.logger,\n pubsub: store.config.pubSub,\n});\n\nconst ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps);\n\nexport default ConnectedUserProfile;\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class MenuItems extends Component {\n constructor(props) {\n super(props);\n this.menuRef = React.createRef();\n this.state = {\n menuStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getMenuPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-icon--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-icon--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { menuRef } = this;\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getMenuPosition = () => {\n const { parentRef, openLeft } = this.props;\n const parentRect = parentRef.current.getBoundingClientRect();\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n const menuStyle = {\n top: y,\n left: x,\n };\n\n if (!this.menuRef.current) return menuStyle;\n\n const { innerWidth, innerHeight } = window;\n const rect = this.menuRef.current.getBoundingClientRect();\n if (y + rect.height > innerHeight) {\n menuStyle.top -= rect.height;\n }\n\n if (x + rect.width > innerWidth && !openLeft) {\n menuStyle.left -= rect.width;\n }\n\n if (menuStyle.top < 0) {\n menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;\n }\n\n if (menuStyle.left < 0) {\n menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;\n }\n\n menuStyle.top += 32;\n if (openLeft) {\n const padding = Number.isNaN(rect.width - 30)\n ? 108 // default\n : rect.width - 30;\n menuStyle.left -= padding;\n }\n\n return this.setState({ menuStyle });\n }\n\n render() {\n const { menuStyle } = this.state;\n const { children, style } = this.props;\n return (\n createPortal(\n (\n <>\n
\n \n {children}\n \n \n ),\n document.getElementById('sendbird-dropdown-portal'),\n )\n );\n }\n}\nMenuItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n style: PropTypes.shape({}),\n // https://stackoverflow.com/a/51127130\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n openLeft: PropTypes.bool,\n};\nMenuItems.defaultProps = {\n style: {},\n openLeft: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst componentClassName = 'sendbird-sort-by-row';\nexport default function SortByRow({\n className,\n maxItemCount,\n itemWidth,\n itemHeight,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(componentClassName);\n\n if (children.length > maxItemCount) {\n const result = [];\n for (let i = 0; i < children.length; i += maxItemCount) {\n result.push(\n \n {\n children.slice(i, i + maxItemCount)\n }\n
,\n );\n }\n\n return result;\n }\n return (\n \n {children}\n
\n );\n}\n\nSortByRow.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n maxItemCount: PropTypes.number.isRequired,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]).isRequired,\n};\n\nSortByRow.defaultProps = {\n className: '',\n};\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport SortByRow from '../../SortByRow';\n\nexport default class EmojiListItems extends Component {\n constructor(props) {\n super(props);\n this.reactionRef = React.createRef();\n this.state = {\n reactionStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getBarPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-reactions--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-reactions--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { reactionRef } = this;\n const handleClickOutside = (event) => {\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getBarPosition = () => {\n const {\n parentRef,\n spaceFromTrigger,\n } = this.props;\n const spaceFromTriggerX = spaceFromTrigger.x || 0;\n const spaceFromTriggerY = spaceFromTrigger.y || 0;\n\n const parentRect = parentRef.current.getBoundingClientRect();\n\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n\n const reactionStyle = {\n top: y,\n left: x,\n };\n\n if (!this.reactionRef.current) return reactionStyle;\n const rect = this.reactionRef.current.getBoundingClientRect();\n // const childRect = this.reactionRef.current.children[0].getBoundingClientRect();\n\n if (reactionStyle.top < rect.height) {\n reactionStyle.top += parentRect.height;\n reactionStyle.top += spaceFromTriggerY;\n } else {\n reactionStyle.top -= rect.height;\n reactionStyle.top -= spaceFromTriggerY;\n }\n\n reactionStyle.left -= (rect.width / 2);\n reactionStyle.left += (parentRect.height / 2) - 2;\n reactionStyle.left += spaceFromTriggerX;\n\n const maximumLeft = (window.innerWidth - rect.width);\n if (maximumLeft < reactionStyle.left) {\n reactionStyle.left = maximumLeft;\n }\n if (reactionStyle.left < 0) {\n reactionStyle.left = 0;\n }\n\n return this.setState({ reactionStyle });\n }\n\n render() {\n const { reactionStyle } = this.state;\n const { children } = this.props;\n return (\n createPortal(\n <>\n
\n \n \n {children}\n \n \n ,\n document.getElementById('sendbird-emoji-list-portal'),\n )\n );\n }\n}\nEmojiListItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n spaceFromTrigger: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n};\nEmojiListItems.defaultProps = {\n spaceFromTrigger: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport MenuItems_ from './items/MenuItems';\nimport EmojiListItems_ from './items/EmojiListItems';\n\nconst ENTER = 13;\n\nexport const MenuItems = MenuItems_;\nexport const EmojiListItems = EmojiListItems_;\n\nexport const MenuItem = ({ children, onClick, className }) => {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n {\n if (e.keyCode === ENTER) {\n onClick(e);\n }\n }}\n role=\"menuitem\"\n >\n \n {children}\n \n \n );\n};\n\nMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n};\n\nMenuItem.defaultProps = {\n className: '',\n};\n\nexport const MenuRoot = () => (\n
\n);\n\nexport const EmojiReactionListRoot = () => (\n
\n);\n\nexport default function ContextMenu({ menuTrigger, menuItems }) {\n const [showMenu, setShowMenu] = useState(false);\n\n return (\n
\n {menuTrigger(() => setShowMenu(!showMenu))}\n {showMenu && menuItems(() => setShowMenu(false))}\n
\n );\n}\n\nContextMenu.propTypes = {\n menuTrigger: PropTypes.func.isRequired,\n menuItems: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes } from '../Icon';\n\nexport default function Loader({\n children,\n className,\n width,\n height,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nLoader.propTypes = {\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nLoader.defaultProps = {\n children: ,\n className: '',\n width: '26px',\n height: '26px',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Loader from '../Loader';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport _PlaceHolderTypes from './type';\n\nexport const PlaceHolderTypes = _PlaceHolderTypes;\n\nexport default function PlaceHolder({\n className,\n type,\n retryToConnect,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n {\n type === PlaceHolderTypes.LOADING\n ? (\n \n \n \n )\n : null\n }\n {\n type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG\n ? (\n
\n {\n type === PlaceHolderTypes.NO_CHANNELS && (\n \n )\n }\n {\n type === PlaceHolderTypes.WRONG && (\n \n )\n }\n \n {\n retryToConnect\n ? (\n \n \n \n
\n )\n : null\n }\n
\n )\n : null\n }\n
\n );\n}\n\nPlaceHolder.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(PlaceHolderTypes)),\n PropTypes.string,\n ]).isRequired,\n retryToConnect: PropTypes.func,\n};\n\nPlaceHolder.defaultProps = {\n className: '',\n retryToConnect: null,\n};\n"],"names":["UserProfileContext","React","createContext","disableUserProfile","isOpenChannel","renderUserProfile","UserProfileProvider","props","children","className","propTypes","PropTypes","oneOfType","element","arrayOf","any","isRequired","bool","func","string","defaultProps","ImageRenderer","alt","url","width","height","defaultComponent","circle","injectingClassName","Array","isArray","unshift","useState","realElement","setRealElement","useEffect","join","backgroundRepeat","backgroundPosition","backgroundSize","backgroundImage","borderRadius","number","ADD","ATTACH","ARROW_LEFT","AVATAR_DARK","AVATAR_LIGHT","AVATAR_NO_IMAGE","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","BROADCAST_DARK","BROADCAST_LIGHT","BROADCAST","FROZEN_DARK","FROZEN_LIGHT","CAMERA","MORE","MUTE","NO_THUMBNAIL","CHECKBOX","CHECKBOX_OFF","CLOSE","COPY","CHAT","CREATE","DELETE","DISCONNECTED","DUMMY","EDIT","ERROR","ERROR_FILLED","EMOJI_FAILED","EMOJI_REACTIONS_ADD","EMOJI_REACTIONS_ADD_GRAY","DELIVERED","DOCUMENT","DOWNLOAD","FILE_AUDIO","FILE_DOCUMENT","GIF","INFO","LEAVE","MEMBERS","NOTIFICATIONS","PHOTO","PLAY","PLUS","READ","REFRESH","SEND","SENT","SUPER_GROUP","SHEVRON","SHEVRON_DOWN","SPINNER","SPINNER_LARGE","USER","ICON_OPERATOR","ICON_BANNED","ICON_FREEZE","ICON_MUTED","ICON_MUTED_FG","TOGGLE_ON","TOGGLE_OFF","Colors","DEFAULT","PRIMARY","SECONDARY","CONTENT","CONTENT_INVERSE","WHITE","ON_BACKGROUND_2","ON_BACKGROUND_3","BACKGROUND_3","changeColorToClassName","color","changeTypeToIconComponent","type","Type","IconAdd","IconArrowLeft","IconCamera","IconAttach","IconAvatarDark","IconAvatarLight","IconAvatarNoImage","BroadcastLargeDark","BroadcastLargeLight","BroadcastDark","BroadcastLight","Broadcast","FrozenDark","FrozenLight","IconMore","IconMute","IconNoThumbnail","IconCheckbox","IconCheckboxOff","IconClose","IconCopy","IconChat","IconSupergroup","IconCreate","IconDelete","IconDisconnected","IconDummy","IconEdit","IconError","IconErrorFilled","IconEmojiFailed","IconEmojiReactionsAdd","IconEmojiReactionsAddGray","IconDelivered","IconDocument","IconDownload","IconFileAudio","IconFileDocument","IconGif","IconInfo","IconLeave","IconMembers","IconNotifications","IconPhoto","IconPlay","IconPlus","IconRead","IconRefresh","IconSend","IconSent","IconShevron","IconShevronDown","IconSpinner","IconSpinnerLarge","IconUser","IconOperator","IconBanned","IconMuted","IconMutedFg","IconFreeze","ToggleOn","ToggleOff","Icon","onClick","fillColor","iconStyle","minWidth","minHeight","oneOf","Object","keys","IconTypes","IconColors","imageRendererClassName","_a","document","querySelector","AvatarInner","_b","src","_c","length","slice","map","i","uuidv4","Avatar","ref","_d","_e","_f","__spreadArrays","forwardRef","Typography","H_1","H_2","SUBTITLE_1","SUBTITLE_2","BODY_1","BODY_2","BUTTON_1","BUTTON_2","CAPTION_1","CAPTION_2","CAPTION_3","ONBACKGROUND_1","ONBACKGROUND_2","ONBACKGROUND_3","ONCONTENT_1","ONCONTENT_2","SECONDARY_3","changeTypographyToClassName","CLASS_NAME","Label","push","LabelTypography","LabelColors","LabelStringSet","getStringSet","IconButton","disabled","onBlur","style","pressed","setPressed","e","shape","MODAL_ROOT","DANGER","DISABLED","Size","BIG","SMALL","changeTypeToClassName","changeSizeToClassName","size","Button","injectingClassNames","ModalHeader","titleText","ModalBody","ModalFooter","onSubmit","onCancel","submitText","useContext","LocalizationContext","stringSet","ButtonTypes","BUTTON__CANCEL","Modal","hideFooter","createPortal","getElementById","ONBACKGROUND_4","TextButton","notUnderline","Types","LOADING","NO_CHANNELS","WRONG","SEND_MESSAGE_START","SEND_USER_MESSAGE","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","DELETE_MESSAGE","LEAVE_CHANNEL","CREATE_CHANNEL","getSdk","store","stores","sdkStore","sdk","getPubSub","config","pubSub","getConnect","userId","accessToken","Promise","resolve","reject","Error","connect","then","res","catch","err","getDisconnect","disconnect","getUpdateUserInfo","nickName","profileUrl","updateCurrentUserInfo","getSendUserMessage","channelUrl","userMessageParams","pubsub","GroupChannel","getChannel","channel","promisify","pendingMsg","pendingPromise","resolve_","reject_","sendUserMessage","swapParams","getErrorFirstCallback","message","error","publish","topics","get","getSendFileMessage","fileMessageParams","sendFileMessage","file","localUrl","URL","createObjectURL","fileUrl","requestState","getUpdateUserMessage","messageId","params","updateUserMessage","fromSelector","getDeleteMessage","deleteMessage","getResendUserMessage","failedMessage","resendUserMessage","getResendFileMessage","resendFileMessage","getCreateChannel","createChannel","getLeaveChannel","leave","getFreezeChannel","freeze","getUnFreezeChannel","unfreeze","UserProfile","user","currentUserId","logger","disableMessaging","onSuccess","nickname","NO_NAME","GroupChannelParams","isDistinct","addUserIds","groupChannel","info","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","mapStoreToProps","ConnectedUserProfile","withSendbirdContext","MenuItems","parentContainRef","current","classList","add","remove","closeDropdown","menuRef","handleClickOutside","event","contains","target","setState","addEventListener","state","removeEventListener","parentRef","openLeft","parentRect","getBoundingClientRect","x","left","y","top","menuStyle","window","innerWidth","innerHeight","rect","padding","Number","isNaN","createRef","setupEvents","getMenuPosition","showParent","cleanUpEvents","hideParent","display","position","Math","round","Component","instanceOf","Element","componentClassName","SortByRow","maxItemCount","itemWidth","itemHeight","result","EmojiListItems","reactionRef","spaceFromTrigger","spaceFromTriggerX","spaceFromTriggerY","reactionStyle","maximumLeft","getBarPosition","ENTER","MenuItems_","EmojiListItems_","MenuItem","keyCode","ContextMenu","menuTrigger","menuItems","showMenu","setShowMenu","Loader","PlaceHolderTypes","_PlaceHolderTypes","PlaceHolder","retryToConnect","PLACE_HOLDER__NO_CHANNEL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqEA,IAAMC,MAAM,GAAG;AACbC,EAAAA,OAAO,EAAE,SADI;AAEbC,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"} \ No newline at end of file diff --git a/dist/cjs/index-95b18747.js b/dist/cjs/index-95b18747.js new file mode 100644 index 0000000..6831ea8 --- /dev/null +++ b/dist/cjs/index-95b18747.js @@ -0,0 +1,443 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var React = require('react'); +var React__default = _interopDefault(React); +var PropTypes = _interopDefault(require('prop-types')); +var index = require('./index-710314fd.js'); +var reactDom = require('react-dom'); + +// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types +var SUPPORTED_MIMES = { + IMAGE: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp' // not supported in IE + ], + VIDEO: ['video/mpeg', 'video/ogg', 'video/webm', 'video/mp4'] +}; +var isImage = function isImage(type) { + return SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0; +}; +var isVideo = function isVideo(type) { + return SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0; +}; +var unSupported = function unSupported(type) { + return !(isImage(type) || isVideo(type)); +}; + +var isEmpty = function isEmpty(val) { + return val === null || val === undefined; +}; // Some Ids return string and number inconsistently +// only use to comapre IDs + + +function compareIds (a, b) { + if (isEmpty(a) || isEmpty(b)) { + return false; + } + + var aString = a.toString(); + var bString = b.toString(); + return aString === bString; +} + +function DateSeparator(_ref) { + var className = _ref.className, + children = _ref.children, + separatorColor = _ref.separatorColor; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React__default.createElement("div", { + className: [].concat(LocalizationContext._toConsumableArray(injectingClassName), ['sendbird-separator']).join(' ') + }, React__default.createElement("div", { + className: ["".concat(index.changeColorToClassName(separatorColor), "--background-color"), 'sendbird-separator__left'].join(' ') + }), React__default.createElement("div", { + className: "sendbird-separator__text" + }, children), React__default.createElement("div", { + className: ["".concat(index.changeColorToClassName(separatorColor), "--background-color"), 'sendbird-separator__right'].join(' ') + })); +} +DateSeparator.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.element]), + separatorColor: PropTypes.string +}; +DateSeparator.defaultProps = { + className: '', + children: React__default.createElement(index.Label, { + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, "Date Separator"), + separatorColor: index.Colors.ONBACKGROUND_4 +}; + +// import IconAttach from '../../svgs/icon-attach.svg'; + +var LINE_HEIGHT = 76; + +var noop = function noop() {}; + +var KeyCode = { + SHIFT: 16, + ENTER: 13 +}; + +var handleUploadFile = function handleUploadFile(callback) { + return function (event) { + if (event.target.files && event.target.files[0]) { + callback(event.target.files[0]); + } // eslint-disable-next-line no-param-reassign + + + event.target.value = ''; + }; +}; + +var MessageInput = React__default.forwardRef(function (props, ref) { + var isEdit = props.isEdit, + disabled = props.disabled, + value = props.value, + name = props.name, + placeholder = props.placeholder, + maxLength = props.maxLength, + onFileUpload = props.onFileUpload, + onSendMessage = props.onSendMessage, + onCancelEdit = props.onCancelEdit, + onStartTyping = props.onStartTyping; + + var _useContext = React.useContext(LocalizationContext.LocalizationContext), + stringSet = _useContext.stringSet; + + var fileInputRef = React.useRef(null); + + var _useState = React.useState(value), + _useState2 = LocalizationContext._slicedToArray(_useState, 2), + inputValue = _useState2[0], + setInputValue = _useState2[1]; + + var _useState3 = React.useState(false), + _useState4 = LocalizationContext._slicedToArray(_useState3, 2), + isShiftPressed = _useState4[0], + setIsShiftPressed = _useState4[1]; + + var setHeight = function setHeight() { + var elem = ref.current; + var MAX_HEIGHT = window.document.body.offsetHeight * 0.6; + + if (elem.scrollHeight >= LINE_HEIGHT) { + if (MAX_HEIGHT < elem.scrollHeight) { + elem.style.height = 'auto'; + elem.style.height = "".concat(MAX_HEIGHT, "px"); + } else { + elem.style.height = 'auto'; + elem.style.height = "".concat(elem.scrollHeight, "px"); + } + } else { + elem.style.height = ''; + } + }; // after setHeight called twice, the textarea goes to the initialized + + + React.useEffect(function () { + setHeight(); + return setHeight; + }, [inputValue]); + + var sendMessage = function sendMessage() { + if (inputValue && inputValue.trim().length > 0) { + var trimmedInputValue = inputValue.trim(); + + if (isEdit) { + onSendMessage(name, trimmedInputValue, function () { + onCancelEdit(); + }); + } else { + onSendMessage(trimmedInputValue); + setInputValue(''); + } + } + }; + + return React__default.createElement("form", { + className: "\n ".concat(isEdit ? 'sendbird-message-input__edit' : '', "\n ").concat(disabled ? 'sendbird-message-input-form__disabled' : '', "\n ") + }, React__default.createElement("div", { + className: "\n sendbird-message-input\n ".concat(disabled ? 'sendbird-message-input__disabled' : '', "\n ") + }, React__default.createElement("textarea", { + disabled: disabled, + ref: ref, + name: name, + value: inputValue, + className: "sendbird-message-input--textarea", + maxLength: maxLength, + onChange: function onChange(e) { + setInputValue(e.target.value); + onStartTyping(); + }, + onKeyDown: function onKeyDown(e) { + if (e.keyCode === KeyCode.SHIFT) { + setIsShiftPressed(true); + } + + if (!isShiftPressed && e.keyCode === KeyCode.ENTER) { + e.preventDefault(); + sendMessage(); + } + }, + onKeyUp: function onKeyUp(e) { + if (e.keyCode === KeyCode.SHIFT) { + setIsShiftPressed(false); + } + } + }), !inputValue && React__default.createElement(index.Label, { + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_3, + className: "sendbird-message-input--placeholder" + }, placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER), !isEdit && inputValue && inputValue.trim().length > 0 && React__default.createElement(index.IconButton, { + className: "sendbird-message-input--send", + height: "32px", + width: "32px", + onClick: sendMessage + }, React__default.createElement(index.Icon, { + type: index.IconTypes.SEND, + fillColor: index.IconColors.PRIMARY, + width: "20px", + height: "20px" + })), !isEdit && !inputValue && !(inputValue.trim().length > 0) && React__default.createElement(index.IconButton, { + className: "sendbird-message-input--attach", + height: "32px", + width: "32px", + onClick: function onClick() { + // todo: clear previous input + fileInputRef.current.click(); + } + }, React__default.createElement(index.Icon, { + type: index.IconTypes.ATTACH, + width: "20px", + height: "20px" + }), React__default.createElement("input", { + type: "file", + ref: fileInputRef, + onChange: handleUploadFile(onFileUpload), + className: "sendbird-message-input--attach-input" + }))), isEdit && React__default.createElement("div", { + className: "sendbird-message-input--edit-action" + }, React__default.createElement(index.Button, { + className: "sendbird-message-input--edit-action__cancel", + type: index.Type.SECONDARY, + size: index.Size.SMALL, + onClick: onCancelEdit + }, stringSet.BUTTON__CANCEL), React__default.createElement(index.Button, { + className: "sendbird-message-input--edit-action__save", + type: index.Type.PRIMARY, + size: index.Size.SMALL, + onClick: function onClick() { + if (inputValue) { + var trimmedInputValue = inputValue.trim(); + onSendMessage(name, trimmedInputValue, function () { + onCancelEdit(); + }); + } + } + }, stringSet.BUTTON__SAVE))); +}); +MessageInput.propTypes = { + placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), + isEdit: PropTypes.bool, + name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + value: PropTypes.string, + disabled: PropTypes.bool, + maxLength: PropTypes.number, + onFileUpload: PropTypes.func, + onSendMessage: PropTypes.func, + onStartTyping: PropTypes.func, + onCancelEdit: PropTypes.func +}; +MessageInput.defaultProps = { + value: '', + onSendMessage: noop, + name: 'sendbird-message-input', + isEdit: false, + disabled: false, + placeholder: '', + maxLength: 5000, + onFileUpload: noop, + onCancelEdit: noop, + onStartTyping: noop +}; + +var FileViewerComponent = function FileViewerComponent(_ref) { + var profileUrl = _ref.profileUrl, + nickname = _ref.nickname, + type = _ref.type, + url = _ref.url, + name = _ref.name, + onClose = _ref.onClose, + onDelete = _ref.onDelete, + isByMe = _ref.isByMe; + return React__default.createElement("div", { + className: "sendbird-fileviewer" + }, React__default.createElement("div", { + className: "sendbird-fileviewer__header" + }, React__default.createElement("div", { + className: "sendbird-fileviewer__header-left" + }, React__default.createElement("div", { + className: "sendbird-fileviewer__header-avatar" + }, React__default.createElement(index.Avatar, { + height: "32px", + width: "32px", + src: profileUrl + })), React__default.createElement(index.Label, { + className: "sendbird-fileviewer__header-filename", + type: index.LabelTypography.H_2, + color: index.LabelColors.ONBACKGROUND_1 + }, name), React__default.createElement(index.Label, { + className: "sendbird-fileviewer__header-sendername", + type: index.LabelTypography.BODY_1, + color: index.LabelColors.ONBACKGROUND_2 + }, nickname)), React__default.createElement("div", { + className: "sendbird-fileviewer__header-right" + }, !unSupported(type) && React__default.createElement("div", { + className: "sendbird-fileviewer__header-actions" + }, React__default.createElement("a", { + href: url, + rel: "noopener noreferrer", + target: "_blank", + className: "sendbird-fileviewer__header-download" + }, React__default.createElement(index.Icon, { + type: index.IconTypes.DOWNLOAD, + height: "24px", + width: "24px" + })), onDelete && isByMe && React__default.createElement("div", { + className: "sendbird-fileviewer__header-delete" + }, React__default.createElement(index.Icon, { + type: index.IconTypes.DELETE, + height: "24px", + width: "24px", + onClick: onDelete + }))), React__default.createElement("div", { + className: "sendbird-fileviewer__header-close" + }, React__default.createElement(index.Icon, { + type: index.IconTypes.CLOSE, + height: "24px", + width: "24px", + onClick: onClose + })))), React__default.createElement("div", { + className: "sendbird-fileviewer__content" + }, isVideo(type) && // eslint-disable-next-line jsx-a11y/media-has-caption + React__default.createElement("video", { + controls: true, + className: "sendbird-fileviewer__video" + }, React__default.createElement("source", { + src: url, + type: type + })), isImage(type) && React__default.createElement("img", { + src: url, + alt: name, + className: "sendbird-fileviewer__img" + }), unSupported(type) && React__default.createElement("div", { + className: "sendbird-fileviewer__unsupported" + }, React__default.createElement(index.Label, { + type: index.LabelTypography.H_1, + color: index.LabelColors.ONBACKGROUND_1 + }, "Unsupoprted message")))); +}; +FileViewerComponent.propTypes = { + profileUrl: PropTypes.string.isRequired, + nickname: PropTypes.string.isRequired, + type: PropTypes.string.isRequired, + url: PropTypes.string.isRequired, + name: PropTypes.string.isRequired, + onClose: PropTypes.func.isRequired, + onDelete: PropTypes.func.isRequired, + isByMe: PropTypes.bool +}; +FileViewerComponent.defaultProps = { + isByMe: true +}; +function FileViewer(props) { + var onClose = props.onClose, + message = props.message, + onDelete = props.onDelete, + isByMe = props.isByMe; + var sender = message.sender, + type = message.type, + url = message.url, + _message$name = message.name, + name = _message$name === void 0 ? '' : _message$name; + var profileUrl = sender.profileUrl, + _sender$nickname = sender.nickname, + nickname = _sender$nickname === void 0 ? '' : _sender$nickname; + return reactDom.createPortal(React__default.createElement(FileViewerComponent, { + profileUrl: profileUrl, + nickname: nickname, + type: type, + url: url, + name: name, + onClose: onClose, + onDelete: onDelete, + isByMe: isByMe + }), document.getElementById(index.MODAL_ROOT)); +} +FileViewer.propTypes = { + onClose: PropTypes.func.isRequired, + message: PropTypes.shape({ + sender: PropTypes.shape({ + profileUrl: PropTypes.string, + nickname: PropTypes.string + }), + type: PropTypes.string, + url: PropTypes.string, + name: PropTypes.string + }).isRequired, + onDelete: PropTypes.func.isRequired, + isByMe: PropTypes.bool +}; +FileViewer.defaultProps = { + isByMe: true +}; + +var LINK_LABEL = 'sendbird-link-label'; +var http = /https?:\/\//; +function LinkLabel(_ref) { + var className = _ref.className, + src = _ref.src, + type = _ref.type, + color = _ref.color, + children = _ref.children; + var injectingClassName = Array.isArray(className) ? className : [className]; + + if (color) { + injectingClassName.push(index.changeColorToClassName$1(color)); + } + + var url = http.test(src) ? src : "http://".concat(src); + return React__default.createElement("a", { + className: "".concat(LINK_LABEL, " ").concat(injectingClassName.join(' ')), + href: url, + target: "_blank", + rel: "noopener noreferrer" + }, React__default.createElement(index.Label, { + type: type, + color: color, + className: "".concat(LINK_LABEL, "__label") + }, children)); +} +LinkLabel.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.arrayOf(PropTypes.string), PropTypes.arrayOf(PropTypes.element)]).isRequired, + src: PropTypes.string.isRequired, + type: PropTypes.oneOf(Object.keys(index.LabelTypography)).isRequired, + color: PropTypes.oneOf(Object.keys(index.LabelColors)).isRequired +}; +LinkLabel.defaultProps = { + className: '' +}; + +exports.DateSeparator = DateSeparator; +exports.FileViewer = FileViewer; +exports.LinkLabel = LinkLabel; +exports.MessageInput = MessageInput; +exports.compareIds = compareIds; +exports.isImage = isImage; +exports.isVideo = isVideo; +exports.unSupported = unSupported; +//# sourceMappingURL=index-95b18747.js.map diff --git a/dist/cjs/index-95b18747.js.map b/dist/cjs/index-95b18747.js.map new file mode 100644 index 0000000..1c09478 --- /dev/null +++ b/dist/cjs/index-95b18747.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-1cf7b066.js","sources":["../../../src/ui/FileViewer/types.js","../../../src/utils/compareIds.js","../../../src/ui/DateSeparator/index.jsx","../../../src/ui/MessageInput/index.jsx","../../../src/ui/FileViewer/index.jsx","../../../src/ui/LinkLabel/index.jsx"],"sourcesContent":["// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const isImage = (type) => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type) => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const unSupported = (type) => !(isImage(type) || isVideo(type));\n\nexport default SUPPORTED_MIMES;\n","const isEmpty = (val) => (val === null || val === undefined);\n\n// Some Ids return string and number inconsistently\n// only use to comapre IDs\nexport default function (a, b) {\n if (isEmpty(a) || isEmpty(b)) {\n return false;\n }\n const aString = a.toString();\n const bString = b.toString();\n return aString === bString;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport default function DateSeparator({\n className,\n children,\n separatorColor,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n
\n
{children}
\n
\n
\n );\n}\n\nDateSeparator.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.element,\n ]),\n separatorColor: PropTypes.string,\n};\n\nDateSeparator.defaultProps = {\n className: '',\n children: (\n \n ),\n separatorColor: Colors.ONBACKGROUND_4,\n};\n","import React, {\n useState,\n useRef,\n useEffect,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport IconButton from '../IconButton';\nimport Button from '../Button';\nimport { Type, Size } from '../Button/type';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n// import IconSend from '../../svgs/icon-send.svg';\n// import IconAttach from '../../svgs/icon-attach.svg';\n\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst KeyCode = {\n SHIFT: 16,\n ENTER: 13,\n};\n\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n isEdit,\n disabled,\n value,\n name,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onCancelEdit,\n onStartTyping,\n } = props;\n\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [inputValue, setInputValue] = useState(value);\n const [isShiftPressed, setIsShiftPressed] = useState(false);\n\n const setHeight = () => {\n const elem = ref.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n };\n\n // after setHeight called twice, the textarea goes to the initialized\n useEffect(() => {\n setHeight();\n return setHeight;\n }, [inputValue]);\n\n const sendMessage = () => {\n if (inputValue && inputValue.trim().length > 0) {\n const trimmedInputValue = inputValue.trim();\n if (isEdit) {\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n } else {\n onSendMessage(trimmedInputValue);\n setInputValue('');\n }\n }\n };\n\n return (\n \n \n {\n setInputValue(e.target.value);\n onStartTyping();\n }}\n onKeyDown={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(true);\n }\n if (!isShiftPressed && e.keyCode === KeyCode.ENTER) {\n e.preventDefault();\n sendMessage();\n }\n }}\n onKeyUp={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(false);\n }\n }}\n />\n {/* placeholder */}\n {!inputValue && (\n \n {placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER}\n \n )}\n {/* send icon */}\n {\n (!isEdit && inputValue && inputValue.trim().length > 0) && (\n \n \n \n )\n }\n {/* upload icon */}\n {\n (!isEdit && !inputValue && !(inputValue.trim().length > 0)) && (\n {\n // todo: clear previous input\n fileInputRef.current.click();\n }}\n >\n \n \n \n )\n }\n
\n {/* Edit */}\n {\n isEdit && (\n
\n \n {stringSet.BUTTON__CANCEL}\n \n {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n }\n }}\n >\n {stringSet.BUTTON__SAVE}\n \n
\n )\n }\n \n );\n});\n\nMessageInput.propTypes = {\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isEdit: PropTypes.bool,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n value: PropTypes.string,\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n value: '',\n onSendMessage: noop,\n name: 'sendbird-message-input',\n isEdit: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n};\n\nexport default MessageInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes } from '../Icon';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, unSupported } from './types';\n\nexport const FileViewerComponent = ({\n profileUrl,\n nickname,\n type,\n url,\n name,\n onClose,\n onDelete,\n isByMe,\n}) => (\n
\n
\n
\n
\n \n
\n \n {name}\n \n \n {nickname}\n \n
\n
\n {\n !unSupported(type) && (\n
\n \n \n \n {\n onDelete && isByMe && (\n
\n \n
\n )\n }\n
\n )\n }\n
\n \n
\n
\n
\n
\n {isVideo(type) && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n \n )}\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n \n
\n )\n }\n
\n
\n);\n\nFileViewerComponent.propTypes = {\n profileUrl: PropTypes.string.isRequired,\n nickname: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewerComponent.defaultProps = {\n isByMe: true,\n};\n\nexport default function FileViewer(props) {\n const {\n onClose,\n message,\n onDelete,\n isByMe,\n } = props;\n const {\n sender,\n type,\n url,\n name = '',\n } = message;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n \n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nFileViewer.propTypes = {\n onClose: PropTypes.func.isRequired,\n message: PropTypes.shape({\n sender: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }),\n type: PropTypes.string,\n url: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewer.defaultProps = {\n isByMe: true,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { changeColorToClassName } from '../Label/utils';\nimport './index.scss';\n\nconst LINK_LABEL = 'sendbird-link-label';\nconst http = /https?:\\/\\//;\n\nexport default function LinkLabel({\n className,\n src,\n type,\n color,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n const url = (http.test(src)) ? src : `http://${src}`;\n\n return (\n \n \n \n );\n}\n\nLinkLabel.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n src: PropTypes.string.isRequired,\n type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired,\n color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired,\n};\n\nLinkLabel.defaultProps = {\n className: '',\n};\n\nexport const LinkLabelTypography = LabelTypography;\nexport const LinkLabelColors = LabelColors;\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","isImage","type","indexOf","isVideo","unSupported","isEmpty","val","undefined","a","b","aString","toString","bString","DateSeparator","className","children","separatorColor","injectingClassName","Array","isArray","React","join","changeColorToClassName","propTypes","PropTypes","oneOfType","string","arrayOf","element","defaultProps","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","Colors","ONBACKGROUND_4","LINE_HEIGHT","noop","KeyCode","SHIFT","ENTER","handleUploadFile","callback","event","target","files","value","MessageInput","forwardRef","props","ref","isEdit","disabled","name","placeholder","maxLength","onFileUpload","onSendMessage","onCancelEdit","onStartTyping","useContext","LocalizationContext","stringSet","fileInputRef","useRef","useState","inputValue","setInputValue","isShiftPressed","setIsShiftPressed","setHeight","elem","current","MAX_HEIGHT","window","document","body","offsetHeight","scrollHeight","style","height","useEffect","sendMessage","trim","length","trimmedInputValue","e","keyCode","preventDefault","BODY_1","ONBACKGROUND_3","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","IconButton","Icon","IconTypes","SEND","IconColors","PRIMARY","click","ATTACH","Button","Type","SECONDARY","Size","SMALL","BUTTON__CANCEL","BUTTON__SAVE","bool","number","func","FileViewerComponent","profileUrl","nickname","url","onClose","onDelete","isByMe","Avatar","H_2","ONBACKGROUND_1","DOWNLOAD","DELETE","CLOSE","H_1","isRequired","FileViewer","message","sender","createPortal","getElementById","MODAL_ROOT","shape","LINK_LABEL","http","LinkLabel","src","color","push","test","oneOf","Object","keys"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/index-c4d028d8.js b/dist/cjs/index-c4d028d8.js new file mode 100644 index 0000000..71b4fa3 --- /dev/null +++ b/dist/cjs/index-c4d028d8.js @@ -0,0 +1,92 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var React = require('react'); +var React__default = _interopDefault(React); +var index$1 = require('./index-710314fd.js'); +var utils = require('./utils-6aedec02.js'); + +var Context = React__default.createContext({ + opened: '', + setOpened: utils.noop +}); +var Consumer = Context.Consumer; +var Provider = Context.Provider; + +// Wraps all the accordions in an accordion set +function AccordionGroup(_a) { + var children = _a.children, + _b = _a.className, + className = _b === void 0 ? '' : _b; + + var _c = React.useState(''), + opened = _c[0], + setOpened = _c[1]; + + return React__default.createElement(Provider, { + value: { + opened: opened, + setOpened: setOpened + } + }, React__default.createElement("div", { + className: className + }, children)); +} + +function Accordion(_a) { + var id = _a.id, + renderTitle = _a.renderTitle, + renderContent = _a.renderContent, + renderFooter = _a.renderFooter, + className = _a.className; + + var _b = React.useState(false), + showAccordion = _b[0], + setShowAccordion = _b[1]; + + return React__default.createElement(Consumer, null, function (value) { + var opened = value.opened, + setOpened = value.setOpened; + + if (id === opened) { + setShowAccordion(true); + } else { + setShowAccordion(false); + } + + var handleClick = function handleClick() { + if (showAccordion) { + setOpened(''); + } else { + setOpened(id); + } + }; + + return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { + id: id, + role: "switch", + "aria-checked": false, + tabIndex: 0, + onKeyDown: handleClick, + className: "sendbird-accordion__panel-heder " + className, + onClick: handleClick + }, renderTitle(), React__default.createElement(index$1.Icon, { + type: index$1.IconTypes.SHEVRON, + className: ['sendbird-accordion__panel-icon-right', 'sendbird-accordion__panel-icon--chevron', showAccordion ? 'sendbird-accordion__panel-icon--open' : ''].join(' '), + height: "24px", + width: "24px" + })), showAccordion && React__default.createElement("div", { + className: "sendbird-accordion" + }, React__default.createElement("div", { + className: "sendbird-accordion__list" + }, renderContent()), renderFooter && React__default.createElement("div", { + className: "sendbird-accordion__footer" + }, renderFooter()))); + }); +} +var AccordionGroup$1 = AccordionGroup; + +exports.Accordion = Accordion; +exports.AccordionGroup = AccordionGroup$1; +//# sourceMappingURL=index-c4d028d8.js.map diff --git a/dist/cjs/index-c4d028d8.js.map b/dist/cjs/index-c4d028d8.js.map new file mode 100644 index 0000000..dc1bcee --- /dev/null +++ b/dist/cjs/index-c4d028d8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-7bc4a9f7.js","sources":["../../../src/ui/Accordion/context.ts","../../../src/ui/Accordion/AccordionGroup.tsx","../../../src/ui/Accordion/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { noop } from '../../utils/utils';\n\ninterface ContextValue {\n setOpened(accordion: string): void;\n opened: string;\n}\n\nconst Context = React.createContext({\n opened: '', // mock default value\n setOpened: noop,\n});\n\nexport const Consumer = Context.Consumer;\nexport const Provider = Context.Provider;\n","// Wraps all the accordions in an accordion set\n// keep one accordion open at a time\nimport React, { ReactElement, useState } from 'react';\n\nimport { Provider } from './context';\n\ninterface Props {\n children: ReactElement[] | ReactElement;\n defaultOpened?: string;\n className?: string;\n}\n\nexport default function AccordionGroup({\n children,\n className = '',\n}: Props): ReactElement {\n const [opened, setOpened] = useState('');\n return (\n \n
{ children }
\n
\n )\n}\n","import './index.scss';\n\nimport React, { ReactElement, useState } from 'react';\n\nimport AccordionGroup_ from './AccordionGroup';\nimport { Consumer } from './context';\n\nimport Icon, {\n IconTypes,\n} from '../Icon';\n\ninterface Props {\n id: string;\n className?: string;\n renderTitle(): ReactElement;\n renderContent(): ReactElement;\n renderFooter?(): ReactElement;\n}\n\nexport default function Accordion({\n id,\n renderTitle,\n renderContent,\n renderFooter,\n className,\n}: Props): ReactElement {\n const [showAccordion, setShowAccordion] = useState(false);\n return (\n \n {\n (value) => {\n const { opened, setOpened } = value;\n if (id === opened) {\n setShowAccordion(true);\n } else {\n setShowAccordion(false);\n }\n const handleClick = () => {\n if (showAccordion) {\n setOpened('');\n } else {\n setOpened(id);\n }\n }\n return (\n <>\n \n { renderTitle() }\n \n
\n {\n showAccordion && (\n
\n
\n { renderContent() }\n
\n {\n renderFooter && (\n
\n { renderFooter() }\n
\n )\n }\n
\n )\n }\n );\n }\n }\n \n )\n}\n\nexport const AccordionGroup = AccordionGroup_;\n"],"names":["Context","React","createContext","opened","setOpened","noop","Consumer","Provider","AccordionGroup","_a","children","_b","className","_c","useState","Accordion","id","renderTitle","renderContent","renderFooter","showAccordion","setShowAccordion","value","handleClick","Icon","IconTypes","SHEVRON","join","AccordionGroup_"],"mappings":";;;;;;;;;AASA,IAAMA,OAAO,GAAGC,cAAK,CAACC,aAAN,CAAkC;AAChDC,EAAAA,MAAM,EAAE,EADwC;AAEhDC,EAAAA,SAAS,EAAEC;AAFqC,CAAlC,CAAhB;AAKO,IAAMC,QAAQ,GAAGN,OAAO,CAACM,QAAzB;AACA,IAAMC,QAAQ,GAAGP,OAAO,CAACO,QAAzB;;ACfP;AACA,SAWwBC,eAAeC;MACrCC,QAAQ;MACRC;MAAAC,SAAS,mBAAG;;AAEN,MAAAC,KAAsBC,cAAQ,CAAC,EAAD,CAA9B;AAAA,MAACX,MAAM,QAAP;AAAA,MAASC,SAAS,QAAlB;;AACN,SACEH,6BAAC,QAAD;AAAU,IAAA,KAAK,EAAE;AAAEE,MAAAA,MAAM,QAAR;AAAUC,MAAAA,SAAS;AAAnB;AAAjB,KACEH;AAAK,IAAA,SAAS,EAAEW;AAAhB,KAA6BF,QAA7B,CADF,CADF;AAKD;;SCHuBK,UAAUN;MAChCO,EAAE;MACFC,WAAW;MACXC,aAAa;MACbC,YAAY;MACZP,SAAS;;AAEH,MAAAD,KAAoCG,cAAQ,CAAC,KAAD,CAA5C;AAAA,MAACM,aAAa,QAAd;AAAA,MAAgBC,gBAAgB,QAAhC;;AACN,SACEpB,6BAAC,QAAD,QAEI,UAACqB,KAAD;AACU,QAAAnB,MAAM,GAAgBmB,KAAK,OAA3B;AAAA,QAAQlB,SAAS,GAAKkB,KAAK,UAA3B;;AACR,QAAIN,EAAE,KAAKb,MAAX,EAAmB;AACjBkB,MAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD,KAFD,MAEO;AACLA,MAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACD;;AACD,QAAME,WAAW,GAAG,SAAdA,WAAc;AAClB,UAAIH,aAAJ,EAAmB;AACjBhB,QAAAA,SAAS,CAAC,EAAD,CAAT;AACD,OAFD,MAEO;AACLA,QAAAA,SAAS,CAACY,EAAD,CAAT;AACD;AACF,KAND;;AAOA,WACEf,4DACEA;AACE,MAAA,EAAE,EAAEe,EADN;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,sBAAc,KAHhB;AAIE,MAAA,QAAQ,EAAE,CAJZ;AAKE,MAAA,SAAS,EAAEO,WALb;AAME,MAAA,SAAS,EAAE,qCAAmCX,SANhD;AAOE,MAAA,OAAO,EAAEW;AAPX,OASIN,WAAW,EATf,EAUEhB,6BAACuB,YAAD;AACE,MAAA,IAAI,EAAEC,iBAAS,CAACC,OADlB;AAEE,MAAA,SAAS,EAAE,CACT,sCADS,EAET,yCAFS,EAGRN,aAAa,GAAG,sCAAH,GAA4C,EAHjD,EAITO,IAJS,CAIJ,GAJI,CAFb;AAOE,MAAA,MAAM,EAAC,MAPT;AAQE,MAAA,KAAK,EAAC;AARR,MAVF,CADF,EAuBIP,aAAa,IACXnB;AAAK,MAAA,SAAS,EAAC;AAAf,OACEA;AAAK,MAAA,SAAS,EAAC;AAAf,OACIiB,aAAa,EADjB,CADF,EAKIC,YAAY,IACVlB;AAAK,MAAA,SAAS,EAAC;AAAf,OACIkB,YAAY,EADhB,CANN,CAxBN,CADF;AAwCD,GAxDL,CADF;AA6DD;AAED,IAAaX,gBAAc,GAAGoB;;;;;"} \ No newline at end of file diff --git a/dist/cjs/index.js b/dist/cjs/index.js new file mode 100644 index 0000000..a60907e --- /dev/null +++ b/dist/cjs/index.js @@ -0,0 +1,50 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); +var SendbirdProvider = require('./SendbirdProvider.js'); +require('react'); +require('prop-types'); +require('sendbird'); +require('./actionTypes-920b541f.js'); +require('css-vars-ponyfill'); +var index$1 = require('./index-710314fd.js'); +var ChannelList = require('./ChannelList.js'); +require('./utils-6aedec02.js'); +require('./index-64dcc5d9.js'); +require('./LeaveChannel-cb2a36b0.js'); +require('date-fns/isToday'); +require('date-fns/format'); +require('date-fns/isYesterday'); +require('./type-c7a3bee7.js'); +require('./utils-a8277ca2.js'); +require('react-dom'); +require('./index-6ca9e95e.js'); +var Channel = require('./Channel.js'); +require('./index-95b18747.js'); +require('date-fns/isSameDay'); +require('./utils-c8e36c68.js'); +require('date-fns/formatDistanceToNowStrict'); +var ChannelSettings = require('./ChannelSettings.js'); +require('./index-c4d028d8.js'); +var App = require('./App.js'); +var OpenChannel = require('./OpenChannel.js'); +var OpenChannelSettings = require('./OpenChannelSettings.js'); + + + +exports.getStringSet = LocalizationContext.getStringSet; +exports.withSendBird = LocalizationContext.withSendbirdContext; +exports.SendBirdProvider = SendbirdProvider; +exports.sendBirdSelectors = index$1.selectors; +exports.ChannelList = ChannelList; +exports.Channel = Channel.default; +exports.getAllEmojisFromEmojiContainer = Channel.getAllEmojisFromEmojiContainer; +exports.getEmojiCategoriesFromEmojiContainer = Channel.getEmojiCategoriesFromEmojiContainer; +exports.getEmojisFromEmojiContainer = Channel.getEmojisFromEmojiContainer; +exports.ChannelSettings = ChannelSettings; +exports.App = App; +exports.OpenChannel = OpenChannel.default; +exports.OpenChannelSettings = OpenChannelSettings; +//# sourceMappingURL=index.js.map diff --git a/dist/cjs/index.js.map b/dist/cjs/index.js.map new file mode 100644 index 0000000..9cfae49 --- /dev/null +++ b/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/cjs/type-c7a3bee7.js b/dist/cjs/type-c7a3bee7.js new file mode 100644 index 0000000..0920ef9 --- /dev/null +++ b/dist/cjs/type-c7a3bee7.js @@ -0,0 +1,12 @@ +'use strict'; + +var MessageStatusType = { + PENDING: 'PENDING', + SENT: 'SENT', + DELIVERED: 'DELIVERED', + READ: 'READ', + FAILED: 'FAILED' +}; + +exports.MessageStatusType = MessageStatusType; +//# sourceMappingURL=type-c7a3bee7.js.map diff --git a/dist/cjs/type-c7a3bee7.js.map b/dist/cjs/type-c7a3bee7.js.map new file mode 100644 index 0000000..59242df --- /dev/null +++ b/dist/cjs/type-c7a3bee7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"type-0296584d.js","sources":["../../../src/ui/MessageStatus/type.js"],"sourcesContent":["const MessageStatusType = {\n PENDING: 'PENDING',\n SENT: 'SENT',\n DELIVERED: 'DELIVERED',\n READ: 'READ',\n FAILED: 'FAILED',\n};\n\nexport default MessageStatusType;\n"],"names":["MessageStatusType","PENDING","SENT","DELIVERED","READ","FAILED"],"mappings":";;AAAA,IAAMA,iBAAiB,GAAG;AACxBC,EAAAA,OAAO,EAAE,SADe;AAExBC,EAAAA,IAAI,EAAE,MAFkB;AAGxBC,EAAAA,SAAS,EAAE,WAHa;AAIxBC,EAAAA,IAAI,EAAE,MAJkB;AAKxBC,EAAAA,MAAM,EAAE;AALgB,CAA1B;;;;"} \ No newline at end of file diff --git a/dist/cjs/utils-6aedec02.js b/dist/cjs/utils-6aedec02.js new file mode 100644 index 0000000..a76caad --- /dev/null +++ b/dist/cjs/utils-6aedec02.js @@ -0,0 +1,57 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var format = _interopDefault(require('date-fns/format')); + +var DEFAULT_URL_PREFIX = 'https://static.sendbird.com/sample/cover/cover_'; +var getOpenChannelAvatar = function getOpenChannelAvatar(channel) { + if (channel && channel.coverUrl) { + return channel.coverUrl; + } +}; +var getChannelAvatarSource = function getChannelAvatarSource(channel, currentUserId) { + if (channel && channel.coverUrl) { + if (!new RegExp("^" + DEFAULT_URL_PREFIX).test(channel.coverUrl)) { + return channel.coverUrl; + } + } + + return channel && channel.members ? channel.members.filter(function (member) { + return member.userId !== currentUserId; + }).map(function (_a) { + var profileUrl = _a.profileUrl; + return profileUrl; + }) : []; +}; +var useDefaultAvatar = function useDefaultAvatar(channel) { + if (channel && channel.coverUrl) { + if (new RegExp("^" + DEFAULT_URL_PREFIX).test(channel.coverUrl)) { + return true; + } + + return false; + } + + return true; +}; + +var noop = function noop() {}; +var getMessageCreatedAt = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var getSenderName = function getSenderName(message) { + return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); +}; +var getSenderProfileUrl = function getSenderProfileUrl(message) { + return message.sender && message.sender.profileUrl; +}; + +exports.getChannelAvatarSource = getChannelAvatarSource; +exports.getMessageCreatedAt = getMessageCreatedAt; +exports.getOpenChannelAvatar = getOpenChannelAvatar; +exports.getSenderName = getSenderName; +exports.getSenderProfileUrl = getSenderProfileUrl; +exports.noop = noop; +exports.useDefaultAvatar = useDefaultAvatar; +//# sourceMappingURL=utils-6aedec02.js.map diff --git a/dist/cjs/utils-6aedec02.js.map b/dist/cjs/utils-6aedec02.js.map new file mode 100644 index 0000000..7c1c009 --- /dev/null +++ b/dist/cjs/utils-6aedec02.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils-53ba1773.js","sources":["../../../src/ui/ChannelAvatar/utils.ts","../../../src/utils/utils.js"],"sourcesContent":["export const DEFAULT_URL_PREFIX = 'https://static.sendbird.com/sample/cover/cover_';\n\nexport const getOpenChannelAvatar = (channel: SendBird.OpenChannel): string => {\n if (channel && channel.coverUrl) {\n return channel.coverUrl;\n }\n};\n\nexport const getChannelAvatarSource = (channel: SendBird.GroupChannel, currentUserId: string): string | string[] => {\n if (channel && channel.coverUrl) {\n if (!(new RegExp(`^${DEFAULT_URL_PREFIX}`).test(channel.coverUrl))) {\n return channel.coverUrl;\n }\n }\n\n return channel && channel.members\n ? channel.members\n .filter((member) => member.userId !== currentUserId)\n .map(({ profileUrl }) => profileUrl)\n : [];\n};\n\n\nexport const useDefaultAvatar = (channel: SendBird.GroupChannel): boolean => {\n if (channel && channel.coverUrl) {\n if (new RegExp(`^${DEFAULT_URL_PREFIX}`).test(channel.coverUrl)) {\n return true;\n }\n return false;\n }\n return true;\n}\n","import format from 'date-fns/format';\n\nexport const noop = () => {};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport default {\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n};\n"],"names":["DEFAULT_URL_PREFIX","getOpenChannelAvatar","channel","coverUrl","getChannelAvatarSource","currentUserId","RegExp","test","members","filter","member","userId","map","_a","profileUrl","useDefaultAvatar","noop","getMessageCreatedAt","message","format","createdAt","getSenderName","sender","friendName","nickname","getSenderProfileUrl"],"mappings":";;;;;;AAAO,IAAMA,kBAAkB,GAAG,iDAA3B;IAEMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,OAAD;AAClC,MAAIA,OAAO,IAAIA,OAAO,CAACC,QAAvB,EAAiC;AAC/B,WAAOD,OAAO,CAACC,QAAf;AACD;AACF;IAEYC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACF,OAAD,EAAiCG,aAAjC;AACpC,MAAIH,OAAO,IAAIA,OAAO,CAACC,QAAvB,EAAiC;AAC/B,QAAI,CAAE,IAAIG,MAAJ,CAAW,MAAIN,kBAAf,EAAqCO,IAArC,CAA0CL,OAAO,CAACC,QAAlD,CAAN,EAAoE;AAClE,aAAOD,OAAO,CAACC,QAAf;AACD;AACF;;AAED,SAAOD,OAAO,IAAIA,OAAO,CAACM,OAAnB,GACHN,OAAO,CAACM,OAAR,CACCC,MADD,CACQ,UAACC,MAAD;AAAY,WAAAA,MAAM,CAACC,MAAP,KAAkBN,aAAlB;AAA+B,GADnD,EAECO,GAFD,CAEK,UAACC,EAAD;QAAGC,UAAU;AAAO,WAAAA,UAAA;AAAU,GAFnC,CADG,GAIH,EAJJ;AAKD;IAGYC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACb,OAAD;AAC9B,MAAIA,OAAO,IAAIA,OAAO,CAACC,QAAvB,EAAiC;AAC/B,QAAI,IAAIG,MAAJ,CAAW,MAAIN,kBAAf,EAAqCO,IAArC,CAA0CL,OAAO,CAACC,QAAlD,CAAJ,EAAiE;AAC/D,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD;;IC7BYa,IAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;AAEP,IAAaC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,OAAD;AAAA,SAAaC,MAAM,CAACD,OAAO,CAACE,SAAT,EAAoB,GAApB,CAAnB;AAAA,CAA5B;AAEP,IAAaC,aAAa,GAAG,SAAhBA,aAAgB,CAACH,OAAD;AAAA,SAC3BA,OAAO,CAACI,MAAR,KACEJ,OAAO,CAACI,MAAR,CAAeC,UAAf,IACGL,OAAO,CAACI,MAAR,CAAeE,QADlB,IAEGN,OAAO,CAACI,MAAR,CAAeX,MAHpB,CAD2B;AAAA,CAAtB;AAQP,IAAac,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACP,OAAD;AAAA,SAAaA,OAAO,CAACI,MAAR,IAAkBJ,OAAO,CAACI,MAAR,CAAeR,UAA9C;AAAA,CAA5B;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/cjs/utils-a8277ca2.js b/dist/cjs/utils-a8277ca2.js new file mode 100644 index 0000000..5931d74 --- /dev/null +++ b/dist/cjs/utils-a8277ca2.js @@ -0,0 +1,21 @@ +'use strict'; + +var type = require('./type-c7a3bee7.js'); + +var truncate = function truncate(fullStr, strLen) { + if (fullStr === null || fullStr === undefined) return ''; + if (fullStr.length <= strLen) return fullStr; + var separator = '...'; + var sepLen = separator.length; + var charsToShow = strLen - sepLen; + var frontChars = Math.ceil(charsToShow / 2); + var backChars = Math.floor(charsToShow / 2); + return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars); +}; +var getIsSentFromStatus = function getIsSentFromStatus(status) { + return status === type.MessageStatusType.SENT || status === type.MessageStatusType.DELIVERED || status === type.MessageStatusType.READ; +}; + +exports.getIsSentFromStatus = getIsSentFromStatus; +exports.truncate = truncate; +//# sourceMappingURL=utils-a8277ca2.js.map diff --git a/dist/cjs/utils-a8277ca2.js.map b/dist/cjs/utils-a8277ca2.js.map new file mode 100644 index 0000000..3d13697 --- /dev/null +++ b/dist/cjs/utils-a8277ca2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils-cfdeb084.js","sources":["../../../src/ui/FileMessage/utils.js"],"sourcesContent":["import MessageStatusType from '../MessageStatus/type';\n\nexport const truncate = (fullStr, strLen) => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n truncate,\n getIsSentFromStatus,\n};\n"],"names":["truncate","fullStr","strLen","undefined","length","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","getIsSentFromStatus","status","MessageStatusType","SENT","DELIVERED","READ"],"mappings":";;;;IAEaA,QAAQ,GAAG,SAAXA,QAAW,CAACC,OAAD,EAAUC,MAAV,EAAqB;AAC3C,MAAID,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAKE,SAApC,EAA+C,OAAO,EAAP;AAC/C,MAAIF,OAAO,CAACG,MAAR,IAAkBF,MAAtB,EAA8B,OAAOD,OAAP;AAC9B,MAAMI,SAAS,GAAG,KAAlB;AACA,MAAMC,MAAM,GAAGD,SAAS,CAACD,MAAzB;AACA,MAAMG,WAAW,GAAGL,MAAM,GAAGI,MAA7B;AACA,MAAME,UAAU,GAAGC,IAAI,CAACC,IAAL,CAAUH,WAAW,GAAG,CAAxB,CAAnB;AACA,MAAMI,SAAS,GAAGF,IAAI,CAACG,KAAL,CAAWL,WAAW,GAAG,CAAzB,CAAlB;AACA,SAAON,OAAO,CAACY,MAAR,CAAe,CAAf,EAAkBL,UAAlB,IAAgCH,SAAhC,GAA4CJ,OAAO,CAACY,MAAR,CAAeZ,OAAO,CAACG,MAAR,GAAiBO,SAAhC,CAAnD;AACD;IAEYG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,MAAD;AAAA,SACjCA,MAAM,KAAKC,sBAAiB,CAACC,IAA7B,IACGF,MAAM,KAAKC,sBAAiB,CAACE,SADhC,IAEGH,MAAM,KAAKC,sBAAiB,CAACG,IAHC;AAAA;;;;;"} \ No newline at end of file diff --git a/dist/cjs/utils-c8e36c68.js b/dist/cjs/utils-c8e36c68.js new file mode 100644 index 0000000..84c7ffc --- /dev/null +++ b/dist/cjs/utils-c8e36c68.js @@ -0,0 +1,51 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var format = _interopDefault(require('date-fns/format')); +var type = require('./type-c7a3bee7.js'); + +var copyToClipboard = function copyToClipboard(text) { + if (window.clipboardData && window.clipboardData.setData) { + // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible. + return window.clipboardData.setData('Text', text); + } + + if (document.queryCommandSupported && document.queryCommandSupported('copy')) { + var textarea = document.createElement('textarea'); + textarea.textContent = text; + textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. + + document.body.appendChild(textarea); + textarea.select(); + + try { + return document.execCommand('copy'); // Security exception may be thrown by some browsers. + } catch (ex) { + return false; + } finally { + document.body.removeChild(textarea); + } + } + + return false; +}; +var getMessageCreatedAt = function getMessageCreatedAt(message) { + return format(message.createdAt || 0, 'p'); +}; +var getSenderName = function getSenderName(message) { + return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); +}; +var getSenderProfileUrl = function getSenderProfileUrl(message) { + return message.sender && message.sender.profileUrl; +}; +var getIsSentFromStatus = function getIsSentFromStatus(status) { + return status === type.MessageStatusType.SENT || status === type.MessageStatusType.DELIVERED || status === type.MessageStatusType.READ; +}; + +exports.copyToClipboard = copyToClipboard; +exports.getIsSentFromStatus = getIsSentFromStatus; +exports.getMessageCreatedAt = getMessageCreatedAt; +exports.getSenderName = getSenderName; +exports.getSenderProfileUrl = getSenderProfileUrl; +//# sourceMappingURL=utils-c8e36c68.js.map diff --git a/dist/cjs/utils-c8e36c68.js.map b/dist/cjs/utils-c8e36c68.js.map new file mode 100644 index 0000000..970aaed --- /dev/null +++ b/dist/cjs/utils-c8e36c68.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils-d7f59026.js","sources":["../../../src/ui/Message/utils.js"],"sourcesContent":["import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const copyToClipboard = (text) => {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt || 0, 'p');\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport default {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n createUrlTester,\n};\n"],"names":["copyToClipboard","text","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","getMessageCreatedAt","message","format","createdAt","getSenderName","sender","friendName","nickname","userId","getSenderProfileUrl","profileUrl","getIsSentFromStatus","status","MessageStatusType","SENT","DELIVERED","READ"],"mappings":";;;;;;;IAGaA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,IAAD,EAAU;AACvC,MAAIC,MAAM,CAACC,aAAP,IAAwBD,MAAM,CAACC,aAAP,CAAqBC,OAAjD,EAA0D;AACxD;AACA,WAAOF,MAAM,CAACC,aAAP,CAAqBC,OAArB,CAA6B,MAA7B,EAAqCH,IAArC,CAAP;AACD;;AACD,MAAII,QAAQ,CAACC,qBAAT,IAAkCD,QAAQ,CAACC,qBAAT,CAA+B,MAA/B,CAAtC,EAA8E;AAC5E,QAAMC,QAAQ,GAAGF,QAAQ,CAACG,aAAT,CAAuB,UAAvB,CAAjB;AACAD,IAAAA,QAAQ,CAACE,WAAT,GAAuBR,IAAvB;AACAM,IAAAA,QAAQ,CAACG,KAAT,CAAeC,QAAf,GAA0B,OAA1B,CAH4E;;AAI5EN,IAAAA,QAAQ,CAACO,IAAT,CAAcC,WAAd,CAA0BN,QAA1B;AACAA,IAAAA,QAAQ,CAACO,MAAT;;AACA,QAAI;AACF,aAAOT,QAAQ,CAACU,WAAT,CAAqB,MAArB,CAAP,CADE;AAEH,KAFD,CAEE,OAAOC,EAAP,EAAW;AACX,aAAO,KAAP;AACD,KAJD,SAIU;AACRX,MAAAA,QAAQ,CAACO,IAAT,CAAcK,WAAd,CAA0BV,QAA1B;AACD;AACF;;AACD,SAAO,KAAP;AACD;IAEYW,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,OAAD;AAAA,SAAaC,MAAM,CAACD,OAAO,CAACE,SAAR,IAAqB,CAAtB,EAAyB,GAAzB,CAAnB;AAAA;IAEtBC,aAAa,GAAG,SAAhBA,aAAgB,CAACH,OAAD;AAAA,SAC3BA,OAAO,CAACI,MAAR,KACEJ,OAAO,CAACI,MAAR,CAAeC,UAAf,IACGL,OAAO,CAACI,MAAR,CAAeE,QADlB,IAEGN,OAAO,CAACI,MAAR,CAAeG,MAHpB,CAD2B;AAAA;IAQhBC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACR,OAAD;AAAA,SAAaA,OAAO,CAACI,MAAR,IAAkBJ,OAAO,CAACI,MAAR,CAAeK,UAA9C;AAAA;IAEtBC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,MAAD;AAAA,SACjCA,MAAM,KAAKC,sBAAiB,CAACC,IAA7B,IACGF,MAAM,KAAKC,sBAAiB,CAACE,SADhC,IAEGH,MAAM,KAAKC,sBAAiB,CAACG,IAHC;AAAA;;;;;;;;"} \ No newline at end of file diff --git a/dist/esm/App.js b/dist/esm/App.js new file mode 100644 index 0000000..771fd84 --- /dev/null +++ b/dist/esm/App.js @@ -0,0 +1,145 @@ +import { b as _slicedToArray } from './LocalizationContext-619bafba.js'; +import Sendbird from './SendbirdProvider.js'; +import React, { useState } from 'react'; +import PropTypes from 'prop-types'; +import 'sendbird'; +import './actionTypes-a85c0eaa.js'; +import 'css-vars-ponyfill'; +import './index-0c67ae90.js'; +import ChannelList from './ChannelList.js'; +import './utils-53ba1773.js'; +import './index-a199094e.js'; +import './LeaveChannel-fcc0bfc3.js'; +import 'date-fns/isToday'; +import 'date-fns/format'; +import 'date-fns/isYesterday'; +import './type-0296584d.js'; +import './utils-cfdeb084.js'; +import 'react-dom'; +import './index-73379213.js'; +import Conversation from './Channel.js'; +import './index-1cf7b066.js'; +import 'date-fns/isSameDay'; +import './utils-d7f59026.js'; +import 'date-fns/formatDistanceToNowStrict'; +import ChannelSettings from './ChannelSettings.js'; +import './index-7bc4a9f7.js'; + +function App(props) { + var appId = props.appId, + userId = props.userId, + accessToken = props.accessToken, + theme = props.theme, + userListQuery = props.userListQuery, + nickname = props.nickname, + profileUrl = props.profileUrl, + _props$config = props.config, + config = _props$config === void 0 ? {} : _props$config, + useReaction = props.useReaction, + useMessageGrouping = props.useMessageGrouping, + colorSet = props.colorSet, + stringSet = props.stringSet, + allowProfileEdit = props.allowProfileEdit, + disableUserProfile = props.disableUserProfile, + renderUserProfile = props.renderUserProfile, + onProfileEditSuccess = props.onProfileEditSuccess; + + var _useState = useState(null), + _useState2 = _slicedToArray(_useState, 2), + currentChannelUrl = _useState2[0], + setCurrentChannelUrl = _useState2[1]; + + var _useState3 = useState(false), + _useState4 = _slicedToArray(_useState3, 2), + showSettings = _useState4[0], + setShowSettings = _useState4[1]; + + return React.createElement(Sendbird, { + stringSet: stringSet, + appId: appId, + userId: userId, + accessToken: accessToken, + theme: theme, + nickname: nickname, + profileUrl: profileUrl, + userListQuery: userListQuery, + config: config, + colorSet: colorSet, + disableUserProfile: disableUserProfile, + renderUserProfile: renderUserProfile + }, React.createElement("div", { + className: "sendbird-app__wrap" + }, React.createElement("div", { + className: "sendbird-app__channellist-wrap" + }, React.createElement(ChannelList, { + allowProfileEdit: allowProfileEdit, + onProfileEditSuccess: onProfileEditSuccess, + onChannelSelect: function onChannelSelect(channel) { + if (channel && channel.url) { + setCurrentChannelUrl(channel.url); + } else { + setCurrentChannelUrl(''); + } + } + })), React.createElement("div", { + className: "\n ".concat(showSettings ? 'sendbird-app__conversation--settings-open' : '', "\n sendbird-app__conversation-wrap\n ") + }, React.createElement(Conversation, { + channelUrl: currentChannelUrl, + onChatHeaderActionClick: function onChatHeaderActionClick() { + if (showSettings) { + setShowSettings(false); + } else { + setShowSettings(true); + } + }, + useReaction: useReaction, + useMessageGrouping: useMessageGrouping + })), showSettings && React.createElement("div", { + className: "sendbird-app__settingspanel-wrap" + }, React.createElement(ChannelSettings, { + channelUrl: currentChannelUrl, + onCloseClick: function onCloseClick() { + setShowSettings(false); + } + })))); +} +App.propTypes = { + appId: PropTypes.string.isRequired, + userId: PropTypes.string.isRequired, + accessToken: PropTypes.string, + theme: PropTypes.string, + userListQuery: PropTypes.func, + nickname: PropTypes.string, + profileUrl: PropTypes.string, + allowProfileEdit: PropTypes.bool, + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + onProfileEditSuccess: PropTypes.func, + config: PropTypes.shape({ + // None Error Warning Info 'All/Debug' + logLevel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) + }), + useReaction: PropTypes.bool, + useMessageGrouping: PropTypes.bool, + stringSet: PropTypes.objectOf(PropTypes.string), + colorSet: PropTypes.objectOf(PropTypes.string) +}; +App.defaultProps = { + accessToken: '', + theme: 'light', + nickname: '', + profileUrl: '', + userListQuery: null, + allowProfileEdit: false, + onProfileEditSuccess: null, + disableUserProfile: false, + renderUserProfile: null, + config: {}, + useReaction: true, + useMessageGrouping: true, + stringSet: null, + colorSet: null +}; + +export default App; +//# sourceMappingURL=App.js.map diff --git a/dist/esm/App.js.map b/dist/esm/App.js.map new file mode 100644 index 0000000..be4ac4d --- /dev/null +++ b/dist/esm/App.js.map @@ -0,0 +1 @@ +{"version":3,"file":"App.js","sources":["../../../src/smart-components/App/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Sendbird from '../../lib/Sendbird';\n\nimport ChannelList from '../ChannelList';\nimport Conversation from '../Conversation';\nimport ChannelSettings from '../ChannelSettings';\n\nimport './index.scss';\n\nexport default function App(props) {\n const {\n appId,\n userId,\n accessToken,\n theme,\n userListQuery,\n nickname,\n profileUrl,\n config = {},\n useReaction,\n useMessageGrouping,\n colorSet,\n stringSet,\n allowProfileEdit,\n disableUserProfile,\n renderUserProfile,\n onProfileEditSuccess,\n } = props;\n const [currentChannelUrl, setCurrentChannelUrl] = useState(null);\n const [showSettings, setShowSettings] = useState(false);\n return (\n \n
\n
\n {\n if (channel && channel.url) {\n setCurrentChannelUrl(channel.url);\n } else {\n setCurrentChannelUrl('');\n }\n }}\n />\n
\n \n {\n if (showSettings) {\n setShowSettings(false);\n } else {\n setShowSettings(true);\n }\n }}\n useReaction={useReaction}\n useMessageGrouping={useMessageGrouping}\n />\n
\n {showSettings && (\n
\n { setShowSettings(false); }}\n />\n
\n )}\n
\n \n );\n}\n\nApp.propTypes = {\n appId: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n allowProfileEdit: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n }),\n useReaction: PropTypes.bool,\n useMessageGrouping: PropTypes.bool,\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n};\n\nApp.defaultProps = {\n accessToken: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n userListQuery: null,\n allowProfileEdit: false,\n onProfileEditSuccess: null,\n disableUserProfile: false,\n renderUserProfile: null,\n config: {},\n useReaction: true,\n useMessageGrouping: true,\n stringSet: null,\n colorSet: null,\n};\n"],"names":["App","props","appId","userId","accessToken","theme","userListQuery","nickname","profileUrl","config","useReaction","useMessageGrouping","colorSet","stringSet","allowProfileEdit","disableUserProfile","renderUserProfile","onProfileEditSuccess","useState","currentChannelUrl","setCurrentChannelUrl","showSettings","setShowSettings","channel","url","propTypes","PropTypes","string","isRequired","func","bool","shape","logLevel","oneOfType","arrayOf","objectOf","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAWe,SAASA,GAAT,CAAaC,KAAb,EAAoB;AAAA,MAE/BC,KAF+B,GAkB7BD,KAlB6B,CAE/BC,KAF+B;AAAA,MAG/BC,MAH+B,GAkB7BF,KAlB6B,CAG/BE,MAH+B;AAAA,MAI/BC,WAJ+B,GAkB7BH,KAlB6B,CAI/BG,WAJ+B;AAAA,MAK/BC,KAL+B,GAkB7BJ,KAlB6B,CAK/BI,KAL+B;AAAA,MAM/BC,aAN+B,GAkB7BL,KAlB6B,CAM/BK,aAN+B;AAAA,MAO/BC,QAP+B,GAkB7BN,KAlB6B,CAO/BM,QAP+B;AAAA,MAQ/BC,UAR+B,GAkB7BP,KAlB6B,CAQ/BO,UAR+B;AAAA,sBAkB7BP,KAlB6B,CAS/BQ,MAT+B;AAAA,MAS/BA,MAT+B,8BAStB,EATsB;AAAA,MAU/BC,WAV+B,GAkB7BT,KAlB6B,CAU/BS,WAV+B;AAAA,MAW/BC,kBAX+B,GAkB7BV,KAlB6B,CAW/BU,kBAX+B;AAAA,MAY/BC,QAZ+B,GAkB7BX,KAlB6B,CAY/BW,QAZ+B;AAAA,MAa/BC,SAb+B,GAkB7BZ,KAlB6B,CAa/BY,SAb+B;AAAA,MAc/BC,gBAd+B,GAkB7Bb,KAlB6B,CAc/Ba,gBAd+B;AAAA,MAe/BC,kBAf+B,GAkB7Bd,KAlB6B,CAe/Bc,kBAf+B;AAAA,MAgB/BC,iBAhB+B,GAkB7Bf,KAlB6B,CAgB/Be,iBAhB+B;AAAA,MAiB/BC,oBAjB+B,GAkB7BhB,KAlB6B,CAiB/BgB,oBAjB+B;;AAAA,kBAmBiBC,QAAQ,CAAC,IAAD,CAnBzB;AAAA;AAAA,MAmB1BC,iBAnB0B;AAAA,MAmBPC,oBAnBO;;AAAA,mBAoBOF,QAAQ,CAAC,KAAD,CApBf;AAAA;AAAA,MAoB1BG,YApB0B;AAAA,MAoBZC,eApBY;;AAqBjC,SACE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAET,SADb;AAEE,IAAA,KAAK,EAAEX,KAFT;AAGE,IAAA,MAAM,EAAEC,MAHV;AAIE,IAAA,WAAW,EAAEC,WAJf;AAKE,IAAA,KAAK,EAAEC,KALT;AAME,IAAA,QAAQ,EAAEE,QANZ;AAOE,IAAA,UAAU,EAAEC,UAPd;AAQE,IAAA,aAAa,EAAEF,aARjB;AASE,IAAA,MAAM,EAAEG,MATV;AAUE,IAAA,QAAQ,EAAEG,QAVZ;AAWE,IAAA,kBAAkB,EAAEG,kBAXtB;AAYE,IAAA,iBAAiB,EAAEC;AAZrB,KAcE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,WAAD;AACE,IAAA,gBAAgB,EAAEF,gBADpB;AAEE,IAAA,oBAAoB,EAAEG,oBAFxB;AAGE,IAAA,eAAe,EAAE,yBAACM,OAAD,EAAa;AAC5B,UAAIA,OAAO,IAAIA,OAAO,CAACC,GAAvB,EAA4B;AAC1BJ,QAAAA,oBAAoB,CAACG,OAAO,CAACC,GAAT,CAApB;AACD,OAFD,MAEO;AACLJ,QAAAA,oBAAoB,CAAC,EAAD,CAApB;AACD;AACF;AATH,IADF,CADF,EAcE;AACE,IAAA,SAAS,0BACLC,YAAY,GAAG,2CAAH,GAAiD,EADxD;AADX,KAME,oBAAC,YAAD;AACE,IAAA,UAAU,EAAEF,iBADd;AAEE,IAAA,uBAAuB,EAAE,mCAAM;AAC7B,UAAIE,YAAJ,EAAkB;AAChBC,QAAAA,eAAe,CAAC,KAAD,CAAf;AACD,OAFD,MAEO;AACLA,QAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AACF,KARH;AASE,IAAA,WAAW,EAAEZ,WATf;AAUE,IAAA,kBAAkB,EAAEC;AAVtB,IANF,CAdF,EAiCGU,YAAY,IACX;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,eAAD;AACE,IAAA,UAAU,EAAEF,iBADd;AAEE,IAAA,YAAY,EAAE,wBAAM;AAAEG,MAAAA,eAAe,CAAC,KAAD,CAAf;AAAyB;AAFjD,IADF,CAlCJ,CAdF,CADF;AA2DD;AAEDtB,GAAG,CAACyB,SAAJ,GAAgB;AACdvB,EAAAA,KAAK,EAAEwB,SAAS,CAACC,MAAV,CAAiBC,UADV;AAEdzB,EAAAA,MAAM,EAAEuB,SAAS,CAACC,MAAV,CAAiBC,UAFX;AAGdxB,EAAAA,WAAW,EAAEsB,SAAS,CAACC,MAHT;AAIdtB,EAAAA,KAAK,EAAEqB,SAAS,CAACC,MAJH;AAKdrB,EAAAA,aAAa,EAAEoB,SAAS,CAACG,IALX;AAMdtB,EAAAA,QAAQ,EAAEmB,SAAS,CAACC,MANN;AAOdnB,EAAAA,UAAU,EAAEkB,SAAS,CAACC,MAPR;AAQdb,EAAAA,gBAAgB,EAAEY,SAAS,CAACI,IARd;AASdf,EAAAA,kBAAkB,EAAEW,SAAS,CAACI,IAThB;AAUdd,EAAAA,iBAAiB,EAAEU,SAAS,CAACG,IAVf;AAWdZ,EAAAA,oBAAoB,EAAES,SAAS,CAACG,IAXlB;AAYdpB,EAAAA,MAAM,EAAEiB,SAAS,CAACK,KAAV,CAAgB;AACtB;AACAC,IAAAA,QAAQ,EAAEN,SAAS,CAACO,SAAV,CAAoB,CAC5BP,SAAS,CAACC,MADkB,EAE5BD,SAAS,CAACQ,OAAV,CAAkBR,SAAS,CAACC,MAA5B,CAF4B,CAApB;AAFY,GAAhB,CAZM;AAmBdjB,EAAAA,WAAW,EAAEgB,SAAS,CAACI,IAnBT;AAoBdnB,EAAAA,kBAAkB,EAAEe,SAAS,CAACI,IApBhB;AAqBdjB,EAAAA,SAAS,EAAEa,SAAS,CAACS,QAAV,CAAmBT,SAAS,CAACC,MAA7B,CArBG;AAsBdf,EAAAA,QAAQ,EAAEc,SAAS,CAACS,QAAV,CAAmBT,SAAS,CAACC,MAA7B;AAtBI,CAAhB;AAyBA3B,GAAG,CAACoC,YAAJ,GAAmB;AACjBhC,EAAAA,WAAW,EAAE,EADI;AAEjBC,EAAAA,KAAK,EAAE,OAFU;AAGjBE,EAAAA,QAAQ,EAAE,EAHO;AAIjBC,EAAAA,UAAU,EAAE,EAJK;AAKjBF,EAAAA,aAAa,EAAE,IALE;AAMjBQ,EAAAA,gBAAgB,EAAE,KAND;AAOjBG,EAAAA,oBAAoB,EAAE,IAPL;AAQjBF,EAAAA,kBAAkB,EAAE,KARH;AASjBC,EAAAA,iBAAiB,EAAE,IATF;AAUjBP,EAAAA,MAAM,EAAE,EAVS;AAWjBC,EAAAA,WAAW,EAAE,IAXI;AAYjBC,EAAAA,kBAAkB,EAAE,IAZH;AAajBE,EAAAA,SAAS,EAAE,IAbM;AAcjBD,EAAAA,QAAQ,EAAE;AAdO,CAAnB;;;;"} \ No newline at end of file diff --git a/dist/esm/Channel.js b/dist/esm/Channel.js new file mode 100644 index 0000000..f0938c9 --- /dev/null +++ b/dist/esm/Channel.js @@ -0,0 +1,5515 @@ +import { c as _toConsumableArray, a as _objectSpread2, u as uuidv4$1, l as _defineProperty, b as _slicedToArray, e as LocalizationContext, f as _inherits, h as _createClass, i as _classCallCheck, j as _possibleConstructorReturn, k as _getPrototypeOf, m as _assertThisInitialized, w as withSendbirdContext } from './LocalizationContext-619bafba.js'; +import React, { useEffect, useCallback, useRef, useMemo, useState, useContext, Component, useReducer } from 'react'; +import PropTypes from 'prop-types'; +import { p as SEND_USER_MESSAGE, S as SEND_MESSAGE_START, q as SEND_FILE_MESSAGE, U as UPDATE_USER_MESSAGE, D as DELETE_MESSAGE, E as EmojiListItems, r as ImageRenderer, I as Icon, a as IconTypes, s as Loader, g as IconColors, b as Label, c as LabelTypography, d as LabelColors, C as ContextMenu, e as IconButton, h as MenuItems, i as MenuItem, n as UserProfileContext, A as Avatar, o as UserProfile, f as TextButton, M as Modal, L as LabelStringSet, P as PlaceHolder, t as PlaceHolderTypes, l as UserProfileProvider } from './index-0c67ae90.js'; +import { a as getMessageCreatedAt$4, b as getSenderName$2, c as getSenderProfileUrl$2 } from './utils-53ba1773.js'; +import { C as ChannelAvatar } from './index-a199094e.js'; +import format from 'date-fns/format'; +import { M as MessageStatusType } from './type-0296584d.js'; +import { t as truncate, g as getIsSentFromStatus$3 } from './utils-cfdeb084.js'; +import 'react-dom'; +import { i as isImage, a as isVideo, c as compareIds, u as unSupported, L as LinkLabel, M as MessageInput, D as DateSeparator, F as FileViewer } from './index-1cf7b066.js'; +import isSameDay from 'date-fns/isSameDay'; +import { c as copyToClipboard$1, g as getSenderProfileUrl$1, a as getSenderName$1, b as getMessageCreatedAt$5, d as getIsSentFromStatus$2 } from './utils-d7f59026.js'; +import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict'; + +var RESET_MESSAGES = 'RESET_MESSAGES'; +var RESET_STATE = 'RESET_STATE'; +var CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES'; +var GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START'; +var GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS'; +var SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START'; +var SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS'; +var SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE'; +var RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START'; +var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED'; +var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED'; +var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED'; +var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID'; +var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL'; +var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID'; +var MARK_AS_READ = 'MARK_AS_READ'; +var ON_REACTION_UPDATED = 'ON_REACTION_UPDATED'; +var SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER'; +var SET_READ_STATUS = 'SET_READ_STATUS'; + +var MessageTypes = { + ADMIN: 'ADMIN', + USER: 'USER', + FILE: 'FILE', + THUMBNAIL: 'THUMBNAIL', + OG: 'OG' +}; +var SendingMessageStatus = { + NONE: 'none', + SUCCEEDED: 'succeeded', + FAILED: 'failed', + PENDING: 'pending' +}; +var getMessageType = function getMessageType(message) { + if (message.isUserMessage && message.isUserMessage() || message.messageType === 'user') { + return message.ogMetaData ? MessageTypes.OG : MessageTypes.USER; + } + + if (message.isAdminMessage && message.isAdminMessage()) { + return MessageTypes.ADMIN; + } + + if (message.isFileMessage && message.isFileMessage() || message.messageType === 'file') { + return isImage(message.type) || isVideo(message.type) ? MessageTypes.THUMBNAIL : MessageTypes.FILE; + } + + return ''; +}; + +var UNDEFINED = 'undefined'; +var SUCCEEDED = SendingMessageStatus.SUCCEEDED, + FAILED = SendingMessageStatus.FAILED, + PENDING = SendingMessageStatus.PENDING; +var scrollIntoLast = function scrollIntoLast(selector) { + var intialTry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var MAX_TRIES = 10; + var currentTry = intialTry; + + if (currentTry > MAX_TRIES) { + return; + } + + try { + var nodes = document.querySelectorAll(selector); + var last = nodes[nodes.length - 1]; + last.scrollIntoView(false); + /** alignToTop: false */ + } catch (error) { + setTimeout(function () { + scrollIntoLast(selector, currentTry + 1); + }, 500 * currentTry); + } +}; +var pubSubHandleRemover = function pubSubHandleRemover(subscriber) { + subscriber.forEach(function (s) { + try { + s.remove(); + } catch (_unused) {// + } + }); +}; +var pubSubHandler = function pubSubHandler(channelUrl, pubSub, dispatcher) { + var subscriber = new Map(); + if (!pubSub || !pubSub.subscribe) return subscriber; + subscriber.set(SEND_USER_MESSAGE, pubSub.subscribe(SEND_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + scrollIntoLast('.sendbird-msg--scroll-ref'); + + if (channel && channelUrl === channel.url) { + dispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + } + })); + subscriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, function (msg) { + var channel = msg.channel, + message = msg.message; + + if (channel && channelUrl === channel.url) { + dispatcher({ + type: SEND_MESSAGEGE_START, + payload: message + }); + } + })); + subscriber.set(SEND_FILE_MESSAGE, pubSub.subscribe(SEND_FILE_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + scrollIntoLast('.sendbird-msg--scroll-ref'); + + if (channel && channelUrl === channel.url) { + dispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + } + })); + subscriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message, + fromSelector = msg.fromSelector; + + if (fromSelector && channel && channelUrl === channel.url) { + dispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: channel, + message: message + } + }); + } + })); + subscriber.set(DELETE_MESSAGE, pubSub.subscribe(DELETE_MESSAGE, function (msg) { + var channel = msg.channel, + messageId = msg.messageId; + + if (channel && channelUrl === channel.url) { + dispatcher({ + type: ON_MESSAGE_DELETED, + payload: messageId + }); + } + })); + return subscriber; +}; +var getParsedStatus = function getParsedStatus(message, currentGroupChannel) { + if (message.requestState === FAILED) { + return MessageStatusType.FAILED; + } + + if (message.requestState === PENDING) { + return MessageStatusType.PENDING; + } + + if (message.requestState === SUCCEEDED) { + if (!currentGroupChannel) { + return MessageStatusType.SENT; + } + + var unreadCount = currentGroupChannel.getReadReceipt(message); + + if (unreadCount === 0) { + return MessageStatusType.READ; + } + + var isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0; + + if (isDelivered) { + return MessageStatusType.DELIVERED; + } + + return MessageStatusType.SENT; + } + + return null; +}; +var isOperator = function isOperator() { + var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var myRole = groupChannel.myRole; + return myRole === 'operator'; +}; +var isDisabledBecauseFrozen = function isDisabledBecauseFrozen() { + var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var isFrozen = groupChannel.isFrozen; + return isFrozen && !isOperator(groupChannel); +}; +var isDisabledBecauseMuted = function isDisabledBecauseMuted() { + var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var myMutedState = groupChannel.myMutedState; + return myMutedState === 'muted'; +}; +var getEmojiCategoriesFromEmojiContainer = function getEmojiCategoriesFromEmojiContainer() { + var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []; +}; +var getAllEmojisFromEmojiContainer = function getAllEmojisFromEmojiContainer() { + var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _emojiContainer$emoji = emojiContainer.emojiCategories, + emojiCategories = _emojiContainer$emoji === void 0 ? [] : _emojiContainer$emoji; + var allEmojis = []; + + for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) { + var emojis = emojiCategories[categoryIndex].emojis; + + for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) { + allEmojis.push(emojis[emojiIndex]); + } + } + + return allEmojis; +}; +var getEmojisFromEmojiContainer = function getEmojisFromEmojiContainer() { + var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var emojiCategoryId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + return emojiContainer.emojiCategories ? emojiContainer.emojiCategories.filter(function (emojiCategory) { + return emojiCategory.id === emojiCategoryId; + })[0].emojis : []; +}; +var getAllEmojisMapFromEmojiContainer = function getAllEmojisMapFromEmojiContainer() { + var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _emojiContainer$emoji2 = emojiContainer.emojiCategories, + emojiCategories = _emojiContainer$emoji2 === void 0 ? [] : _emojiContainer$emoji2; + var allEmojisMap = new Map(); + + for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) { + var emojis = emojiCategories[categoryIndex].emojis; + + for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) { + var _emojis$emojiIndex = emojis[emojiIndex], + key = _emojis$emojiIndex.key, + url = _emojis$emojiIndex.url; + allEmojisMap.set(key, url); + } + } + + return allEmojisMap; +}; +var getNicknamesMapFromMembers = function getNicknamesMapFromMembers() { + var members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var nicknamesMap = new Map(); + + for (var memberIndex = 0; memberIndex < members.length; memberIndex += 1) { + var _members$memberIndex = members[memberIndex], + userId = _members$memberIndex.userId, + nickname = _members$memberIndex.nickname; + nicknamesMap.set(userId, nickname); + } + + return nicknamesMap; +}; +var getMessageCreatedAt = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var isSameGroup = function isSameGroup(message, comparingMessage) { + if (!message || !comparingMessage || !message.sender || !comparingMessage.sender || !message.createdAt || !comparingMessage.createdAt || !message.sender.userId || !comparingMessage.sender.userId) { + return false; + } + + return message.sendingStatus === comparingMessage.sendingStatus && message.sender.userId === comparingMessage.sender.userId && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage); +}; +var compareMessagesForGrouping = function compareMessagesForGrouping(prevMessage, currMessage, nextMessage) { + return [isSameGroup(prevMessage, currMessage), isSameGroup(currMessage, nextMessage)]; +}; +var passUnsuccessfullMessages = function passUnsuccessfullMessages(allMessages, newMessage) { + var _newMessage$sendingSt = newMessage.sendingStatus, + sendingStatus = _newMessage$sendingSt === void 0 ? UNDEFINED : _newMessage$sendingSt; + + if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) { + var lastIndexOfSucceededMessage = allMessages.map(function (message) { + return message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED : UNDEFINED); + }).lastIndexOf(SUCCEEDED); + + if (lastIndexOfSucceededMessage + 1 < allMessages.length) { + var messages = _toConsumableArray(allMessages); + + messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage); + return messages; + } + } + + return [].concat(_toConsumableArray(allMessages), [newMessage]); +}; + +var messagesInitialState = { + initialized: false, + loading: false, + allMessages: [], + currentGroupChannel: { + members: [] + }, + hasMore: false, + lastMessageTimeStamp: 0, + emojiContainer: {}, + readStatus: {}, + unreadCount: 0, + unreadSince: null, + isInvalid: false +}; + +var SUCCEEDED$1 = SendingMessageStatus.SUCCEEDED, + FAILED$1 = SendingMessageStatus.FAILED, + PENDING$1 = SendingMessageStatus.PENDING; +function reducer(state, action) { + switch (action.type) { + case RESET_STATE: + return messagesInitialState; + + case RESET_MESSAGES: + return _objectSpread2({}, state, { + // when user switches channel, if the previous channel `hasMore` + // the onScroll gets called twice, setting hasMore false prevents this + hasMore: false, + allMessages: [] + }); + + case GET_PREV_MESSAGES_START: + return _objectSpread2({}, state, { + loading: true + }); + + case CLEAR_SENT_MESSAGES: + return _objectSpread2({}, state, { + allMessages: _toConsumableArray(state.allMessages.filter(function (m) { + return m.sendingStatus !== SUCCEEDED$1; + })) + }); + + case GET_PREV_MESSAGES_SUCESS: + { + var receivedMessages = action.payload.messages || []; + var _action$payload$curre = action.payload.currentGroupChannel, + currentGroupChannel = _action$payload$curre === void 0 ? {} : _action$payload$curre; + var stateChannel = state.currentGroupChannel || {}; + var stateChannelUrl = stateChannel.url; + var actionChannelUrl = currentGroupChannel.url; + + if (actionChannelUrl !== stateChannelUrl) { + return state; + } // remove duplicate messages + + + var filteredAllMessages = state.allMessages.filter(function (msg) { + return !receivedMessages.find(function (_ref) { + var messageId = _ref.messageId; + return compareIds(messageId, msg.messageId); + }); + }); + return _objectSpread2({}, state, { + loading: false, + initialized: true, + hasMore: action.payload.hasMore, + lastMessageTimeStamp: action.payload.lastMessageTimeStamp, + allMessages: [].concat(_toConsumableArray(receivedMessages), _toConsumableArray(filteredAllMessages)) + }); + } + + case SEND_MESSAGEGE_START: + return _objectSpread2({}, state, { + allMessages: [].concat(_toConsumableArray(state.allMessages), [_objectSpread2({}, action.payload)]) + }); + + case SEND_MESSAGEGE_SUCESS: + { + var newMessages = state.allMessages.map(function (m) { + return compareIds(m.reqId, action.payload.reqId) ? action.payload : m; + }); + + _toConsumableArray(newMessages).sort(function (a, b) { + return a.sendingStatus && b.sendingStatus && a.sendingStatus === SUCCEEDED$1 && (b.sendingStatus === PENDING$1 || b.sendingStatus === FAILED$1) ? -1 : 1; + }); + + return _objectSpread2({}, state, { + allMessages: newMessages + }); + } + + case SEND_MESSAGEGE_FAILURE: + { + // eslint-disable-next-line no-param-reassign + action.payload.failed = true; + return _objectSpread2({}, state, { + allMessages: state.allMessages.map(function (m) { + return compareIds(m.reqId, action.payload.reqId) ? action.payload : m; + }) + }); + } + + case SET_CURRENT_CHANNEL: + { + return _objectSpread2({}, state, { + currentGroupChannel: action.payload, + isInvalid: false + }); + } + + case SET_CHANNEL_INVALID: + { + return _objectSpread2({}, state, { + isInvalid: true + }); + } + + case ON_MESSAGE_RECEIVED: + { + var _action$payload = action.payload, + channel = _action$payload.channel, + message = _action$payload.message; + + var _state$currentGroupCh = state.currentGroupChannel, + _currentGroupChannel = _state$currentGroupCh === void 0 ? {} : _state$currentGroupCh, + unreadCount = state.unreadCount, + unreadSince = state.unreadSince; + + var currentGroupChannelUrl = _currentGroupChannel.url; + + if (!compareIds(channel.url, currentGroupChannelUrl)) { + return state; + } // Excluded overlapping messages + + + if (!(state.allMessages.map(function (msg) { + return msg.messageId; + }).indexOf(message.messageId) < 0)) { + return state; + } + + if (message.isAdminMessage && message.isAdminMessage()) { + return _objectSpread2({}, state, { + allMessages: passUnsuccessfullMessages(state.allMessages, message) + }); + } + + return _objectSpread2({}, state, { + unreadCount: unreadCount + 1, + unreadSince: unreadCount === 0 ? format(new Date(), 'p MMM dd') : unreadSince, + allMessages: passUnsuccessfullMessages(state.allMessages, message) + }); + } + + case ON_MESSAGE_UPDATED: + return _objectSpread2({}, state, { + allMessages: state.allMessages.map(function (m) { + return compareIds(m.messageId, action.payload.message.messageId) ? action.payload.message : m; + }) + }); + + case RESEND_MESSAGEGE_START: + return _objectSpread2({}, state, { + allMessages: state.allMessages.map(function (m) { + return compareIds(m.reqId, action.payload.reqId) ? action.payload : m; + }) + }); + + case MARK_AS_READ: + return _objectSpread2({}, state, { + unreadCount: 0, + unreadSince: null + }); + + case ON_MESSAGE_DELETED: + return _objectSpread2({}, state, { + allMessages: state.allMessages.filter(function (m) { + return !compareIds(m.messageId, action.payload); + }) + }); + + case ON_MESSAGE_DELETED_BY_REQ_ID: + return _objectSpread2({}, state, { + allMessages: state.allMessages.filter(function (m) { + return !compareIds(m.reqId, action.payload); + }) + }); + + case SET_EMOJI_CONTAINER: + { + return _objectSpread2({}, state, { + emojiContainer: action.payload + }); + } + + case SET_READ_STATUS: + { + return _objectSpread2({}, state, { + readStatus: action.payload + }); + } + + case ON_REACTION_UPDATED: + { + return _objectSpread2({}, state, { + allMessages: state.allMessages.map(function (m) { + if (compareIds(m.messageId, action.payload.messageId)) { + if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') { + m.applyReactionEvent(action.payload); + } + + return m; + } + + return m; + }) + }); + } + + default: + return state; + } +} + +/** + * Handles ChannelEvents and send values to dispatcher using messagesDispatcher + * messagesDispatcher: Dispatcher + * sdk: sdkInstance + * logger: loggerInstance + * channelUrl: string + * sdkInit: bool + */ + +function useHandleChannelEvents(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + sdkInit = _ref.sdkInit; + var messagesDispatcher = _ref2.messagesDispatcher, + sdk = _ref2.sdk, + logger = _ref2.logger; + var channelUrl = currentGroupChannel && currentGroupChannel.url; + useEffect(function () { + var messageReceiverId = uuidv4$1(); + + if (channelUrl && sdk && sdk.ChannelHandler) { + var ChannelHandler = new sdk.ChannelHandler(); + logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId); + + ChannelHandler.onMessageReceived = function (channel, message) { + if (compareIds(channel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onMessageReceived', message); + messagesDispatcher({ + type: ON_MESSAGE_RECEIVED, + payload: { + channel: channel, + message: message + } + }); + } + }; + + ChannelHandler.onMessageUpdated = function (channel, message) { + logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message); + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: channel, + message: message + } + }); + }; + + ChannelHandler.onMessageDeleted = function (_, messageId) { + logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId); + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: messageId + }); + }; + + ChannelHandler.onReactionUpdated = function (_, reactionEvent) { + logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent); + messagesDispatcher({ + type: ON_REACTION_UPDATED, + payload: reactionEvent + }); + }; + + ChannelHandler.onChannelChanged = function (groupChannel) { + if (compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onChannelFrozen = function (groupChannel) { + if (compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onChannelUnfrozen = function (groupChannel) { + if (compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onUserMuted = function (groupChannel) { + if (compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onUserUnmuted = function (groupChannel) { + if (compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onUserBanned = function (groupChannel) { + if (compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; + + ChannelHandler.onOperatorUpdated = function (groupChannel) { + if (compareIds(groupChannel.url, currentGroupChannel.url)) { + logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + } + }; // Add this channel event handler to the SendBird object. + + + sdk.addChannelHandler(messageReceiverId, ChannelHandler); + } + + return function () { + if (sdk && sdk.removeChannelHandler) { + logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId); + sdk.removeChannelHandler(messageReceiverId); + } + }; + }, [channelUrl, sdkInit]); +} + +function useSetChannel(_ref, _ref2) { + var channelUrl = _ref.channelUrl, + sdkInit = _ref.sdkInit; + var messagesDispatcher = _ref2.messagesDispatcher, + sdk = _ref2.sdk, + logger = _ref2.logger; + useEffect(function () { + if (channelUrl && sdkInit && sdk && sdk.GroupChannel) { + logger.info('Channel | useSetChannel fetching channel', channelUrl); + sdk.GroupChannel.getChannel(channelUrl).then(function (groupChannel) { + logger.info('Channel | useSetChannel fetched channel', groupChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: groupChannel + }); + logger.info('Channel: Mark as read', groupChannel); // this order is important - this mark as read should update the event handler up above + + groupChannel.markAsRead(); + }).catch(function (e) { + logger.warning('Channel | useSetChannel fetch channel failed', { + channelUrl: channelUrl, + e: e + }); + messagesDispatcher({ + type: SET_CHANNEL_INVALID + }); + }); + sdk.getAllEmoji(function (emojiContainer_, err) { + if (err) { + logger.error('Channel: Getting emojis failed', err); + return; + } + + logger.info('Channel: Getting emojis success', emojiContainer_); + messagesDispatcher({ + type: SET_EMOJI_CONTAINER, + payload: emojiContainer_ + }); + }); + } + }, [channelUrl, sdkInit]); +} + +function useInitialMessagesFetch(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + userFilledMessageListQuery = _ref.userFilledMessageListQuery; + var sdk = _ref2.sdk, + logger = _ref2.logger, + messagesDispatcher = _ref2.messagesDispatcher; + var channelUrl = currentGroupChannel && currentGroupChannel.url; + useEffect(function () { + logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel); + messagesDispatcher({ + type: RESET_MESSAGES + }); + + if (sdk && sdk.MessageListParams && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) { + var messageListParams = new sdk.MessageListParams(); + messageListParams.prevResultSize = 30; + messageListParams.isInclusive = true; + messageListParams.includeReplies = false; + messageListParams.includeReaction = true; + + if (userFilledMessageListQuery) { + Object.keys(userFilledMessageListQuery).forEach(function (key) { + messageListParams[key] = userFilledMessageListQuery[key]; + }); + } + + logger.info('Channel: Fetching messages', { + currentGroupChannel: currentGroupChannel, + userFilledMessageListQuery: userFilledMessageListQuery + }); + currentGroupChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams).then(function (messages) { + var hasMore = messages && messages.length > 0; + var lastMessageTimeStamp = hasMore ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: messages, + hasMore: hasMore, + lastMessageTimeStamp: lastMessageTimeStamp, + currentGroupChannel: currentGroupChannel + } + }); + }).catch(function (error) { + logger.error('Channel: Fetching messages failed', error); + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: [], + hasMore: false, + lastMessageTimeStamp: 0, + currentGroupChannel: currentGroupChannel + } + }); + }).finally(function () { + currentGroupChannel.markAsRead(); + setTimeout(function () { + return scrollIntoLast('.sendbird-msg--scroll-ref'); + }); + }); + } + }, [channelUrl, userFilledMessageListQuery]); +} + +function useHandleReconnect(_ref, _ref2) { + var isOnline = _ref.isOnline; + var logger = _ref2.logger, + sdk = _ref2.sdk, + currentGroupChannel = _ref2.currentGroupChannel, + messagesDispatcher = _ref2.messagesDispatcher, + userFilledMessageListQuery = _ref2.userFilledMessageListQuery; + useEffect(function () { + var wasOffline = !isOnline; + return function () { + // state changed from offline to online + if (wasOffline) { + logger.info('Refreshing conversation state'); + var _sdk$appInfo = sdk.appInfo, + appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; + var useReaction = appInfo.isUsingReaction || false; + var messageListParams = new sdk.MessageListParams(); + messageListParams.prevResultSize = 30; + messageListParams.includeReplies = false; + messageListParams.includeReaction = useReaction; + + if (userFilledMessageListQuery) { + Object.keys(userFilledMessageListQuery).forEach(function (key) { + messageListParams[key] = userFilledMessageListQuery[key]; + }); + } + + logger.info('Channel: Fetching messages', { + currentGroupChannel: currentGroupChannel, + userFilledMessageListQuery: userFilledMessageListQuery + }); + messagesDispatcher({ + type: GET_PREV_MESSAGES_START + }); + sdk.GroupChannel.getChannel(currentGroupChannel.url).then(function (groupChannel) { + var lastMessageTime = new Date().getTime(); + groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams).then(function (messages) { + messagesDispatcher({ + type: CLEAR_SENT_MESSAGES + }); + var hasMore = messages && messages.length > 0; + var lastMessageTimeStamp = hasMore ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: messages, + hasMore: hasMore, + lastMessageTimeStamp: lastMessageTimeStamp, + currentGroupChannel: currentGroupChannel + } + }); + setTimeout(function () { + return scrollIntoLast('.sendbird-msg--scroll-ref'); + }); + }).catch(function (error) { + logger.error('Channel: Fetching messages failed', error); + }).finally(function () { + currentGroupChannel.markAsRead(); + }); + }); + } + }; + }, [isOnline]); +} + +function useScrollCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + lastMessageTimeStamp = _ref.lastMessageTimeStamp, + userFilledMessageListQuery = _ref.userFilledMessageListQuery; + var hasMore = _ref2.hasMore, + logger = _ref2.logger, + messagesDispatcher = _ref2.messagesDispatcher, + sdk = _ref2.sdk; + return useCallback(function (cb) { + if (!hasMore) { + return; + } + + var messageListParams = new sdk.MessageListParams(); + messageListParams.prevResultSize = 30; + messageListParams.includeReplies = false; + messageListParams.includeReaction = true; + + if (userFilledMessageListQuery) { + Object.keys(userFilledMessageListQuery).forEach(function (key) { + messageListParams[key] = userFilledMessageListQuery[key]; + }); + } + + logger.info('Channel: Fetching messages', { + currentGroupChannel: currentGroupChannel, + userFilledMessageListQuery: userFilledMessageListQuery + }); + currentGroupChannel.getMessagesByTimestamp(lastMessageTimeStamp || new Date().getTime(), messageListParams).then(function (messages) { + var hasMoreMessages = messages && messages.length > 0; + var lastMessageTs = hasMoreMessages ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: messages, + hasMore: hasMoreMessages, + lastMessageTimeStamp: lastMessageTs, + currentGroupChannel: currentGroupChannel + } + }); + cb([messages, null]); + }).catch(function (error) { + logger.error('Channel: Fetching messages failed', error); + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + messages: [], + hasMore: false, + lastMessageTimeStamp: 0, + currentGroupChannel: currentGroupChannel + } + }); + cb([null, error]); + }).finally(function () { + currentGroupChannel.markAsRead(); + }); + }, [currentGroupChannel, lastMessageTimeStamp]); +} + +function useDeleteMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + messagesDispatcher = _ref.messagesDispatcher; + var logger = _ref2.logger; + return useCallback(function (message, cb) { + logger.info('Channel | useDeleteMessageCallback: Deleting message', message); + var requestState = message.requestState; + logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState); // Message is only on local + + if (requestState === 'failed' || requestState === 'pending') { + logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message); + messagesDispatcher({ + type: ON_MESSAGE_DELETED_BY_REQ_ID, + payload: message.reqId + }); + + if (cb) { + cb(); + } + + return; + } // Message is on server + + + currentGroupChannel.deleteMessage(message, function (err) { + logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState); + + if (cb) { + cb(err); + } + + if (!err) { + logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message); + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: message.messageId + }); + } else { + logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err); + } + }); + }, [currentGroupChannel, messagesDispatcher]); +} + +function useUpdateMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + messagesDispatcher = _ref.messagesDispatcher, + onBeforeUpdateUserMessage = _ref.onBeforeUpdateUserMessage; + var logger = _ref2.logger, + pubSub = _ref2.pubSub, + sdk = _ref2.sdk; + return useCallback(function (messageId, text, cb) { + var createParamsDefault = function createParamsDefault(txt) { + var params = new sdk.UserMessageParams(); + params.message = txt; + return params; + }; + + var createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function'; + + if (createCustomPrams) { + logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage); + } + + var params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(text) : createParamsDefault(text); + currentGroupChannel.updateUserMessage(messageId, params, function (r, e) { + logger.info('Channel: Updating message!', params); + var swapParams = sdk.getErrorFirstCallback(); + var message = r; + var err = e; + + if (swapParams) { + message = e; + err = r; + } + + if (cb) { + cb(err, message); + } + + if (!err) { + logger.info('Channel: Updating message success!', message); + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: currentGroupChannel, + message: message + } + }); + pubSub.publish(UPDATE_USER_MESSAGE, { + message: message, + channel: currentGroupChannel + }); + } else { + logger.warning('Channel: Updating message failed!', err); + } + }); + }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]); +} + +function useResendMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + messagesDispatcher = _ref.messagesDispatcher; + var logger = _ref2.logger; + return useCallback(function (failedMessage) { + logger.info('Channel: Resending message has started', failedMessage); + var messageType = failedMessage.messageType, + file = failedMessage.file; + + if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) { + // eslint-disable-next-line no-param-reassign + failedMessage.requestState = 'pending'; + messagesDispatcher({ + type: RESEND_MESSAGEGE_START, + payload: failedMessage + }); // userMessage + + if (messageType === 'user') { + currentGroupChannel.resendUserMessage(failedMessage).then(function (message) { + logger.info('Channel: Resending message success!', { + message: message + }); + messagesDispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + }).catch(function (e) { + logger.warning('Channel: Resending message failed!', { + e: e + }); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'failed'; + messagesDispatcher({ + type: SEND_MESSAGEGE_FAILURE, + payload: failedMessage + }); + }); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'pending'; + messagesDispatcher({ + type: RESEND_MESSAGEGE_START, + payload: failedMessage + }); + return; + } + + if (messageType === 'file') { + currentGroupChannel.resendFileMessage(failedMessage, file).then(function (message) { + logger.info('Channel: Resending file message success!', { + message: message + }); + messagesDispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + }).catch(function (e) { + logger.warning('Channel: Resending file message failed!', { + e: e + }); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'failed'; + messagesDispatcher({ + type: SEND_MESSAGEGE_FAILURE, + payload: failedMessage + }); + }); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'pending'; + messagesDispatcher({ + type: RESEND_MESSAGEGE_START, + payload: failedMessage + }); + } + } else { + // to alert user on console + // eslint-disable-next-line no-console + console.error('Message is not resendable'); + logger.warning('Message is not resendable', failedMessage); + } + }, [currentGroupChannel, messagesDispatcher]); +} + +function useSendMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + onBeforeSendUserMessage = _ref.onBeforeSendUserMessage; + var sdk = _ref2.sdk, + logger = _ref2.logger, + pubSub = _ref2.pubSub, + messagesDispatcher = _ref2.messagesDispatcher; + var messageInputRef = useRef(null); + var sendMessage = useCallback(function () { + var text = messageInputRef.current.value; + + var createParamsDefault = function createParamsDefault(txt) { + var message = typeof txt === 'string' ? txt.trim() : txt; + var params = new sdk.UserMessageParams(); + params.message = message; + return params; + }; + + var createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function'; + + if (createCustomPrams) { + logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage); + } + + var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text); + logger.info('Channel: Sending message has started', params); + var pendingMsg = currentGroupChannel.sendUserMessage(params, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } // sending params instead of pending message + // to make sure that we can resend the message once it fails + + + if (error) { + logger.warning('Channel: Sending message failed!', { + message: message + }); + messagesDispatcher({ + type: SEND_MESSAGEGE_FAILURE, + payload: message + }); + return; + } + + logger.info('Channel: Sending message success!', message); + messagesDispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + }); + pubSub.publish(SEND_MESSAGE_START, { + /* pubSub is used instead of messagesDispatcher + to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */ + message: pendingMsg, + channel: currentGroupChannel + }); + setTimeout(function () { + return scrollIntoLast('.sendbird-msg--scroll-ref'); + }); + }, [currentGroupChannel, onBeforeSendUserMessage]); + return [messageInputRef, sendMessage]; +} + +function useSendFileMessageCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel, + onBeforeSendFileMessage = _ref.onBeforeSendFileMessage; + var sdk = _ref2.sdk, + logger = _ref2.logger, + pubSub = _ref2.pubSub, + messagesDispatcher = _ref2.messagesDispatcher; + var sendMessage = useCallback(function (file) { + var createParamsDefault = function createParamsDefault(file_) { + var params = new sdk.FileMessageParams(); + params.file = file_; + return params; + }; + + var createCustomPrams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function'; + + if (createCustomPrams) { + logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage); + } + + var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefault(file); + logger.info('Channel: Uploading file message start!', params); + var pendingMsg = currentGroupChannel.sendFileMessage(params, function (response, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = response; + var error = err; + + if (swapParams) { + message = err; + error = response; + } + + if (error) { + // sending params instead of pending message + // to make sure that we can resend the message once it fails + logger.error('Channel: Sending file message failed!', message); + message.localUrl = URL.createObjectURL(file); + message.file = file; + messagesDispatcher({ + type: SEND_MESSAGEGE_FAILURE, + payload: message + }); + return; + } + + logger.info('Channel: Sending message success!', message); + messagesDispatcher({ + type: SEND_MESSAGEGE_SUCESS, + payload: message + }); + }); + pubSub.publish(SEND_MESSAGE_START, { + /* pubSub is used instead of messagesDispatcher + to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */ + message: _objectSpread2({}, pendingMsg, { + url: URL.createObjectURL(file), + // pending thumbnail message seems to be failed + requestState: 'pending' + }), + channel: currentGroupChannel + }); + setTimeout(function () { + return scrollIntoLast('.sendbird-msg--scroll-ref'); + }, 1000); + }, [currentGroupChannel, onBeforeSendFileMessage]); + return [sendMessage]; +} + +function useSetReadStatus(_ref, _ref2) { + var allMessages = _ref.allMessages, + currentGroupChannel = _ref.currentGroupChannel; + var messagesDispatcher = _ref2.messagesDispatcher, + sdk = _ref2.sdk, + logger = _ref2.logger; + useEffect(function () { + if (!sdk.ChannelHandler || !currentGroupChannel.url) { + return function () {}; + } // todo: move to reducer? + + + var setReadStatus = function setReadStatus() { + var allReadStatus = allMessages.reduce(function (accumulator, msg) { + if (msg.messageId !== 0) { + return _objectSpread2({}, accumulator, _defineProperty({}, msg.messageId, getParsedStatus(msg, currentGroupChannel))); + } + + return accumulator; + }, {}); + messagesDispatcher({ + type: SET_READ_STATUS, + payload: allReadStatus + }); + }; + + if (allMessages.length > 0) { + setReadStatus(); + } + + var channelUrl = currentGroupChannel.url; + var handler = new sdk.ChannelHandler(); + + var handleMessageStatus = function handleMessageStatus(c) { + if (channelUrl === c.url) { + setReadStatus(); + } + }; + + handler.onDeliveryReceiptUpdated = handleMessageStatus; + handler.onReadReceiptUpdated = handleMessageStatus; // Add this channel event handler to the SendBird object. + + var handlerId = uuidv4$1(); + logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId); + sdk.addChannelHandler(handlerId, handler); + return function () { + if (sdk && sdk.removeChannelHandler) { + logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId); + sdk.removeChannelHandler(handlerId); + } + }; + }, [allMessages, currentGroupChannel]); +} + +var ReactionButton = React.forwardRef(function (props, ref) { + var children = props.children, + width = props.width, + height = props.height, + _onClick = props.onClick, + selected = props.selected, + className = props.className; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + ref: ref, + className: "sendbird-reaction-button".concat(selected ? '--selected' : '', " ").concat(injectingClassName.join(' ')), + style: { + width: typeof width === 'string' ? "".concat(width.slice(0, -2) - 2, "px") : "".concat(width - 2, "px"), + height: typeof height === 'string' ? "".concat(height.slice(0, -2) - 2, "px") : "".concat(height - 2, "px") + }, + onClick: function onClick(e) { + return _onClick(e); + }, + role: "button", + onKeyDown: function onKeyDown(e) { + return _onClick(e); + }, + tabIndex: 0 + }, React.createElement("div", { + className: "sendbird-reaction-button__inner" + }, children)); +}); +ReactionButton.propTypes = { + children: PropTypes.element.isRequired, + onClick: PropTypes.func, + selected: PropTypes.bool, + width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +ReactionButton.defaultProps = { + selected: false, + width: '36px', + height: '36px', + onClick: function onClick() {}, + className: '' +}; + +function useMemoizedEmojiListItems(_ref, _ref2) { + var emojiContainer = _ref.emojiContainer, + toggleReaction = _ref.toggleReaction; + var useReaction = _ref2.useReaction, + logger = _ref2.logger, + userId = _ref2.userId, + emojiAllList = _ref2.emojiAllList; + return useMemo(function () { + return function (_ref3) { + var parentRef = _ref3.parentRef, + parentContainRef = _ref3.parentContainRef, + message = _ref3.message, + closeDropdown = _ref3.closeDropdown, + _ref3$spaceFromTrigge = _ref3.spaceFromTrigger, + spaceFromTrigger = _ref3$spaceFromTrigge === void 0 ? {} : _ref3$spaceFromTrigge; + + if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) { + logger.warning('Channel: Invalid Params in memoizedEmojiListItems'); + return null; + } + + return React.createElement(EmojiListItems, { + parentRef: parentRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: spaceFromTrigger + }, emojiAllList.map(function (emoji) { + var reactedReaction = message.reactions.filter(function (reaction) { + return reaction.key === emoji.key; + })[0]; + var isReacted = reactedReaction ? !(reactedReaction.userIds.indexOf(userId) < 0) : false; + return React.createElement(ReactionButton, { + key: emoji.key, + width: "36px", + height: "36px", + selected: isReacted, + onClick: function onClick() { + closeDropdown(); + toggleReaction(message, emoji.key, isReacted); + } + }, React.createElement(ImageRenderer, { + url: emoji.url, + width: "28px", + height: "28px", + defaultComponent: React.createElement(Icon, { + width: "28px", + height: "28px", + type: IconTypes.EMOJI_FAILED + }) + })); + })); + }; + }, [emojiContainer, toggleReaction]); +} + +function useToggleReactionCallback(_ref, _ref2) { + var currentGroupChannel = _ref.currentGroupChannel; + var logger = _ref2.logger; + return useCallback(function (message, key, isReacted) { + if (isReacted) { + currentGroupChannel.deleteReaction(message, key).then(function (res) { + logger.info('Delete reaction success', res); + }).catch(function (err) { + logger.warning('Delete reaction failed', err); + }); + return; + } + + currentGroupChannel.addReaction(message, key).then(function (res) { + logger.info('Add reaction success', res); + }).catch(function (err) { + logger.warning('Add reaction failed', err); + }); + }, [currentGroupChannel]); +} + +function MessageStatus(_ref) { + var message = _ref.message, + status = _ref.status, + className = _ref.className; + var injectingClassName = Array.isArray(className) ? className : [className]; + + var label = function label() { + switch (status) { + case MessageStatusType.FAILED: + case MessageStatusType.PENDING: + { + return null; + } + + case MessageStatusType.SENT: + case MessageStatusType.DELIVERED: + case MessageStatusType.READ: + { + return React.createElement(Label, { + className: "sendbird-message-status__text", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, getMessageCreatedAt$4(message)); + } + + default: + return null; + } + }; + + var icon = { + PENDING: React.createElement(Loader, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px" + }, React.createElement(Icon, { + type: IconTypes.SPINNER, + width: "16px", + height: "16px" + })), + SENT: React.createElement(Icon, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px", + type: IconTypes.SENT, + fillColor: IconColors.SENT + }), + DELIVERED: React.createElement(Icon, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px", + type: IconTypes.DELIVERED, + fillColor: IconColors.SENT + }), + READ: React.createElement(Icon, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px", + type: IconTypes.READ, + fillColor: IconColors.READ + }), + FAILED: React.createElement(Icon, { + className: "sendbird-message-status__icon", + width: "16px", + height: "16px", + type: IconTypes.ERROR + }) + }; + return React.createElement("div", { + className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-message-status']).join(' ') + }, icon[status], React.createElement("br", null), label()); +} +MessageStatus.propTypes = { + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + status: PropTypes.string, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +MessageStatus.defaultProps = { + message: null, + status: '', + className: '' +}; + +var ReactionBadge = React.forwardRef(function (props, ref) { + var className = props.className, + children = props.children, + count = props.count, + selected = props.selected, + isAdd = props.isAdd, + onClick = props.onClick; + var injectingClassName = Array.isArray(className) ? className : [className]; + + if (selected && !isAdd) { + injectingClassName.unshift('sendbird-reaction-badge--selected'); + } else if (isAdd) { + injectingClassName.push('sendbird-reaction-badge--is-add'); + } else { + injectingClassName.unshift('sendbird-reaction-badge'); + } + + return React.createElement("div", { + ref: ref, + tabIndex: 0, + role: "button", + className: injectingClassName.join(' '), + onClick: onClick, + onKeyDown: onClick + }, React.createElement("div", { + className: "sendbird-reaction-badge__inner" + }, React.createElement("div", { + className: "sendbird-reaction-badge__inner__icon" + }, children), React.createElement(Label, { + className: children && count ? 'sendbird-reaction-badge__inner__count' : '', + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_1 + }, count))); +}); +ReactionBadge.propTypes = { + children: PropTypes.element.isRequired, + count: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + selected: PropTypes.bool, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + isAdd: PropTypes.bool, + onClick: PropTypes.func +}; +ReactionBadge.defaultProps = { + className: '', + count: '', + selected: false, + isAdd: false, + onClick: function onClick() {} +}; + +var CLASS_NAME = 'sendbird-tooltip'; +function Tooltip(_ref) { + var className = _ref.className, + children = _ref.children; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift(CLASS_NAME); + return React.createElement("div", { + className: injectingClassName.join(' ') + }, React.createElement(Label, { + className: "".concat(CLASS_NAME, "__text") + }, children)); +} +Tooltip.propTypes = { + className: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.string), PropTypes.string]) +}; +Tooltip.defaultProps = { + className: '', + children: '' +}; + +var CLASS_NAME$1 = 'sendbird-tooltip-wrapper'; +var SPACE_FROM_TRIGGER = 8; +function TooltipWrapper(_ref) { + var className = _ref.className, + children = _ref.children, + hoverTooltip = _ref.hoverTooltip; + var injectingClassName = Array.isArray(className) ? [CLASS_NAME$1].concat(_toConsumableArray(className)) : [CLASS_NAME$1, className]; + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + showHoverTooltip = _useState2[0], + setShowHoverTooltip = _useState2[1]; + + var childrenRef = useRef(null); + return React.createElement("div", { + className: injectingClassName.join(' '), + onMouseOver: function onMouseOver() { + setShowHoverTooltip(true); + }, + onFocus: function onFocus() { + setShowHoverTooltip(true); + }, + onMouseOut: function onMouseOut() { + setShowHoverTooltip(false); + }, + onBlur: function onBlur() { + setShowHoverTooltip(false); + } + }, React.createElement("div", { + className: "".concat(CLASS_NAME$1, "__children"), + ref: childrenRef + }, children), showHoverTooltip && React.createElement("div", { + className: "".concat(CLASS_NAME$1, "__hover-tooltip"), + style: { + bottom: "calc(100% + ".concat(SPACE_FROM_TRIGGER, "px)") + } + }, React.createElement("div", { + className: "".concat(CLASS_NAME$1, "__hover-tooltip__inner") + }, React.createElement("div", { + className: "".concat(CLASS_NAME$1, "__hover-tooltip__inner__tooltip-container"), + style: { + left: childrenRef.current && "calc(".concat(childrenRef.current.offsetWidth / 2, "px - 50%)") + } + }, hoverTooltip)))); +} +TooltipWrapper.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.element.isRequired, + hoverTooltip: PropTypes.oneOfType([PropTypes.element, PropTypes.func]).isRequired +}; +TooltipWrapper.defaultProps = { + className: '' +}; + +function EmojiReactions(_ref) { + var className = _ref.className, + userId = _ref.userId, + message = _ref.message, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift('sendbird-emoji-reactions'); + var MemoizedEmojiListItems = memoizedEmojiListItems; + var imageWidth = '20px'; + var imageHeight = '20px'; + var emojiReactionAddRef = useRef(null); + var _message$reactions = message.reactions, + reactions = _message$reactions === void 0 ? [] : _message$reactions; + var messageReactions = reactions; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return React.createElement("div", { + className: injectingClassName.join(' ') + }, React.createElement("div", { + className: "sendbird-emoji-reactions--inner" + }, messageReactions && messageReactions.map(function (reaction) { + var _reaction$userIds = reaction.userIds, + userIds = _reaction$userIds === void 0 ? [] : _reaction$userIds; + var emojiUrl = emojiAllMap.get(reaction.key) || ''; + var reactedUserCount = userIds.length; + var reactedByMe = !(userIds.indexOf(userId) < 0); + var nicknames = userIds.filter(function (currentUserId) { + return currentUserId !== userId; + }).map(function (currentUserId) { + return membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER; + }); + var stringSetForMe = nicknames.length > 0 ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU; + return React.createElement(TooltipWrapper, { + className: "sendbird-emoji-reactions__emoji-reaction", + key: reaction.key, + hoverTooltip: userIds.length > 0 && React.createElement(Tooltip, null, React.createElement(React.Fragment, null, "".concat(nicknames.join(', ')).concat(reactedByMe ? stringSetForMe : ''))) + }, React.createElement(ReactionBadge, { + count: reactedUserCount, + selected: reactedByMe, + onClick: function onClick() { + return toggleReaction(message, reaction.key, reactedByMe); + } + }, React.createElement(ImageRenderer, { + circle: true, + url: emojiUrl, + width: imageWidth, + height: imageHeight, + defaultComponent: React.createElement(Icon, { + width: imageWidth, + height: imageHeight, + type: IconTypes.EMOJI_FAILED + }) + }))); + }), messageReactions.length < emojiAllMap.size && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(ReactionBadge, { + isAdd: true, + onClick: toggleDropdown, + className: "sendbird-emoji-reactions__emoji-reaction-add", + ref: emojiReactionAddRef + }, React.createElement(Icon, { + width: imageWidth, + height: imageHeight, + fillColor: IconColors.ON_BACKGROUND_3, + type: IconTypes.EMOJI_REACTIONS_ADD + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: emojiReactionAddRef, + parentContainRef: emojiReactionAddRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 4 + } + }); + } + }))); +} +EmojiReactions.propTypes = { + userId: PropTypes.string, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + message: PropTypes.shape({ + reactions: PropTypes.arrayOf(PropTypes.shape({})) + }).isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func +}; +EmojiReactions.defaultProps = { + className: '', + membersMap: new Map(), + userId: '', + toggleReaction: function toggleReaction() {}, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +var WORD_TYPOGRAPHY = LabelTypography.BODY_1; +var EDITED_COLOR = LabelColors.ONBACKGROUND_2; +function useMemoizedMessageText(_ref) { + var message = _ref.message, + updatedAt = _ref.updatedAt, + className = _ref.className; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return useMemo(function () { + return function () { + var splitMessage = message.split(/\r/); + var matchedMessage = splitMessage.map(function (word) { + return word !== '' ? word : React.createElement("br", null); + }); + + if (updatedAt > 0) { + matchedMessage.push(React.createElement(Label, { + key: uuidv4$1(), + className: className, + type: WORD_TYPOGRAPHY, + color: EDITED_COLOR + }, " ".concat(stringSet.MESSAGE_EDITED, " "))); + } + + return matchedMessage; + }; + }, [message, updatedAt, className]); +} + +var MOUSE_ENTER = 'mouseenter'; +var MOUSE_LEAVE = 'mouseleave'; + +var useMouseHover = function useMouseHover(_ref) { + var ref = _ref.ref, + setHover = _ref.setHover; + + var handleMouseOver = function handleMouseOver() { + if (ref.current) { + setHover(true); + } + }; + + var handleMouseOut = function handleMouseOut() { + if (ref.current) { + setHover(false); + } + }; + + useEffect(function () { + var current = ref.current; + current.addEventListener(MOUSE_ENTER, handleMouseOver); + current.addEventListener(MOUSE_LEAVE, handleMouseOut); + return function () { + current.removeEventListener(MOUSE_ENTER, handleMouseOver); + current.removeEventListener(MOUSE_LEAVE, handleMouseOut); + }; + }); +}; + +var noop = function noop() {}; + +var GROUPING_PADDING = '1px'; +var NORMAL_PADDING = '8px'; +function Message(props) { + var isByMe = props.isByMe, + userId = props.userId, + message = props.message, + className = props.className, + resendMessage = props.resendMessage, + disabled = props.disabled, + showEdit = props.showEdit, + showRemove = props.showRemove, + status = props.status, + useReaction = props.useReaction, + emojiAllMap = props.emojiAllMap, + membersMap = props.membersMap, + toggleReaction = props.toggleReaction, + memoizedEmojiListItems = props.memoizedEmojiListItems, + chainTop = props.chainTop, + chainBottom = props.chainBottom; + if (!message) return null; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push("sendbird-message".concat(isByMe ? '--outgoing' : '--incoming')); + var memoizedMessageText = useMemoizedMessageText({ + message: message.message, + updatedAt: message.updatedAt, + className: 'sendbird-user-message-word' + }); + return React.createElement("div", { + className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-message']).join(' ') + }, isByMe ? React.createElement(OutgoingUserMessage, { + userId: userId, + message: message, + resendMessage: resendMessage, + disabled: disabled, + showEdit: showEdit, + showRemove: showRemove, + status: status, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedMessageText: memoizedMessageText, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + }) : React.createElement(IncomingUserMessage, { + userId: userId, + message: message, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedMessageText: memoizedMessageText, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })); +} +Message.propTypes = { + isByMe: PropTypes.bool, + disabled: PropTypes.bool, + userId: PropTypes.string, + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])).isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + showEdit: PropTypes.func, + status: PropTypes.string, + showRemove: PropTypes.func, + resendMessage: PropTypes.func, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +Message.defaultProps = { + isByMe: false, + disabled: false, + userId: '', + resendMessage: noop, + className: '', + showEdit: noop, + showRemove: noop, + status: '', + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + }, + chainTop: false, + chainBottom: false +}; + +function OutgoingUserMessage(_ref) { + var userId = _ref.userId, + message = _ref.message, + showEdit = _ref.showEdit, + disabled = _ref.disabled, + showRemove = _ref.showRemove, + status = _ref.status, + resendMessage = _ref.resendMessage, + useReaction = _ref.useReaction, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedMessageText = _ref.memoizedMessageText, + memoizedEmojiListItems = _ref.memoizedEmojiListItems, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom; + var MemoizedMessageText = memoizedMessageText; + var MemoizedEmojiListItems = memoizedEmojiListItems; // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED + + var messageRef = useRef(null); + var parentRefReactions = useRef(null); + var parentRefMenus = useRef(null); + var parentContainRef = useRef(null); + var isMessageSent = getIsSentFromStatus$2(status); + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = useState(false), + _useState4 = _slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React.createElement("div", { + className: "sendbird-user-message--outgoing", + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING, + paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING + } + }, React.createElement("div", { + className: "sendbird-user-message--inner" + }, React.createElement("div", { + className: "sendbird-user-message__left-padding" + }, React.createElement("div", { + className: "sendbird-user-message__more", + ref: parentContainRef + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__menu", + ref: parentRefMenus, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: parentRefMenus // for catching location(x, y) of MenuItems + , + parentContainRef: parentContainRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + openLeft: true + }, isMessageSent && React.createElement(MenuItem, { + className: "sendbird-user-message--copy", + onClick: function onClick() { + copyToClipboard$1(message.message); + closeDropdown(); + } + }, "Copy"), isMessageSent && React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showEdit(true); + closeDropdown(); + } + }, "Edit"), message && message.isResendable && message.isResendable() && React.createElement(MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, "Resend"), React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, "Delete")); + } + }), isMessageSent && useReaction && emojiAllMap.size > 0 && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__add-reaction", + ref: parentRefReactions, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.EMOJI_REACTIONS_ADD, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: parentRefReactions, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React.createElement("div", { + className: "sendbird-user-message__status" + }, React.createElement(MessageStatus, { + message: message, + status: status // onDelete={() => { showRemove(true); }} + // onResend={() => resendMessage(message)} + // duplicated and should replace to more + + }))), React.createElement("div", { + className: "sendbird-user-message__text-balloon" + }, React.createElement("div", { + className: "sendbird-user-message__text-balloon__inner" + }, React.createElement("div", { + className: "sendbird-user-message__text-balloon__inner__text-place" + }, React.createElement(Label, { + className: "sendbird-user-message__text-balloon__inner__text-place__text", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, React.createElement(MemoizedMessageText, null))), useReaction && message.reactions && message.reactions.length > 0 && React.createElement(EmojiReactions, { + className: "sendbird-user-message__text-balloon__inner__emoji-reactions", + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }))))); +} + +function IncomingUserMessage(_ref2) { + var userId = _ref2.userId, + message = _ref2.message, + useReaction = _ref2.useReaction, + emojiAllMap = _ref2.emojiAllMap, + membersMap = _ref2.membersMap, + toggleReaction = _ref2.toggleReaction, + memoizedMessageText = _ref2.memoizedMessageText, + memoizedEmojiListItems = _ref2.memoizedEmojiListItems, + chainTop = _ref2.chainTop, + chainBottom = _ref2.chainBottom; + var MemoizedMessageText = memoizedMessageText; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var messageRef = useRef(null); + var parentRefReactions = useRef(null); + var parentRefMenus = useRef(null); + var parentContainRef = useRef(null); + var avatarRef = useRef(null); + + var _React$useContext = React.useContext(UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + var _useState5 = useState(false), + _useState6 = _slicedToArray(_useState5, 2), + mousehover = _useState6[0], + setMousehover = _useState6[1]; + + var _useState7 = useState(false), + _useState8 = _slicedToArray(_useState7, 2), + moreActive = _useState8[0], + setMoreActive = _useState8[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React.createElement("div", { + ref: messageRef, + className: "sendbird-user-message--incoming", + style: { + paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING, + paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING + } + }, React.createElement("div", { + className: "sendbird-user-message--inner" + }, React.createElement("div", { + className: "sendbird-user-message--body" + }, !chainBottom && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + ref: avatarRef, + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "sendbird-user-message__avatar", + src: getSenderProfileUrl$1(message), + width: "28px", + height: "28px" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + }), !chainTop && React.createElement(Label, { + className: "sendbird-user-message__sender-name", + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, getSenderName$1(message)), React.createElement("div", { + className: "sendbird-user-message__text-balloon" + }, React.createElement("div", { + className: "sendbird-user-message__text-balloon__inner" + }, React.createElement("div", { + className: "sendbird-user-message__text-balloon__inner__text-place" + }, React.createElement(Label, { + className: "sendbird-user-message__text-balloon__inner__text-place__text", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, React.createElement(MemoizedMessageText, null))), showEmojiReactions && React.createElement(EmojiReactions, { + className: "sendbird-user-message__text-balloon__inner__emoji-reactions", + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + })))), React.createElement("div", { + className: "sendbird-user-message__right-padding" + }, React.createElement("div", { + className: "sendbird-user-message__more", + ref: parentContainRef + }, showReactionAddButton && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: parentRefReactions, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.EMOJI_REACTIONS_ADD, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MemoizedEmojiListItems, { + parentRef: parentRefReactions, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + message: message, + spaceFromTrigger: { + y: 2 + } + }); + } + }), React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: parentRefMenus, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: parentRefMenus, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown + }, React.createElement(MenuItem, { + className: "sendbird-user-message--copy", + onClick: function onClick() { + copyToClipboard$1(message.message); + closeDropdown(); + } + }, "Copy")); + } + })), !chainBottom && !(mousehover || moreActive) && React.createElement(Label, { + className: "sendbird-user-message__sent-at", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, getMessageCreatedAt$5(message))))); +} + +IncomingUserMessage.propTypes = { + userId: PropTypes.string.isRequired, + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedMessageText: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +IncomingUserMessage.defaultProps = { + message: {}, + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; +OutgoingUserMessage.propTypes = { + userId: PropTypes.string.isRequired, + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + showEdit: PropTypes.func, + showRemove: PropTypes.func, + disabled: PropTypes.bool, + resendMessage: PropTypes.func, + status: PropTypes.string.isRequired, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedMessageText: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingUserMessage.defaultProps = { + message: {}, + resendMessage: noop, + showEdit: noop, + showRemove: noop, + disabled: false, + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +function AdminMessage(_ref) { + var className = _ref.className, + message = _ref.message; + + if (!message.messageType || message.messageType !== 'admin') { + // change to use message.isAdminMessage() + return null; + } + + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-admin-message']).join(' ') + }, React.createElement(Label, { + className: "sendbird-admin-message__text", + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, message.message)); +} +AdminMessage.propTypes = { + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +AdminMessage.defaultProps = { + message: {}, + className: '' +}; + +var getMessageCreatedAt$1 = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var getIsSentFromStatus = function getIsSentFromStatus(status) { + return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; +}; + +var noop$1 = function noop() {}; + +var OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message'; +var INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message'; +var GROUPING_PADDING$1 = '1px'; +var NORMAL_PADDING$1 = '8px'; +function ThumbnailMessage(_ref) { + var _ref$message = _ref.message, + message = _ref$message === void 0 ? {} : _ref$message, + userId = _ref.userId, + disabled = _ref.disabled, + isByMe = _ref.isByMe, + onClick = _ref.onClick, + showRemove = _ref.showRemove, + status = _ref.status, + resendMessage = _ref.resendMessage, + useReaction = _ref.useReaction, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom; + return isByMe ? React.createElement(OutgoingThumbnailMessage, { + userId: userId, + status: status, + message: message, + onClick: onClick, + disabled: disabled, + chainTop: chainTop, + showRemove: showRemove, + membersMap: membersMap, + chainBottom: chainBottom, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + resendMessage: resendMessage, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }) : React.createElement(IncomingThumbnailMessage, { + userId: userId, + status: status, + message: message, + onClick: onClick, + chainTop: chainTop, + membersMap: membersMap, + chainBottom: chainBottom, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }); +} +function OutgoingThumbnailMessage(_ref2) { + var _ref2$message = _ref2.message, + message = _ref2$message === void 0 ? {} : _ref2$message, + userId = _ref2.userId, + disabled = _ref2.disabled, + onClick = _ref2.onClick, + showRemove = _ref2.showRemove, + status = _ref2.status, + resendMessage = _ref2.resendMessage, + useReaction = _ref2.useReaction, + emojiAllMap = _ref2.emojiAllMap, + membersMap = _ref2.membersMap, + toggleReaction = _ref2.toggleReaction, + memoizedEmojiListItems = _ref2.memoizedEmojiListItems, + chainTop = _ref2.chainTop, + chainBottom = _ref2.chainBottom; + var type = message.type, + url = message.url, + localUrl = message.localUrl; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var messageRef = useRef(null); + var parentContainRef = useRef(null); + var menuRef = useRef(null); + var reactionAddRef = useRef(null); + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = useState(false), + _useState4 = _slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var isMessageSent = getIsSentFromStatus(status); + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React.createElement("div", { + className: OUTGOING_THUMBNAIL_MESSAGE, + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPING_PADDING$1 : NORMAL_PADDING$1, + paddingBottom: chainBottom ? GROUPING_PADDING$1 : NORMAL_PADDING$1 + } + }, React.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "--inner") + }, React.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "__left-padding") + }, React.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-left-padding__more"), + ref: parentContainRef + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: menuRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + color: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: menuRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + openLeft: true + }, message && message.isResendable && message.isResendable() && React.createElement(MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }), isMessageSent && showReactionAddButton && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: reactionAddRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.EMOJI_REACTIONS_ADD, + color: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: reactionAddRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React.createElement(MessageStatus, { + message: message, + status: status, + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-left-padding__status") + })), React.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "__body") + }, React.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap") + }, React.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap--inner"), + onClick: isMessageSent ? function () { + return onClick(true); + } : function () {}, + onKeyDown: isMessageSent ? function () { + return onClick(true); + } : function () {}, + tabIndex: 0, + role: "button" + }, isVideo(type) && React.createElement(React.Fragment, null, React.createElement("video", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__video") + }, React.createElement("source", { + src: url || localUrl, + type: type + })), React.createElement(Icon, { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__video-icon"), + width: "56px", + height: "56px", + type: IconTypes.PLAY + })), isImage(type) && React.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__img"), + style: { + backgroundImage: "url(".concat(url || localUrl, ")"), + height: '280px', + width: '404px', + backgroundSize: 'cover', + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center' + } + }), unSupported(type) && React.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__other") + }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React.createElement("div", { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap__overlay") + })), useReaction && message.reactions && message.reactions.length > 0 && React.createElement(EmojiReactions, { + className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap__emoji-reactions"), + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }))))); +} +function IncomingThumbnailMessage(_ref3) { + var _ref3$message = _ref3.message, + message = _ref3$message === void 0 ? {} : _ref3$message, + userId = _ref3.userId, + onClick = _ref3.onClick, + status = _ref3.status, + useReaction = _ref3.useReaction, + emojiAllMap = _ref3.emojiAllMap, + membersMap = _ref3.membersMap, + toggleReaction = _ref3.toggleReaction, + memoizedEmojiListItems = _ref3.memoizedEmojiListItems, + chainTop = _ref3.chainTop, + chainBottom = _ref3.chainBottom; + var type = message.type, + url = message.url, + localUrl = message.localUrl; + + var _React$useContext = React.useContext(UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + var _useContext2 = useContext(LocalizationContext), + stringSet = _useContext2.stringSet; + + var messageRef = useRef(null); + var parentContainRef = useRef(null); + var reactionAddRef = useRef(null); + var avatarRef = useRef(null); + + var _useState5 = useState(false), + _useState6 = _slicedToArray(_useState5, 2), + mousehover = _useState6[0], + setMousehover = _useState6[1]; + + var _useState7 = useState(false), + _useState8 = _slicedToArray(_useState7, 2), + moreActive = _useState8[0], + setMoreActive = _useState8[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var isMessageSent = getIsSentFromStatus(status); + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React.createElement("div", { + className: INCOMING_THUMBNAIL_MESSAGE, + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPING_PADDING$1 : NORMAL_PADDING$1, + paddingBottom: chainBottom ? GROUPING_PADDING$1 : NORMAL_PADDING$1 + } + }, !chainTop && React.createElement(Label, { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__sender-name"), + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, getSenderName$2(message) || ''), React.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "--inner") + }, React.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__body") + }, React.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap") + }, !chainBottom && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__avatar"), + src: getSenderProfileUrl$2(message), + width: "28px", + height: "28px" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + }), React.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap--inner"), + role: "button", + tabIndex: 0, + onClick: isMessageSent ? function () { + return onClick(true); + } : function () {}, + onKeyDown: isMessageSent ? function () { + return onClick(true); + } : function () {} + }, isVideo(type) && React.createElement(React.Fragment, null, React.createElement("video", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__video") + }, React.createElement("source", { + src: url || localUrl, + type: type + })), React.createElement(Icon, { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__video-icon"), + width: "56px", + height: "56px", + type: IconTypes.PLAY + })), isImage(type) && React.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__img"), + style: { + backgroundImage: "url(".concat(url || localUrl, ")"), + height: '280px', + width: '404px', + backgroundSize: 'cover', + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center' + } + }), unSupported(type) && React.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__other") + }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap-overlay") + })), useReaction && message.reactions && message.reactions.length > 0 && React.createElement(EmojiReactions, { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__wrap__emoji-reactions"), + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }))), React.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__right-padding") + }, !chainBottom && !(mousehover || moreActive) && React.createElement(Label, { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__sent-at"), + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, getMessageCreatedAt$1(message)), React.createElement("div", { + className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__more"), + ref: parentContainRef + }, showReactionAddButton && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: reactionAddRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.EMOJI_REACTIONS_ADD, + color: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: reactionAddRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + }))))); +} +ThumbnailMessage.propTypes = { + message: PropTypes.shape({ + type: PropTypes.string, + url: PropTypes.string, + localUrl: PropTypes.string + }).isRequired, + userId: PropTypes.string, + resendMessage: PropTypes.func, + status: PropTypes.string, + isByMe: PropTypes.bool, + disabled: PropTypes.bool, + onClick: PropTypes.func, + showRemove: PropTypes.func, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +ThumbnailMessage.defaultProps = { + isByMe: false, + disabled: false, + resendMessage: noop$1, + onClick: noop$1, + showRemove: noop$1, + status: '', + userId: '', + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop$1, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + }, + chainTop: false, + chainBottom: false +}; +OutgoingThumbnailMessage.propTypes = { + message: PropTypes.shape({ + type: PropTypes.string, + url: PropTypes.string, + localUrl: PropTypes.string + }).isRequired, + userId: PropTypes.string.isRequired, + disabled: PropTypes.bool.isRequired, + resendMessage: PropTypes.func.isRequired, + status: PropTypes.string, + onClick: PropTypes.func.isRequired, + showRemove: PropTypes.func.isRequired, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + toggleReaction: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingThumbnailMessage.defaultProps = { + status: '' +}; +IncomingThumbnailMessage.propTypes = { + message: PropTypes.shape({ + type: PropTypes.string, + url: PropTypes.string, + localUrl: PropTypes.string + }).isRequired, + userId: PropTypes.string.isRequired, + onClick: PropTypes.func.isRequired, + status: PropTypes.string, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + toggleReaction: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +IncomingThumbnailMessage.defaultProps = { + status: '' +}; + +var MAX_TRUNCATE_LENGTH = 40; +var GROUPAING_PADDING = '1px'; +var NORMAL_PADDING$2 = '8px'; + +var noop$2 = function noop() {}; + +function checkFileType(fileUrl) { + var result = null; + var imageFile = /(\.gif|\.jpg|\.jpeg|\.txt|\.pdf)$/i; + var audioFile = /(\.mp3)$/i; + + if (imageFile.test(fileUrl)) { + result = IconTypes.FILE_DOCUMENT; + } else if (audioFile.test(fileUrl)) { + result = IconTypes.FILE_AUDIO; + } + + return result; +} + +function OutgoingFileMessage(_ref) { + var message = _ref.message, + userId = _ref.userId, + status = _ref.status, + showRemove = _ref.showRemove, + disabled = _ref.disabled, + resendMessage = _ref.resendMessage, + useReaction = _ref.useReaction, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom; + var url = message.url; + + var openFileUrl = function openFileUrl() { + window.open(url); + }; + + var messageRef = useRef(null); + var parentContainRef = useRef(null); + var menuRef = useRef(null); + var reactionAddButtonRef = useRef(null); + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = useState(false), + _useState4 = _slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var isMessageSent = getIsSentFromStatus$3(status); + var showEmojiReactions = isMessageSent && useReaction && message.reactions && message.reactions.length > 0; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React.createElement("div", { + className: "sendbird-file-message__outgoing", + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING$2, + paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING$2 + } + }, React.createElement("div", { + className: "sendbird-file-message--inner" + }, React.createElement("div", { + className: "sendbird-file-message__left-padding" + }, React.createElement("div", { + className: "sendbird-file-message__more", + ref: parentContainRef + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: menuRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: menuRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + openLeft: true + }, message && message.isResendable && message.isResendable() && React.createElement(MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, "Resend"), React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, "Delete")); + } + }), showReactionAddButton && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: reactionAddButtonRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.EMOJI_REACTIONS_ADD, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: reactionAddButtonRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React.createElement("div", { + className: "sendbird-file-message__status" + }, React.createElement(MessageStatus, { + message: message, + status: status + }))), React.createElement("div", { + className: "sendbird-file-message__tooltip" + }, React.createElement("div", { + className: "sendbird-file-message__tooltip__inner" + }, checkFileType(url) ? React.createElement(Icon, { + className: "sendbird-file-message__tooltip__icon", + width: "28px", + height: "28px", + type: checkFileType(url) + }) : null, React.createElement(TextButton, { + className: "sendbird-file-message__tooltip__text", + onClick: openFileUrl + }, React.createElement(Label, { + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, truncate(message.url, MAX_TRUNCATE_LENGTH)))), showEmojiReactions && React.createElement(EmojiReactions, { + className: "sendbird-file-message__tooltip__emoji-reactions", + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + })))); +} +function IncomingFileMessage(_ref2) { + var message = _ref2.message, + userId = _ref2.userId, + useReaction = _ref2.useReaction, + emojiAllMap = _ref2.emojiAllMap, + membersMap = _ref2.membersMap, + toggleReaction = _ref2.toggleReaction, + memoizedEmojiListItems = _ref2.memoizedEmojiListItems, + chainTop = _ref2.chainTop, + chainBottom = _ref2.chainBottom; + + var openFileUrl = function openFileUrl() { + window.open(message.url); + }; + + var messageRef = useRef(null); + + var _React$useContext = React.useContext(UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + var parentContainRef = useRef(null); + var avatarRef = useRef(null); + var reactionAddButtonRef = useRef(null); + + var _useState5 = useState(false), + _useState6 = _slicedToArray(_useState5, 2), + mousehover = _useState6[0], + setMousehover = _useState6[1]; + + var _useState7 = useState(false), + _useState8 = _slicedToArray(_useState7, 2), + moreActive = _useState8[0], + setMoreActive = _useState8[1]; + + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + var MemoizedEmojiListItems = memoizedEmojiListItems; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React.createElement("div", { + className: "sendbird-file-message__incoming", + ref: messageRef, + style: { + paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING$2, + paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING$2 + } + }, React.createElement("div", { + className: "sendbird-file-message--inner" + }, React.createElement("div", { + className: "sendbird-file-message__body" + }, !chainBottom && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + ref: avatarRef, + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "sendbird-file-message__avatar", + src: getSenderProfileUrl$2(message), + width: "28px", + height: "28px" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + }), !chainTop && React.createElement(Label, { + className: "sendbird-file-message__sender-name", + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, getSenderName$2(message)), React.createElement("div", { + className: "sendbird-file-message__tooltip" + }, React.createElement("div", { + className: "sendbird-file-message__tooltip__inner" + }, checkFileType(message.url) ? React.createElement(Icon, { + className: "sendbird-file-message__tooltip__icon", + width: "28px", + height: "28px", + type: checkFileType(message.url) + }) : null, React.createElement(TextButton, { + className: "sendbird-file-message__tooltip__text", + onClick: openFileUrl + }, React.createElement(Label, { + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, truncate(message.url, MAX_TRUNCATE_LENGTH)))), useReaction && message.reactions && message.reactions.length > 0 && React.createElement(EmojiReactions, { + className: "sendbird-file-message__tooltip__emoji-reactions", + userId: userId, + message: message, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }))), React.createElement("div", { + className: "sendbird-file-message__right-padding" + }, React.createElement("div", { + className: "sendbird-file-message__more", + ref: parentContainRef + }, showReactionAddButton && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: reactionAddButtonRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.EMOJI_REACTIONS_ADD, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: reactionAddButtonRef, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React.createElement(Label, { + className: "sendbird-file-message__sent-at", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, getMessageCreatedAt$4(message))))); +} +OutgoingFileMessage.propTypes = { + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + userId: PropTypes.string, + status: PropTypes.string, + showRemove: PropTypes.func, + resendMessage: PropTypes.func, + useReaction: PropTypes.bool.isRequired, + disabled: PropTypes.bool, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingFileMessage.defaultProps = { + status: '', + showRemove: noop$2, + resendMessage: noop$2, + message: {}, + userId: '', + disabled: false, + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop$2, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; +IncomingFileMessage.propTypes = { + message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), + userId: PropTypes.string, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +IncomingFileMessage.defaultProps = { + message: {}, + userId: '', + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop$2, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +var MessageSwitch = function MessageSwitch(_ref3) { + var message = _ref3.message, + userId = _ref3.userId, + disabled = _ref3.disabled, + isByMe = _ref3.isByMe, + showRemove = _ref3.showRemove, + status = _ref3.status, + resendMessage = _ref3.resendMessage, + useReaction = _ref3.useReaction, + emojiAllMap = _ref3.emojiAllMap, + membersMap = _ref3.membersMap, + toggleReaction = _ref3.toggleReaction, + memoizedEmojiListItems = _ref3.memoizedEmojiListItems, + chainTop = _ref3.chainTop, + chainBottom = _ref3.chainBottom; + return React.createElement("div", { + className: "sendbird-file-message".concat(isByMe ? '--outgoing' : '--incoming') + }, isByMe ? React.createElement(OutgoingFileMessage, { + message: message, + userId: userId, + disabled: disabled, + showRemove: showRemove, + status: status, + resendMessage: resendMessage, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + }) : React.createElement(IncomingFileMessage, { + userId: userId, + message: message, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })); +}; + +MessageSwitch.propTypes = { + message: PropTypes.shape({}), + userId: PropTypes.string, + isByMe: PropTypes.bool, + disabled: PropTypes.bool, + showRemove: PropTypes.func, + resendMessage: PropTypes.func, + status: PropTypes.string.isRequired, + useReaction: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +MessageSwitch.defaultProps = { + message: {}, + isByMe: false, + disabled: false, + showRemove: noop$2, + resendMessage: noop$2, + userId: '', + emojiAllMap: new Map(), + membersMap: new Map(), + toggleReaction: noop$2, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + }, + chainTop: false, + chainBottom: false +}; + +var RemoveMessage = function RemoveMessage(props) { + var onCloseModal = props.onCloseModal, + onDeleteMessage = props.onDeleteMessage; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return React.createElement(Modal, { + onCancel: onCloseModal, + onSubmit: onDeleteMessage, + submitText: "Delete", + titleText: stringSet.MODAL__DELETE_MESSAGE__TITLE + }); +}; + +RemoveMessage.propTypes = { + onCloseModal: PropTypes.func.isRequired, + onDeleteMessage: PropTypes.func.isRequired +}; + +var getMessageCreatedAt$2 = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; + +var CLASS_NAME$2 = 'sendbird-unknown-message'; +var GROUPING_PADDING$2 = '1px'; +var NORMAL_PADDING$3 = '8px'; +function UnknownMessage(_ref) { + var message = _ref.message, + isByMe = _ref.isByMe, + status = _ref.status, + className = _ref.className, + showRemove = _ref.showRemove, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift(CLASS_NAME$2); + injectingClassName.push("".concat(CLASS_NAME$2).concat(isByMe ? '--outgoing' : '--incoming')); + return React.createElement("div", { + className: injectingClassName.join(' ') + }, isByMe ? React.createElement(OutgoingUnknownMessage, { + status: status, + message: message, + chainTop: chainTop, + showRemove: showRemove, + chainBottom: chainBottom + }) : React.createElement(IncomingUnknownMessage, { + message: message, + chainTop: chainTop, + chainBottom: chainBottom + })); +} +UnknownMessage.propTypes = { + message: PropTypes.shape({}).isRequired, + isByMe: PropTypes.bool, + status: PropTypes.string, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + showRemove: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +UnknownMessage.defaultProps = { + isByMe: false, + status: '', + className: '', + showRemove: function showRemove() {}, + chainTop: false, + chainBottom: false +}; + +function OutgoingUnknownMessage(_ref2) { + var message = _ref2.message, + status = _ref2.status, + showRemove = _ref2.showRemove, + chainTop = _ref2.chainTop, + chainBottom = _ref2.chainBottom; + var className = 'sendbird-outgoing-unknown-message'; + var messageRef = useRef(null); + var parentContainRef = useRef(null); + var menuRef = useRef(null); + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = useState(false), + _useState4 = _slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React.createElement("div", { + ref: messageRef, + className: className, + style: { + paddingTop: chainTop ? GROUPING_PADDING$2 : NORMAL_PADDING$3, + paddingBottom: chainBottom ? GROUPING_PADDING$2 : NORMAL_PADDING$3 + } + }, React.createElement("div", { + className: "".concat(className, "--inner") + }, React.createElement("div", { + className: "".concat(className, "--left-padding") + }, React.createElement("div", { + className: "".concat(className, "__more"), + ref: parentContainRef + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "".concat(className, "__more__menu"), + ref: menuRef, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: menuRef // for catching location(x, y) of MenuItems + , + parentContainRef: parentContainRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + openLeft: true + }, React.createElement(MenuItem, { + onClick: function onClick() { + showRemove(true); + closeDropdown(); + } + }, "Delete")); + } + })), !chainBottom && !(mousehover || moreActive) && React.createElement("div", { + className: "".concat(className, "__message-status") + }, React.createElement(MessageStatus, { + message: message, + status: status + }))), React.createElement("div", { + className: "".concat(className, "__body") + }, React.createElement("div", { + className: "".concat(className, "__body__text-balloon") + }, React.createElement(Label, { + className: "".concat(className, "__body__text-balloon__header"), + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React.createElement(Label, { + className: "".concat(className, "__body__text-balloon__description"), + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_2 + }, stringSet.UNKNOWN__CANNOT_READ_MESSAGE))))); +} + +function IncomingUnknownMessage(_ref3) { + var message = _ref3.message, + chainTop = _ref3.chainTop, + chainBottom = _ref3.chainBottom; + var className = 'sendbird-incoming-unknown-message'; + var sender = message.sender; + var avatarRef = useRef(null); + + var _useContext2 = useContext(LocalizationContext), + stringSet = _useContext2.stringSet; + + var _React$useContext = React.useContext(UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + return React.createElement("div", { + className: className, + style: { + paddingTop: chainTop ? GROUPING_PADDING$2 : NORMAL_PADDING$3, + paddingBottom: chainBottom ? GROUPING_PADDING$2 : NORMAL_PADDING$3 + } + }, React.createElement("div", { + className: "".concat(className, "--inner") + }, React.createElement("div", { + className: "".concat(className, "__left") + }, !chainBottom && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + ref: avatarRef, + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "".concat(className, "__left__sender-profile-image"), + src: sender.profileUrl, + width: "28px", + height: "28px", + alt: "sender-profile-image" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + })), React.createElement("div", { + className: "".concat(className, "__body") + }, !chainTop && React.createElement(Label, { + className: "".concat(className, "__body__sender-name"), + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, sender.nickname || stringSet.NO_NAME), React.createElement("div", { + className: "".concat(className, "__body__text-balloon") + }, React.createElement(Label, { + className: "".concat(className, "__body__text-balloon__header"), + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React.createElement(Label, { + className: "".concat(className, "__body__text-balloon__description"), + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_2 + }, stringSet.UNKNOWN__CANNOT_READ_MESSAGE))), React.createElement("div", { + className: "".concat(className, "--right-padding") + }, !chainBottom && React.createElement(Label, { + className: "".concat(className, "__sent-at"), + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, getMessageCreatedAt$2(message))))); +} + +OutgoingUnknownMessage.propTypes = { + message: PropTypes.shape({}).isRequired, + status: PropTypes.string.isRequired, + showRemove: PropTypes.func, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingUnknownMessage.defaultProps = { + showRemove: function showRemove() {} +}; +IncomingUnknownMessage.propTypes = { + message: PropTypes.shape({ + sender: PropTypes.shape({ + nickname: PropTypes.string, + profileUrl: PropTypes.string + }) + }).isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; + +var URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; +var OG_MESSAGE = 'sendbird-og-message'; +var OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message'; +var INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message'; + +var createUrlTester = function createUrlTester(regexp) { + return function (text) { + return regexp.test(text); + }; +}; +var getIsSentFromStatus$1 = function getIsSentFromStatus(status) { + return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; +}; +var copyToClipboard = function copyToClipboard(text) { + try { + if (window.clipboardData && window.clipboardData.setData) { + // Internet Explorer-specific code path + // to prevent textarea being shown while dialog is visible. + return window.clipboardData.setData('Text', text); + } + + if (document.queryCommandSupported && document.queryCommandSupported('copy')) { + var textarea = document.createElement('textarea'); + textarea.textContent = text; + textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. + + document.body.appendChild(textarea); + textarea.select(); + + try { + return document.execCommand('copy'); // Security exception may be thrown by some browsers. + } catch (ex) { + return false; + } finally { + document.body.removeChild(textarea); + } + } + + return false; + } catch (err) { + return err; + } +}; +var getSenderProfileUrl = function getSenderProfileUrl(message) { + return message.sender && message.sender.profileUrl; +}; +var getSenderName = function getSenderName(message) { + return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); +}; +var getMessageCreatedAt$3 = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var checkOGIsEnalbed = function checkOGIsEnalbed(message) { + var ogMetaData = message.ogMetaData; + + if (!ogMetaData) { + return false; + } + + var url = ogMetaData.url; + + if (!url) { + return false; + } + + return true; +}; + +var WORD_TYPOGRAPHY$1 = LabelTypography.BODY_1; +var WORD_COLOR = LabelColors.ONBACKGROUND_1; +var EDITED_COLOR$1 = LabelColors.ONBACKGROUND_2; +var isUrl = createUrlTester(URL_REG); +function useMemoizedMessageText$1(_ref) { + var message = _ref.message, + updatedAt = _ref.updatedAt, + className = _ref.className; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return useMemo(function () { + return function () { + var splitMessage = message.split(' '); + var matchedMessage = splitMessage.map(function (word) { + return isUrl(word) ? React.createElement(LinkLabel, { + key: uuidv4$1(), + className: className, + src: word, + type: WORD_TYPOGRAPHY$1, + color: WORD_COLOR + }, word) : React.createElement(Label, { + key: uuidv4$1(), + className: className, + type: WORD_TYPOGRAPHY$1, + color: WORD_COLOR + }, word); + }); + + if (updatedAt > 0) { + matchedMessage.push(React.createElement(Label, { + key: uuidv4$1(), + className: className, + type: WORD_TYPOGRAPHY$1, + color: EDITED_COLOR$1 + }, stringSet.MESSAGE_EDITED)); + } + + return matchedMessage; + }; + }, [message, updatedAt, className]); +} + +var GROUPING_PADDING$3 = '1px'; +var NORAML_PADDING = '8px'; + +var OGMessageSwitch = function OGMessageSwitch(_ref) { + var isByMe = _ref.isByMe, + userId = _ref.userId, + status = _ref.status, + message = _ref.message, + disabled = _ref.disabled, + showEdit = _ref.showEdit, + chainTop = _ref.chainTop, + className = _ref.className, + membersMap = _ref.membersMap, + showRemove = _ref.showRemove, + useReaction = _ref.useReaction, + emojiAllMap = _ref.emojiAllMap, + chainBottom = _ref.chainBottom, + resendMessage = _ref.resendMessage, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems; + var ogMetaData = message.ogMetaData; + var injectingClassName = Array.isArray(className) ? className : [className]; + var memoizedMessageText = useMemoizedMessageText$1({ + message: message.message, + updatedAt: message.updatedAt, + className: 'sendbird-og-message-word' + }); + + var openLink = function openLink() { + if (checkOGIsEnalbed(message)) { + var url = ogMetaData.url; + window.open(url); + } + }; + + return React.createElement("div", { + className: "".concat(OG_MESSAGE, " ").concat(OG_MESSAGE).concat(isByMe ? '--outgoing' : '--incoming', " ").concat(injectingClassName.join(' ')) + }, isByMe ? React.createElement(OutgoingOGMessage, { + status: status, + userId: userId, + message: message, + disabled: disabled, + openLink: openLink, + showEdit: showEdit, + chainTop: chainTop, + showRemove: showRemove, + membersMap: membersMap, + chainBottom: chainBottom, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + resendMessage: resendMessage, + toggleReaction: toggleReaction, + memoizedMessageText: memoizedMessageText, + memoizedEmojiListItems: memoizedEmojiListItems + }) : React.createElement(IncomingOGMessage, { + userId: userId, + message: message, + openLink: openLink, + chainTop: chainTop, + membersMap: membersMap, + chainBottom: chainBottom, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + toggleReaction: toggleReaction, + memoizedMessageText: memoizedMessageText, + memoizedEmojiListItems: memoizedEmojiListItems + })); +}; + +function OutgoingOGMessage(props) { + var status = props.status, + userId = props.userId, + message = props.message, + disabled = props.disabled, + openLink = props.openLink, + showEdit = props.showEdit, + chainTop = props.chainTop, + showRemove = props.showRemove, + membersMap = props.membersMap, + chainBottom = props.chainBottom, + emojiAllMap = props.emojiAllMap, + useReaction = props.useReaction, + resendMessage = props.resendMessage, + toggleReaction = props.toggleReaction, + memoizedMessageText = props.memoizedMessageText, + memoizedEmojiListItems = props.memoizedEmojiListItems; + var ogMetaData = message.ogMetaData; + var defaultImage = ogMetaData.defaultImage; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var MemoizedMessageText = memoizedMessageText; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var messageRef = useRef(null); + var parentRefReactions = useRef(null); + var parentRefMenus = useRef(null); + var parentContainRef = useRef(null); + var isMessageSent = getIsSentFromStatus$1(status); + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + mousehover = _useState2[0], + setMousehover = _useState2[1]; + + var _useState3 = useState(false), + _useState4 = _slicedToArray(_useState3, 2), + moreActive = _useState4[0], + setMoreActive = _useState4[1]; + + var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React.createElement("div", { + ref: messageRef, + className: OUTGOING_OG_MESSAGE, + style: { + paddingTop: chainTop ? GROUPING_PADDING$3 : NORAML_PADDING, + paddingBottom: chainBottom ? GROUPING_PADDING$3 : NORAML_PADDING + } + }, React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "--inner") + }, React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "--left-padding") + }, React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__more"), + ref: parentContainRef + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "".concat(OUTGOING_OG_MESSAGE, "__more__menu"), + ref: parentRefMenus, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: parentRefMenus // for catching location(x, y) of MenuItems + , + parentContainRef: parentContainRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + openLeft: true + }, isMessageSent && React.createElement(MenuItem, { + className: "".concat(OUTGOING_OG_MESSAGE, "__more__menu__copy"), + onClick: function onClick() { + copyToClipboard(message.message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__COPY), isMessageSent && React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showEdit(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__EDIT), message && message.isResendable && message.isResendable() && React.createElement(MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }), isMessageSent && useReaction && emojiAllMap.size > 0 && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "".concat(OUTGOING_OG_MESSAGE, "__more__add-reaction"), + ref: parentRefReactions, + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.EMOJI_REACTIONS_ADD, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MemoizedEmojiListItems, { + message: message, + parentRef: parentRefReactions, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + spaceFromTrigger: { + y: 2 + } + }); + } + })), !chainBottom && !(mousehover || moreActive) && React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__message-status") + }, React.createElement(MessageStatus, { + message: message, + status: status + }))), React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "--body") + }, React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__text-balloon") + }, React.createElement(MemoizedMessageText, null)), React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail ").concat(checkOGIsEnalbed(message) ? '' : "".concat(OUTGOING_OG_MESSAGE, "__thumbnail--disabled")), + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, defaultImage && React.createElement(ImageRenderer, { + url: defaultImage.url || '', + alt: defaultImage.alt, + className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail__image"), + width: "320px", + height: "180px", + defaultComponent: React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail__image__placeholder") + }, React.createElement(Icon, { + width: "56px", + height: "56px", + type: IconTypes.NO_THUMBNAIL + })) + })), React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag ").concat(checkOGIsEnalbed(message) ? '' : "".concat(OUTGOING_OG_MESSAGE, "__og-tag--disabled")), + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, ogMetaData.title && React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__title") + }, React.createElement(Label, { + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1 + }, ogMetaData.title)), ogMetaData.description && React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__description") + }, React.createElement(Label, { + type: LabelTypography.BODY_2, + color: LabelColors.ONBACKGROUND_1, + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__description__label") + }, ogMetaData.description)), ogMetaData.url && React.createElement(Label, { + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2, + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__url") + }, ogMetaData.url), showEmojiReactions && React.createElement("div", { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__emoji-reactions--wrapper"), + onClick: function onClick(event) { + return event.stopPropagation(); + }, + onKeyDown: function onKeyDown(event) { + return event.stopPropagation(); + }, + role: "button", + tabIndex: 0 + }, React.createElement(EmojiReactions, { + className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__emoji-reactions"), + userId: userId, + message: message, + membersMap: membersMap, + emojiAllMap: emojiAllMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + })))))); +} + +function IncomingOGMessage(props) { + var userId = props.userId, + message = props.message, + openLink = props.openLink, + chainTop = props.chainTop, + membersMap = props.membersMap, + chainBottom = props.chainBottom, + useReaction = props.useReaction, + emojiAllMap = props.emojiAllMap, + toggleReaction = props.toggleReaction, + memoizedMessageText = props.memoizedMessageText, + memoizedEmojiListItems = props.memoizedEmojiListItems; + var ogMetaData = message.ogMetaData; + var defaultImage = ogMetaData.defaultImage; + + var _useContext2 = useContext(LocalizationContext), + stringSet = _useContext2.stringSet; + + var MemoizedMessageText = memoizedMessageText; + var MemoizedEmojiListItems = memoizedEmojiListItems; + var messageRef = useRef(null); + var avatarRef = useRef(null); + var parentRefReactions = useRef(null); + var parentRefMenus = useRef(null); + var parentContainRef = useRef(null); + + var _React$useContext = React.useContext(UserProfileContext), + disableUserProfile = _React$useContext.disableUserProfile, + renderUserProfile = _React$useContext.renderUserProfile; + + var _useState5 = useState(false), + _useState6 = _slicedToArray(_useState5, 2), + mousehover = _useState6[0], + setMousehover = _useState6[1]; + + var _useState7 = useState(false), + _useState8 = _slicedToArray(_useState7, 2), + moreActive = _useState8[0], + setMoreActive = _useState8[1]; + + var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; + var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; + + var handleMoreIconClick = function handleMoreIconClick() { + setMoreActive(true); + }; + + var handleMoreIconBlur = function handleMoreIconBlur() { + setMoreActive(false); + }; + + useMouseHover({ + ref: messageRef, + setHover: setMousehover + }); + return React.createElement("div", { + ref: messageRef, + className: INCOMING_OG_MESSAGE, + style: { + paddingTop: chainTop ? GROUPING_PADDING$3 : NORAML_PADDING, + paddingBottom: chainBottom ? GROUPING_PADDING$3 : NORAML_PADDING + } + }, React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "--inner") + }, React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "--body") + }, !chainBottom && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + ref: avatarRef, + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + className: "".concat(INCOMING_OG_MESSAGE, "__avatar"), + src: getSenderProfileUrl(message), + width: "28px", + height: "28px", + alt: "sender-profile-image" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: message.sender, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: message.sender, + onSuccess: closeDropdown + })); + } + }), !chainTop && React.createElement(Label, { + className: "".concat(INCOMING_OG_MESSAGE, "__sender-name"), + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, getSenderName(message)), React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__text-balloon") + }, React.createElement(MemoizedMessageText, null)), React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail ").concat(checkOGIsEnalbed(message) ? '' : "".concat(INCOMING_OG_MESSAGE, "__thumbnail--disabled")), + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, defaultImage && React.createElement(ImageRenderer, { + url: defaultImage.url || '', + alt: defaultImage.alt || '', + className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail__image"), + width: "320px", + height: "180px", + defaultComponent: React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail__image__placeholder") + }, React.createElement(Icon, { + width: "56px", + height: "56px", + type: IconTypes.NO_THUMBNAIL + })) + })), React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag ").concat(checkOGIsEnalbed(message) ? '' : "".concat(INCOMING_OG_MESSAGE, "__og-tag--disabled")), + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, ogMetaData.title && React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__title") + }, React.createElement(Label, { + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1 + }, ogMetaData.title)), ogMetaData.description && React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__description") + }, React.createElement(Label, { + type: LabelTypography.BODY_2, + color: LabelColors.ONBACKGROUND_1, + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__description__label") + }, ogMetaData.description)), ogMetaData.url && React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__url") + }, React.createElement(Label, { + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2, + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__url__label") + }, ogMetaData.url)), showEmojiReactions && React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__emoji-reactions--wrapper"), + onClick: function onClick(event) { + return event.stopPropagation(); + }, + onKeyDown: function onKeyDown(event) { + return event.stopPropagation(); + }, + role: "button", + tabIndex: 0 + }, React.createElement(EmojiReactions, { + className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__emoji-reactions"), + userId: userId, + message: message, + membersMap: membersMap, + emojiAllMap: emojiAllMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + })))), React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "--right-padding") + }, !chainBottom && !(mousehover || moreActive) && React.createElement(Label, { + className: "".concat(INCOMING_OG_MESSAGE, "__sent-at"), + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, getMessageCreatedAt$3(message)), React.createElement("div", { + className: "".concat(INCOMING_OG_MESSAGE, "__more"), + ref: parentContainRef + }, showReactionAddButton && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: parentRefReactions, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.EMOJI_REACTIONS_ADD, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MemoizedEmojiListItems, { + parentRef: parentRefReactions, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown, + message: message, + spaceFromTrigger: { + y: 2 + } + }); + } + }), React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: parentRefMenus, + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + handleMoreIconClick(); + }, + onBlur: function onBlur() { + handleMoreIconBlur(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: parentRefMenus, + parentContainRef: parentContainRef, + closeDropdown: closeDropdown + }, React.createElement(MenuItem, { + className: "".concat(INCOMING_OG_MESSAGE, "__more__menu__copy"), + onClick: function onClick() { + copyToClipboard(message.message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__COPY)); + } + }))))); +} + +var noop$3 = function noop() {}; + +OGMessageSwitch.propTypes = { + isByMe: PropTypes.bool.isRequired, + userId: PropTypes.string.isRequired, + message: PropTypes.shape({ + message: PropTypes.string, + sender: PropTypes.shape({}), + ogMetaData: PropTypes.shape({ + title: PropTypes.string, + description: PropTypes.string, + url: PropTypes.string, + defaultImage: PropTypes.shape({ + url: PropTypes.string, + alt: PropTypes.string + }) + }), + reactions: PropTypes.array, + updatedAt: PropTypes.number + }).isRequired, + useReaction: PropTypes.bool.isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + status: PropTypes.string, + disabled: PropTypes.bool, + showEdit: PropTypes.func, + showRemove: PropTypes.func, + resendMessage: PropTypes.func, + toggleReaction: PropTypes.func, + membersMap: PropTypes.instanceOf(Map), + emojiAllMap: PropTypes.instanceOf(Map), + memoizedEmojiListItems: PropTypes.func, + chainTop: PropTypes.bool, + chainBottom: PropTypes.bool +}; +OGMessageSwitch.defaultProps = { + className: '', + status: '', + disabled: false, + showEdit: noop$3, + showRemove: noop$3, + resendMessage: noop$3, + toggleReaction: noop$3, + membersMap: new Map(), + emojiAllMap: new Map(), + memoizedEmojiListItems: noop$3, + chainTop: false, + chainBottom: false +}; +OutgoingOGMessage.propTypes = { + status: PropTypes.string, + userId: PropTypes.string.isRequired, + message: PropTypes.shape({ + message: PropTypes.string, + ogMetaData: PropTypes.shape({ + title: PropTypes.string, + description: PropTypes.string, + url: PropTypes.string, + defaultImage: PropTypes.shape({ + url: PropTypes.string, + alt: PropTypes.string + }) + }), + reactions: PropTypes.array, + updatedAt: PropTypes.number, + isResendable: PropTypes.func, + errorCode: PropTypes.number + }).isRequired, + disabled: PropTypes.bool.isRequired, + openLink: PropTypes.func.isRequired, + showEdit: PropTypes.func.isRequired, + showRemove: PropTypes.func.isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + useReaction: PropTypes.bool.isRequired, + resendMessage: PropTypes.func.isRequired, + toggleReaction: PropTypes.func.isRequired, + memoizedMessageText: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; +OutgoingOGMessage.defaultProps = { + status: '' +}; +IncomingOGMessage.propTypes = { + userId: PropTypes.string.isRequired, + message: PropTypes.shape({ + message: PropTypes.string, + sender: PropTypes.shape({}), + ogMetaData: PropTypes.shape({ + title: PropTypes.string, + description: PropTypes.string, + url: PropTypes.string, + defaultImage: PropTypes.shape({ + url: PropTypes.string, + alt: PropTypes.string + }) + }), + reactions: PropTypes.array, + updatedAt: PropTypes.number + }).isRequired, + openLink: PropTypes.func.isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + useReaction: PropTypes.bool.isRequired, + toggleReaction: PropTypes.func.isRequired, + memoizedMessageText: PropTypes.func.isRequired, + memoizedEmojiListItems: PropTypes.func.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired +}; + +function MessageHoc(_ref) { + var _MessageTypes$ADMIN$M; + + var message = _ref.message, + userId = _ref.userId, + disabled = _ref.disabled, + editDisabled = _ref.editDisabled, + hasSeperator = _ref.hasSeperator, + deleteMessage = _ref.deleteMessage, + updateMessage = _ref.updateMessage, + status = _ref.status, + resendMessage = _ref.resendMessage, + useReaction = _ref.useReaction, + chainTop = _ref.chainTop, + chainBottom = _ref.chainBottom, + emojiAllMap = _ref.emojiAllMap, + membersMap = _ref.membersMap, + toggleReaction = _ref.toggleReaction, + memoizedEmojiListItems = _ref.memoizedEmojiListItems; + var _message$sender = message.sender, + sender = _message$sender === void 0 ? {} : _message$sender; + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + showEdit = _useState2[0], + setShowEdit = _useState2[1]; + + var _useState3 = useState(false), + _useState4 = _slicedToArray(_useState3, 2), + showRemove = _useState4[0], + setShowRemove = _useState4[1]; + + var _useState5 = useState(false), + _useState6 = _slicedToArray(_useState5, 2), + showFileViewer = _useState6[0], + setShowFileViewer = _useState6[1]; + + var editMessageInputRef = useRef(null); + var isByMe = userId === sender.userId || message.requestState === 'pending' || message.requestState === 'failed'; + + if (showEdit) { + return React.createElement(MessageInput, { + isEdit: true, + disabled: editDisabled, + ref: editMessageInputRef, + name: message.messageId, + onSendMessage: updateMessage, + onCancelEdit: function onCancelEdit() { + setShowEdit(false); + }, + value: message.message + }); + } + + return React.createElement("div", { + className: "sendbird-msg-hoc sendbird-msg--scroll-ref" + }, hasSeperator && React.createElement(DateSeparator, null, React.createElement(Label, { + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, format(message.createdAt, 'MMMM dd, yyyy'))), (_MessageTypes$ADMIN$M = {}, _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.ADMIN, React.createElement(AdminMessage, { + message: message + })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.FILE, React.createElement(MessageSwitch, { + message: message, + userId: userId, + disabled: disabled, + isByMe: isByMe, + showRemove: setShowRemove, + resendMessage: resendMessage, + status: status, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.OG, React.createElement(OGMessageSwitch, { + message: message, + status: status, + isByMe: isByMe, + userId: userId, + showEdit: setShowEdit, + disabled: disabled, + showRemove: setShowRemove, + resendMessage: resendMessage, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.THUMBNAIL, React.createElement(ThumbnailMessage, { + disabled: disabled, + message: message, + userId: userId, + isByMe: isByMe, + showRemove: setShowRemove, + resendMessage: resendMessage, + onClick: setShowFileViewer, + status: status, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.USER, React.createElement(Message, { + message: message, + disabled: disabled, + isByMe: isByMe, + userId: userId, + showEdit: setShowEdit, + showRemove: setShowRemove, + resendMessage: resendMessage, + status: status, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + membersMap: membersMap, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems, + chainTop: chainTop, + chainBottom: chainBottom + })), _MessageTypes$ADMIN$M)[getMessageType(message)], showRemove && React.createElement(RemoveMessage, { + onCloseModal: function onCloseModal() { + return setShowRemove(false); + }, + onDeleteMessage: function onDeleteMessage() { + deleteMessage(message); + } + }), showFileViewer && React.createElement(FileViewer, { + onClose: function onClose() { + return setShowFileViewer(false); + }, + message: message, + onDelete: function onDelete() { + deleteMessage(message, function () { + setShowFileViewer(false); + }); + }, + isByMe: isByMe + }), !(message.isFileMessage && message.isFileMessage() || message.messageType === 'file') && !(message.isAdminMessage && message.isAdminMessage()) && !(message.isUserMessage && message.isUserMessage() || message.messageType === 'user') && !showFileViewer && React.createElement(UnknownMessage, { + message: message, + status: status, + isByMe: isByMe, + showRemove: setShowRemove, + chainTop: chainTop, + chainBottom: chainBottom + })); +} +MessageHoc.propTypes = { + userId: PropTypes.string, + message: PropTypes.shape({ + isFileMessage: PropTypes.func, + isAdminMessage: PropTypes.func, + isUserMessage: PropTypes.func, + isDateSeperator: PropTypes.func, + // should be a number, but there's a bug in SDK shich returns string + messageId: PropTypes.number, + type: PropTypes.string, + createdAt: PropTypes.number, + message: PropTypes.string, + requestState: PropTypes.string, + messageType: PropTypes.string, + sender: PropTypes.shape({ + userId: PropTypes.string + }), + ogMetaData: PropTypes.shape({}) + }), + hasSeperator: PropTypes.bool, + disabled: PropTypes.bool, + editDisabled: PropTypes.bool, + deleteMessage: PropTypes.func.isRequired, + updateMessage: PropTypes.func.isRequired, + resendMessage: PropTypes.func.isRequired, + status: PropTypes.string, + useReaction: PropTypes.bool.isRequired, + chainTop: PropTypes.bool.isRequired, + chainBottom: PropTypes.bool.isRequired, + emojiAllMap: PropTypes.instanceOf(Map).isRequired, + membersMap: PropTypes.instanceOf(Map).isRequired, + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func +}; +MessageHoc.defaultProps = { + userId: '', + editDisabled: false, + message: {}, + hasSeperator: false, + disabled: false, + status: '', + toggleReaction: function toggleReaction() {}, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +var ConversationScroll = +/*#__PURE__*/ +function (_Component) { + _inherits(ConversationScroll, _Component); + + function ConversationScroll() { + var _getPrototypeOf2; + + var _this; + + _classCallCheck(this, ConversationScroll); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ConversationScroll)).call.apply(_getPrototypeOf2, [this].concat(args))); + + _defineProperty(_assertThisInitialized(_this), "onScroll", function (e) { + var _this$props = _this.props, + scrollRef = _this$props.scrollRef, + hasMore = _this$props.hasMore, + messagesDispatcher = _this$props.messagesDispatcher, + onScroll = _this$props.onScroll, + currentGroupChannel = _this$props.currentGroupChannel; + var element = e.target; + var scrollTop = element.scrollTop, + clientHeight = element.clientHeight, + scrollHeight = element.scrollHeight; + + if (scrollTop === 0) { + if (!hasMore) { + return; + } + + var nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref'); + var first = nodes[0]; + onScroll(function (_ref) { + var _ref2 = _slicedToArray(_ref, 1), + messages = _ref2[0]; + + if (messages) { + // https://github.com/scabbiaza/react-scroll-position-on-updating-dom + first.scrollIntoView(); + } + }); + } + + setTimeout(function () { + // mark as read if scroll is at end + if (clientHeight + scrollTop === scrollHeight) { + messagesDispatcher({ + type: MARK_AS_READ + }); + currentGroupChannel.markAsRead(); + } + }, 500); + }); + + return _this; + } + + _createClass(ConversationScroll, [{ + key: "render", + value: function render() { + var _this$props2 = this.props, + userId = _this$props2.userId, + disabled = _this$props2.disabled, + scrollRef = _this$props2.scrollRef, + readStatus = _this$props2.readStatus, + membersMap = _this$props2.membersMap, + initialized = _this$props2.initialized, + allMessages = _this$props2.allMessages, + useReaction = _this$props2.useReaction, + emojiAllMap = _this$props2.emojiAllMap, + editDisabled = _this$props2.editDisabled, + deleteMessage = _this$props2.deleteMessage, + updateMessage = _this$props2.updateMessage, + resendMessage = _this$props2.resendMessage, + renderChatItem = _this$props2.renderChatItem, + emojiContainer = _this$props2.emojiContainer, + toggleReaction = _this$props2.toggleReaction, + useMessageGrouping = _this$props2.useMessageGrouping, + currentGroupChannel = _this$props2.currentGroupChannel, + memoizedEmojiListItems = _this$props2.memoizedEmojiListItems; + return React.createElement("div", { + className: "sendbird-conversation__messages" + }, React.createElement("div", { + ref: scrollRef, + className: "sendbird-conversation__scroll-container", + onScroll: this.onScroll + }, React.createElement("div", { + className: "sendbird-conversation__padding" + }), React.createElement("div", { + className: "sendbird-conversation__messages-padding" + }, initialized && allMessages.map(function (m, idx) { + var previousMessage = allMessages[idx - 1]; + var nextMessage = allMessages[idx + 1]; + + var _ref3 = useMessageGrouping ? compareMessagesForGrouping(previousMessage, m, nextMessage) : [false, false], + _ref4 = _slicedToArray(_ref3, 2), + chainTop = _ref4[0], + chainBottom = _ref4[1]; + + var previousMessageCreatedAt = previousMessage && previousMessage.createdAt; + var currentCreatedAt = m.createdAt; // https://stackoverflow.com/a/41855608 + + var hasSeperator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt)); + + if (renderChatItem) { + return React.createElement("div", { + key: m.messageId || m.reqId, + className: "sendbird-msg--scroll-ref" + }, renderChatItem({ + message: m, + channel: currentGroupChannel, + onDeleteMessage: deleteMessage, + onUpdateMessage: updateMessage, + onResendMessage: resendMessage, + emojiContainer: emojiContainer + })); + } + + return React.createElement(MessageHoc, { + key: m.messageId || m.reqId, + userId: userId, + status: readStatus[m.messageId] || getParsedStatus(m, currentGroupChannel) // show status for pending/failed messages + , + message: m, + disabled: disabled, + membersMap: membersMap, + chainTop: chainTop, + useReaction: useReaction, + emojiAllMap: emojiAllMap, + editDisabled: editDisabled, + hasSeperator: hasSeperator, + chainBottom: chainBottom, + updateMessage: updateMessage, + deleteMessage: deleteMessage, + resendMessage: resendMessage, + toggleReaction: toggleReaction, + memoizedEmojiListItems: memoizedEmojiListItems + }); + })))); + } + }]); + + return ConversationScroll; +}(Component); +ConversationScroll.propTypes = { + // https://stackoverflow.com/a/52646941 + scrollRef: PropTypes.shape({ + current: PropTypes.oneOfType([PropTypes.element, PropTypes.shape({})]) + }).isRequired, + hasMore: PropTypes.bool, + messagesDispatcher: PropTypes.func.isRequired, + onScroll: PropTypes.func, + initialized: PropTypes.bool, + editDisabled: PropTypes.bool, + disabled: PropTypes.bool, + userId: PropTypes.string, + allMessages: PropTypes.arrayOf(PropTypes.shape({ + createdAt: PropTypes.number + })).isRequired, + deleteMessage: PropTypes.func.isRequired, + resendMessage: PropTypes.func.isRequired, + updateMessage: PropTypes.func.isRequired, + readStatus: PropTypes.shape({}).isRequired, + currentGroupChannel: PropTypes.shape({ + markAsRead: PropTypes.func, + members: PropTypes.arrayOf(PropTypes.shape({})) + }).isRequired, + renderChatItem: PropTypes.element, + useReaction: PropTypes.bool, + emojiContainer: PropTypes.shape({}), + emojiAllMap: PropTypes.instanceOf(Map), + membersMap: PropTypes.instanceOf(Map), + useMessageGrouping: PropTypes.bool, + toggleReaction: PropTypes.func, + memoizedEmojiListItems: PropTypes.func +}; +ConversationScroll.defaultProps = { + hasMore: false, + editDisabled: false, + disabled: false, + initialized: false, + userId: '', + renderChatItem: null, + onScroll: null, + useReaction: true, + emojiContainer: {}, + emojiAllMap: new Map(), + membersMap: new Map(), + useMessageGrouping: true, + toggleReaction: function toggleReaction() {}, + memoizedEmojiListItems: function memoizedEmojiListItems() { + return ''; + } +}; + +function Notification(_ref) { + var count = _ref.count, + time = _ref.time, + onClick = _ref.onClick; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var timeArray = time.split(' '); + timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON); + return (// eslint-disable-next-line + React.createElement("div", { + className: "sendbird-notification", + onClick: onClick + }, React.createElement(Label, { + className: "sendbird-notification__text", + color: LabelColors.ONCONTENT_1, + type: LabelTypography.CAPTION_2 + }, "".concat(count, " "), stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE, " ".concat(timeArray.join(' '))), React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.SHEVRON_DOWN, + fillColor: IconColors.CONTENT + })) + ); +} +Notification.propTypes = { + count: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + time: PropTypes.string, + onClick: PropTypes.func.isRequired +}; +Notification.defaultProps = { + count: 0, + time: '' +}; + +var FrozenNotification = function FrozenNotification() { + var stringSet = useContext(LocalizationContext).stringSet; + return React.createElement("div", { + className: "sendbird-notification sendbird-notification--frozen" + }, React.createElement(Label, { + className: "sendbird-notification__text", + type: LabelTypography.CAPTION_2 + }, stringSet.CHANNEL_FROZEN)); +}; + +var TypingIndicatorText = function TypingIndicatorText(_ref) { + var members = _ref.members; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + if (!members || members.length === 0) { + return ''; + } + + if (members && members.length === 1) { + return "".concat(members[0].nickname, " ").concat(stringSet.TYPING_INDICATOR__IS_TYPING); + } + + if (members && members.length === 2) { + return "".concat(members[0].nickname, " ").concat(stringSet.TYPING_INDICATOR__AND, " ").concat(members[1].nickname, " ").concat(stringSet.TYPING_INDICATOR__ARE_TYPING); + } + + return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING; +}; + +function TypingIndicator(_ref2) { + var channelUrl = _ref2.channelUrl, + sb = _ref2.sb, + logger = _ref2.logger; + + var _useState = useState(uuidv4$1()), + _useState2 = _slicedToArray(_useState, 2), + handlerId = _useState2[0], + setHandlerId = _useState2[1]; + + var _useState3 = useState([]), + _useState4 = _slicedToArray(_useState3, 2), + typingMembers = _useState4[0], + setTypingMembers = _useState4[1]; + + useEffect(function () { + if (sb && sb.ChannelHandler) { + sb.removeChannelHandler(handlerId); + var newHandlerId = uuidv4$1(); + var handler = new sb.ChannelHandler(); // there is a possible warning in here - setState called after unmount + + handler.onTypingStatusUpdated = function (groupChannel) { + logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel); + var members = groupChannel.getTypingMembers(); + + if (groupChannel.url === channelUrl) { + setTypingMembers(members); + } + }; + + sb.addChannelHandler(newHandlerId, handler); + setHandlerId(newHandlerId); + } + + return function () { + setTypingMembers([]); + + if (sb && sb.removeChannelHandler) { + sb.removeChannelHandler(handlerId); + } + }; + }, [channelUrl]); + return React.createElement(Label, { + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, React.createElement(TypingIndicatorText, { + members: typingMembers + })); +} + +TypingIndicator.propTypes = { + channelUrl: PropTypes.string.isRequired, + sb: PropTypes.shape({ + ChannelHandler: PropTypes.func, + removeChannelHandler: PropTypes.func, + addChannelHandler: PropTypes.func + }).isRequired, + logger: PropTypes.shape({ + info: PropTypes.func + }).isRequired +}; + +// Logic required to handle message input rendering + +var MessageInputWrapper = function MessageInputWrapper(_a, ref) { + var channel = _a.channel, + user = _a.user, + onSendMessage = _a.onSendMessage, + onFileUpload = _a.onFileUpload, + renderMessageInput = _a.renderMessageInput, + isOnline = _a.isOnline, + initialized = _a.initialized; + var stringSet = useContext(LocalizationContext).stringSet; + var disabled = !initialized || isDisabledBecauseFrozen(channel) || isDisabledBecauseMuted(channel) || !isOnline; + var isOperator$1 = isOperator(channel); + var isBroadcast = channel.isBroadcast; // custom message + + if (renderMessageInput) { + return renderMessageInput({ + channel: channel, + user: user, + disabled: disabled + }); + } // broadcast channel + not operator + + + if (isBroadcast && !isOperator$1) { + return null; + } // other conditions + + + return React.createElement(MessageInput, { + placeholder: isDisabledBecauseFrozen(channel) && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED || isDisabledBecauseMuted(channel) && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED, + ref: ref, + disabled: disabled, + onStartTyping: function onStartTyping() { + channel.startTyping(); + }, + onSendMessage: onSendMessage, + onFileUpload: onFileUpload + }); +}; + +var MessageInputWrapper$1 = React.forwardRef(MessageInputWrapper); + +function ConnectionStatus() { + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return React.createElement("div", { + className: "sendbird-conversation__connection-status" + }, React.createElement(Label, { + type: LabelTypography.BODY_2, + color: LabelColors.ONBACKGROUND_2 + }, stringSet.TRYING_TO_CONNECT), React.createElement(Icon, { + type: IconTypes.DISCONNECTED, + fillColor: IconColors.SENT, + height: "14px", + width: "14px" + })); +} + +var prettyDate = function prettyDate(date) { + return formatDistanceToNowStrict(date, { + addSuffix: true + }); +}; +var getOthersLastSeenAt = function getOthersLastSeenAt(channel) { + if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) { + return ''; + } + + var lastSeenList = _toConsumableArray(Object.values(channel.getReadStatus())); + + var lastSeenAt = lastSeenList.length > 0 ? lastSeenList[0].last_seen_at : 0; + + if (lastSeenAt === 0) { + return ''; + } + + return prettyDate(lastSeenAt); +}; +var getChannelTitle = function getChannelTitle() { + var channel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var currentUserId = arguments.length > 1 ? arguments[1] : undefined; + var stringSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LabelStringSet; + + if (!channel || !channel.name && !channel.members) { + return stringSet.NO_TITLE; + } + + if (channel.name && channel.name !== 'Group Channel') { + return channel.name; + } + + if (channel.members.length === 1) { + return stringSet.NO_MEMBERS; + } + + return channel.members.filter(function (_ref) { + var userId = _ref.userId; + return userId !== currentUserId; + }).map(function (_ref2) { + var nickname = _ref2.nickname; + return nickname || stringSet.NO_NAME; + }).join(', '); +}; + +function AutoRefresh(_ref) { + var repeatFunc = _ref.repeatFunc; + + var _useState = useState(repeatFunc()), + _useState2 = _slicedToArray(_useState, 2), + label = _useState2[0], + setLabel = _useState2[1]; + + useEffect(function () { + var interval = setInterval(function () { + if (label !== repeatFunc()) { + setLabel(repeatFunc()); + } + }, 10000); + return function () { + clearInterval(interval); + }; + }, []); + return React.createElement("div", { + className: "sendbird-repeat-text" + }, label); +} +AutoRefresh.propTypes = { + repeatFunc: PropTypes.func.isRequired +}; + +function ChatHeader(props) { + var currentGroupChannel = props.currentGroupChannel, + currentUser = props.currentUser, + title = props.title, + subTitle = props.subTitle, + isActive = props.isActive, + isMuted = props.isMuted, + onActionClick = props.onActionClick, + theme = props.theme; + var userId = currentUser.userId; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return React.createElement("div", { + className: "sendbird-chat-header" + }, React.createElement("div", { + className: "sendbird-chat-header__left" + }, React.createElement(ChannelAvatar, { + theme: theme, + channel: currentGroupChannel, + userId: userId, + height: 32, + width: 32 + }), React.createElement(Label, { + className: "sendbird-chat-header__title", + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, title || getChannelTitle(currentGroupChannel, userId, stringSet)), typeof isActive === 'string' && isActive === 'true' || typeof isActive === 'boolean' && isActive ? React.createElement("div", { + className: "sendbird-chat-header__active" + }) : null, React.createElement(Label, { + className: "sendbird-chat-header__subtitle", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_2 + }, subTitle || React.createElement(AutoRefresh, { + repeatFunc: function repeatFunc() { + return getOthersLastSeenAt(currentGroupChannel); + } + }))), React.createElement("div", { + className: "sendbird-chat-header__right" + }, typeof isMuted === 'string' && isMuted === 'true' || typeof isMuted === 'boolean' && isMuted ? React.createElement(Icon, { + className: "sendbird-chat-header__mute", + type: IconTypes.MUTE, + width: "24px", + height: "24px" + }) : null, React.createElement(IconButton, { + className: "sendbird-chat-header__info", + width: "32px", + height: "32px", + onClick: onActionClick + }, React.createElement(Icon, { + type: IconTypes.INFO, + fillColor: IconColors.PRIMARY, + width: "24px", + height: "24px" + })))); +} +ChatHeader.propTypes = { + currentGroupChannel: PropTypes.shape({ + members: PropTypes.arrayOf(PropTypes.shape({})), + coverUrl: PropTypes.string + }), + theme: PropTypes.string, + currentUser: PropTypes.shape({ + userId: PropTypes.string + }), + title: PropTypes.string, + subTitle: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), + isActive: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), + isMuted: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), + onActionClick: PropTypes.func +}; +ChatHeader.defaultProps = { + currentGroupChannel: {}, + title: '', + theme: 'light', + subTitle: '', + isActive: false, + isMuted: false, + currentUser: {}, + onActionClick: function onActionClick() {} +}; + +var noop$4 = function noop() {}; + +var ConversationPanel = function ConversationPanel(props) { + var channelUrl = props.channelUrl, + _props$stores = props.stores, + sdkStore = _props$stores.sdkStore, + userStore = _props$stores.userStore, + _props$config = props.config, + userId = _props$config.userId, + logger = _props$config.logger, + pubSub = _props$config.pubSub, + isOnline = _props$config.isOnline, + theme = _props$config.theme, + reconnect = props.dispatchers.reconnect, + _props$queries = props.queries, + queries = _props$queries === void 0 ? {} : _props$queries, + useReaction = props.useReaction, + renderChatItem = props.renderChatItem, + renderChatHeader = props.renderChatHeader, + renderUserProfile = props.renderUserProfile, + disableUserProfile = props.disableUserProfile, + renderMessageInput = props.renderMessageInput, + useMessageGrouping = props.useMessageGrouping, + onChatHeaderActionClick = props.onChatHeaderActionClick, + onBeforeSendUserMessage = props.onBeforeSendUserMessage, + onBeforeSendFileMessage = props.onBeforeSendFileMessage, + onBeforeUpdateUserMessage = props.onBeforeUpdateUserMessage; + var sdk = sdkStore.sdk; + var config = props.config; + var sdkError = sdkStore.error; + var sdkInit = sdkStore.initialized; + var user = userStore.user; + + if (queries.messageListQuery) { + // eslint-disable-next-line no-console + console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead'); + } + + var userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery; + + var _useReducer = useReducer(reducer, messagesInitialState), + _useReducer2 = _slicedToArray(_useReducer, 2), + messagesStore = _useReducer2[0], + messagesDispatcher = _useReducer2[1]; + + var scrollRef = useRef(null); + var allMessages = messagesStore.allMessages, + loading = messagesStore.loading, + hasMore = messagesStore.hasMore, + initialized = messagesStore.initialized, + unreadCount = messagesStore.unreadCount, + unreadSince = messagesStore.unreadSince, + isInvalid = messagesStore.isInvalid, + _messagesStore$curren = messagesStore.currentGroupChannel, + currentGroupChannel = _messagesStore$curren === void 0 ? {} : _messagesStore$curren, + lastMessageTimeStamp = messagesStore.lastMessageTimeStamp, + emojiContainer = messagesStore.emojiContainer, + readStatus = messagesStore.readStatus; + var isFrozen = currentGroupChannel.isFrozen, + isBroadcast = currentGroupChannel.isBroadcast; + var _sdk$appInfo = sdk.appInfo, + appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; + var usingReaction = appInfo.isUsingReaction && !isBroadcast || useReaction || false; + var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; + var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; + var emojiAllMap = useMemo(function () { + return usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map(); + }, [emojiContainer]); + var emojiAllList = useMemo(function () { + return usingReaction ? getAllEmojisFromEmojiContainer(emojiContainer) : []; + }, [emojiContainer]); + var nicknamesMap = useMemo(function () { + return usingReaction ? getNicknamesMapFromMembers(currentGroupChannel.members) : new Map(); + }, [currentGroupChannel.members]); + var onScrollCallback = useScrollCallback({ + currentGroupChannel: currentGroupChannel, + lastMessageTimeStamp: lastMessageTimeStamp, + userFilledMessageListQuery: userFilledMessageListQuery + }, { + hasMore: hasMore, + logger: logger, + messagesDispatcher: messagesDispatcher, + sdk: sdk + }); + var toggleReaction = useToggleReactionCallback({ + currentGroupChannel: currentGroupChannel + }, { + logger: logger + }); + var memoizedEmojiListItems = useMemoizedEmojiListItems({ + emojiContainer: emojiContainer, + toggleReaction: toggleReaction + }, { + useReaction: usingReaction, + logger: logger, + userId: userId, + emojiAllList: emojiAllList + }); // to create message-datasource + + useSetChannel({ + channelUrl: channelUrl, + sdkInit: sdkInit + }, { + messagesDispatcher: messagesDispatcher, + sdk: sdk, + logger: logger + }); // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher + + useHandleChannelEvents({ + currentGroupChannel: currentGroupChannel, + sdkInit: sdkInit, + userId: userId + }, { + messagesDispatcher: messagesDispatcher, + sdk: sdk, + logger: logger + }); + useInitialMessagesFetch({ + currentGroupChannel: currentGroupChannel, + userFilledMessageListQuery: userFilledMessageListQuery + }, { + sdk: sdk, + logger: logger, + messagesDispatcher: messagesDispatcher + }); // handles API calls from withSendbird + + useEffect(function () { + var subScriber = pubSubHandler(channelUrl, pubSub, messagesDispatcher); + return function () { + pubSubHandleRemover(subScriber); + }; + }, [channelUrl, sdkInit]); // to create initial read status + + useSetReadStatus({ + allMessages: allMessages, + currentGroupChannel: currentGroupChannel + }, { + messagesDispatcher: messagesDispatcher, + sdk: sdk, + logger: logger + }); // handling connection breaks + + useHandleReconnect({ + isOnline: isOnline + }, { + logger: logger, + sdk: sdk, + currentGroupChannel: currentGroupChannel, + messagesDispatcher: messagesDispatcher, + userFilledMessageListQuery: userFilledMessageListQuery + }); + var deleteMessage = useDeleteMessageCallback({ + currentGroupChannel: currentGroupChannel, + messagesDispatcher: messagesDispatcher + }, { + logger: logger + }); + var updateMessage = useUpdateMessageCallback({ + currentGroupChannel: currentGroupChannel, + messagesDispatcher: messagesDispatcher, + onBeforeUpdateUserMessage: onBeforeUpdateUserMessage + }, { + logger: logger, + sdk: sdk, + pubSub: pubSub + }); + var resendMessage = useResendMessageCallback({ + currentGroupChannel: currentGroupChannel, + messagesDispatcher: messagesDispatcher + }, { + logger: logger + }); + + var _useSendMessageCallba = useSendMessageCallback({ + currentGroupChannel: currentGroupChannel, + onBeforeSendUserMessage: onBeforeSendUserMessage + }, { + sdk: sdk, + logger: logger, + pubSub: pubSub, + messagesDispatcher: messagesDispatcher + }), + _useSendMessageCallba2 = _slicedToArray(_useSendMessageCallba, 2), + messageInputRef = _useSendMessageCallba2[0], + onSendMessage = _useSendMessageCallba2[1]; + + var _useSendFileMessageCa = useSendFileMessageCallback({ + currentGroupChannel: currentGroupChannel, + onBeforeSendFileMessage: onBeforeSendFileMessage + }, { + sdk: sdk, + logger: logger, + pubSub: pubSub, + messagesDispatcher: messagesDispatcher + }), + _useSendFileMessageCa2 = _slicedToArray(_useSendFileMessageCa, 1), + onSendFileMessage = _useSendFileMessageCa2[0]; + + if (sdkError) { + return React.createElement("div", { + className: "sendbird-conversation" + }, React.createElement(PlaceHolder, { + type: PlaceHolderTypes.WRONG, + retryToConnect: function retryToConnect() { + logger.info('Channel: reconnecting'); + reconnect(); + } + })); + } + + if (!channelUrl) { + return React.createElement("div", { + className: "sendbird-conversation" + }, React.createElement(PlaceHolder, { + type: PlaceHolderTypes.NO_CHANNELS + })); + } + + if (loading) { + return React.createElement("div", { + className: "sendbird-conversation" + }, React.createElement(PlaceHolder, { + type: PlaceHolderTypes.LOADING + })); + } + + if (isInvalid) { + return React.createElement("div", { + className: "sendbird-conversation" + }, React.createElement(PlaceHolder, { + type: PlaceHolderTypes.WRONG + })); + } + + return React.createElement(UserProfileProvider, { + className: "sendbird-conversation", + disableUserProfile: userDefinedDisableUserProfile, + renderUserProfile: userDefinedRenderProfile + }, renderChatHeader ? renderChatHeader({ + channel: currentGroupChannel, + user: user + }) : React.createElement(ChatHeader, { + theme: theme, + currentGroupChannel: currentGroupChannel, + currentUser: user, + onActionClick: onChatHeaderActionClick, + subTitle: currentGroupChannel.members && currentGroupChannel.members.length !== 2, + isActive: false, + isMuted: false + }), isFrozen && React.createElement(FrozenNotification, null), unreadCount > 0 && React.createElement(Notification, { + count: unreadCount, + onClick: function onClick() { + scrollIntoLast('.sendbird-msg--scroll-ref'); // there is no scroll + + if (scrollRef.current.scrollTop === 0) { + currentGroupChannel.markAsRead(); + messagesDispatcher({ + type: MARK_AS_READ + }); + } + }, + time: unreadSince + }), React.createElement(ConversationScroll, { + swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), + userId: userId, + hasMore: hasMore, + disabled: !isOnline, + onScroll: onScrollCallback, + scrollRef: scrollRef, + readStatus: readStatus, + initialized: initialized, + useReaction: usingReaction, + allMessages: allMessages, + emojiAllMap: emojiAllMap, + membersMap: nicknamesMap, + editDisabled: isDisabledBecauseFrozen(currentGroupChannel), + deleteMessage: deleteMessage, + updateMessage: updateMessage, + resendMessage: resendMessage, + toggleReaction: toggleReaction, + emojiContainer: emojiContainer, + renderChatItem: renderChatItem, + useMessageGrouping: useMessageGrouping, + messagesDispatcher: messagesDispatcher, + currentGroupChannel: currentGroupChannel, + memoizedEmojiListItems: memoizedEmojiListItems + }), React.createElement("div", { + className: "sendbird-conversation__footer" + }, React.createElement(MessageInputWrapper$1, { + channel: currentGroupChannel, + user: user, + ref: messageInputRef, + onSendMessage: onSendMessage, + onFileUpload: onSendFileMessage, + renderMessageInput: renderMessageInput, + isOnline: isOnline, + initialized: initialized + }), React.createElement("div", { + className: "sendbird-conversation__typing-indicator" + }, React.createElement(TypingIndicator, { + channelUrl: channelUrl, + sb: sdk, + logger: logger + })), !isOnline && React.createElement(ConnectionStatus, { + sdkInit: sdkInit, + sb: sdk, + logger: logger + }))); +}; +ConversationPanel.propTypes = { + channelUrl: PropTypes.string, + stores: PropTypes.shape({ + sdkStore: PropTypes.shape({ + initialized: PropTypes.bool, + sdk: PropTypes.shape({ + getErrorFirstCallback: PropTypes.func, + removeChannelHandler: PropTypes.func, + GroupChannel: PropTypes.any, + ChannelHandler: PropTypes.any, + addChannelHandler: PropTypes.func, + UserMessageParams: PropTypes.any, + FileMessageParams: PropTypes.any, + getAllEmoji: PropTypes.func, + appInfo: PropTypes.shape({}) + }), + error: PropTypes.bool + }), + userStore: PropTypes.shape({ + user: PropTypes.shape({}) + }) + }).isRequired, + dispatchers: PropTypes.shape({ + reconnect: PropTypes.func + }).isRequired, + config: PropTypes.shape({ + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + userId: PropTypes.string.isRequired, + isOnline: PropTypes.bool.isRequired, + theme: PropTypes.string, + logger: PropTypes.shape({ + info: PropTypes.func, + error: PropTypes.func, + warning: PropTypes.func + }), + pubSub: PropTypes.shape({ + subscribe: PropTypes.func, + publish: PropTypes.func + }) + }).isRequired, + queries: PropTypes.shape({ + messageListParams: PropTypes.shape({ + includeMetaArray: PropTypes.bool, + includeParentMessageText: PropTypes.bool, + includeReaction: PropTypes.bool, + includeReplies: PropTypes.bool, + includeThreadInfo: PropTypes.bool, + limit: PropTypes.number, + reverse: PropTypes.bool, + senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string) + }), + // deprecate in v1.3 + messageListQuery: PropTypes.shape({ + includeMetaArray: PropTypes.bool, + includeParentMessageText: PropTypes.bool, + includeReaction: PropTypes.bool, + includeReplies: PropTypes.bool, + includeThreadInfo: PropTypes.bool, + limit: PropTypes.number, + reverse: PropTypes.bool, + senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string) + }) + }), + onBeforeSendUserMessage: PropTypes.func, + // onBeforeSendUserMessage(text) + onBeforeSendFileMessage: PropTypes.func, + // onBeforeSendFileMessage(File) + onBeforeUpdateUserMessage: PropTypes.func, + renderChatItem: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + renderMessageInput: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + renderChatHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + onChatHeaderActionClick: PropTypes.func, + useReaction: PropTypes.bool, + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + useMessageGrouping: PropTypes.bool +}; +ConversationPanel.defaultProps = { + channelUrl: null, + queries: {}, + onBeforeSendUserMessage: null, + onBeforeSendFileMessage: null, + onBeforeUpdateUserMessage: null, + renderChatItem: null, + renderMessageInput: null, + renderChatHeader: null, + useReaction: true, + disableUserProfile: false, + renderUserProfile: null, + useMessageGrouping: true, + onChatHeaderActionClick: noop$4 +}; +var getEmojiCategoriesFromEmojiContainer$1 = getEmojiCategoriesFromEmojiContainer, + getAllEmojisFromEmojiContainer$1 = getAllEmojisFromEmojiContainer, + getEmojisFromEmojiContainer$1 = getEmojisFromEmojiContainer; +var Conversation = withSendbirdContext(ConversationPanel); + +export default Conversation; +export { ConversationPanel, getAllEmojisFromEmojiContainer$1 as getAllEmojisFromEmojiContainer, getEmojiCategoriesFromEmojiContainer$1 as getEmojiCategoriesFromEmojiContainer, getEmojisFromEmojiContainer$1 as getEmojisFromEmojiContainer }; +//# sourceMappingURL=Channel.js.map diff --git a/dist/esm/Channel.js.map b/dist/esm/Channel.js.map new file mode 100644 index 0000000..9db651b --- /dev/null +++ b/dist/esm/Channel.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Channel.js","sources":["../../../src/smart-components/Conversation/dux/actionTypes.js","../../../src/smart-components/Conversation/types.js","../../../src/smart-components/Conversation/utils.js","../../../src/smart-components/Conversation/dux/initialState.js","../../../src/smart-components/Conversation/dux/reducers.js","../../../src/smart-components/Conversation/hooks/useHandleChannelEvents.js","../../../src/smart-components/Conversation/hooks/useGetChannel.js","../../../src/smart-components/Conversation/hooks/useInitialMessagesFetch.js","../../../src/smart-components/Conversation/hooks/useHandleReconnect.js","../../../src/smart-components/Conversation/hooks/useScrollCallback.js","../../../src/smart-components/Conversation/hooks/useDeleteMessageCallback.js","../../../src/smart-components/Conversation/hooks/useUpdateMessageCallback.js","../../../src/smart-components/Conversation/hooks/useResendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendFileMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSetReadStatus.js","../../../src/ui/ReactionButton/index.jsx","../../../src/smart-components/Conversation/hooks/useMemoizedEmojiListItems.jsx","../../../src/smart-components/Conversation/hooks/useToggleReactionCallback.js","../../../src/ui/MessageStatus/index.jsx","../../../src/ui/ReactionBadge/index.jsx","../../../src/ui/Tooltip/index.jsx","../../../src/ui/TooltipWrapper/index.jsx","../../../src/ui/EmojiReactions/index.jsx","../../../src/ui/Message/memoizedMessageText.jsx","../../../src/hooks/onMouseHover.jsx","../../../src/ui/Message/index.jsx","../../../src/ui/AdminMessage/index.jsx","../../../src/ui/ThumbnailMessage/util.js","../../../src/ui/ThumbnailMessage/index.jsx","../../../src/ui/FileMessage/index.jsx","../../../src/smart-components/Conversation/components/RemoveMessage.jsx","../../../src/ui/UnknownMessage/utils.js","../../../src/ui/UnknownMessage/index.jsx","../../../src/ui/OGMessage/const.js","../../../src/ui/OGMessage/utils.js","../../../src/ui/OGMessage/memoizedMessageText.jsx","../../../src/ui/OGMessage/index.jsx","../../../src/smart-components/Conversation/components/MessageHOC.jsx","../../../src/smart-components/Conversation/components/ConversationScroll.jsx","../../../src/smart-components/Conversation/components/Notification.jsx","../../../src/smart-components/Conversation/components/FrozenNotification.tsx","../../../src/smart-components/Conversation/components/TypingIndicator.jsx","../../../src/smart-components/Conversation/components/MessageInputWrapper.tsx","../../../src/ui/ConnectionStatus/index.jsx","../../../src/ui/ChatHeader/utils.js","../../../src/ui/AutoRefresh/index.jsx","../../../src/ui/ChatHeader/index.jsx","../../../src/smart-components/Conversation/index.jsx"],"sourcesContent":["export const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const RESET_STATE = 'RESET_STATE';\nexport const CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAILURE = 'GET_PREV_MESSAGES_FAILURE';\n\nexport const SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';\nexport const SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';\nexport const SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';\n\nexport const RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';\n\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\n\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const SET_READ_STATUS = 'SET_READ_STATUS';\n","import { isImage, isVideo } from '../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message) => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if ((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return '';\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../../ui/MessageStatus/type';\nimport * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nimport { SendingMessageStatus } from './types';\n\nconst UNDEFINED = 'undefined';\nconst { SUCCEEDED, FAILED, PENDING } = SendingMessageStatus;\n\nexport const scrollIntoLast = (selector, intialTry = 0) => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (channelUrl, pubSub, dispatcher) => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) return subscriber;\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return subscriber;\n};\n\nexport const getParsedStatus = (message, currentGroupChannel) => {\n if (message.requestState === FAILED) {\n return MessageStatusType.FAILED;\n }\n\n if (message.requestState === PENDING) {\n return MessageStatusType.PENDING;\n }\n\n if (message.requestState === SUCCEEDED) {\n if (!currentGroupChannel) {\n return MessageStatusType.SENT;\n }\n\n const unreadCount = currentGroupChannel.getReadReceipt(message);\n if (unreadCount === 0) {\n return MessageStatusType.READ;\n }\n\n const isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0;\n if (isDelivered) {\n return MessageStatusType.DELIVERED;\n }\n\n return MessageStatusType.SENT;\n }\n\n return null;\n};\n\nexport const isOperator = (groupChannel = {}) => {\n const { myRole } = groupChannel;\n return myRole === 'operator';\n};\n\nexport const isDisabledBecauseFrozen = (groupChannel = {}) => {\n const { isFrozen } = groupChannel;\n return isFrozen && !isOperator(groupChannel);\n};\n\nexport const isDisabledBecauseMuted = (groupChannel = {}) => {\n const { myMutedState } = groupChannel;\n return myMutedState === 'muted';\n};\n\nexport const getEmojiCategoriesFromEmojiContainer = (emojiContainer = {}) => (\n emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []\n);\n\nexport const getAllEmojisFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojis = [];\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n allEmojis.push(emojis[emojiIndex]);\n }\n }\n return allEmojis;\n};\n\nexport const getEmojisFromEmojiContainer = (emojiContainer = {}, emojiCategoryId = '') => (\n emojiContainer.emojiCategories\n ? emojiContainer.emojiCategories\n .filter((emojiCategory) => emojiCategory.id === emojiCategoryId)[0].emojis\n : []\n);\n\nexport const getAllEmojisMapFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojisMap = new Map();\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n const { key, url } = emojis[emojiIndex];\n allEmojisMap.set(key, url);\n }\n }\n return allEmojisMap;\n};\n\nexport const getNicknamesMapFromMembers = (members = []) => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const isSameGroup = (message, comparingMessage) => {\n if (\n !message\n || !comparingMessage\n || !message.sender\n || !comparingMessage.sender\n || !message.createdAt\n || !comparingMessage.createdAt\n || !message.sender.userId\n || !comparingMessage.sender.userId\n ) {\n return false;\n }\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage,\n currMessage,\n nextMessage,\n) => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const passUnsuccessfullMessages = (allMessages, newMessage) => {\n const { sendingStatus = UNDEFINED } = newMessage;\n if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) {\n const lastIndexOfSucceededMessage = allMessages\n .map((message) => (\n message.sendingStatus\n || ((message.isAdminMessage && message.isAdminMessage()) ? SUCCEEDED : UNDEFINED)\n ))\n .lastIndexOf(SUCCEEDED);\n if (lastIndexOfSucceededMessage + 1 < allMessages.length) {\n const messages = [...allMessages];\n messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);\n return messages;\n }\n }\n return [\n ...allMessages,\n newMessage,\n ];\n};\n\nexport default getParsedStatus;\n","export default {\n initialized: false,\n loading: false,\n allMessages: [],\n currentGroupChannel: { members: [] },\n hasMore: false,\n lastMessageTimeStamp: 0,\n emojiContainer: {},\n readStatus: {},\n unreadCount: 0,\n unreadSince: null,\n isInvalid: false,\n};\n","import format from 'date-fns/format';\n\nimport * as actionTypes from './actionTypes';\nimport initialState from './initialState';\n\nimport compareIds from '../../../utils/compareIds';\nimport { passUnsuccessfullMessages } from '../utils';\nimport { SendingMessageStatus } from '../types';\n\nconst {\n SUCCEEDED,\n FAILED,\n PENDING,\n} = SendingMessageStatus;\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actionTypes.RESET_STATE:\n return initialState;\n case actionTypes.RESET_MESSAGES:\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMore`\n // the onScroll gets called twice, setting hasMore false prevents this\n hasMore: false,\n allMessages: [],\n };\n case actionTypes.GET_PREV_MESSAGES_START:\n return {\n ...state,\n loading: true,\n };\n case actionTypes.CLEAR_SENT_MESSAGES:\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => (\n m.sendingStatus !== SUCCEEDED\n )),\n ],\n };\n case actionTypes.GET_PREV_MESSAGES_SUCESS: {\n const receivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...action.payload },\n ],\n };\n case actionTypes.SEND_MESSAGEGE_SUCESS: {\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId) ? action.payload : m\n ));\n [...newMessages].sort((a, b) => (\n (\n a.sendingStatus\n && b.sendingStatus\n && a.sendingStatus === SUCCEEDED\n && (\n b.sendingStatus === PENDING\n || b.sendingStatus === FAILED\n )\n ) ? -1 : 1\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SEND_MESSAGEGE_FAILURE: {\n // eslint-disable-next-line no-param-reassign\n action.payload.failed = true;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const { channel, message } = action.payload;\n const { currentGroupChannel = {}, unreadCount, unreadSince } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n if (!compareIds(channel.url, currentGroupChannelUrl)) {\n return state;\n }\n // Excluded overlapping messages\n if (!(state.allMessages.map((msg) => msg.messageId).indexOf(message.messageId) < 0)) {\n return state;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n return {\n ...state,\n unreadCount: unreadCount + 1,\n unreadSince: (unreadCount === 0)\n ? format(new Date(), 'p MMM dd')\n : unreadSince,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.messageId, action.payload.message.messageId)\n ? action.payload.message\n : m\n )),\n };\n case actionTypes.RESEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.MARK_AS_READ:\n return {\n ...state,\n unreadCount: 0,\n unreadSince: null,\n };\n case actionTypes.ON_MESSAGE_DELETED:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n case actionTypes.SET_EMOJI_CONTAINER: {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n }\n case actionTypes.SET_READ_STATUS: {\n return {\n ...state,\n readStatus: action.payload,\n };\n }\n case actionTypes.ON_REACTION_UPDATED: {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n }\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\n\nimport * as messageActions from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\nimport compareIds from '../../../utils/compareIds';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\nfunction useHandleChannelEvents({ currentGroupChannel, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (channelUrl && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n ChannelHandler.onMessageReceived = (channel, message) => {\n if (compareIds(channel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n\n ChannelHandler.onMessageDeleted = (_, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n };\n\n ChannelHandler.onReactionUpdated = (_, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n };\n\n ChannelHandler.onChannelChanged = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelFrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelUnfrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserMuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserUnmuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserBanned = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onOperatorUpdated = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n // Add this channel event handler to the SendBird object.\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [channelUrl, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.GroupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n // this order is important - this mark as read should update the event handler up above\n groupChannel.markAsRead();\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji((emojiContainer_, err) => {\n if (err) {\n logger.error('Channel: Getting emojis failed', err);\n return;\n }\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\nfunction useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams\n && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n });\n }\n }, [channelUrl, userFilledMessageListQuery]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n}) {\n useEffect(() => {\n const wasOffline = !isOnline;\n return () => {\n // state changed from offline to online\n if (wasOffline) {\n logger.info('Refreshing conversation state');\n const { appInfo = {} } = sdk;\n const useReaction = appInfo.isUsingReaction || false;\n\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = useReaction;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n sdk.GroupChannel.getChannel(currentGroupChannel.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.CLEAR_SENT_MESSAGES,\n });\n\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n });\n }\n };\n }, [isOnline]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useScrollCallback({\n currentGroupChannel,\n lastMessageTimeStamp,\n userFilledMessageListQuery,\n}, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMore) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n lastMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMoreMessages = (messages && messages.length > 0);\n const lastMessageTs = hasMoreMessages\n ? messages[0].createdAt\n : null;\n\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore: hasMoreMessages,\n lastMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, lastMessageTimeStamp]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message, cb) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);\n\n // Message is only on local\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (cb) { cb(); }\n return;\n }\n\n // Message is on server\n currentGroupChannel.deleteMessage(message, (err) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);\n if (cb) { cb(err); }\n if (!err) {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n } else {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as topics from '../../../lib/pubSub/topics';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n}, {\n logger,\n pubSub,\n sdk,\n}) {\n return useCallback((messageId, text, cb) => {\n const createParamsDefault = (txt) => {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(text)\n : createParamsDefault(text);\n\n currentGroupChannel.updateUserMessage(messageId, params, (r, e) => {\n logger.info('Channel: Updating message!', params);\n const swapParams = sdk.getErrorFirstCallback();\n let message = r;\n let err = e;\n if (swapParams) {\n message = e;\n err = r;\n }\n if (cb) {\n cb(err, message);\n }\n if (!err) {\n logger.info('Channel: Updating message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentGroupChannel,\n message,\n },\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel: currentGroupChannel,\n },\n );\n } else {\n logger.warning('Channel: Updating message failed!', err);\n }\n });\n }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function'\n && failedMessage.isResendable()\n ) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel\n .resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendMessageCallback({ currentGroupChannel, onBeforeSendUserMessage }, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n () => {\n const text = messageInputRef.current.value;\n const createParamsDefault = (txt) => {\n const message = (typeof txt === 'string') ? txt.trim() : txt;\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefault(text);\n\n logger.info('Channel: Sending message has started', params);\n const pendingMsg = currentGroupChannel.sendUserMessage(params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n if (error) {\n logger.warning('Channel: Sending message failed!', {\n message,\n });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel, onBeforeSendFileMessage,\n}, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((file) => {\n const createParamsDefault = (file_) => {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n };\n\n const createCustomPrams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefault(file);\n\n logger.info('Channel: Uploading file message start!', params);\n const pendingMsg = currentGroupChannel.sendFileMessage(params, (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = response;\n let error = err;\n if (swapParams) {\n message = err;\n error = response;\n }\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', message);\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'), 1000);\n }, [currentGroupChannel, onBeforeSendFileMessage]);\n return [sendMessage];\n}\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\n\nexport default function useSetReadStatus({ allMessages, currentGroupChannel }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (!sdk.ChannelHandler || !currentGroupChannel.url) {\n return () => {};\n }\n // todo: move to reducer?\n const setReadStatus = () => {\n const allReadStatus = allMessages.reduce((accumulator, msg) => {\n if (msg.messageId !== 0) {\n return {\n ...accumulator,\n [msg.messageId]: utils.getParsedStatus(msg, currentGroupChannel),\n };\n }\n return accumulator;\n }, {});\n messagesDispatcher({\n type: messageActionTypes.SET_READ_STATUS,\n payload: allReadStatus,\n });\n };\n if (allMessages.length > 0) {\n setReadStatus();\n }\n\n const channelUrl = currentGroupChannel.url;\n const handler = new sdk.ChannelHandler();\n const handleMessageStatus = (c) => {\n if (channelUrl === c.url) {\n setReadStatus();\n }\n };\n handler.onDeliveryReceiptUpdated = handleMessageStatus;\n handler.onReadReceiptUpdated = handleMessageStatus;\n // Add this channel event handler to the SendBird object.\n const handlerId = uuidv4();\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.addChannelHandler(handlerId, handler);\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.removeChannelHandler(handlerId);\n }\n };\n }, [allMessages, currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst ReactionButton = React.forwardRef((props, ref) => {\n const {\n children,\n width,\n height,\n onClick,\n selected,\n className,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n return (\n onClick(e)}\n role=\"button\"\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n
\n {children}\n
\n \n );\n});\n\nReactionButton.propTypes = {\n children: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n selected: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nReactionButton.defaultProps = {\n selected: false,\n width: '36px',\n height: '36px',\n onClick: () => { },\n className: '',\n};\n\nexport default ReactionButton;\n","import React, { useMemo } from 'react';\n\nimport { EmojiListItems } from '../../../ui/ContextMenu';\nimport ReactionButton from '../../../ui/ReactionButton';\nimport ImageRenderer from '../../../ui/ImageRenderer';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nexport default function useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n}, {\n useReaction,\n logger,\n userId,\n emojiAllList,\n}) {\n return useMemo(() => ({\n parentRef,\n parentContainRef,\n message,\n closeDropdown,\n spaceFromTrigger = {},\n }) => {\n if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {\n logger.warning('Channel: Invalid Params in memoizedEmojiListItems');\n return null;\n }\n\n return (\n \n {\n emojiAllList.map((emoji) => {\n const reactedReaction = message.reactions\n .filter((reaction) => reaction.key === emoji.key)[0];\n const isReacted = reactedReaction\n ? !(reactedReaction.userIds.indexOf(userId) < 0)\n : false;\n return (\n {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n \n }\n />\n \n );\n })\n }\n \n );\n }, [emojiContainer, toggleReaction]);\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Loader from '../Loader';\nimport MessageStatusType from './type';\n\nimport { getMessageCreatedAt } from '../../utils/utils';\n\nconst MessageStatusTypes = MessageStatusType;\nexport { MessageStatusTypes };\nexport default function MessageStatus({\n message,\n status,\n className,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n const label = () => {\n switch (status) {\n case MessageStatusType.FAILED:\n case MessageStatusType.PENDING: {\n return null;\n }\n case MessageStatusType.SENT:\n case MessageStatusType.DELIVERED:\n case MessageStatusType.READ: {\n return (\n \n {getMessageCreatedAt(message)}\n \n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n \n \n \n ),\n SENT: ,\n DELIVERED: ,\n READ: ,\n FAILED: ,\n };\n\n return (\n
\n {icon[status]}\n
\n {label(status)}\n
\n );\n}\n\nMessageStatus.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nMessageStatus.defaultProps = {\n message: null,\n status: '',\n className: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst ReactionBadge = React.forwardRef((props, ref) => {\n const {\n className,\n children,\n count,\n selected,\n isAdd,\n onClick,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (selected && !isAdd) {\n injectingClassName.unshift('sendbird-reaction-badge--selected');\n } else if (isAdd) {\n injectingClassName.push('sendbird-reaction-badge--is-add');\n } else {\n injectingClassName.unshift('sendbird-reaction-badge');\n }\n\n return (\n \n
\n
\n {children}\n
\n \n
\n \n );\n});\n\nReactionBadge.propTypes = {\n children: PropTypes.element.isRequired,\n count: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isAdd: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nReactionBadge.defaultProps = {\n className: '',\n count: '',\n selected: false,\n isAdd: false,\n onClick: () => { },\n};\n\nexport default ReactionBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label from '../Label';\n\nconst CLASS_NAME = 'sendbird-tooltip';\n\nexport default function Tooltip({\n className,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n
\n \n {children}\n \n
\n );\n}\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n};\n\nTooltip.defaultProps = {\n className: '',\n children: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-tooltip-wrapper';\nconst SPACE_FROM_TRIGGER = 8;\n\nexport default function TooltipWrapper({\n className,\n children,\n hoverTooltip,\n // clickTooltip can be added later\n}) {\n const injectingClassName = Array.isArray(className)\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n const [showHoverTooltip, setShowHoverTooltip] = useState(false);\n const childrenRef = useRef(null);\n\n return (\n { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n \n {children}\n \n {\n showHoverTooltip && (\n \n \n \n {hoverTooltip}\n \n \n \n )\n }\n \n );\n}\n\nTooltipWrapper.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n hoverTooltip: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n};\nTooltipWrapper.defaultProps = {\n className: '',\n};\n","import React, { useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ReactionBadge from '../ReactionBadge';\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ContextMenu from '../ContextMenu';\nimport Tooltip from '../Tooltip';\nimport TooltipWrapper from '../TooltipWrapper';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function EmojiReactions({\n className,\n userId,\n message,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-emoji-reactions');\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const imageWidth = '20px';\n const imageHeight = '20px';\n const emojiReactionAddRef = useRef(null);\n const { reactions = [] } = message;\n const messageReactions = reactions;\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n {\n messageReactions && (\n messageReactions.map((reaction) => {\n const { userIds = [] } = reaction;\n const emojiUrl = emojiAllMap.get(reaction.key) || '';\n const reactedUserCount = userIds.length;\n const reactedByMe = !(userIds.indexOf(userId) < 0);\n const nicknames = userIds\n .filter((currentUserId) => currentUserId !== userId)\n .map((currentUserId) => (\n membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER\n ));\n const stringSetForMe = (nicknames.length > 0)\n ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU;\n return (\n 0 && (\n \n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n \n \n )\n }\n >\n toggleReaction(message, reaction.key, reactedByMe)}\n >\n \n )}\n />\n \n \n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n );\n}\n\nEmojiReactions.propTypes = {\n userId: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n message: PropTypes.shape({\n reactions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\nEmojiReactions.defaultProps = {\n className: '',\n membersMap: new Map(),\n userId: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport uuidv4 from '../../utils/uuid';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(/\\r/);\n const matchedMessage = splitMessage\n .map((word) => (word !== '' ? word :
));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import { useEffect } from 'react';\n\nconst MOUSE_ENTER = 'mouseenter';\nconst MOUSE_LEAVE = 'mouseleave';\n\nconst useMouseHover = ({\n ref,\n setHover,\n}) => {\n const handleMouseOver = () => {\n if (ref.current) {\n setHover(true);\n }\n };\n const handleMouseOut = () => {\n if (ref.current) {\n setHover(false);\n }\n };\n\n useEffect(() => {\n const { current } = ref;\n current.addEventListener(MOUSE_ENTER, handleMouseOver);\n current.addEventListener(MOUSE_LEAVE, handleMouseOut);\n return () => {\n current.removeEventListener(MOUSE_ENTER, handleMouseOver);\n current.removeEventListener(MOUSE_LEAVE, handleMouseOut);\n };\n });\n};\n\nexport default useMouseHover;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport UserProfile from '../UserProfile';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport MessageStatus from '../MessageStatus';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n} from './utils';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function Message(props) {\n const {\n isByMe,\n userId,\n message,\n className,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n } = props;\n\n if (!message) return null;\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n injectingClassName.push(`sendbird-message${isByMe ? '--outgoing' : '--incoming'}`);\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-user-message-word',\n });\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nMessage.propTypes = {\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showEdit: PropTypes.func,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n userId: '',\n resendMessage: noop,\n className: '',\n showEdit: noop,\n showRemove: noop,\n status: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUserMessage({\n userId,\n message,\n showEdit,\n disabled,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n \n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n { showRemove(true); }}\n // onResend={() => resendMessage(message)}\n // duplicated and should replace to more\n />\n
\n )\n }\n
\n
\n
\n
\n \n \n \n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n \n \n );\n}\n\nfunction IncomingUserMessage({\n userId,\n message,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n // showProfile && ()\n }\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-user-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n
\n \n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n
\n
\n
\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nIncomingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingUserMessage.defaultProps = {\n message: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nOutgoingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n disabled: PropTypes.bool,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUserMessage.defaultProps = {\n message: {},\n resendMessage: noop,\n showEdit: noop,\n showRemove: noop,\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function AdminMessage({\n className,\n message,\n}) {\n if (!message.messageType || message.messageType !== 'admin') { // change to use message.isAdminMessage()\n return null;\n }\n\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n \n
\n );\n}\n\nAdminMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nAdminMessage.defaultProps = {\n message: {},\n className: '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n getMessageCreatedAt,\n getIsSentFromStatus,\n};\n","import React, { useContext, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport {\n getMessageCreatedAt,\n getIsSentFromStatus,\n} from './util';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n isImage,\n isVideo,\n unSupported,\n} from '../FileViewer/types';\nimport {\n getSenderName,\n getSenderProfileUrl,\n} from '../../utils/utils';\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst noop = () => { };\n\nconst OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message';\nconst INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function ThumbnailMessage({\n message = {},\n userId,\n disabled,\n isByMe,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n return (\n isByMe\n ? (\n \n )\n : (\n \n )\n );\n}\n\nexport function OutgoingThumbnailMessage({\n message = {},\n userId,\n disabled,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n isMessageSent && showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n )\n }\n
\n
\n \n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n role=\"button\"\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n \n \n \n );\n}\n\nexport function IncomingThumbnailMessage({\n message = {},\n userId,\n onClick,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const reactionAddRef = useRef(null);\n const avatarRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n !chainTop && (\n \n {getSenderName(message) || ''}\n \n )\n }\n
\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_THUMBNAIL_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string,\n resendMessage: PropTypes.func,\n status: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n showRemove: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\nThumbnailMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n resendMessage: noop,\n onClick: noop,\n showRemove: noop,\n status: '',\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nOutgoingThumbnailMessage.defaultProps = {\n status: '',\n};\n\nIncomingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nIncomingThumbnailMessage.defaultProps = {\n status: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\n\nimport { getSenderProfileUrl, getSenderName, getMessageCreatedAt } from '../../utils/utils';\nimport {\n truncate,\n getIsSentFromStatus,\n} from './utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst MAX_TRUNCATE_LENGTH = 40;\nconst GROUPAING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\nconst noop = () => { };\n\nfunction checkFileType(fileUrl) {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport function OutgoingFileMessage({\n message,\n userId,\n status,\n showRemove,\n disabled,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n url,\n } = message;\n const openFileUrl = () => { window.open(url); };\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n const showEmojiReactions = isMessageSent && useReaction && message.reactions\n && (message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n {\n checkFileType(url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n \n \n );\n}\n\nexport function IncomingFileMessage({\n message,\n userId,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const openFileUrl = () => { window.open(message.url); };\n const messageRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-file-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n {\n checkFileType(message.url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n \n )\n }\n
\n
\n
\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n \n \n );\n}\n\nOutgoingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingFileMessage.defaultProps = {\n status: '',\n showRemove: noop,\n resendMessage: noop,\n message: {},\n userId: '',\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nIncomingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingFileMessage.defaultProps = {\n message: {},\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nconst MessageSwitch = ({\n message,\n userId,\n disabled,\n isByMe,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) => (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n);\n\n\nMessageSwitch.propTypes = {\n message: PropTypes.shape({}),\n userId: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessageSwitch.defaultProps = {\n message: {},\n isByMe: false,\n disabled: false,\n showRemove: noop,\n resendMessage: noop,\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nexport default MessageSwitch;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nconst RemoveMessage = (props) => {\n const {\n onCloseModal,\n onDeleteMessage,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n );\n};\n\nRemoveMessage.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onDeleteMessage: PropTypes.func.isRequired,\n};\n\nexport default RemoveMessage;\n","import format from 'date-fns/format';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport default {\n getMessageCreatedAt,\n};\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst CLASS_NAME = 'sendbird-unknown-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function UnknownMessage({\n message,\n isByMe,\n status,\n className,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n injectingClassName.push(`${CLASS_NAME}${isByMe ? '--outgoing' : '--incoming'}`);\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n isByMe: PropTypes.bool,\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nUnknownMessage.defaultProps = {\n isByMe: false,\n status: '',\n className: '',\n showRemove: () => { },\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUnknownMessage({\n message,\n status,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-outgoing-unknown-message';\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { showRemove(true); closeDropdown(); }}\n >\n Delete\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n \n \n );\n}\n\nfunction IncomingUnknownMessage({\n message,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-incoming-unknown-message';\n const { sender } = message;\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${className}__left__sender-profile-image`}\n src={sender.profileUrl}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n \n {sender.nickname || stringSet.NO_NAME}\n \n )\n }\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n
\n {\n !chainBottom && (\n \n {utils.getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nOutgoingUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n status: PropTypes.string.isRequired,\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUnknownMessage.defaultProps = {\n showRemove: () => { },\n};\n\nIncomingUnknownMessage.propTypes = {\n message: PropTypes.shape({\n sender: PropTypes.shape({\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }).isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","export const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const OG_MESSAGE = 'sendbird-og-message';\nexport const OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message';\nexport const INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message';\nexport const generateMockMessage = (process) => {\n const message = {\n message: 'go to this link sendbird.com it will be usefull to you!!',\n ogMetaData: {\n title: 'This is the TITLE',\n description: 'I\\'m description I\\'m description I\\'m description I\\'m description ',\n url: 'https://sendbird.com/',\n defaultImage: {\n url: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n alt: 'test',\n },\n },\n sender: {\n profileUrl: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n nickname: 'Hoonying',\n },\n createdAt: 2000000,\n };\n if (process && typeof process === 'function') {\n return process(message);\n }\n return message;\n};\n\nexport default {\n URL_REG,\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n generateMockMessage,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const copyToClipboard = (text) => {\n try {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path\n // to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const checkOGIsEnalbed = (message) => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n\nexport default {\n getSenderName,\n createUrlTester,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { createUrlTester } from './utils';\nimport { URL_REG } from './const';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst WORD_COLOR = LabelColors.ONBACKGROUND_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\nconst isUrl = createUrlTester(URL_REG);\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n} from './const';\nimport {\n getSenderName,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n} from './utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport './index.scss';\n\nimport UserProfile from '../UserProfile';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport Avatar from '../Avatar/index';\n\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst GROUPING_PADDING = '1px';\nconst NORAML_PADDING = '8px';\n\nconst OGMessageSwitch = ({\n isByMe,\n userId,\n status,\n message,\n disabled,\n showEdit,\n chainTop,\n className,\n membersMap,\n showRemove,\n useReaction,\n emojiAllMap,\n chainBottom,\n resendMessage,\n toggleReaction,\n memoizedEmojiListItems,\n}) => {\n const { ogMetaData } = message;\n const injectingClassName = Array.isArray(className) ? className : [className];\n\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n });\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n};\n\nfunction OutgoingOGMessage(props) {\n const {\n status,\n userId,\n message,\n disabled,\n openLink,\n showEdit,\n chainTop,\n showRemove,\n membersMap,\n chainBottom,\n emojiAllMap,\n useReaction,\n resendMessage,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n \n \n );\n}\n\nfunction IncomingOGMessage(props) {\n const {\n userId,\n message,\n openLink,\n chainTop,\n membersMap,\n chainBottom,\n useReaction,\n emojiAllMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_OG_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n \n )}\n />\n
\n
\n \n \n );\n}\n\nexport default OGMessageSwitch;\n\nconst noop = () => { };\n\nOGMessageSwitch.propTypes = {\n isByMe: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n useReaction: PropTypes.bool.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n status: PropTypes.string,\n disabled: PropTypes.bool,\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n toggleReaction: PropTypes.func,\n membersMap: PropTypes.instanceOf(Map),\n emojiAllMap: PropTypes.instanceOf(Map),\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nOGMessageSwitch.defaultProps = {\n className: '',\n status: '',\n disabled: false,\n showEdit: noop,\n showRemove: noop,\n resendMessage: noop,\n toggleReaction: noop,\n membersMap: new Map(),\n emojiAllMap: new Map(),\n memoizedEmojiListItems: noop,\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingOGMessage.propTypes = {\n status: PropTypes.string,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n isResendable: PropTypes.func,\n errorCode: PropTypes.number,\n }).isRequired,\n disabled: PropTypes.bool.isRequired,\n openLink: PropTypes.func.isRequired,\n showEdit: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingOGMessage.defaultProps = {\n status: '',\n};\n\nIncomingOGMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n openLink: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport format from 'date-fns/format';\n\nimport Message from '../../../ui/Message';\nimport AdminMessage from '../../../ui/AdminMessage';\nimport ThumbnailMessage from '../../../ui/ThumbnailMessage';\nimport FileMessage from '../../../ui/FileMessage';\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\nimport RemoveMessageModal from './RemoveMessage';\nimport UnknownMessage from '../../../ui/UnknownMessage';\nimport OGMessage from '../../../ui/OGMessage';\n\nimport { MessageTypes, getMessageType } from '../types';\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n status,\n resendMessage,\n useReaction,\n chainTop,\n chainBottom,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const { sender = {} } = message;\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n const isByMe = (userId === sender.userId)\n || (message.requestState === 'pending')\n || (message.requestState === 'failed');\n\n if (showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: ,\n [MessageTypes.FILE]: (\n \n ),\n [MessageTypes.OG]: (\n \n ),\n [MessageTypes.THUMBNAIL]: (\n \n ),\n [MessageTypes.USER]: (\n \n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={() => {\n deleteMessage(message, () => {\n setShowFileViewer(false);\n });\n }}\n isByMe={isByMe}\n />\n )\n }\n {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n }\n
\n );\n}\n\nMessageHoc.propTypes = {\n userId: PropTypes.string,\n message: PropTypes.shape({\n isFileMessage: PropTypes.func,\n isAdminMessage: PropTypes.func,\n isUserMessage: PropTypes.func,\n isDateSeperator: PropTypes.func,\n // should be a number, but there's a bug in SDK shich returns string\n messageId: PropTypes.number,\n type: PropTypes.string,\n createdAt: PropTypes.number,\n message: PropTypes.string,\n requestState: PropTypes.string,\n messageType: PropTypes.string,\n sender: PropTypes.shape({ userId: PropTypes.string }),\n ogMetaData: PropTypes.shape({}),\n }),\n hasSeperator: PropTypes.bool,\n disabled: PropTypes.bool,\n editDisabled: PropTypes.bool,\n deleteMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nMessageHoc.defaultProps = {\n userId: '',\n editDisabled: false,\n message: {},\n hasSeperator: false,\n disabled: false,\n status: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport './conversation-scroll.scss';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nimport MessageHOC from './MessageHOC';\nimport {\n getParsedStatus,\n compareMessagesForGrouping,\n} from '../utils';\n\nexport default class ConversationScroll extends Component {\n onScroll = (e) => {\n const {\n scrollRef,\n hasMore,\n messagesDispatcher,\n onScroll,\n currentGroupChannel,\n } = this.props;\n\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const first = nodes[0];\n onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n first.scrollIntoView();\n }\n });\n }\n\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n }\n\n render() {\n const {\n userId,\n disabled,\n scrollRef,\n readStatus,\n membersMap,\n initialized,\n allMessages,\n useReaction,\n emojiAllMap,\n editDisabled,\n deleteMessage,\n updateMessage,\n resendMessage,\n renderChatItem,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n } = this.props;\n return (\n
\n \n
\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n initialized\n && allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n if (renderChatItem) {\n return (\n \n {\n renderChatItem({\n message: m,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n })\n }\n
\n );\n }\n\n return (\n \n );\n },\n )\n }\n
\n
\n \n );\n }\n}\n\nConversationScroll.propTypes = {\n // https://stackoverflow.com/a/52646941\n scrollRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}),\n ]),\n }).isRequired,\n hasMore: PropTypes.bool,\n messagesDispatcher: PropTypes.func.isRequired,\n onScroll: PropTypes.func,\n initialized: PropTypes.bool,\n editDisabled: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n allMessages: PropTypes.arrayOf(PropTypes.shape({\n createdAt: PropTypes.number,\n })).isRequired,\n deleteMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n readStatus: PropTypes.shape({}).isRequired,\n currentGroupChannel: PropTypes.shape({\n markAsRead: PropTypes.func,\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n renderChatItem: PropTypes.element,\n useReaction: PropTypes.bool,\n emojiContainer: PropTypes.shape({}),\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n useMessageGrouping: PropTypes.bool,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nConversationScroll.defaultProps = {\n hasMore: false,\n editDisabled: false,\n disabled: false,\n initialized: false,\n userId: '',\n renderChatItem: null,\n onScroll: null,\n useReaction: true,\n emojiContainer: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n useMessageGrouping: true,\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './notification.scss';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default function Notification({\n count,\n time,\n onClick,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const timeArray = time.split(' ');\n timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON);\n return (\n // eslint-disable-next-line\n
\n \n \n
\n );\n}\n\nNotification.propTypes = {\n count: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n time: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nNotification.defaultProps = {\n count: 0,\n time: '',\n};\n","import React, { useContext } from 'react';\n\nimport './notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\n\nconst TypingIndicatorText = ({ members }) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nfunction TypingIndicator({ channelUrl, sb, logger }) {\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState([]);\n\n useEffect(() => {\n if (sb && sb.ChannelHandler) {\n sb.removeChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new sb.ChannelHandler();\n // there is a possible warning in here - setState called after unmount\n handler.onTypingStatusUpdated = (groupChannel) => {\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n const members = groupChannel.getTypingMembers();\n if (groupChannel.url === channelUrl) {\n setTypingMembers(members);\n }\n };\n sb.addChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb && sb.removeChannelHandler) {\n sb.removeChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n \n );\n}\n\nTypingIndicator.propTypes = {\n channelUrl: PropTypes.string.isRequired,\n sb: PropTypes.shape({\n ChannelHandler: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n addChannelHandler: PropTypes.func,\n }).isRequired,\n logger: PropTypes.shape({\n info: PropTypes.func,\n }).isRequired,\n};\n\nexport default TypingIndicator;\n","// Logic required to handle message input rendering\n\nimport React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\n\nimport { RenderMessageInputProps } from '../../../index';\nimport * as utils from '../utils.js';\n\nimport MessageInput from '../../../ui/MessageInput';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: Sendbird.GroupChannel;\n user: Sendbird.User;\n isOnline: boolean;\n initialized: boolean;\n onSendMessage(): void;\n onFileUpload(): void;\n renderMessageInput(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n isOnline,\n initialized,\n}: Props, ref: React.RefObject): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // custom message\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n {\n channel.startTyping();\n }}\n onSendMessage={onSendMessage}\n onFileUpload={onFileUpload}\n />\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\nimport './index.scss';\n\nfunction ConnectionStatus() {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n );\n}\n\nexport default ConnectionStatus;\n","import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict';\nimport { LabelStringSet } from '../Label';\n\nexport const prettyDate = (date) => formatDistanceToNowStrict(date, { addSuffix: true });\n\nexport const getOthersLastSeenAt = (channel) => {\n if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) {\n return '';\n }\n const lastSeenList = [...Object.values(channel.getReadStatus())];\n const lastSeenAt = lastSeenList.length > 0\n ? lastSeenList[0].last_seen_at\n : 0;\n if (lastSeenAt === 0) {\n return '';\n }\n return prettyDate(lastSeenAt);\n};\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default function AutoRefresh({\n repeatFunc,\n}) {\n const [label, setLabel] = useState(repeatFunc());\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (label !== repeatFunc()) {\n setLabel(repeatFunc());\n }\n }, 10000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (
{label}
);\n}\n\nAutoRefresh.propTypes = {\n repeatFunc: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport AutoRefresh from '../AutoRefresh';\nimport ChannelAvatar from '../ChannelAvatar/index';\n\nexport default function ChatHeader(props) {\n const {\n currentGroupChannel,\n currentUser,\n title,\n subTitle,\n isActive,\n isMuted,\n onActionClick,\n theme,\n } = props;\n const { userId } = currentUser;\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n \n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n \n {\n (typeof isActive === 'string' && isActive === 'true') || (typeof isActive === 'boolean' && isActive)\n ?
\n : null\n }\n \n {\n subTitle\n || utils.getOthersLastSeenAt(currentGroupChannel)} />\n }\n \n
\n
\n {\n (typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted)\n ? \n : null\n }\n \n \n \n
\n
\n );\n}\n\nChatHeader.propTypes = {\n currentGroupChannel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n }),\n theme: PropTypes.string,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n title: PropTypes.string,\n subTitle: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n isActive: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isMuted: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n onActionClick: PropTypes.func,\n};\n\nChatHeader.defaultProps = {\n currentGroupChannel: {},\n title: '',\n theme: 'light',\n subTitle: '',\n isActive: false,\n isMuted: false,\n currentUser: {},\n onActionClick: () => { },\n};\n","import React, {\n useEffect,\n useRef,\n useReducer,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as messageActionTypes from './dux/actionTypes';\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useSetReadStatus from './hooks/useSetReadStatus';\nimport useMemoizedEmojiListItems from './hooks/useMemoizedEmojiListItems';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\n\nimport ConversationScroll from './components/ConversationScroll';\nimport Notification from './components/Notification';\nimport FrozenNotification from './components/FrozenNotification';\nimport TypingIndicator from './components/TypingIndicator';\nimport MessageInputWrapper from './components/MessageInputWrapper';\nimport ConnectionStatus from '../../ui/ConnectionStatus';\nimport ChatHeader from '../../ui/ChatHeader';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\n\nconst noop = () => { };\n\nexport const ConversationPanel = (props) => {\n const {\n channelUrl,\n stores: { sdkStore, userStore },\n config: {\n userId,\n logger,\n pubSub,\n isOnline,\n theme,\n },\n dispatchers: {\n reconnect,\n },\n queries = {},\n useReaction,\n renderChatItem,\n renderChatHeader,\n renderUserProfile,\n disableUserProfile,\n renderMessageInput,\n useMessageGrouping,\n onChatHeaderActionClick,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n } = props;\n const { sdk } = sdkStore;\n const { config } = props;\n const sdkError = sdkStore.error;\n const sdkInit = sdkStore.initialized;\n const { user } = userStore;\n\n if (queries.messageListQuery) {\n // eslint-disable-next-line no-console\n console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead');\n }\n\n const userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery;\n\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n loading,\n hasMore,\n initialized,\n unreadCount,\n unreadSince,\n isInvalid,\n currentGroupChannel = {},\n lastMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n const { isFrozen, isBroadcast } = currentGroupChannel;\n const { appInfo = {} } = sdk;\n const usingReaction = (\n (appInfo.isUsingReaction && !isBroadcast) || useReaction || false\n );\n\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n\n const emojiAllList = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisFromEmojiContainer(emojiContainer)\n : []\n ), [emojiContainer]);\n\n const nicknamesMap = useMemo(() => (\n usingReaction\n ? utils.getNicknamesMapFromMembers(currentGroupChannel.members)\n : new Map()\n ), [currentGroupChannel.members]);\n\n const onScrollCallback = useScrollCallback({\n currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery,\n }, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n const memoizedEmojiListItems = useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n }, {\n useReaction: usingReaction,\n logger,\n userId,\n emojiAllList,\n });\n\n // to create message-datasource\n useGetChannel(\n { channelUrl, sdkInit },\n { messagesDispatcher, sdk, logger },\n );\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n { currentGroupChannel, sdkInit, userId },\n { messagesDispatcher, sdk, logger },\n );\n\n useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subScriber = utils.pubSubHandler(channelUrl, pubSub, messagesDispatcher);\n return () => {\n utils.pubSubHandleRemover(subScriber);\n };\n }, [channelUrl, sdkInit]);\n\n // to create initial read status\n useSetReadStatus(\n { allMessages, currentGroupChannel },\n { messagesDispatcher, sdk, logger },\n );\n\n // handling connection breaks\n useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n });\n\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage },\n { logger, sdk, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, onSendMessage] = useSendMessageCallback(\n { currentGroupChannel, onBeforeSendUserMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n const [onSendFileMessage] = useSendFileMessageCallback(\n { currentGroupChannel, onBeforeSendFileMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n\n if (sdkError) {\n return (\n
\n {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n
\n );\n }\n if (!channelUrl) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n return (\n \n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n \n )\n }\n {\n isFrozen && (\n \n )\n }\n {\n unreadCount > 0 && (\n {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n // there is no scroll\n if (scrollRef.current.scrollTop === 0) {\n currentGroupChannel.markAsRead();\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n }\n }}\n time={unreadSince}\n />\n )\n }\n \n
\n \n
\n \n
\n {\n !isOnline && (\n \n )\n }\n
\n \n );\n};\n\nConversationPanel.propTypes = {\n channelUrl: PropTypes.string,\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n GroupChannel: PropTypes.any,\n ChannelHandler: PropTypes.any,\n addChannelHandler: PropTypes.func,\n UserMessageParams: PropTypes.any,\n FileMessageParams: PropTypes.any,\n getAllEmoji: PropTypes.func,\n appInfo: PropTypes.shape({}),\n }),\n error: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n reconnect: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n userId: PropTypes.string.isRequired,\n isOnline: PropTypes.bool.isRequired,\n theme: PropTypes.string,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n messageListParams: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n // deprecate in v1.3\n messageListQuery: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeSendUserMessage: PropTypes.func, // onBeforeSendUserMessage(text)\n onBeforeSendFileMessage: PropTypes.func, // onBeforeSendFileMessage(File)\n onBeforeUpdateUserMessage: PropTypes.func,\n renderChatItem: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderMessageInput: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderChatHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChatHeaderActionClick: PropTypes.func,\n useReaction: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n useMessageGrouping: PropTypes.bool,\n};\n\nConversationPanel.defaultProps = {\n channelUrl: null,\n queries: {},\n onBeforeSendUserMessage: null,\n onBeforeSendFileMessage: null,\n onBeforeUpdateUserMessage: null,\n renderChatItem: null,\n renderMessageInput: null,\n renderChatHeader: null,\n useReaction: true,\n disableUserProfile: false,\n renderUserProfile: null,\n useMessageGrouping: true,\n onChatHeaderActionClick: noop,\n};\n\nexport const {\n getEmojiCategoriesFromEmojiContainer,\n getAllEmojisFromEmojiContainer,\n getEmojisFromEmojiContainer,\n} = utils;\n\nexport default withSendbirdContext(ConversationPanel);\n"],"names":["RESET_MESSAGES","RESET_STATE","CLEAR_SENT_MESSAGES","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","SEND_MESSAGEGE_START","SEND_MESSAGEGE_SUCESS","SEND_MESSAGEGE_FAILURE","RESEND_MESSAGEGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","SET_READ_STATUS","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","getMessageType","message","isUserMessage","messageType","ogMetaData","isAdminMessage","isFileMessage","isImage","type","isVideo","UNDEFINED","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","pubSubHandleRemover","subscriber","forEach","s","remove","pubSubHandler","channelUrl","pubSub","dispatcher","Map","subscribe","set","topics","msg","channel","url","channelActions","payload","fromSelector","messageId","getParsedStatus","currentGroupChannel","requestState","MessageStatusType","SENT","unreadCount","getReadReceipt","READ","isDelivered","getDeliveryReceipt","DELIVERED","isOperator","groupChannel","myRole","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","myMutedState","getEmojiCategoriesFromEmojiContainer","emojiContainer","emojiCategories","getAllEmojisFromEmojiContainer","allEmojis","categoryIndex","emojis","emojiIndex","push","getEmojisFromEmojiContainer","emojiCategoryId","filter","emojiCategory","id","getAllEmojisMapFromEmojiContainer","allEmojisMap","key","getNicknamesMapFromMembers","members","nicknamesMap","memberIndex","userId","nickname","getMessageCreatedAt","format","createdAt","isSameGroup","comparingMessage","sender","sendingStatus","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","passUnsuccessfullMessages","allMessages","newMessage","lastIndexOfSucceededMessage","map","lastIndexOf","messages","splice","initialized","loading","hasMore","lastMessageTimeStamp","readStatus","unreadSince","isInvalid","reducer","state","action","actionTypes","initialState","m","receivedMessages","stateChannel","stateChannelUrl","actionChannelUrl","filteredAllMessages","find","compareIds","newMessages","reqId","sort","a","b","failed","currentGroupChannelUrl","indexOf","Date","applyReactionEvent","useHandleChannelEvents","sdkInit","messagesDispatcher","sdk","logger","useEffect","messageReceiverId","uuidv4","ChannelHandler","info","onMessageReceived","messageActions","onMessageUpdated","onMessageDeleted","_","onReactionUpdated","reactionEvent","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onUserMuted","onUserUnmuted","onUserBanned","onOperatorUpdated","addChannelHandler","removeChannelHandler","useSetChannel","GroupChannel","getChannel","then","messageActionTypes","markAsRead","catch","e","warning","getAllEmoji","emojiContainer_","err","useInitialMessagesFetch","userFilledMessageListQuery","MessageListParams","getMessagesByMessageId","messageListParams","prevResultSize","isInclusive","includeReplies","includeReaction","Object","keys","getMessagesByTimestamp","getTime","finally","utils","useHandleReconnect","isOnline","wasOffline","appInfo","useReaction","isUsingReaction","lastMessageTime","useScrollCallback","useCallback","cb","hasMoreMessages","lastMessageTs","useDeleteMessageCallback","deleteMessage","useUpdateMessageCallback","onBeforeUpdateUserMessage","text","createParamsDefault","txt","params","UserMessageParams","createCustomPrams","updateUserMessage","r","swapParams","getErrorFirstCallback","publish","useResendMessageCallback","failedMessage","file","isResendable","resendUserMessage","resendFileMessage","console","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","useRef","sendMessage","current","value","trim","pendingMsg","sendUserMessage","res","useSendFileMessageCallback","onBeforeSendFileMessage","file_","FileMessageParams","sendFileMessage","response","localUrl","URL","createObjectURL","useSetReadStatus","setReadStatus","allReadStatus","reduce","accumulator","handler","handleMessageStatus","c","onDeliveryReceiptUpdated","onReadReceiptUpdated","handlerId","ReactionButton","React","forwardRef","props","ref","children","width","height","onClick","selected","className","injectingClassName","Array","isArray","join","slice","propTypes","PropTypes","element","isRequired","func","bool","oneOfType","number","string","arrayOf","defaultProps","useMemoizedEmojiListItems","toggleReaction","emojiAllList","useMemo","parentRef","parentContainRef","closeDropdown","spaceFromTrigger","emoji","reactedReaction","reactions","reaction","isReacted","userIds","IconTypes","EMOJI_FAILED","useToggleReactionCallback","deleteReaction","addReaction","MessageStatus","status","label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_2","icon","SPINNER","IconColors","ERROR","objectOf","array","object","ReactionBadge","count","isAdd","unshift","ONBACKGROUND_1","CLASS_NAME","Tooltip","SPACE_FROM_TRIGGER","TooltipWrapper","hoverTooltip","useState","showHoverTooltip","setShowHoverTooltip","childrenRef","bottom","left","offsetWidth","EmojiReactions","emojiAllMap","membersMap","memoizedEmojiListItems","MemoizedEmojiListItems","imageWidth","imageHeight","emojiReactionAddRef","messageReactions","useContext","LocalizationContext","stringSet","emojiUrl","get","reactedUserCount","reactedByMe","nicknames","currentUserId","TOOLTIP__UNKOWN_USER","stringSetForMe","TOOLTIP__AND_YOU","TOOLTIP__YOU","size","toggleDropdown","ON_BACKGROUND_3","EMOJI_REACTIONS_ADD","y","shape","instanceOf","WORD_TYPOGRAPHY","BODY_1","EDITED_COLOR","useMemoizedMessageText","updatedAt","splitMessage","split","matchedMessage","word","MESSAGE_EDITED","MOUSE_ENTER","MOUSE_LEAVE","useMouseHover","setHover","handleMouseOver","handleMouseOut","addEventListener","removeEventListener","noop","GROUPING_PADDING","NORMAL_PADDING","Message","isByMe","resendMessage","disabled","showEdit","showRemove","chainTop","chainBottom","memoizedMessageText","OutgoingUserMessage","MemoizedMessageText","messageRef","parentRefReactions","parentRefMenus","isMessageSent","getIsSentFromStatus","mousehover","setMousehover","moreActive","setMoreActive","handleMoreIconClick","handleMoreIconBlur","paddingTop","paddingBottom","MORE","CONTENT_INVERSE","copyToClipboard","IncomingUserMessage","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","showReactionAddButton","showEmojiReactions","getSenderProfileUrl","user","close","CAPTION_2","getSenderName","AdminMessage","OUTGOING_THUMBNAIL_MESSAGE","INCOMING_THUMBNAIL_MESSAGE","ThumbnailMessage","OutgoingThumbnailMessage","menuRef","reactionAddRef","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","PLAY","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","unSupported","UNKNOWN__UNKNOWN_MESSAGE_TYPE","IncomingThumbnailMessage","MAX_TRUNCATE_LENGTH","GROUPAING_PADDING","checkFileType","fileUrl","result","imageFile","audioFile","test","FILE_DOCUMENT","FILE_AUDIO","OutgoingFileMessage","openFileUrl","window","open","reactionAddButtonRef","truncate","IncomingFileMessage","MessageSwitch","RemoveMessage","onCloseModal","onDeleteMessage","MODAL__DELETE_MESSAGE__TITLE","UnknownMessage","OutgoingUnknownMessage","UNKNOWN__CANNOT_READ_MESSAGE","IncomingUnknownMessage","profileUrl","NO_NAME","URL_REG","OG_MESSAGE","OUTGOING_OG_MESSAGE","INCOMING_OG_MESSAGE","createUrlTester","regexp","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","friendName","checkOGIsEnalbed","WORD_COLOR","isUrl","NORAML_PADDING","OGMessageSwitch","openLink","OutgoingOGMessage","defaultImage","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","alt","NO_THUMBNAIL","title","SUBTITLE_2","description","BODY_2","event","stopPropagation","IncomingOGMessage","errorCode","MessageHoc","editDisabled","hasSeperator","updateMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","editMessageInputRef","FileMessage","OGMessage","RemoveMessageModal","isDateSeperator","ConversationScroll","scrollRef","onScroll","target","scrollTop","clientHeight","scrollHeight","first","renderChatItem","useMessageGrouping","idx","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","onUpdateMessage","onResendMessage","MessageHOC","Component","Notification","time","timeArray","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","ONCONTENT_1","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","SHEVRON_DOWN","CONTENT","FrozenNotification","CHANNEL_FROZEN","TypingIndicatorText","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","TypingIndicator","sb","setHandlerId","typingMembers","setTypingMembers","newHandlerId","onTypingStatusUpdated","getTypingMembers","MessageInputWrapper","_a","onSendMessage","onFileUpload","renderMessageInput","isBroadcast","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","ConnectionStatus","TRYING_TO_CONNECT","DISCONNECTED","prettyDate","date","formatDistanceToNowStrict","addSuffix","getOthersLastSeenAt","getReadStatus","lastSeenList","values","lastSeenAt","last_seen_at","getChannelTitle","LabelStringSet","name","NO_TITLE","NO_MEMBERS","AutoRefresh","repeatFunc","setLabel","interval","setInterval","clearInterval","ChatHeader","currentUser","subTitle","isActive","isMuted","onActionClick","theme","H_2","MUTE","INFO","PRIMARY","coverUrl","ConversationPanel","stores","sdkStore","userStore","config","reconnect","dispatchers","queries","renderChatHeader","onChatHeaderActionClick","sdkError","messageListQuery","warn","useReducer","messagesReducer","messagesInitialState","messagesStore","usingReaction","userDefinedDisableUserProfile","userDefinedRenderProfile","onScrollCallback","useGetChannel","subScriber","onSendFileMessage","PlaceHolderTypes","WRONG","NO_CHANNELS","LOADING","any","includeMetaArray","includeParentMessageText","includeThreadInfo","limit","reverse","senderUserIdsFilter","withSendbirdContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/ChannelList.js b/dist/esm/ChannelList.js new file mode 100644 index 0000000..dc45daf --- /dev/null +++ b/dist/esm/ChannelList.js @@ -0,0 +1,1493 @@ +import { a as _objectSpread2, c as _toConsumableArray, e as LocalizationContext, w as withSendbirdContext, b as _slicedToArray, u as uuidv4 } from './LocalizationContext-619bafba.js'; +import React, { useContext, useRef, useState, useEffect, useReducer } from 'react'; +import PropTypes from 'prop-types'; +import { U as UPDATE_USER_INFO } from './actionTypes-a85c0eaa.js'; +import { L as LabelStringSet, I as Icon, a as IconTypes, b as Label, c as LabelTypography, d as LabelColors, e as IconButton, A as Avatar, M as Modal, T as Type, f as TextButton, g as IconColors, C as ContextMenu, h as MenuItems, i as MenuItem, P as PlaceHolder, j as CREATE_CHANNEL$1, U as UPDATE_USER_MESSAGE, k as LEAVE_CHANNEL, S as SEND_MESSAGE_START, l as UserProfileProvider, m as PlaceHolderTypes } from './index-0c67ae90.js'; +import { n as noop$1 } from './utils-53ba1773.js'; +import { C as ChannelAvatar } from './index-a199094e.js'; +import { B as Badge, i as isBroadcastChannelEnabled, a as isSuperGroupChannelEnabled, I as InviteMembers, c as createDefaultUserListQuery, b as createChannel, L as LeaveChannelModal } from './LeaveChannel-fcc0bfc3.js'; +import isToday from 'date-fns/isToday'; +import format from 'date-fns/format'; +import isYesterday from 'date-fns/isYesterday'; +import './type-0296584d.js'; +import { t as truncate } from './utils-cfdeb084.js'; +import 'react-dom'; +import { I as InputLabel, a as Input } from './index-73379213.js'; + +var RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST'; +var CREATE_CHANNEL = 'CREATE_CHANNEL'; +var LEAVE_CHANNEL_SUCCESS = 'LEAVE_CHANNEL_SUCCESS'; +var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL'; +var SHOW_CHANNEL_SETTINGS = 'SHOW_CHANNEL_SETTINGS'; +var HIDE_CHANNEL_SETTINGS = 'HIDE_CHANNEL_SETTINGS'; +var FETCH_CHANNELS_START = 'FETCH_CHANNELS_START'; +var FETCH_CHANNELS_SUCCESS = 'FETCH_CHANNELS_SUCCESS'; +var FETCH_CHANNELS_FAILURE = 'FETCH_CHANNELS_FAILURE'; +var INIT_CHANNELS_START = 'INIT_CHANNELS_START'; +var INIT_CHANNELS_SUCCESS = 'INIT_CHANNELS_SUCCESS'; +var INIT_CHANNELS_FAILURE = 'INIT_CHANNELS_FAILURE'; +var ON_USER_JOINED = 'ON_USER_JOINED'; +var ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED'; +var ON_LAST_MESSAGE_UPDATED = 'ON_LAST_MESSAGE_UPDATED'; +var ON_USER_LEFT = 'ON_USER_LEFT'; +var ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED'; +var ON_CHANNEL_ARCHIVED = 'ON_CHANNEL_ARCHIVED'; +var ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN'; +var ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN'; +var ON_READ_RECEIPT_UPDATED = 'ON_READ_RECEIPT_UPDATED'; +var ON_DELIVERY_RECEIPT_UPDATED = 'ON_DELIVERY_RECEIPT_UPDATED'; +var CHANNEL_REPLACED_TO_TOP = 'CHANNEL_REPLACED_TO_TOP'; + +var channelListInitialState = { + // we might not need this initialized state -> should remove + initialized: false, + loading: false, + allChannels: [], + currentChannel: null, + showSettings: false +}; + +function reducer(state, action) { + switch (action.type) { + case INIT_CHANNELS_START: + return _objectSpread2({}, state, { + loading: true + }); + + case RESET_CHANNEL_LIST: + return channelListInitialState; + + case INIT_CHANNELS_SUCCESS: + return _objectSpread2({}, state, { + initialized: true, + loading: false, + allChannels: action.payload, + currentChannel: action.payload && action.payload.length && action.payload.length > 0 ? action.payload[0].url : null + }); + + case FETCH_CHANNELS_SUCCESS: + { + var currentChannels = state.allChannels.map(function (c) { + return c.url; + }); + var filteredChannels = action.payload.filter(function (_ref) { + var url = _ref.url; + return !currentChannels.find(function (c) { + return c === url; + }); + }); + return _objectSpread2({}, state, { + allChannels: [].concat(_toConsumableArray(state.allChannels), _toConsumableArray(filteredChannels)) + }); + } + + case CREATE_CHANNEL: + { + return _objectSpread2({}, state, { + allChannels: [action.payload].concat(_toConsumableArray(state.allChannels.filter(function (channel) { + return channel.url !== action.payload.url; + }))), + currentChannel: action.payload.url + }); + } + + case ON_CHANNEL_ARCHIVED: + case LEAVE_CHANNEL_SUCCESS: + case ON_CHANNEL_DELETED: + { + var channelUrl = action.payload; + var leftCurrentChannel = state.currentChannel === channelUrl; + var newAllChannels = state.allChannels.filter(function (_ref2) { + var url = _ref2.url; + return url !== channelUrl; + }); + var currentChannel = leftCurrentChannel ? function () { + return newAllChannels.length > 0 ? newAllChannels[0].url : ''; + }() : state.currentChannel; + return _objectSpread2({}, state, { + currentChannel: currentChannel, + allChannels: newAllChannels + }); + } + + case ON_USER_LEFT: + { + var _action$payload = action.payload, + channel = _action$payload.channel, + isMe = _action$payload.isMe; + var url = channel.url; + + if (isMe) { + var _leftCurrentChannel = url === state.currentChannel; + + var _newAllChannels2 = state.allChannels.filter(function (c) { + return c.url !== url; + }); + + var _currentChannel = _leftCurrentChannel ? function () { + return _newAllChannels2.length > 0 ? _newAllChannels2[0].url : ''; + }() : state.currentChannel; + + return _objectSpread2({}, state, { + currentChannel: _currentChannel, + allChannels: _newAllChannels2 + }); + } // other user left + + + var _newAllChannels = state.allChannels.map(function (c) { + return c.url === url ? channel : c; + }); + + return _objectSpread2({}, state, { + allChannels: _newAllChannels + }); + } + + case ON_USER_JOINED: + case ON_CHANNEL_CHANGED: + case ON_READ_RECEIPT_UPDATED: + case ON_DELIVERY_RECEIPT_UPDATED: + { + var _state$allChannels = state.allChannels, + allChannels = _state$allChannels === void 0 ? [] : _state$allChannels; + var unreadMessageCount = action.payload.unreadMessageCount; + var _channel = action.payload; + + if (!_channel.lastMessage) { + return state; + } // if its only an unread message count change, dont push to top + + + if (unreadMessageCount === 0) { + var _currentChannel2 = allChannels.find(function (_ref3) { + var url = _ref3.url; + return url === _channel.url; + }); + + var currentUnReadCount = _currentChannel2 && _currentChannel2.unreadMessageCount; + + if (currentUnReadCount === 0) { + return _objectSpread2({}, state, { + allChannels: allChannels.map(function (c) { + if (c.url === _channel.url) { + return _channel; + } + + return c; + }) + }); + } + } + + return _objectSpread2({}, state, { + allChannels: [action.payload].concat(_toConsumableArray(state.allChannels.filter(function (_ref4) { + var url = _ref4.url; + return url !== action.payload.url; + }))) + }); + } + + case SET_CURRENT_CHANNEL: + return _objectSpread2({}, state, { + currentChannel: action.payload + }); + + case SHOW_CHANNEL_SETTINGS: + return _objectSpread2({}, state, { + showSettings: true + }); + + case HIDE_CHANNEL_SETTINGS: + return _objectSpread2({}, state, { + showSettings: false + }); + + case ON_LAST_MESSAGE_UPDATED: + return _objectSpread2({}, state, { + allChannels: state.allChannels.map(function (channel) { + if (channel.url === action.payload.url) { + return action.payload; + } + + return channel; + }) + }); + + case ON_CHANNEL_FROZEN: + return _objectSpread2({}, state, { + allChannels: state.allChannels.map(function (channel) { + if (channel.url === action.payload.url) { + // eslint-disable-next-line no-param-reassign + channel.isFrozen = true; + return channel; + } + + return channel; + }) + }); + + case ON_CHANNEL_UNFROZEN: + return _objectSpread2({}, state, { + allChannels: state.allChannels.map(function (channel) { + if (channel.url === action.payload.url) { + // eslint-disable-next-line no-param-reassign + channel.isFrozen = false; + return channel; + } + + return channel; + }) + }); + + case CHANNEL_REPLACED_TO_TOP: + return _objectSpread2({}, state, { + allChannels: [action.payload].concat(_toConsumableArray(state.allChannels.filter(function (channel) { + return channel.url !== action.payload.url; + }))) + }); + + default: + return state; + } +} + +var getChannelTitle = function getChannelTitle() { + var channel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var currentUserId = arguments.length > 1 ? arguments[1] : undefined; + var stringSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LabelStringSet; + + if (!channel || !channel.name && !channel.members) { + return stringSet.NO_TITLE; + } + + if (channel.name && channel.name !== 'Group Channel') { + return channel.name; + } + + if (channel.members.length === 1) { + return stringSet.NO_MEMBERS; + } + + return channel.members.filter(function (_ref) { + var userId = _ref.userId; + return userId !== currentUserId; + }).map(function (_ref2) { + var nickname = _ref2.nickname; + return nickname || stringSet.NO_NAME; + }).join(', '); +}; +var getLastMessageCreatedAt = function getLastMessageCreatedAt(channel) { + if (!channel || !channel.lastMessage) { + return ''; + } + + var date = channel.lastMessage.createdAt; + + if (isToday(date)) { + return format(date, 'p'); + } + + if (isYesterday(date)) { + return 'Yesterday'; + } + + return format(date, 'MMM dd'); +}; +var getTotalMembers = function getTotalMembers(channel) { + return channel && channel.memberCount ? channel.memberCount : 0; +}; + +var getPrettyLastMessage = function getPrettyLastMessage() { + var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var MAXLEN = 30; + var messageType = message.messageType, + name = message.name; + + if (messageType === 'file') { + return truncate(name, MAXLEN); + } + + return message.message; +}; + +var getLastMessage = function getLastMessage(channel) { + return channel && channel.lastMessage ? getPrettyLastMessage(channel.lastMessage) : ''; +}; +var getChannelUnreadMessageCount = function getChannelUnreadMessageCount(channel) { + return channel && channel.unreadMessageCount ? channel.unreadMessageCount : 0; +}; + +function ChannelPreview(_ref) { + var channel = _ref.channel, + isActive = _ref.isActive, + ChannelAction = _ref.ChannelAction, + theme = _ref.theme, + onClick = _ref.onClick, + tabIndex = _ref.tabIndex, + currentUser = _ref.currentUser; + var userId = currentUser.userId; + var isBroadcast = channel.isBroadcast, + isFrozen = channel.isFrozen; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return React.createElement("div", { + role: "link", + tabIndex: tabIndex, + onClick: onClick, + onKeyPress: onClick, + className: "\n sendbird-channel-preview\n ".concat(isActive ? 'sendbird-channel-preview--active' : null, "\n ") + }, React.createElement("div", { + className: "sendbird-channel-preview__avatar" + }, React.createElement(ChannelAvatar, { + channel: channel, + userId: userId, + theme: theme + })), React.createElement("div", { + className: "sendbird-channel-preview__content" + }, React.createElement("div", { + className: "sendbird-channel-preview__content__upper" + }, React.createElement("div", { + className: "sendbird-channel-preview__content__upper__header" + }, isBroadcast && React.createElement("div", { + className: "sendbird-channel-preview__broadcast-icon" + }, React.createElement(Icon, { + type: theme === 'dark' ? IconTypes.BROADCAST_DARK : IconTypes.BROADCAST_LIGHT, + height: 12, + width: 12 + })), React.createElement(Label, { + className: "sendbird-channel-preview__content__upper__header__channel-name", + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1 + }, getChannelTitle(channel, userId, stringSet)), React.createElement(Label, { + className: "sendbird-channel-preview__content__upper__header__total-members", + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, getTotalMembers(channel)), isFrozen && React.createElement("div", { + title: "Frozen", + className: "sendbird-channel-preview__frozen-icon" + }, React.createElement(Icon, { + type: theme === 'dark' ? IconTypes.FROZEN_DARK : IconTypes.FROZEN_LIGHT, + height: 12, + width: 12 + }))), React.createElement(Label, { + className: "sendbird-channel-preview__content__upper__last-message-at", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, getLastMessageCreatedAt(channel))), React.createElement("div", { + className: "sendbird-channel-preview__content__lower" + }, React.createElement(Label, { + className: "sendbird-channel-preview__content__lower__last-message", + type: LabelTypography.BODY_2, + color: LabelColors.ONBACKGROUND_3 + }, getLastMessage(channel)), React.createElement("div", { + className: "sendbird-channel-preview__content__lower__unread-message-count" + }, getChannelUnreadMessageCount(channel) ? React.createElement(Badge, { + count: getChannelUnreadMessageCount(channel) + }) : null))), React.createElement("div", { + className: "sendbird-channel-preview__action" + }, ChannelAction)); +} +ChannelPreview.propTypes = { + isActive: PropTypes.bool, + theme: PropTypes.string, + channel: PropTypes.shape({ + members: PropTypes.arrayOf(PropTypes.shape({})), + coverUrl: PropTypes.string, + isBroadcast: PropTypes.bool, + isFrozen: PropTypes.bool + }), + ChannelAction: PropTypes.element.isRequired, + onClick: PropTypes.func, + tabIndex: PropTypes.number, + currentUser: PropTypes.shape({ + userId: PropTypes.string + }) +}; +ChannelPreview.defaultProps = { + channel: {}, + isActive: false, + theme: 'light', + onClick: function onClick() {}, + tabIndex: 0, + currentUser: {} +}; + +function ChannelHeader(_ref) { + var user = _ref.user, + iconButton = _ref.iconButton, + onEdit = _ref.onEdit, + renderHeader = _ref.renderHeader, + allowProfileEdit = _ref.allowProfileEdit; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return React.createElement("div", { + className: "\n ".concat(allowProfileEdit && 'sendbird-channel-header--allow-edit', "\n sendbird-channel-header\n ") + }, renderHeader ? renderHeader() : React.createElement("div", { + className: "sendbird-channel-header__title", + role: "button", + onKeyDown: onEdit, + onClick: onEdit, + tabIndex: "0" + }, React.createElement("div", { + className: "sendbird-channel-header__title--left" + }, React.createElement(Avatar, { + height: "32px", + width: "32px", + src: user.profileUrl, + alt: user.nickname + })), React.createElement("div", { + className: "sendbird-channel-header__title--right" + }, React.createElement(Label, { + className: "sendbird-channel-header__title--name", + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1 + }, user.nickname || stringSet.NO_NAME), React.createElement(Label, { + className: "sendbird-channel-header__title--user-id", + type: LabelTypography.BODY_2, + color: LabelColors.ONBACKGROUND_2 + }, user.userId))), React.createElement("div", { + className: "sendbird-channel-header__right-icon" + }, iconButton)); +} +ChannelHeader.propTypes = { + user: PropTypes.shape({ + profileUrl: PropTypes.string, + nickname: PropTypes.string, + userId: PropTypes.string + }), + renderHeader: PropTypes.func, + allowProfileEdit: PropTypes.bool, + onEdit: PropTypes.func.isRequired, + iconButton: PropTypes.oneOfType([PropTypes.element, PropTypes.instanceOf(IconButton)]) +}; +ChannelHeader.defaultProps = { + user: {}, + renderHeader: null, + allowProfileEdit: false, + iconButton: null +}; + +function EditUserProfile(_a) { + var user = _a.user, + onCancel = _a.onCancel, + _onSubmit = _a.onSubmit, + _b = _a.onThemeChange, + onThemeChange = _b === void 0 ? null : _b, + _c = _a.theme, + theme = _c === void 0 ? 'light' : _c, + _d = _a.changeTheme, + changeTheme = _d === void 0 ? noop$1 : _d; + var hiddenInputRef = useRef(null); + var inputRef = useRef(null); + var formRef = useRef(null); + var stringSet = useContext(LocalizationContext).stringSet; + + var _e = useState(null), + currentImg = _e[0], + setCurrentImg = _e[1]; + + var _f = useState(null), + newFile = _f[0], + setNewFile = _f[1]; + + return React.createElement(Modal, { + titleText: stringSet.EDIT_PROFILE__TITLE, + submitText: stringSet.BUTTON__SAVE, + onCancel: onCancel, + onSubmit: function onSubmit() { + if (user.nickname !== '' && !inputRef.current.value) { + if (formRef.current.reportValidity) { + // might not work in explorer + formRef.current.reportValidity(); + } + + return; + } + + _onSubmit(inputRef.current.value, newFile); + + onCancel(); + }, + type: Type.PRIMARY + }, React.createElement("form", { + className: "sendbird__edit-user-profile", + ref: formRef, + onSubmit: function onSubmit(e) { + e.preventDefault(); + } + }, React.createElement("section", { + className: "sendbird__edit-user-profile__img" + }, React.createElement(InputLabel, null, stringSet.EDIT_PROFILE__IMAGE_LABEL), React.createElement("div", { + className: "sendbird__edit-user__avatar" + }, React.createElement(Avatar, { + height: "80px", + width: "80px", + src: currentImg || user.profileUrl + })), React.createElement("input", { + ref: hiddenInputRef, + type: "file", + accept: "image/gif, image/jpeg, image/png", + style: { + display: 'none' + }, + onChange: function onChange(e) { + setCurrentImg(URL.createObjectURL(e.target.files[0])); + setNewFile(e.target.files[0]); + hiddenInputRef.current.value = ''; + } + }), React.createElement(TextButton, { + className: "sendbird__edit-user__avatar-button", + onClick: function onClick() { + return hiddenInputRef.current.click(); + }, + notUnderline: true + }, React.createElement(Label, { + type: LabelTypography.BUTTON_1, + color: LabelColors.PRIMARY + }, stringSet.EDIT_PROFILE__IMAGE_UPLOAD))), React.createElement("section", { + className: "sendbird__edit-user__name" + }, React.createElement(InputLabel, null, stringSet.EDIT_PROFILE__NICKNAME_LABEL), React.createElement(Input, { + required: user.nickname !== '', + name: "sendbird__edit-user__name", + ref: inputRef, + value: user.nickname, + placeHolder: stringSet.EDIT_PROFILE__NICKNAME_PLACEHOLDER + })), React.createElement("section", { + className: "sendbird__edit-user__userid" + }, React.createElement(InputLabel, null, stringSet.EDIT_PROFILE__USERID_LABEL), React.createElement(Input, { + disabled: true, + name: "sendbird__edit-user__userid", + value: user.userId + })), React.createElement("section", { + className: "sendbird__edit-user__theme" + }, React.createElement(InputLabel, null, stringSet.EDIT_PROFILE__THEME_LABEL), React.createElement("div", { + className: "sendbird__edit-user__theme-icon" + }, theme === 'dark' ? React.createElement(Icon, { + onClick: function onClick() { + changeTheme('light'); + + if (onThemeChange && typeof onThemeChange === 'function') { + onThemeChange('light'); + } + }, + type: IconTypes.TOGGLE_ON, + width: 44, + height: 24 + }) : React.createElement(Icon, { + onClick: function onClick() { + changeTheme('dark'); + + if (onThemeChange && typeof onThemeChange === 'function') { + onThemeChange('dark'); + } + }, + type: IconTypes.TOGGLE_OFF, + width: 44, + height: 24 + }))))); +} + +var mapStoreToProps = function mapStoreToProps(store) { + return { + theme: store.config.theme, + changeTheme: store.config.setCurrenttheme + }; +}; + +var ConnectedEditUserProfile = withSendbirdContext(EditUserProfile, mapStoreToProps); + +function AddChannel(_ref) { + var sdk = _ref.sdk, + disabled = _ref.disabled, + channelListDispatcher = _ref.channelListDispatcher, + onBeforeCreateChannel = _ref.onBeforeCreateChannel, + userId = _ref.userId, + userFilledApplicationUserListQuery = _ref.userFilledApplicationUserListQuery, + userListQuery = _ref.userListQuery; + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + showModal = _useState2[0], + setShowModal = _useState2[1]; + + var _useState3 = useState(0), + _useState4 = _slicedToArray(_useState3, 2), + step = _useState4[0], + setStep = _useState4[1]; + + var _useState5 = useState('group'), + _useState6 = _slicedToArray(_useState5, 2), + type = _useState6[0], + setType = _useState6[1]; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + if (!sdk || !sdk.createApplicationUserListQuery) { + return null; + } + + var isBroadcastAvailable = isBroadcastChannelEnabled(sdk); + var isSupergroupAvailable = isSuperGroupChannelEnabled(sdk); + return React.createElement(React.Fragment, null, React.createElement(IconButton, { + height: "32px", + width: "32px", + onClick: function onClick() { + setShowModal(true); + }, + disabled: disabled + }, React.createElement(Icon, { + type: IconTypes.CREATE, + fillColor: IconColors.PRIMARY, + width: "24px", + height: "24px" + })), showModal && step === 0 && React.createElement(Modal, { + titleText: "New channel", + hideFooter: true, + onCancel: function onCancel() { + setShowModal(false); + }, + onSubmit: function onSubmit() {} + }, React.createElement("div", { + className: "sendbird-add-channel__rectangle-wrap" + }, React.createElement("div", { + className: "sendbird-add-channel__rectangle", + onClick: function onClick() { + setType('group'); + setStep(1); + }, + role: "button", + tabIndex: 0, + onKeyDown: function onKeyDown() { + setType('group'); + setStep(1); + } + }, React.createElement(Icon, { + type: IconTypes.CHAT + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, "Group")), isSupergroupAvailable && React.createElement("div", { + className: "sendbird-add-channel__rectangle", + onClick: function onClick() { + setType('supergroup'); + setStep(1); + }, + role: "button", + tabIndex: 0, + onKeyDown: function onKeyDown() { + setType('supergroup'); + setStep(1); + } + }, React.createElement(Icon, { + type: IconTypes.SUPER_GROUP + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, "Super group")), isBroadcastAvailable && React.createElement("div", { + className: "sendbird-add-channel__rectangle", + onClick: function onClick() { + setType('broadcast'); + setStep(1); + }, + role: "button", + tabIndex: 0, + onKeyDown: function onKeyDown() { + setType('broadcast'); + setStep(1); + } + }, React.createElement(Icon, { + type: IconTypes.BROADCAST + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, "Broadcast")))), showModal && step === 1 && React.createElement(InviteMembers, { + swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), + titleText: stringSet.MODAL__CREATE_CHANNEL__TITLE, + submitText: stringSet.BUTTON__CREATE, + closeModal: function closeModal() { + setStep(0); + setShowModal(false); + }, + idsToFilter: [userId], + userQueryCreator: function userQueryCreator() { + return userListQuery && typeof userListQuery === 'function' ? userListQuery() : createDefaultUserListQuery({ + sdk: sdk, + userFilledApplicationUserListQuery: userFilledApplicationUserListQuery + }); + }, + onSubmit: function onSubmit(selectedUsers) { + return createChannel(sdk, selectedUsers, onBeforeCreateChannel, userId, type).then(function (channel) { + // maybe - do this in event listener + channelListDispatcher({ + type: CREATE_CHANNEL, + payload: channel + }); + }); + } + })); +} +AddChannel.propTypes = { + sdk: PropTypes.shape({ + getErrorFirstCallback: PropTypes.func, + createApplicationUserListQuery: PropTypes.func + }).isRequired, + disabled: PropTypes.bool, + channelListDispatcher: PropTypes.func.isRequired, + userFilledApplicationUserListQuery: PropTypes.shape({}), + onBeforeCreateChannel: PropTypes.func, + userId: PropTypes.string.isRequired, + userListQuery: PropTypes.func +}; +AddChannel.defaultProps = { + disabled: false, + userFilledApplicationUserListQuery: {}, + onBeforeCreateChannel: null, + userListQuery: null +}; + +function ChannelPreviewAction(_ref) { + var disabled = _ref.disabled, + onLeaveChannel = _ref.onLeaveChannel; + var parentRef = useRef(null); + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + showModal = _useState2[0], + setShowModal = _useState2[1]; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return React.createElement("div", { + role: "button", + style: { + display: 'inline-block' + }, + onKeyDown: function onKeyDown(e) { + e.stopPropagation(); + }, + tabIndex: 0, + onClick: function onClick(e) { + e.stopPropagation(); + } + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + ref: parentRef, + onClick: toggleDropdown, + height: "32px", + width: "32px" + }, React.createElement(Icon, { + type: IconTypes.MORE, + fillColor: IconColors.PRIMARY, + width: "24px", + height: "24px" + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: parentRef, + parentContainRef: parentRef, + closeDropdown: closeDropdown + }, React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + setShowModal(true); + closeDropdown(); + } + }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE)); + } + }), showModal && React.createElement(LeaveChannelModal, { + onCloseModal: function onCloseModal() { + return setShowModal(false); + }, + onLeaveChannel: onLeaveChannel + })); +} +ChannelPreviewAction.propTypes = { + disabled: PropTypes.bool, + onLeaveChannel: PropTypes.func.isRequired +}; +ChannelPreviewAction.defaultProps = { + disabled: false +}; + +function ChannelsPlaceholder(_ref) { + var type = _ref.type; + return React.createElement("div", { + className: "sendbird-channel-list" + }, React.createElement(PlaceHolder, { + type: type + })); +} +ChannelsPlaceholder.propTypes = { + type: PropTypes.string.isRequired +}; + +var createEventHandler = function createEventHandler(_ref) { + var sdk = _ref.sdk, + sdkChannelHandlerId = _ref.sdkChannelHandlerId, + channelListDispatcher = _ref.channelListDispatcher, + logger = _ref.logger; + var ChannelHandler = new sdk.ChannelHandler(); + + ChannelHandler.onChannelChanged = function (channel) { + logger.info('ChannelList: onChannelChanged', channel); + channelListDispatcher({ + type: ON_CHANNEL_CHANGED, + payload: channel + }); + }; + + ChannelHandler.onChannelDeleted = function (channelUrl) { + logger.info('ChannelList: onChannelDeleted', channelUrl); + channelListDispatcher({ + type: ON_CHANNEL_DELETED, + payload: channelUrl + }); + }; + + ChannelHandler.onUserJoined = function (channel) { + logger.info('ChannelList: onUserJoined', channel); + + if (channel.lastMessage) { + channelListDispatcher({ + type: ON_USER_JOINED, + payload: channel + }); + } + }; + + ChannelHandler.onUserBanned = function (channel, user) { + var currentUser = sdk.currentUser; + logger.info('Channel | useHandleChannelEvents: onUserBanned', channel); + + if (user.userId === currentUser.userId) { + channelListDispatcher({ + type: ON_USER_LEFT, + payload: { + channel: channel, + isMe: true + } + }); + } else { + channelListDispatcher({ + type: ON_USER_LEFT, + payload: { + channel: channel, + isMe: false + } + }); + } + }; + + ChannelHandler.onUserLeft = function (channel, leftUser) { + var currentUser = sdk.currentUser; + var isMe = currentUser.userId === leftUser.userId; + logger.info('ChannelList: onUserLeft', channel); + channelListDispatcher({ + type: ON_USER_LEFT, + payload: { + channel: channel, + isMe: isMe + } + }); + }; + + ChannelHandler.onReadStatus = function (channel) { + logger.info('ChannelList: onReadStatus', channel); + channelListDispatcher({ + type: ON_READ_RECEIPT_UPDATED, + payload: channel + }); + }; + + ChannelHandler.onDeliveryReceiptUpdated = function (channel) { + logger.info('ChannelList: onDeliveryReceiptUpdated', channel); + + if (channel.lastMessage) { + channelListDispatcher({ + type: ON_DELIVERY_RECEIPT_UPDATED, + payload: channel + }); + } + }; + + ChannelHandler.onMessageUpdated = function (channel, message) { + if (channel.lastMessage.isEqual(message)) { + logger.info('ChannelList: onMessageUpdated', channel); + channelListDispatcher({ + type: ON_LAST_MESSAGE_UPDATED, + payload: channel + }); + } + }; + + ChannelHandler.onChannelHidden = function (channel) { + logger.info('ChannelList: onChannelHidden', channel); + channelListDispatcher({ + type: ON_CHANNEL_ARCHIVED, + payload: channel.url + }); + }; + + ChannelHandler.onChannelFrozen = function (channel) { + logger.info('ChannelList: onChannelFrozen', channel); + channelListDispatcher({ + type: ON_CHANNEL_FROZEN, + payload: channel + }); + }; + + ChannelHandler.onChannelUnfrozen = function (channel) { + logger.info('ChannelList: onChannelUnfrozen', channel); + channelListDispatcher({ + type: ON_CHANNEL_UNFROZEN, + payload: channel + }); + }; + + logger.info('ChannelList: Added channelHandler'); + sdk.addChannelHandler(sdkChannelHandlerId, ChannelHandler); +}; + +var createApplicationUserListQuery = function createApplicationUserListQuery(_ref2) { + var sdk = _ref2.sdk, + _ref2$userFilledChann = _ref2.userFilledChannelListQuery, + userFilledChannelListQuery = _ref2$userFilledChann === void 0 ? {} : _ref2$userFilledChann; + var channelListQuery = sdk.GroupChannel.createMyGroupChannelListQuery(); + channelListQuery.includeEmpty = false; + channelListQuery.order = 'latest_last_message'; // 'chronological', 'latest_last_message', 'channel_name_alphabetical', and 'metadata_value_alphabetical' + + channelListQuery.limit = 20; // The value of pagination limit could be set up to 100. + + if (userFilledChannelListQuery) { + Object.keys(userFilledChannelListQuery).forEach(function (key) { + channelListQuery[key] = userFilledChannelListQuery[key]; + }); + } + + return channelListQuery; +}; +/** + * Setup event listener + * create channel source query + * addloading screen + */ + + +function setupChannelList(_ref3) { + var sdk = _ref3.sdk, + sdkChannelHandlerId = _ref3.sdkChannelHandlerId, + channelListDispatcher = _ref3.channelListDispatcher, + setChannelSource = _ref3.setChannelSource, + onChannelSelect = _ref3.onChannelSelect, + userFilledChannelListQuery = _ref3.userFilledChannelListQuery, + logger = _ref3.logger, + sortChannelList = _ref3.sortChannelList; + createEventHandler({ + sdk: sdk, + channelListDispatcher: channelListDispatcher, + sdkChannelHandlerId: sdkChannelHandlerId, + logger: logger + }); + logger.info('ChannelList - creating query', { + userFilledChannelListQuery: userFilledChannelListQuery + }); + var channelListQuery = createApplicationUserListQuery({ + sdk: sdk, + userFilledChannelListQuery: userFilledChannelListQuery + }); + logger.info('ChannelList - created query', channelListQuery); + setChannelSource(channelListQuery); + channelListDispatcher({ + type: INIT_CHANNELS_START + }); + logger.info('ChannelList - fetching channels'); + + if (channelListQuery.hasNext) { + channelListQuery.next(function (response, error) { + var swapParams = sdk.getErrorFirstCallback(); + var channelList = response; + var err = error; + + if (swapParams) { + channelList = error; + err = response; + } + + logger.info('ChannelList - fetched channels', channelList); + + if (err) { + logger.error('ChannelList - couldnt fetch channels', err); + channelListDispatcher({ + type: INIT_CHANNELS_FAILURE + }); + return; + } // select first channel + + + logger.info('ChannelList - highlight channel', channelList[0]); + var sorted = channelList; + + if (sortChannelList && typeof sortChannelList === 'function') { + sorted = sortChannelList(channelList); + logger.info('ChannelList - channel list sorted', sorted); + } + + onChannelSelect(sorted[0]); + channelListDispatcher({ + type: INIT_CHANNELS_SUCCESS, + payload: sorted + }); + + if (channelList && typeof channelList.forEach === 'function') { + logger.info('ChannelList - mark all channels as delivered'); + channelList.forEach(function (c) { + return c.markAsDelivered(); + }); + } + }); + } else { + logger.warning('ChannelList - there are no more channels'); + } +} + +var pubSubHandleRemover = function pubSubHandleRemover(subscriber) { + subscriber.forEach(function (s) { + try { + s.remove(); + } catch (_unused) {// + } + }); +}; +var pubSubHandler = function pubSubHandler(pubSub, channelListDispatcher) { + var subScriber = new Map(); + if (!pubSub) return subScriber; + subScriber.set(CREATE_CHANNEL$1, pubSub.subscribe(CREATE_CHANNEL$1, function (msg) { + var channel = msg.channel; + channelListDispatcher({ + type: 'CREATE_CHANNEL', + payload: channel + }); + })); + subScriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + var updatedChannel = channel; + updatedChannel.lastMessage = message; + + if (channel) { + channelListDispatcher({ + type: ON_LAST_MESSAGE_UPDATED, + payload: updatedChannel + }); + } + })); + subScriber.set(LEAVE_CHANNEL, pubSub.subscribe(LEAVE_CHANNEL, function (msg) { + var channel = msg.channel; + channelListDispatcher({ + type: LEAVE_CHANNEL_SUCCESS, + payload: channel.url + }); + })); + subScriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, function (msg) { + var channel = msg.channel; + channelListDispatcher({ + type: CHANNEL_REPLACED_TO_TOP, + payload: channel + }); + })); + return subScriber; +}; + +var noop = function noop() {}; + +function ChannelList(props) { + var _props$stores = props.stores, + _props$stores$sdkStor = _props$stores.sdkStore, + sdkStore = _props$stores$sdkStor === void 0 ? {} : _props$stores$sdkStor, + _props$stores$userSto = _props$stores.userStore, + userStore = _props$stores$userSto === void 0 ? {} : _props$stores$userSto, + _props$config = props.config, + userId = _props$config.userId, + isOnline = _props$config.isOnline, + userListQuery = _props$config.userListQuery, + logger = _props$config.logger, + pubSub = _props$config.pubSub, + theme = _props$config.theme, + userDispatcher = props.dispatchers.userDispatcher, + _props$queries = props.queries, + queries = _props$queries === void 0 ? {} : _props$queries, + renderChannelPreview = props.renderChannelPreview, + renderHeader = props.renderHeader, + renderUserProfile = props.renderUserProfile, + disableUserProfile = props.disableUserProfile, + allowProfileEdit = props.allowProfileEdit, + sortChannelList = props.sortChannelList, + onProfileEditSuccess = props.onProfileEditSuccess, + onThemeChange = props.onThemeChange, + onBeforeCreateChannel = props.onBeforeCreateChannel, + onChannelSelect = props.onChannelSelect; + var _props$config2 = props.config, + config = _props$config2 === void 0 ? {} : _props$config2; // enable if it is true atleast once(both are flase by default) + + var enableEditProfile = allowProfileEdit || config.allowProfileEdit; + var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; + var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; + var _sdkStore$sdk = sdkStore.sdk, + sdk = _sdkStore$sdk === void 0 ? {} : _sdkStore$sdk; + var userFilledChannelListQuery = queries.channelListQuery; + var userFilledApplicationUserListQuery = queries.applicationUserListQuery; + var sdkError = sdkStore.error; + + var _useState = useState({}), + _useState2 = _slicedToArray(_useState, 2), + user = _useState2[0], + setUser = _useState2[1]; + + useEffect(function () { + setUser(userStore.user); + }, [userStore.user]); + var sdkIntialized = sdkStore.initialized; + + var _useReducer = useReducer(reducer, channelListInitialState), + _useReducer2 = _slicedToArray(_useReducer, 2), + channelListStore = _useReducer2[0], + channelListDispatcher = _useReducer2[1]; + + var _useState3 = useState({}), + _useState4 = _slicedToArray(_useState3, 2), + channelSource = _useState4[0], + setChannelSource = _useState4[1]; + + var _useState5 = useState(null), + _useState6 = _slicedToArray(_useState5, 2), + sdkChannelHandlerId = _useState6[0], + setSdkChannelHandlerId = _useState6[1]; + + var _useState7 = useState(false), + _useState8 = _slicedToArray(_useState7, 2), + showProfileEdit = _useState8[0], + setShowProfileEdit = _useState8[1]; + + var loading = channelListStore.loading, + currentChannel = channelListStore.currentChannel; + useEffect(function () { + var subscriber = pubSubHandler(pubSub, channelListDispatcher); + return function () { + pubSubHandleRemover(subscriber); + }; + }, [sdkIntialized]); + useEffect(function () { + setSdkChannelHandlerId(uuidv4); + + if (sdkIntialized) { + logger.info('ChannelList: Setup channelHandlers'); + setupChannelList({ + sdk: sdk, + sdkChannelHandlerId: sdkChannelHandlerId, + channelListDispatcher: channelListDispatcher, + setChannelSource: setChannelSource, + onChannelSelect: onChannelSelect, + userFilledChannelListQuery: userFilledChannelListQuery, + logger: logger, + sortChannelList: sortChannelList + }); + } else { + logger.info('ChannelList: Removing channelHandlers'); // remove previous channelHandlers + + if (sdk && sdk.removeChannelHandler) { + sdk.removeChannelHandler(sdkChannelHandlerId); + } // remove channelSource + + + setChannelSource({}); // cleanup + + channelListDispatcher({ + type: RESET_CHANNEL_LIST + }); + } + + return function () { + logger.info('ChannelList: Removing channelHandlers'); + + if (sdk && sdk.removeChannelHandler) { + sdk.removeChannelHandler(sdkChannelHandlerId); + } + }; + }, [sdkIntialized, userFilledChannelListQuery, sortChannelList]); + var allChannels = channelListStore.allChannels; + var sortedChannels = sortChannelList && typeof sortChannelList === 'function' ? sortChannelList(allChannels) : allChannels; + + if (sortedChannels.length !== allChannels.length) { + var warning = "ChannelList: You have removed/added extra channels on sortChannelList\n this could cause unexpected problems"; // eslint-disable-next-line no-console + + console.warn(warning, { + before: allChannels, + after: sortedChannels + }); + logger.warning(warning, { + before: allChannels, + after: sortedChannels + }); + } + + useEffect(function () { + if (!sdk || !sdk.GroupChannel) { + return; + } + + sdk.GroupChannel.getChannel(currentChannel, function (groupChannel) { + if (groupChannel) { + onChannelSelect(groupChannel); + } else { + onChannelSelect(null); + } + }); + }, [currentChannel]); + return React.createElement(UserProfileProvider, { + disableUserProfile: userDefinedDisableUserProfile, + renderUserProfile: userDefinedRenderProfile, + className: "sendbird-channel-list" + }, React.createElement("div", { + className: "sendbird-channel-list__header" + }, React.createElement(ChannelHeader, { + renderHeader: renderHeader, + user: user, + onEdit: function onEdit() { + if (enableEditProfile) { + setShowProfileEdit(true); + } + }, + allowProfileEdit: enableEditProfile, + iconButton: React.createElement(AddChannel, { + disabled: !isOnline, + userListQuery: userListQuery, + sdk: sdk, + channelListDispatcher: channelListDispatcher, + userId: userId, + userFilledApplicationUserListQuery: userFilledApplicationUserListQuery, + onBeforeCreateChannel: onBeforeCreateChannel + }) + })), showProfileEdit && React.createElement(ConnectedEditUserProfile, { + onThemeChange: onThemeChange, + user: user, + onCancel: function onCancel() { + setShowProfileEdit(false); + }, + onSubmit: function onSubmit(newName, newFile) { + sdk.updateCurrentUserInfoWithProfileImage(newName, newFile, function (updatedUser) { + userDispatcher({ + type: UPDATE_USER_INFO, + payload: updatedUser + }); + + if (onProfileEditSuccess && typeof onProfileEditSuccess === 'function') { + onProfileEditSuccess(updatedUser); + } + }); + } + }), React.createElement("div", { + className: "sendbird-channel-list__body", + onScroll: function onScroll(e) { + var fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight; + + if (fetchMore && channelSource.hasNext) { + logger.info('ChannelList: Fetching more channels'); + channelListDispatcher({ + type: FETCH_CHANNELS_START + }); + channelSource.next(function (response, error) { + var swapParams = sdk.getErrorFirstCallback(); + var channelList = response; + var err = error; + + if (swapParams) { + channelList = error; + err = response; + } + + if (err) { + logger.info('ChannelList: Fetching channels failed', err); + channelListDispatcher({ + type: FETCH_CHANNELS_FAILURE, + payload: channelList + }); + return; + } + + logger.info('ChannelList: Fetching channels successful', channelList); + channelListDispatcher({ + type: FETCH_CHANNELS_SUCCESS, + payload: channelList + }); + + if (channelList && typeof channelList.forEach === 'function') { + logger.info('ChannelList: Marking all channels as read'); + channelList.forEach(function (c) { + return c.markAsDelivered(); + }); + } + }); + } + } + }, sdkError && React.createElement(ChannelsPlaceholder, { + type: PlaceHolderTypes.WRONG + }), React.createElement("div", null, sortedChannels && sortedChannels.map(function (channel, idx) { + var _onLeaveChannel = function onLeaveChannel(c, cb) { + logger.info('ChannelList: Leaving channel', c); + c.leave().then(function (res) { + logger.info('ChannelList: Leaving channel success', res); + + if (cb && typeof cb === 'function') { + cb(res, null); + } + + channelListDispatcher({ + type: LEAVE_CHANNEL_SUCCESS, + payload: channel.url + }); + }).catch(function (err) { + logger.error('ChannelList: Leaving channel failed', err); + + if (cb && typeof cb === 'function') { + cb(null, err); + } + }); + }; + + var onClick = function onClick() { + if (!isOnline) { + return; + } + + logger.info('ChannelList: Clicked on channel:', channel); + channelListDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: channel.url + }); + }; + + return renderChannelPreview ? // eslint-disable-next-line + React.createElement("div", { + key: channel.url, + onClick: onClick + }, renderChannelPreview({ + channel: channel, + onLeaveChannel: _onLeaveChannel + })) : React.createElement(ChannelPreview, { + key: channel.url, + tabIndex: idx, + onClick: onClick, + channel: channel, + currentUser: user, + theme: theme, + isActive: channel.url === currentChannel // todo - potential performance hit refactor + , + ChannelAction: React.createElement(ChannelPreviewAction, { + disabled: !isOnline, + onLeaveChannel: function onLeaveChannel() { + return _onLeaveChannel(channel); + } + }) + }); + })), (!sdkIntialized || loading) && React.createElement(ChannelsPlaceholder, { + type: PlaceHolderTypes.LOADING + }), // placeholder + (!allChannels || allChannels.length === 0) && React.createElement(ChannelsPlaceholder, { + type: PlaceHolderTypes.NO_CHANNELS + }))); +} + +ChannelList.propTypes = { + stores: PropTypes.shape({ + sdkStore: PropTypes.shape({ + initialized: PropTypes.bool + }), + userStore: PropTypes.shape({ + user: PropTypes.shape({}) + }) + }).isRequired, + dispatchers: PropTypes.shape({ + userDispatcher: PropTypes.func + }).isRequired, + config: PropTypes.shape({ + userId: PropTypes.string.isRequired, + userListQuery: PropTypes.func, + theme: PropTypes.string, + isOnline: PropTypes.bool, + logger: PropTypes.shape({ + info: PropTypes.func, + error: PropTypes.func, + warning: PropTypes.func + }), + pubSub: PropTypes.shape({ + subscribe: PropTypes.func, + publish: PropTypes.func + }) + }).isRequired, + queries: PropTypes.shape({ + channelListQuery: PropTypes.shape({ + channelNameContainsFilter: PropTypes.string, + channelUrlsFilter: PropTypes.arrayOf(PropTypes.string), + customTypesFilter: PropTypes.arrayOf(PropTypes.string), + customTypeStartsWithFilter: PropTypes.string, + hiddenChannelFilter: PropTypes.string, + includeEmpty: PropTypes.bool, + limit: PropTypes.number, + memberStateFilter: PropTypes.string, + metadataOrderKeyFilter: PropTypes.string, + nicknameContainsFilter: PropTypes.string, + order: PropTypes.string, + publicChannelFilter: PropTypes.string, + superChannelFilter: PropTypes.string, + unreadChannelFilter: PropTypes.string, + userIdsExactFilter: PropTypes.arrayOf(PropTypes.string), + userIdsIncludeFilter: PropTypes.arrayOf(PropTypes.string), + userIdsIncludeFilterQueryType: PropTypes.string + }), + applicationUserListQuery: PropTypes.shape({ + limit: PropTypes.number, + userIdsFilter: PropTypes.arrayOf(PropTypes.string), + metaDataKeyFilter: PropTypes.string, + metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string) + }) + }), + onBeforeCreateChannel: PropTypes.func, + renderChannelPreview: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + allowProfileEdit: PropTypes.bool, + sortChannelList: PropTypes.func, + onThemeChange: PropTypes.func, + onProfileEditSuccess: PropTypes.func, + renderHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + onChannelSelect: PropTypes.func +}; +ChannelList.defaultProps = { + onBeforeCreateChannel: null, + renderChannelPreview: null, + renderHeader: null, + disableUserProfile: false, + renderUserProfile: null, + allowProfileEdit: false, + onThemeChange: null, + sortChannelList: null, + onProfileEditSuccess: null, + queries: {}, + onChannelSelect: noop +}; +var ChannelList$1 = withSendbirdContext(ChannelList); + +export default ChannelList$1; +//# sourceMappingURL=ChannelList.js.map diff --git a/dist/esm/ChannelList.js.map b/dist/esm/ChannelList.js.map new file mode 100644 index 0000000..7561b27 --- /dev/null +++ b/dist/esm/ChannelList.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ChannelList.js","sources":["../../../src/smart-components/ChannelList/dux/actionTypes.js","../../../src/smart-components/ChannelList/dux/initialState.js","../../../src/smart-components/ChannelList/dux/reducers.js","../../../src/ui/ChannelPreview/utils.js","../../../src/ui/ChannelPreview/index.jsx","../../../src/ui/ChannelHeader/index.jsx","../../../src/ui/EditUserProfile/index.tsx","../../../src/smart-components/ChannelList/components/AddChannel.jsx","../../../src/smart-components/ChannelList/components/ChannelPreviewAction.jsx","../../../src/smart-components/ChannelList/components/Placeholder.jsx","../../../src/smart-components/ChannelList/utils.js","../../../src/smart-components/ChannelList/index.jsx"],"sourcesContent":["export const RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\nexport const UNLOAD_CHANNELS = 'UNLOAD_CHANNELS';\nexport const SET_CHANNEL_LOADING = 'SET_CHANNEL_LOADING';\nexport const LEAVE_CHANNEL_SUCCESS = 'LEAVE_CHANNEL_SUCCESS';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\n\nexport const SHOW_CHANNEL_SETTINGS = 'SHOW_CHANNEL_SETTINGS';\nexport const HIDE_CHANNEL_SETTINGS = 'HIDE_CHANNEL_SETTINGS';\n\nexport const FETCH_CHANNELS_START = 'FETCH_CHANNELS_START';\nexport const FETCH_CHANNELS_SUCCESS = 'FETCH_CHANNELS_SUCCESS';\nexport const FETCH_CHANNELS_FAILURE = 'FETCH_CHANNELS_FAILURE';\n\nexport const INIT_CHANNELS_START = 'INIT_CHANNELS_START';\nexport const INIT_CHANNELS_SUCCESS = 'INIT_CHANNELS_SUCCESS';\nexport const INIT_CHANNELS_FAILURE = 'INIT_CHANNELS_FAILURE';\n\nexport const INVITE_MEMBERS_SUCESS = 'INVITE_MEMBERS_SUCESS';\n\nexport const ON_USER_JOINED = 'ON_USER_JOINED';\nexport const ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED';\nexport const ON_LAST_MESSAGE_UPDATED = 'ON_LAST_MESSAGE_UPDATED';\nexport const ON_USER_LEFT = 'ON_USER_LEFT';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_CHANNEL_ARCHIVED = 'ON_CHANNEL_ARCHIVED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\n\nexport const ON_READ_RECEIPT_UPDATED = 'ON_READ_RECEIPT_UPDATED';\nexport const ON_DELIVERY_RECEIPT_UPDATED = 'ON_DELIVERY_RECEIPT_UPDATED';\n\nexport const CHANNEL_REPLACED_TO_TOP = 'CHANNEL_REPLACED_TO_TOP';\n","export default {\n // we might not need this initialized state -> should remove\n initialized: false,\n loading: false,\n allChannels: [],\n currentChannel: null,\n showSettings: false,\n};\n","import * as actions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actions.INIT_CHANNELS_START:\n return {\n ...state,\n loading: true,\n };\n case actions.RESET_CHANNEL_LIST:\n return initialState;\n case actions.INIT_CHANNELS_SUCCESS:\n return {\n ...state,\n initialized: true,\n loading: false,\n allChannels: action.payload,\n currentChannel: (action.payload && action.payload.length && action.payload.length > 0)\n ? action.payload[0].url\n : null,\n };\n case actions.FETCH_CHANNELS_SUCCESS: {\n const currentChannels = state.allChannels.map((c) => c.url);\n const filteredChannels = action.payload.filter(\n ({ url }) => !(currentChannels.find((c) => c === url)),\n );\n return {\n ...state,\n allChannels: [\n ...state.allChannels,\n ...filteredChannels,\n ],\n };\n }\n case actions.CREATE_CHANNEL: {\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter(\n (channel) => channel.url !== action.payload.url,\n )],\n currentChannel: action.payload.url,\n };\n }\n case actions.ON_CHANNEL_ARCHIVED:\n case actions.LEAVE_CHANNEL_SUCCESS:\n case actions.ON_CHANNEL_DELETED: {\n const channelUrl = action.payload;\n const leftCurrentChannel = (state.currentChannel === channelUrl);\n const newAllChannels = state.allChannels.filter(({ url }) => url !== channelUrl);\n const currentChannel = leftCurrentChannel\n ? (() => (\n (newAllChannels.length > 0)\n ? newAllChannels[0].url\n : ''\n ))()\n : state.currentChannel;\n\n return {\n ...state,\n currentChannel,\n allChannels: newAllChannels,\n };\n }\n case actions.ON_USER_LEFT: {\n const { channel, isMe } = action.payload;\n const { url } = channel;\n if (isMe) {\n const leftCurrentChannel = (url === state.currentChannel);\n const newAllChannels = state.allChannels.filter((c) => (c.url !== url));\n const currentChannel = leftCurrentChannel\n ? (() => (\n (newAllChannels.length > 0)\n ? newAllChannels[0].url\n : ''\n ))()\n : state.currentChannel;\n\n return {\n ...state,\n currentChannel,\n allChannels: newAllChannels,\n };\n }\n // other user left\n const newAllChannels = state.allChannels.map((c) => ((c.url === url) ? channel : c));\n return {\n ...state,\n allChannels: newAllChannels,\n };\n }\n case actions.ON_USER_JOINED:\n case actions.ON_CHANNEL_CHANGED:\n case actions.ON_READ_RECEIPT_UPDATED:\n case actions.ON_DELIVERY_RECEIPT_UPDATED: {\n const { allChannels = [] } = state;\n const { unreadMessageCount } = action.payload;\n const channel = action.payload;\n if (!channel.lastMessage) {\n return state;\n }\n // if its only an unread message count change, dont push to top\n if (unreadMessageCount === 0) {\n const currentChannel = allChannels.find(({ url }) => url === channel.url);\n const currentUnReadCount = currentChannel && currentChannel.unreadMessageCount;\n if (currentUnReadCount === 0) {\n return {\n ...state,\n allChannels: allChannels.map((c) => {\n if (c.url === channel.url) {\n return channel;\n }\n return c;\n }),\n };\n }\n }\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter(({ url }) => url !== action.payload.url),\n ],\n };\n }\n case actions.SET_CURRENT_CHANNEL:\n return {\n ...state,\n currentChannel: action.payload,\n };\n case actions.SHOW_CHANNEL_SETTINGS:\n return {\n ...state,\n showSettings: true,\n };\n case actions.HIDE_CHANNEL_SETTINGS:\n return {\n ...state,\n showSettings: false,\n };\n case actions.ON_LAST_MESSAGE_UPDATED:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n return action.payload;\n }\n return channel;\n }),\n };\n case actions.ON_CHANNEL_FROZEN:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n // eslint-disable-next-line no-param-reassign\n channel.isFrozen = true;\n return channel;\n }\n return channel;\n }),\n };\n case actions.ON_CHANNEL_UNFROZEN:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n // eslint-disable-next-line no-param-reassign\n channel.isFrozen = false;\n return channel;\n }\n return channel;\n }),\n };\n case actions.CHANNEL_REPLACED_TO_TOP:\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter((channel) => channel.url !== action.payload.url),\n ],\n };\n default:\n return state;\n }\n}\n","import isToday from 'date-fns/isToday';\nimport format from 'date-fns/format';\nimport isYesterday from 'date-fns/isYesterday';\n\nimport { truncate } from '../FileMessage/utils';\nimport { LabelStringSet } from '../Label';\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n\nexport const getLastMessageCreatedAt = (channel) => {\n if (!channel || !channel.lastMessage) {\n return '';\n }\n const date = channel.lastMessage.createdAt;\n if (isToday(date)) {\n return format(date, 'p');\n }\n\n if (isYesterday(date)) {\n return 'Yesterday';\n }\n\n return format(date, 'MMM dd');\n};\n\nexport const getTotalMembers = (channel) => (\n channel && channel.memberCount\n ? channel.memberCount\n : 0\n);\n\nconst getPrettyLastMessage = (message = {}) => {\n const MAXLEN = 30;\n const { messageType, name } = message;\n if (messageType === 'file') {\n return truncate(name, MAXLEN);\n }\n return message.message;\n};\n\nexport const getLastMessage = (channel) => (\n channel && channel.lastMessage\n ? getPrettyLastMessage(channel.lastMessage)\n : ''\n);\n\nexport const getChannelUnreadMessageCount = (channel) => (\n (channel && channel.unreadMessageCount)\n ? channel.unreadMessageCount\n : 0\n);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ChannelAvatar from '../ChannelAvatar/index';\nimport Badge from '../Badge';\nimport Icon, { IconTypes } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport * as utils from './utils';\n\nexport default function ChannelPreview({\n channel,\n isActive,\n ChannelAction,\n theme,\n onClick,\n tabIndex,\n currentUser,\n}) {\n const {\n userId,\n } = currentUser;\n const { isBroadcast, isFrozen } = channel;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n
\n \n
\n
\n {\n isBroadcast\n && (\n
\n \n
\n )\n }\n \n {utils.getChannelTitle(channel, userId, stringSet)}\n \n \n {utils.getTotalMembers(channel)}\n \n {\n isFrozen\n && (\n
\n \n
\n )\n }\n
\n \n {utils.getLastMessageCreatedAt(channel)}\n \n
\n\n
\n \n {utils.getLastMessage(channel)}\n \n
\n {\n utils.getChannelUnreadMessageCount(channel)\n ? \n : null\n }\n
\n
\n \n \n {ChannelAction}\n \n \n );\n}\n\nChannelPreview.propTypes = {\n isActive: PropTypes.bool,\n theme: PropTypes.string,\n channel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n isBroadcast: PropTypes.bool,\n isFrozen: PropTypes.bool,\n }),\n ChannelAction: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n tabIndex: PropTypes.number,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n};\n\nChannelPreview.defaultProps = {\n channel: {},\n isActive: false,\n theme: 'light',\n onClick: () => { },\n tabIndex: 0,\n currentUser: {},\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport IconButton from '../IconButton';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\n\nexport default function ChannelHeader({\n user,\n iconButton,\n onEdit,\n renderHeader,\n allowProfileEdit,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n renderHeader\n ? renderHeader()\n : (\n \n
\n \n
\n
\n \n {user.nickname || stringSet.NO_NAME}\n \n \n {user.userId}\n \n
\n \n )\n }\n
\n {iconButton}\n
\n \n );\n}\n\nChannelHeader.propTypes = {\n user: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n userId: PropTypes.string,\n }),\n renderHeader: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n onEdit: PropTypes.func.isRequired,\n iconButton: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.instanceOf(IconButton),\n ]),\n};\n\nChannelHeader.defaultProps = {\n user: {},\n renderHeader: null,\n allowProfileEdit: false,\n iconButton: null,\n};\n","import React, {\n ReactElement,\n useRef,\n useState,\n useContext,\n} from 'react';\nimport './index.scss';\n\nimport Modal from '../Modal';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Input, { InputLabel } from '../Input';\nimport Avatar from '../Avatar';\nimport Icon, { IconTypes } from '../Icon';\nimport { Type as ButtonType } from '../Button/type';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport TextButton from '../TextButton';\nimport { SendbirdTypes } from '../../types';\nimport { noop } from '../../utils/utils';\n\ninterface Props {\n user: SendbirdTypes['User'];\n onCancel(): void;\n onSubmit(newFile: File, newNickname: string): void;\n onThemeChange?(theme: string): void;\n theme?: string;\n changeTheme?(theme: string): void;\n}\n\nexport function EditUserProfile({\n user,\n onCancel,\n onSubmit,\n onThemeChange = null,\n theme = 'light',\n changeTheme = noop,\n}: Props): ReactElement {\n const hiddenInputRef = useRef(null);\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n\n return (\n {\n if (user.nickname !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(inputRef.current.value, newFile);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.EDIT_PROFILE__IMAGE_LABEL}\n \n
\n \n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.EDIT_PROFILE__NICKNAME_LABEL}\n \n \n
\n
\n \n {/* userID */}\n {stringSet.EDIT_PROFILE__USERID_LABEL}\n \n \n
\n
\n \n {stringSet.EDIT_PROFILE__THEME_LABEL}\n \n
\n {\n theme === 'dark'\n ? (\n {\n changeTheme('light');\n if (onThemeChange && typeof onThemeChange === 'function') {\n onThemeChange('light');\n }\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n {\n changeTheme('dark');\n if (onThemeChange && typeof onThemeChange === 'function') {\n onThemeChange('dark');\n }\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nconst mapStoreToProps = (store) => {\n return {\n theme: store.config.theme,\n changeTheme: store.config.setCurrenttheme,\n };\n};\n\ninterface ConnectedEditUserProfileProps {\n user: SendbirdTypes['User'];\n onCancel(): void;\n onSubmit(newFile: File, newNickname: string): void;\n onThemeChange?(theme: string): void;\n}\n\nconst ConnectedEditUserProfile: (\n props: ConnectedEditUserProfileProps\n) => React.Component = withSendbirdContext(EditUserProfile, mapStoreToProps);\n\nexport default ConnectedEditUserProfile;\n","import './add-channel.scss';\n\nimport React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport IconButton from '../../../ui/IconButton';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport InviteMembers from '../../InviteMembers';\n\nimport {\n createChannel,\n createDefaultUserListQuery,\n isBroadcastChannelEnabled,\n isSuperGroupChannelEnabled,\n} from './utils';\nimport { CREATE_CHANNEL } from '../dux/actionTypes';\nimport Modal from '../../../ui/Modal';\n\nexport default function AddChannel({\n sdk,\n disabled,\n channelListDispatcher,\n onBeforeCreateChannel,\n userId,\n userFilledApplicationUserListQuery,\n userListQuery,\n}) {\n const [showModal, setShowModal] = useState(false);\n const [step, setStep] = useState(0);\n const [type, setType] = useState('group');\n const { stringSet } = useContext(LocalizationContext);\n\n if (!sdk || !sdk.createApplicationUserListQuery) {\n return null;\n }\n\n const isBroadcastAvailable = isBroadcastChannelEnabled(sdk);\n const isSupergroupAvailable = isSuperGroupChannelEnabled(sdk);\n\n return (\n <>\n {\n setShowModal(true);\n }}\n disabled={disabled}\n >\n \n \n {\n showModal && step === 0 && (\n { setShowModal(false); }}\n onSubmit={() => {}}\n >\n
\n {\n setType('group');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('group');\n setStep(1);\n }}\n >\n \n \n
\n {\n isSupergroupAvailable && (\n {\n setType('supergroup');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('supergroup');\n setStep(1);\n }}\n >\n \n \n \n )\n }\n {\n isBroadcastAvailable && (\n {\n setType('broadcast');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('broadcast');\n setStep(1);\n }}\n >\n \n \n \n )\n }\n \n \n )\n }\n {\n showModal && step === 1 && (\n {\n setStep(0);\n setShowModal(false);\n }}\n idsToFilter={[userId]}\n userQueryCreator={() => ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )}\n onSubmit={(selectedUsers) => createChannel(\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type,\n ).then((channel) => {\n // maybe - do this in event listener\n channelListDispatcher({\n type: CREATE_CHANNEL,\n payload: channel,\n });\n })}\n />\n )\n }\n \n );\n}\n\nAddChannel.propTypes = {\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n createApplicationUserListQuery: PropTypes.func,\n }).isRequired,\n disabled: PropTypes.bool,\n channelListDispatcher: PropTypes.func.isRequired,\n userFilledApplicationUserListQuery: PropTypes.shape({}),\n onBeforeCreateChannel: PropTypes.func,\n userId: PropTypes.string.isRequired,\n userListQuery: PropTypes.func,\n};\n\nAddChannel.defaultProps = {\n disabled: false,\n userFilledApplicationUserListQuery: {},\n onBeforeCreateChannel: null,\n userListQuery: null,\n};\n","import React, {\n useState,\n useRef,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../ui/ContextMenu';\nimport IconButton from '../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport LeaveChannelModal from '../../ChannelSettings/components/LeaveChannel';\n\nexport default function ChannelPreviewAction({ disabled, onLeaveChannel }) {\n const parentRef = useRef(null);\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n { e.stopPropagation(); }}\n tabIndex={0}\n onClick={(e) => { e.stopPropagation(); }}\n >\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if (disabled) { return; }\n setShowModal(true);\n closeDropdown();\n }}\n >\n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n \n \n )}\n />\n {\n showModal && (\n setShowModal(false)}\n onLeaveChannel={onLeaveChannel}\n />\n )\n }\n \n );\n}\n\nChannelPreviewAction.propTypes = {\n disabled: PropTypes.bool,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nChannelPreviewAction.defaultProps = {\n disabled: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Placeholder from '../../../ui/PlaceHolder';\n\nexport default function ChannelsPlaceholder({\n type,\n}) {\n return (\n
\n \n
\n );\n}\n\nChannelsPlaceholder.propTypes = {\n type: PropTypes.string.isRequired,\n};\n","import * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nconst createEventHandler = ({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n logger,\n}) => {\n const ChannelHandler = new sdk.ChannelHandler();\n\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('ChannelList: onChannelChanged', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onChannelDeleted = (channelUrl) => {\n logger.info('ChannelList: onChannelDeleted', channelUrl);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_DELETED,\n payload: channelUrl,\n });\n };\n ChannelHandler.onUserJoined = (channel) => {\n logger.info('ChannelList: onUserJoined', channel);\n if (channel.lastMessage) {\n channelListDispatcher({\n type: channelActions.ON_USER_JOINED,\n payload: channel,\n });\n }\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const { currentUser } = sdk;\n logger.info('Channel | useHandleChannelEvents: onUserBanned', channel);\n if (user.userId === currentUser.userId) {\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe: true,\n },\n });\n } else {\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe: false,\n },\n });\n }\n };\n ChannelHandler.onUserLeft = (channel, leftUser) => {\n const { currentUser } = sdk;\n const isMe = (currentUser.userId === leftUser.userId);\n logger.info('ChannelList: onUserLeft', channel);\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe,\n },\n });\n };\n\n ChannelHandler.onReadStatus = (channel) => {\n logger.info('ChannelList: onReadStatus', channel);\n channelListDispatcher({\n type: channelActions.ON_READ_RECEIPT_UPDATED,\n payload: channel,\n });\n };\n\n ChannelHandler.onDeliveryReceiptUpdated = (channel) => {\n logger.info('ChannelList: onDeliveryReceiptUpdated', channel);\n if (channel.lastMessage) {\n channelListDispatcher({\n type: channelActions.ON_DELIVERY_RECEIPT_UPDATED,\n payload: channel,\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n if (channel.lastMessage.isEqual(message)) {\n logger.info('ChannelList: onMessageUpdated', channel);\n channelListDispatcher({\n type: channelActions.ON_LAST_MESSAGE_UPDATED,\n payload: channel,\n });\n }\n };\n\n ChannelHandler.onChannelHidden = (channel) => {\n logger.info('ChannelList: onChannelHidden', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_ARCHIVED,\n payload: channel.url,\n });\n };\n\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('ChannelList: onChannelFrozen', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('ChannelList: onChannelUnfrozen', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n\n logger.info('ChannelList: Added channelHandler');\n sdk.addChannelHandler(sdkChannelHandlerId, ChannelHandler);\n};\n\nconst createApplicationUserListQuery = ({ sdk, userFilledChannelListQuery = {} }) => {\n const channelListQuery = sdk.GroupChannel.createMyGroupChannelListQuery();\n channelListQuery.includeEmpty = false;\n channelListQuery.order = 'latest_last_message'; // 'chronological', 'latest_last_message', 'channel_name_alphabetical', and 'metadata_value_alphabetical'\n channelListQuery.limit = 20; // The value of pagination limit could be set up to 100.\n\n if (userFilledChannelListQuery) {\n Object.keys(userFilledChannelListQuery).forEach((key) => {\n channelListQuery[key] = userFilledChannelListQuery[key];\n });\n }\n\n return channelListQuery;\n};\n\n/**\n * Setup event listener\n * create channel source query\n * addloading screen\n */\nfunction setupChannelList({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n setChannelSource,\n onChannelSelect,\n userFilledChannelListQuery,\n logger,\n sortChannelList,\n}) {\n createEventHandler({\n sdk,\n channelListDispatcher,\n sdkChannelHandlerId,\n logger,\n });\n\n logger.info('ChannelList - creating query', { userFilledChannelListQuery });\n const channelListQuery = createApplicationUserListQuery({ sdk, userFilledChannelListQuery });\n logger.info('ChannelList - created query', channelListQuery);\n\n setChannelSource(channelListQuery);\n\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_START,\n });\n\n logger.info('ChannelList - fetching channels');\n if (channelListQuery.hasNext) {\n channelListQuery.next((response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let channelList = response;\n let err = error;\n if (swapParams) {\n channelList = error;\n err = response;\n }\n logger.info('ChannelList - fetched channels', channelList);\n if (err) {\n logger.error('ChannelList - couldnt fetch channels', err);\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_FAILURE,\n });\n return;\n }\n // select first channel\n logger.info('ChannelList - highlight channel', channelList[0]);\n let sorted = channelList;\n if (sortChannelList && typeof sortChannelList === 'function') {\n sorted = sortChannelList(channelList);\n logger.info('ChannelList - channel list sorted', sorted);\n }\n onChannelSelect(sorted[0]);\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_SUCCESS,\n payload: sorted,\n });\n if (channelList && typeof channelList.forEach === 'function') {\n logger.info('ChannelList - mark all channels as delivered');\n channelList.forEach((c) => c.markAsDelivered());\n }\n });\n } else {\n logger.warning('ChannelList - there are no more channels');\n }\n}\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (pubSub, channelListDispatcher) => {\n const subScriber = new Map();\n if (!pubSub) return subScriber;\n subScriber.set(topics.CREATE_CHANNEL, pubSub.subscribe(topics.CREATE_CHANNEL, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: 'CREATE_CHANNEL',\n payload: channel,\n });\n }));\n\n subScriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n const updatedChannel = channel;\n updatedChannel.lastMessage = message;\n if (channel) {\n channelListDispatcher({\n type: channelActions.ON_LAST_MESSAGE_UPDATED,\n payload: updatedChannel,\n });\n }\n }));\n\n subScriber.set(topics.LEAVE_CHANNEL, pubSub.subscribe(topics.LEAVE_CHANNEL, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: channelActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel.url,\n });\n }));\n\n subScriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: channelActions.CHANNEL_REPLACED_TO_TOP,\n payload: channel,\n });\n }));\n\n return subScriber;\n};\n\nexport default setupChannelList;\n","import React, { useEffect, useState, useReducer } from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as userActions from '../../lib/dux/user/actionTypes';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport * as channelListActions from './dux/actionTypes';\nimport channelListInitialState from './dux/initialState';\nimport channelListReducers from './dux/reducers';\n\nimport ChannelPreview from '../../ui/ChannelPreview';\nimport ChannelHeader from '../../ui/ChannelHeader';\nimport EditUserProfile from '../../ui/EditUserProfile';\nimport PlaceholderTypes from '../../ui/PlaceHolder/type';\n\nimport AddChannel from './components/AddChannel';\nimport ChannelPreviewAction from './components/ChannelPreviewAction';\nimport PlaceHolder from './components/Placeholder';\n\nimport setupChannelList, {\n pubSubHandler,\n pubSubHandleRemover,\n} from './utils';\nimport { uuidv4 } from '../../utils/uuid';\n\nimport './index.scss';\n\nconst noop = () => { };\n\nfunction ChannelList(props) {\n const {\n stores: { sdkStore = {}, userStore = {} },\n config: {\n userId,\n isOnline,\n userListQuery,\n logger,\n pubSub,\n theme,\n },\n dispatchers: {\n userDispatcher,\n },\n queries = {},\n renderChannelPreview,\n renderHeader,\n renderUserProfile,\n disableUserProfile,\n allowProfileEdit,\n sortChannelList,\n onProfileEditSuccess,\n onThemeChange,\n onBeforeCreateChannel,\n onChannelSelect,\n } = props;\n const { config = {} } = props;\n // enable if it is true atleast once(both are flase by default)\n const enableEditProfile = allowProfileEdit || config.allowProfileEdit;\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n const { sdk = {} } = sdkStore;\n const userFilledChannelListQuery = queries.channelListQuery;\n const userFilledApplicationUserListQuery = queries.applicationUserListQuery;\n\n const sdkError = sdkStore.error;\n\n const [user, setUser] = useState({});\n\n useEffect(() => {\n setUser(userStore.user);\n }, [userStore.user]);\n\n\n const sdkIntialized = sdkStore.initialized;\n const [channelListStore, channelListDispatcher] = useReducer(\n channelListReducers,\n channelListInitialState,\n );\n const [channelSource, setChannelSource] = useState({});\n const [sdkChannelHandlerId, setSdkChannelHandlerId] = useState(null);\n const [showProfileEdit, setShowProfileEdit] = useState(false);\n\n const { loading, currentChannel } = channelListStore;\n\n useEffect(() => {\n const subscriber = pubSubHandler(pubSub, channelListDispatcher);\n return () => {\n pubSubHandleRemover(subscriber);\n };\n }, [sdkIntialized]);\n\n useEffect(() => {\n setSdkChannelHandlerId(uuidv4);\n if (sdkIntialized) {\n logger.info('ChannelList: Setup channelHandlers');\n setupChannelList({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n setChannelSource,\n onChannelSelect,\n userFilledChannelListQuery,\n logger,\n sortChannelList,\n });\n } else {\n logger.info('ChannelList: Removing channelHandlers');\n // remove previous channelHandlers\n if (sdk && sdk.removeChannelHandler) {\n sdk.removeChannelHandler(sdkChannelHandlerId);\n }\n // remove channelSource\n setChannelSource({});\n // cleanup\n channelListDispatcher({\n type: channelListActions.RESET_CHANNEL_LIST,\n });\n }\n return () => {\n logger.info('ChannelList: Removing channelHandlers');\n if (sdk && sdk.removeChannelHandler) {\n sdk.removeChannelHandler(sdkChannelHandlerId);\n }\n };\n }, [sdkIntialized, userFilledChannelListQuery, sortChannelList]);\n\n const { allChannels } = channelListStore;\n const sortedChannels = (sortChannelList && typeof sortChannelList === 'function')\n ? sortChannelList(allChannels)\n : allChannels;\n\n if (sortedChannels.length !== allChannels.length) {\n const warning = `ChannelList: You have removed/added extra channels on sortChannelList\n this could cause unexpected problems`;\n // eslint-disable-next-line no-console\n console.warn(warning, { before: allChannels, after: sortedChannels });\n logger.warning(warning, { before: allChannels, after: sortedChannels });\n }\n\n useEffect(() => {\n if (!sdk || !sdk.GroupChannel) { return; }\n sdk.GroupChannel.getChannel(currentChannel, (groupChannel) => {\n if (groupChannel) {\n onChannelSelect(groupChannel);\n } else {\n onChannelSelect(null);\n }\n });\n }, [currentChannel]);\n\n return (\n \n
\n {\n if (enableEditProfile) {\n setShowProfileEdit(true);\n }\n }}\n allowProfileEdit={enableEditProfile}\n iconButton={(\n \n )}\n />\n
\n {\n showProfileEdit && (\n { setShowProfileEdit(false); }}\n onSubmit={(newName, newFile) => {\n sdk.updateCurrentUserInfoWithProfileImage(newName, newFile, (updatedUser) => {\n userDispatcher({ type: userActions.UPDATE_USER_INFO, payload: updatedUser });\n if (onProfileEditSuccess && typeof onProfileEditSuccess === 'function') {\n onProfileEditSuccess(updatedUser);\n }\n });\n }}\n />\n )\n }\n {\n const fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight;\n if (fetchMore && channelSource.hasNext) {\n logger.info('ChannelList: Fetching more channels');\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_START,\n });\n channelSource.next((response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let channelList = response;\n let err = error;\n if (swapParams) {\n channelList = error;\n err = response;\n }\n if (err) {\n logger.info('ChannelList: Fetching channels failed', err);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_FAILURE,\n payload: channelList,\n });\n return;\n }\n logger.info('ChannelList: Fetching channels successful', channelList);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_SUCCESS,\n payload: channelList,\n });\n if (channelList && typeof channelList.forEach === 'function') {\n logger.info('ChannelList: Marking all channels as read');\n channelList.forEach((c) => c.markAsDelivered());\n }\n });\n }\n }}\n >\n {\n (sdkError) && (\n \n )\n }\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n sortedChannels && sortedChannels.map((channel, idx) => {\n const onLeaveChannel = (c, cb) => {\n logger.info('ChannelList: Leaving channel', c);\n c.leave()\n .then((res) => {\n logger.info('ChannelList: Leaving channel success', res);\n if (cb && typeof cb === 'function') {\n cb(res, null);\n }\n channelListDispatcher({\n type: channelListActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel.url,\n });\n })\n .catch((err) => {\n logger.error('ChannelList: Leaving channel failed', err);\n if (cb && typeof cb === 'function') {\n cb(null, err);\n }\n });\n };\n\n const onClick = () => {\n if (!isOnline) { return; }\n logger.info('ChannelList: Clicked on channel:', channel);\n channelListDispatcher({\n type: channelListActions.SET_CURRENT_CHANNEL,\n payload: channel.url,\n });\n };\n\n return (\n (renderChannelPreview)\n ? (\n // eslint-disable-next-line\n
\n {renderChannelPreview({ channel, onLeaveChannel })}\n
\n )\n : (\n onLeaveChannel(channel)}\n />\n )}\n />\n )\n );\n })\n }\n
\n {\n (!sdkIntialized || loading) && (\n \n )\n }\n {\n // placeholder\n (!allChannels || allChannels.length === 0) && (\n \n )\n }\n \n \n );\n}\n\nChannelList.propTypes = {\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n userDispatcher: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n userId: PropTypes.string.isRequired,\n userListQuery: PropTypes.func,\n theme: PropTypes.string,\n isOnline: PropTypes.bool,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n channelListQuery: PropTypes.shape({\n channelNameContainsFilter: PropTypes.string,\n channelUrlsFilter: PropTypes.arrayOf(PropTypes.string),\n customTypesFilter: PropTypes.arrayOf(PropTypes.string),\n customTypeStartsWithFilter: PropTypes.string,\n hiddenChannelFilter: PropTypes.string,\n includeEmpty: PropTypes.bool,\n limit: PropTypes.number,\n memberStateFilter: PropTypes.string,\n metadataOrderKeyFilter: PropTypes.string,\n nicknameContainsFilter: PropTypes.string,\n order: PropTypes.string,\n publicChannelFilter: PropTypes.string,\n superChannelFilter: PropTypes.string,\n unreadChannelFilter: PropTypes.string,\n userIdsExactFilter: PropTypes.arrayOf(PropTypes.string),\n userIdsIncludeFilter: PropTypes.arrayOf(PropTypes.string),\n userIdsIncludeFilterQueryType: PropTypes.string,\n }),\n applicationUserListQuery: PropTypes.shape({\n limit: PropTypes.number,\n userIdsFilter: PropTypes.arrayOf(PropTypes.string),\n metaDataKeyFilter: PropTypes.string,\n metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeCreateChannel: PropTypes.func,\n renderChannelPreview: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n sortChannelList: PropTypes.func,\n onThemeChange: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n renderHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChannelSelect: PropTypes.func,\n};\n\nChannelList.defaultProps = {\n onBeforeCreateChannel: null,\n renderChannelPreview: null,\n renderHeader: null,\n disableUserProfile: false,\n renderUserProfile: null,\n allowProfileEdit: false,\n onThemeChange: null,\n sortChannelList: null,\n onProfileEditSuccess: null,\n queries: {},\n onChannelSelect: noop,\n};\n\nexport default withSendbirdContext(ChannelList);\n"],"names":["RESET_CHANNEL_LIST","CREATE_CHANNEL","LEAVE_CHANNEL_SUCCESS","SET_CURRENT_CHANNEL","SHOW_CHANNEL_SETTINGS","HIDE_CHANNEL_SETTINGS","FETCH_CHANNELS_START","FETCH_CHANNELS_SUCCESS","FETCH_CHANNELS_FAILURE","INIT_CHANNELS_START","INIT_CHANNELS_SUCCESS","INIT_CHANNELS_FAILURE","ON_USER_JOINED","ON_CHANNEL_DELETED","ON_LAST_MESSAGE_UPDATED","ON_USER_LEFT","ON_CHANNEL_CHANGED","ON_CHANNEL_ARCHIVED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_READ_RECEIPT_UPDATED","ON_DELIVERY_RECEIPT_UPDATED","CHANNEL_REPLACED_TO_TOP","initialized","loading","allChannels","currentChannel","showSettings","reducer","state","action","type","actions","initialState","payload","length","url","currentChannels","map","c","filteredChannels","filter","find","channel","channelUrl","leftCurrentChannel","newAllChannels","isMe","unreadMessageCount","lastMessage","currentUnReadCount","isFrozen","getChannelTitle","currentUserId","stringSet","LabelStringSet","name","members","NO_TITLE","NO_MEMBERS","userId","nickname","NO_NAME","join","getLastMessageCreatedAt","date","createdAt","isToday","format","isYesterday","getTotalMembers","memberCount","getPrettyLastMessage","message","MAXLEN","messageType","truncate","getLastMessage","getChannelUnreadMessageCount","ChannelPreview","isActive","ChannelAction","theme","onClick","tabIndex","currentUser","isBroadcast","useContext","LocalizationContext","IconTypes","BROADCAST_DARK","BROADCAST_LIGHT","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","utils","CAPTION_2","ONBACKGROUND_2","FROZEN_DARK","FROZEN_LIGHT","CAPTION_3","BODY_2","ONBACKGROUND_3","propTypes","PropTypes","bool","string","shape","arrayOf","coverUrl","element","isRequired","func","number","defaultProps","ChannelHeader","user","iconButton","onEdit","renderHeader","allowProfileEdit","profileUrl","oneOfType","instanceOf","IconButton","EditUserProfile","_a","onCancel","onSubmit","_b","onThemeChange","_c","_d","changeTheme","noop","hiddenInputRef","useRef","inputRef","formRef","_e","useState","currentImg","setCurrentImg","_f","newFile","setNewFile","EDIT_PROFILE__TITLE","BUTTON__SAVE","current","value","reportValidity","ButtonType","PRIMARY","e","preventDefault","EDIT_PROFILE__IMAGE_LABEL","display","URL","createObjectURL","target","files","click","BUTTON_1","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","EDIT_PROFILE__THEME_LABEL","TOGGLE_ON","TOGGLE_OFF","mapStoreToProps","store","config","setCurrenttheme","ConnectedEditUserProfile","withSendbirdContext","AddChannel","sdk","disabled","channelListDispatcher","onBeforeCreateChannel","userFilledApplicationUserListQuery","userListQuery","showModal","setShowModal","step","setStep","setType","createApplicationUserListQuery","isBroadcastAvailable","isBroadcastChannelEnabled","isSupergroupAvailable","isSuperGroupChannelEnabled","CREATE","IconColors","CHAT","SUBTITLE_1","SUPER_GROUP","BROADCAST","getErrorFirstCallback","MODAL__CREATE_CHANNEL__TITLE","BUTTON__CREATE","createDefaultUserListQuery","selectedUsers","createChannel","then","ChannelPreviewAction","onLeaveChannel","parentRef","stopPropagation","toggleDropdown","MORE","closeDropdown","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","ChannelsPlaceholder","Placeholder","createEventHandler","sdkChannelHandlerId","logger","ChannelHandler","onChannelChanged","info","channelActions","onChannelDeleted","onUserJoined","onUserBanned","onUserLeft","leftUser","onReadStatus","onDeliveryReceiptUpdated","onMessageUpdated","isEqual","onChannelHidden","onChannelFrozen","onChannelUnfrozen","addChannelHandler","userFilledChannelListQuery","channelListQuery","GroupChannel","createMyGroupChannelListQuery","includeEmpty","order","limit","Object","keys","forEach","key","setupChannelList","setChannelSource","onChannelSelect","sortChannelList","hasNext","next","response","error","swapParams","channelList","err","sorted","markAsDelivered","warning","pubSubHandleRemover","subscriber","s","remove","pubSubHandler","pubSub","subScriber","Map","set","topics","subscribe","msg","updatedChannel","ChannelList","props","stores","sdkStore","userStore","isOnline","userDispatcher","dispatchers","queries","renderChannelPreview","renderUserProfile","disableUserProfile","onProfileEditSuccess","enableEditProfile","userDefinedDisableUserProfile","userDefinedRenderProfile","applicationUserListQuery","sdkError","setUser","useEffect","sdkIntialized","useReducer","channelListReducers","channelListInitialState","channelListStore","channelSource","setSdkChannelHandlerId","showProfileEdit","setShowProfileEdit","uuidv4","removeChannelHandler","channelListActions","sortedChannels","console","warn","before","after","getChannel","groupChannel","newName","updateCurrentUserInfoWithProfileImage","updatedUser","userActions","fetchMore","clientHeight","scrollTop","scrollHeight","PlaceHolder","PlaceholderTypes","WRONG","idx","cb","leave","res","catch","LOADING","NO_CHANNELS","publish","channelNameContainsFilter","channelUrlsFilter","customTypesFilter","customTypeStartsWithFilter","hiddenChannelFilter","memberStateFilter","metadataOrderKeyFilter","nicknameContainsFilter","publicChannelFilter","superChannelFilter","unreadChannelFilter","userIdsExactFilter","userIdsIncludeFilter","userIdsIncludeFilterQueryType","userIdsFilter","metaDataKeyFilter","metaDataValuesFilter"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/ChannelSettings.js b/dist/esm/ChannelSettings.js new file mode 100644 index 0000000..4c7616d --- /dev/null +++ b/dist/esm/ChannelSettings.js @@ -0,0 +1,2064 @@ +import { b as _slicedToArray, e as LocalizationContext, d as __spreadArrays, _ as __assign, w as withSendbirdContext, u as uuidv4 } from './LocalizationContext-619bafba.js'; +import React, { useRef, useState, useContext, useEffect, useCallback } from 'react'; +import PropTypes from 'prop-types'; +import { M as Modal, T as Type, A as Avatar, f as TextButton, b as Label, c as LabelTypography, d as LabelColors, C as ContextMenu, e as IconButton, I as Icon, a as IconTypes, g as IconColors, h as MenuItems, i as MenuItem, n as UserProfileContext, o as UserProfile, B as Button, w as Size, z as getSdk, P as PlaceHolder, m as PlaceHolderTypes, l as UserProfileProvider } from './index-0c67ae90.js'; +import { n as noop } from './utils-53ba1773.js'; +import { C as ChannelAvatar } from './index-a199094e.js'; +import { I as InviteMembers$1, B as Badge, c as createDefaultUserListQuery, L as LeaveChannelModal } from './LeaveChannel-fcc0bfc3.js'; +import 'date-fns/format'; +import 'react-dom'; +import { I as InputLabel, a as Input, U as UserListItem$2, M as MutedAvatarOverlay } from './index-73379213.js'; +import { A as AccordionGroup, a as Accordion } from './index-7bc4a9f7.js'; + +var EditDetails = function EditDetails(props) { + var _onSubmit = props.onSubmit, + onCancel = props.onCancel, + channel = props.channel, + userId = props.userId, + theme = props.theme; + var inputRef = useRef(null); + var formRef = useRef(null); + var hiddenInputRef = useRef(null); + + var _useState = useState(null), + _useState2 = _slicedToArray(_useState, 2), + currentImg = _useState2[0], + setCurrentImg = _useState2[1]; + + var _useState3 = useState(null), + _useState4 = _slicedToArray(_useState3, 2), + newFile = _useState4[0], + setNewFile = _useState4[1]; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var title = channel.name; + return React.createElement(Modal, { + titleText: stringSet.MODAL__CHANNEL_INFORMATION__TITLE, + submitText: stringSet.BUTTON__SAVE, + onCancel: onCancel, + onSubmit: function onSubmit() { + if (title !== '' && !inputRef.current.value) { + if (formRef.current.reportValidity) { + // might not work in explorer + formRef.current.reportValidity(); + } + + return; + } + + _onSubmit(newFile, inputRef.current.value); + + onCancel(); + }, + type: Type.PRIMARY + }, React.createElement("form", { + className: "channel-profile-form", + ref: formRef, + onSubmit: function onSubmit(e) { + e.preventDefault(); + } + }, React.createElement("div", { + className: "channel-profile-form__img-section" + }, React.createElement(InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE), React.createElement("div", { + className: "channel-profile-form__avatar" + }, currentImg ? React.createElement(Avatar, { + height: "80px", + width: "80px", + src: currentImg + }) : React.createElement(ChannelAvatar, { + height: 80, + width: 80, + channel: channel, + userId: userId, + theme: theme + })), React.createElement("input", { + ref: hiddenInputRef, + type: "file", + accept: "image/gif, image/jpeg, image/png", + style: { + display: 'none' + }, + onChange: function onChange(e) { + setCurrentImg(URL.createObjectURL(e.target.files[0])); + setNewFile(e.target.files[0]); + hiddenInputRef.current.value = ''; + } + }), React.createElement(TextButton, { + className: "channel-profile-form__avatar-button", + onClick: function onClick() { + return hiddenInputRef.current.click(); + }, + notUnderline: true + }, React.createElement(Label, { + type: LabelTypography.BUTTON_1, + color: LabelColors.PRIMARY + }, stringSet.MODAL__CHANNEL_INFORMATION__UPLOAD))), React.createElement("div", { + className: "channel-profile-form__name-section" + }, React.createElement(InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME), React.createElement(Input, { + required: title !== '', + name: "channel-profile-form__name", + ref: inputRef, + value: title, + placeHolder: stringSet.MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER + })))); +}; + +EditDetails.propTypes = { + onSubmit: PropTypes.func.isRequired, + onCancel: PropTypes.func.isRequired, + channel: PropTypes.shape({ + name: PropTypes.string + }).isRequired, + userId: PropTypes.string.isRequired, + theme: PropTypes.string.isRequired +}; + +var ChannelProfile = function ChannelProfile(props) { + var disabled = props.disabled, + channel = props.channel, + userId = props.userId, + theme = props.theme, + onChannelInfoChange = props.onChannelInfoChange; + var title = channel.name; + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + showModal = _useState2[0], + setShowModal = _useState2[1]; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return React.createElement("div", { + className: "sendbird-channel-profile" + }, React.createElement("div", { + className: "sendbird-channel-profile--inner" + }, React.createElement("div", { + className: "sendbird-channel-profile__avatar" + }, React.createElement(ChannelAvatar, { + channel: channel, + userId: userId, + theme: theme + })), React.createElement(Label, { + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1, + className: "sendbird-channel-profile__title" + }, title), React.createElement(TextButton, { + disabled: disabled, + className: "sendbird-channel-profile__edit", + onClick: function onClick() { + if (disabled) { + return; + } + + setShowModal(true); + }, + notUnderline: true + }, React.createElement(Label, { + type: LabelTypography.BUTTON_1, + color: disabled ? LabelColors.ONBACKGROUND_2 : LabelColors.PRIMARY + }, stringSet.CHANNEL_SETTING__PROFILE__EDIT)), showModal && React.createElement(EditDetails, { + onCancel: function onCancel() { + return setShowModal(false); + }, + onSubmit: onChannelInfoChange, + channel: channel, + userId: userId, + theme: theme + }))); +}; + +ChannelProfile.propTypes = { + channel: PropTypes.shape({ + name: PropTypes.string + }).isRequired, + userId: PropTypes.string.isRequired, + theme: PropTypes.string, + disabled: PropTypes.bool, + onChannelInfoChange: PropTypes.func +}; +ChannelProfile.defaultProps = { + theme: 'light', + disabled: false, + onChannelInfoChange: function onChannelInfoChange() {} +}; + +function MembersModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel, + currentUser = _a.currentUser; + + var _b = useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = useState(null), + memberQuery = _c[0], + setMemberQuery = _c[1]; + + useEffect(function () { + var memberListQuery = channel.createMemberListQuery(); + memberListQuery.limit = 20; + memberListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + }); + setMemberQuery(memberListQuery); + }, []); + return React.createElement("div", null, React.createElement(Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: noop, + titleText: "All Members" + }, React.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = memberQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + memberQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React.createElement(UserListItem$2, { + user: member, + key: member.userId, + currentUser: currentUser, + action: function action(_a) { + var parentRef = _a.parentRef, + actionRef = _a.actionRef; + return React.createElement(React.Fragment, null, channel.myRole === 'operator' && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React.createElement(MenuItem, { + onClick: function onClick() { + if (member.role !== 'operator') { + channel.addOperators([member.userId], function () { + setMembers(members.map(function (m) { + if (m.userId === member.userId) { + return __assign(__assign({}, member), { + role: 'operator' + }); + } + + return m; + })); + closeDropdown(); + }); + } else { + channel.removeOperators([member.userId], function () { + setMembers(members.map(function (m) { + if (m.userId === member.userId) { + return __assign(__assign({}, member), { + role: '' + }); + } + + return m; + })); + closeDropdown(); + }); + } + } + }, member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'), // No muted members in broadcast channel + !channel.isBroadcast && React.createElement(MenuItem, { + onClick: function onClick() { + if (member.isMuted) { + channel.unmuteUser(member, function () { + setMembers(members.map(function (m) { + if (m.userId === member.userId) { + return __assign(__assign({}, member), { + isMuted: false + }); + } + + return m; + })); + closeDropdown(); + }); + } else { + channel.muteUser(member, function () { + setMembers(members.map(function (m) { + if (m.userId === member.userId) { + return __assign(__assign({}, member), { + isMuted: true + }); + } + + return m; + })); + closeDropdown(); + }); + } + } + }, member.isMuted ? 'Unmute' : 'Mute'), React.createElement(MenuItem, { + onClick: function onClick() { + channel.banUser(member, -1, '', function () { + setMembers(members.filter(function (_a) { + var userId = _a.userId; + return userId !== member.userId; + })); + }); + } + }, "Ban")); + } + })); + } + }); + })))); +} + +var SHOWN_MEMBER_MAX = 10; + +var UserListItem = function UserListItem(_ref) { + var _ref$member = _ref.member, + member = _ref$member === void 0 ? {} : _ref$member, + _ref$currentUser = _ref.currentUser, + currentUser = _ref$currentUser === void 0 ? '' : _ref$currentUser; + var avatarRef = useRef(null); + + var _useContext = useContext(UserProfileContext), + disableUserProfile = _useContext.disableUserProfile, + renderUserProfile = _useContext.renderUserProfile; + + var _useContext2 = useContext(LocalizationContext), + stringSet = _useContext2.stringSet; + + return React.createElement("div", { + className: "sendbird-members-accordion__member" + }, React.createElement("div", { + className: "sendbird-members-accordion__member-avatar" + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + ref: avatarRef, + src: member.profileUrl, + width: 24, + height: 24 + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + openLeft: true, + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: member, + currentUserId: currentUser, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: member, + currentUserId: currentUser, + onSuccess: closeDropdown + })); + } + })), React.createElement(Label, { + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1 + }, member.nickname || stringSet.NO_NAME, currentUser === member.userId && ' (You)')); +}; + +UserListItem.propTypes = { + member: PropTypes.shape({ + userId: PropTypes.string, + profileUrl: PropTypes.string, + nickname: PropTypes.string + }).isRequired, + currentUser: PropTypes.string.isRequired +}; + +var MemebersAccordion = function MemebersAccordion(_ref2) { + var channel = _ref2.channel, + disabled = _ref2.disabled, + currentUser = _ref2.currentUser, + userQueryCreator = _ref2.userQueryCreator, + onInviteMemebers = _ref2.onInviteMemebers, + swapParams = _ref2.swapParams; + var members = channel.members || []; + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + showMoreModal = _useState2[0], + setShowMoreModal = _useState2[1]; + + var _useState3 = useState(false), + _useState4 = _slicedToArray(_useState3, 2), + showAddUserModal = _useState4[0], + setShowAddUserModal = _useState4[1]; + + var _useContext3 = useContext(LocalizationContext), + stringSet = _useContext3.stringSet; + + return React.createElement("div", { + className: "sendbird-members-accordion" + }, React.createElement("div", { + className: "sendbird-members-accordion__list" + }, members.slice(0, SHOWN_MEMBER_MAX).map(function (member) { + return React.createElement(UserListItem, { + member: member, + currentUser: currentUser, + key: member.userId + }); + })), React.createElement("div", { + className: "sendbird-members-accordion__footer" + }, members.length >= SHOWN_MEMBER_MAX && React.createElement(Button, { + className: "sendbird-members-accordion__footer__all-members", + type: Type.SECONDARY, + size: Size.SMALL, + onClick: function onClick() { + return setShowMoreModal(true); + } + }, stringSet.CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS), members.length >= SHOWN_MEMBER_MAX && showMoreModal && React.createElement(MembersModal, { + currentUser: currentUser, + hideModal: function hideModal() { + setShowMoreModal(false); + }, + channel: channel + }), React.createElement(Button, { + className: "sendbird-members-accordion__footer__invite-users", + type: Type.SECONDARY, + size: Size.SMALL, + disabled: disabled, + onClick: function onClick() { + if (disabled) { + return; + } + + setShowAddUserModal(true); + } + }, stringSet.CHANNEL_SETTING__MEMBERS__INVITE_MEMBER), showAddUserModal && React.createElement(InviteMembers$1, { + swapParams: swapParams, + titleText: stringSet.MODAL__INVITE_MEMBER__TITLE, + submitText: stringSet.BUTTON__INVITE, + closeModal: function closeModal() { + return setShowAddUserModal(false); + }, + idsToFilter: members.map(function (member) { + return member.userId; + }), + userQueryCreator: userQueryCreator, + onSubmit: onInviteMemebers + }))); +}; + +MemebersAccordion.propTypes = { + swapParams: PropTypes.bool, + disabled: PropTypes.bool, + channel: PropTypes.shape({ + members: PropTypes.arrayOf(PropTypes.shape({})) + }), + currentUser: PropTypes.string, + userQueryCreator: PropTypes.func.isRequired, + onInviteMemebers: PropTypes.func.isRequired +}; +MemebersAccordion.defaultProps = { + swapParams: false, + currentUser: '', + disabled: false, + channel: {} +}; + +// might move to reusable/UI +var COMPONENT_NAME = 'sendbird-user-list-item--small'; + +var UserListItem$1 = function UserListItem(_a) { + var user = _a.user, + className = _a.className, + currentUser = _a.currentUser, + action = _a.action; + var actionRef = useRef(null); + var parentRef = useRef(null); + var avatarRef = useRef(null); + var stringSet = useContext(LocalizationContext).stringSet; + + var _b = useContext(UserProfileContext), + disableUserProfile = _b.disableUserProfile, + renderUserProfile = _b.renderUserProfile; + + var injectingClassNames = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + ref: parentRef, + className: __spreadArrays([COMPONENT_NAME], injectingClassNames).join(' ') + }, user.isMuted && React.createElement(MutedAvatarOverlay, null), React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + ref: avatarRef, + className: COMPONENT_NAME + "__avatar", + src: user.profileUrl, + width: 24, + height: 24 + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + openLeft: true, + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: user, + currentUserId: currentUser, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: user, + currentUserId: currentUser, + onSuccess: closeDropdown + })); + } + }), React.createElement(Label, { + className: COMPONENT_NAME + "__title", + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, user.nickname || stringSet.NO_NAME, currentUser === user.userId && " (You)"), !user.nickname && React.createElement(Label, { + className: COMPONENT_NAME + "__subtitle", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, user.userId), user.role === 'operator' && React.createElement(Label, { + className: COMPONENT_NAME + "__operator", + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_2 + }, "Operator"), action && React.createElement("div", { + ref: actionRef, + className: COMPONENT_NAME + "__action" + }, action({ + actionRef: actionRef, + parentRef: parentRef + }))); +}; + +function OperatorsModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel, + currentUser = _a.currentUser; + + var _b = useState([]), + operators = _b[0], + setOperators = _b[1]; + + var _c = useState(null), + operatorQuery = _c[0], + setOperatorQuery = _c[1]; + + useEffect(function () { + var operatorListQuery = channel.createOperatorListQuery(); + operatorListQuery.limit = 20; + operatorListQuery.next(function (operators, error) { + if (error) { + return; + } + + setOperators(operators); + }); + setOperatorQuery(operatorListQuery); + }, []); + return React.createElement("div", null, React.createElement(Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: noop, + titleText: "All operators" + }, React.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = operatorQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + operatorQuery.next(function (o, error) { + if (error) { + return; + } + + setOperators(__spreadArrays(operators, o)); + }); + } + } + }, operators.map(function (member) { + return React.createElement(UserListItem$2, { + currentUser: currentUser, + user: member, + key: member.userId, + action: function action(_a) { + var parentRef = _a.parentRef, + actionRef = _a.actionRef; + return React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React.createElement(MenuItem, { + onClick: function onClick() { + channel.removeOperators([member.userId], function (response, error) { + if (error) { + return; + } + + setOperators(operators.filter(function (_a) { + var userId = _a.userId; + return userId !== member.userId; + })); + }); + closeDropdown(); + } + }, "Dismiss operator")); + } + }); + } + }); + })))); +} + +function AddOperatorsModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel, + _onSubmit = _a.onSubmit; + + var _b = useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = useState({}), + selectedMembers = _c[0], + setSelectedMembers = _c[1]; + + var _d = useState(null), + memberQuery = _d[0], + setMemberQuery = _d[1]; + + var stringSet = useContext(LocalizationContext).stringSet; + useEffect(function () { + var memberListQuery = channel.createMemberListQuery(); + memberListQuery.limit = 20; + memberListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + }); + setMemberQuery(memberListQuery); + }, []); + var selectedCount = Object.keys(selectedMembers).filter(function (m) { + return selectedMembers[m]; + }).length; + return React.createElement("div", null, React.createElement(Modal, { + type: Type.PRIMARY, + submitText: "Add", + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: function onSubmit() { + var members = Object.keys(selectedMembers).filter(function (m) { + return selectedMembers[m]; + }); + + _onSubmit(members); + }, + titleText: "Select members" + }, React.createElement(Label, { + color: selectedCount > 0 ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3, + type: LabelTypography.CAPTION_1 + }, selectedCount + " " + stringSet.MODAL__INVITE_MEMBER__SELECTEC), React.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = memberQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + memberQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React.createElement(UserListItem$2, { + checkBox: true, + checked: selectedMembers[member.userId], + onChange: function onChange(event) { + var _a; + + var modifiedSelectedMembers = __assign(__assign({}, selectedMembers), (_a = {}, _a[event.target.id] = event.target.checked, _a)); + + if (!event.target.checked) { + delete modifiedSelectedMembers[event.target.id]; + } + + setSelectedMembers(modifiedSelectedMembers); + }, + user: member, + key: member.userId + }); + })))); +} + +var OperatorList = function OperatorList(_a) { + var sdk = _a.sdk, + channel = _a.channel; + + var _b = useState([]), + operators = _b[0], + setOperators = _b[1]; + + var _c = useState(false), + showMore = _c[0], + setShowMore = _c[1]; + + var _d = useState(false), + showAdd = _d[0], + setShowAdd = _d[1]; + + var _e = useState(false), + hasNext = _e[0], + setHasNext = _e[1]; + + var stringSet = useContext(LocalizationContext).stringSet; + useEffect(function () { + if (!channel) { + setOperators([]); + return; + } + + var operatorListQuery = channel.createOperatorListQuery(); + operatorListQuery.limit = 10; + operatorListQuery.next(function (operators, error) { + if (error) { + return; + } + + setOperators(operators); + setHasNext(operatorListQuery.hasNext); + }); + }, [channel]); + var refershList = useCallback(function () { + if (!channel) { + setOperators([]); + return; + } + + var operatorListQuery = channel.createOperatorListQuery(); + operatorListQuery.limit = 10; + operatorListQuery.next(function (operators, error) { + if (error) { + return; + } + + setOperators(operators); + setHasNext(operatorListQuery.hasNext); + }); + }, [channel]); + return React.createElement(React.Fragment, null, operators.map(function (operator) { + return React.createElement(UserListItem$1, { + key: operator.userId, + user: operator, + currentUser: sdk.currentUser.userId, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React.createElement(MenuItem, { + onClick: function onClick() { + channel.removeOperators([operator.userId], function (response, error) { + if (error) { + return; + } + + setOperators(operators.filter(function (_a) { + var userId = _a.userId; + return userId !== operator.userId; + })); + }); + closeDropdown(); + } + }, "Dismiss operator")); + } + }); + } + }); + }), hasNext && React.createElement("div", { + className: "sendbird-channel-settings-accordion__footer" + }, React.createElement(Button, { + type: Type.SECONDARY, + size: Size.SMALL, + onClick: function onClick() { + setShowMore(true); + } + }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ALL), React.createElement(Button, { + type: Type.SECONDARY, + size: Size.SMALL, + onClick: function onClick() { + setShowAdd(true); + } + }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ADD)), showMore && React.createElement(OperatorsModal, { + currentUser: sdk.currentUser.userId, + hideModal: function hideModal() { + setShowMore(false); + refershList(); + }, + channel: channel + }), showAdd && React.createElement(AddOperatorsModal, { + hideModal: function hideModal() { + return setShowAdd(false); + }, + channel: channel, + onSubmit: function onSubmit(members) { + setShowAdd(false); + channel.addOperators(members, function () { + refershList(); + }); + } + })); +}; + +var mapStoreToProps = function mapStoreToProps(store) { + return { + sdk: getSdk(store) + }; +}; + +var OperatorList$1 = withSendbirdContext(OperatorList, mapStoreToProps); + +function InviteMembers(_a) { + var hideModal = _a.hideModal, + userQueryCreator = _a.userQueryCreator, + _onSubmit = _a.onSubmit; + + var _b = useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = useState({}), + selectedMembers = _c[0], + setSelectedMembers = _c[1]; + + var _d = useState(null), + userQuery = _d[0], + setUserQuery = _d[1]; + + useEffect(function () { + var userListQuery = userQueryCreator(); + userListQuery.limit = 20; + userListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + }); + setUserQuery(userListQuery); + }, []); + return React.createElement("div", null, React.createElement(Modal, { + disabled: Object.keys(selectedMembers).length === 0, + submitText: "Invite", + type: Type.PRIMARY, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: function onSubmit() { + var members = Object.keys(selectedMembers).filter(function (m) { + return selectedMembers[m]; + }); + + _onSubmit(members); + }, + titleText: "Select members" + }, React.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = userQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + userQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React.createElement(UserListItem$2, { + checkBox: true, + checked: selectedMembers[member.userId], + onChange: function onChange(event) { + var _a; + + var modifiedSelectedMembers = __assign(__assign({}, selectedMembers), (_a = {}, _a[event.target.id] = event.target.checked, _a)); + + if (!event.target.checked) { + delete modifiedSelectedMembers[event.target.id]; + } + + setSelectedMembers(modifiedSelectedMembers); + }, + user: member, + key: member.userId + }); + })))); +} + +var MemberList = function MemberList(_a) { + var sdk = _a.sdk, + channel = _a.channel, + userQueryCreator = _a.userQueryCreator; + + var _b = useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = useState(false), + hasNext = _c[0], + setHasNext = _c[1]; + + var _d = useState(false), + showAllMembers = _d[0], + setShowAllMembers = _d[1]; + + var _e = useState(false), + showInviteMembers = _e[0], + setShowInviteMembers = _e[1]; + + useEffect(function () { + if (!channel) { + setMembers([]); + return; + } + + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + setHasNext(memberUserListQuery.hasNext); + }); + }, [channel]); + var refershList = useCallback(function () { + if (!channel) { + setMembers([]); + return; + } + + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + setHasNext(memberUserListQuery.hasNext); + }); + }, [channel]); + return React.createElement(React.Fragment, null, members.map(function (member) { + return React.createElement(UserListItem$1, { + key: member.userId, + user: member, + currentUser: sdk.currentUser.userId, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React.createElement(MenuItem, { + onClick: function onClick() { + if (member.role !== 'operator') { + channel.addOperators([member.userId], function () { + refershList(); + closeDropdown(); + }); + } else { + channel.removeOperators([member.userId], function () { + refershList(); + closeDropdown(); + }); + } + } + }, member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'), // No muted members in broadcast channel + !channel.isBroadcast && React.createElement(MenuItem, { + onClick: function onClick() { + if (member.isMuted) { + channel.unmuteUser(member, function () { + refershList(); + closeDropdown(); + }); + } else { + channel.muteUser(member, function () { + refershList(); + closeDropdown(); + }); + } + } + }, member.isMuted ? 'Unmute' : 'Mute'), React.createElement(MenuItem, { + onClick: function onClick() { + channel.banUser(member, -1, '', function () { + refershList(); + closeDropdown(); + }); + } + }, "Ban")); + } + }); + } + }); + }), React.createElement("div", { + className: "sendbird-channel-settings-accordion__footer" + }, hasNext && React.createElement(Button, { + type: Type.SECONDARY, + size: Size.SMALL, + onClick: function onClick() { + return setShowAllMembers(true); + } + }, "All members"), React.createElement(Button, { + type: Type.SECONDARY, + size: Size.SMALL, + onClick: function onClick() { + return setShowInviteMembers(true); + } + }, "Invite members")), showAllMembers && React.createElement(MembersModal, { + currentUser: sdk.currentUser.userId, + channel: channel, + hideModal: function hideModal() { + setShowAllMembers(false); + refershList(); + } + }), showInviteMembers && React.createElement(InviteMembers, { + userQueryCreator: userQueryCreator, + onSubmit: function onSubmit(selectedMemebers) { + channel.inviteWithUserIds(selectedMemebers, function () { + setShowInviteMembers(false); + refershList(); + }); + }, + channel: channel, + hideModal: function hideModal() { + return setShowInviteMembers(false); + } + })); +}; + +var mapStoreToProps$1 = function mapStoreToProps(store) { + return { + sdk: getSdk(store) + }; +}; + +var MemberList$1 = withSendbirdContext(MemberList, mapStoreToProps$1); + +function BannedMembersModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel; + + var _b = useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = useState(null), + memberQuery = _c[0], + setMemberQuery = _c[1]; + + useEffect(function () { + var bannedUserListQuery = channel.createBannedUserListQuery(); + bannedUserListQuery.next(function (users, error) { + if (error) { + return; + } + + setMembers(users); + }); + setMemberQuery(bannedUserListQuery); + }, []); + return React.createElement("div", null, React.createElement(Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: noop, + titleText: "Muted members" + }, React.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = memberQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + memberQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React.createElement(UserListItem$2, { + user: member, + key: member.userId, + action: function action(_a) { + var parentRef = _a.parentRef, + actionRef = _a.actionRef; + return React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React.createElement(MenuItem, { + onClick: function onClick() { + channel.unbanUser(member, function () { + closeDropdown(); + setMembers(members.filter(function (m) { + return m.userId !== member.userId; + })); + }); + } + }, "Unban")); + } + }); + } + }); + })))); +} + +var BannedMemberList = function BannedMemberList(_a) { + var channel = _a.channel; + + var _b = useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = useState(false), + hasNext = _c[0], + setHasNext = _c[1]; + + var _d = useState(false), + showModal = _d[0], + setShowModal = _d[1]; + + useEffect(function () { + if (!channel) { + setMembers([]); + return; + } + + var bannedUserListQuery = channel.createBannedUserListQuery(); + bannedUserListQuery.next(function (users, error) { + if (error) { + return; + } + + setMembers(users); + setHasNext(bannedUserListQuery.hasNext); + }); + }, [channel]); + var refreshList = useCallback(function () { + if (!channel) { + setMembers([]); + return; + } + + var bannedUserListQuery = channel.createBannedUserListQuery(); + bannedUserListQuery.next(function (users, error) { + if (error) { + return; + } + + setMembers(users); + setHasNext(bannedUserListQuery.hasNext); + }); + }, [channel]); + return React.createElement(React.Fragment, null, members.map(function (member) { + return React.createElement(UserListItem$1, { + key: member.userId, + user: member, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React.createElement(MenuItem, { + onClick: function onClick() { + channel.unbanUser(member, function () { + closeDropdown(); + refreshList(); + }); + } + }, "Unban")); + } + }); + } + }); + }), members && members.length === 0 && React.createElement(Label, { + className: "sendbird-channel-settings__empty-list", + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_3 + }, "No banned members yet"), hasNext && React.createElement("div", { + className: "sendbird-channel-settings-accordion__footer" + }, React.createElement(Button, { + type: Type.SECONDARY, + size: Size.SMALL, + onClick: function onClick() { + setShowModal(true); + } + }, "All banned members")), showModal && React.createElement(BannedMembersModal, { + channel: channel, + hideModal: function hideModal() { + setShowModal(false); + refreshList(); + } + })); +}; + +var mapStoreToProps$2 = function mapStoreToProps(store) { + return { + sdk: getSdk(store) + }; +}; + +var BannedMemberList$1 = withSendbirdContext(BannedMemberList, mapStoreToProps$2); + +function MutedMembersModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel, + currentUser = _a.currentUser; + + var _b = useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = useState(null), + memberQuery = _c[0], + setMemberQuery = _c[1]; + + useEffect(function () { + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.mutedMemberFilter = 'muted'; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + }); + setMemberQuery(memberUserListQuery); + }, []); + return React.createElement("div", null, React.createElement(Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: noop, + titleText: "Muted members" + }, React.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = memberQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + memberQuery.next(function (o, error) { + if (error) { + return; + } + + setMembers(__spreadArrays(members, o)); + }); + } + } + }, members.map(function (member) { + return React.createElement(UserListItem$2, { + currentUser: currentUser, + user: member, + key: member.userId, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + , + closeDropdown: closeDropdown, + openLeft: true + }, React.createElement(MenuItem, { + onClick: function onClick() { + channel.unmuteUser(member, function () { + closeDropdown(); + setMembers(members.filter(function (m) { + return m.userId !== member.userId; + })); + }); + } + }, "Unmute")); + } + }); + } + }); + })))); +} + +var MutedMemberList = function MutedMemberList(_a) { + var sdk = _a.sdk, + channel = _a.channel; + + var _b = useState([]), + members = _b[0], + setMembers = _b[1]; + + var _c = useState(false), + hasNext = _c[0], + setHasNext = _c[1]; + + var _d = useState(false), + showModal = _d[0], + setShowModal = _d[1]; + + useEffect(function () { + if (!channel) { + setMembers([]); + return; + } + + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.mutedMemberFilter = 'muted'; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + setHasNext(memberUserListQuery.hasNext); + }); + }, [channel]); + var refreshList = useCallback(function () { + if (!channel) { + setMembers([]); + return; + } + + var memberUserListQuery = channel.createMemberListQuery(); + memberUserListQuery.limit = 10; + memberUserListQuery.mutedMemberFilter = 'muted'; + memberUserListQuery.next(function (members, error) { + if (error) { + return; + } + + setMembers(members); + setHasNext(memberUserListQuery.hasNext); + }); + }, [channel]); + return React.createElement(React.Fragment, null, members.map(function (member) { + return React.createElement(UserListItem$1, { + key: member.userId, + user: member, + currentUser: sdk.currentUser.userId, + action: function action(_a) { + var actionRef = _a.actionRef, + parentRef = _a.parentRef; + return React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(IconButton, { + className: "sendbird-user-message__more__menu", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + closeDropdown: closeDropdown, + openLeft: true, + parentContainRef: parentRef, + parentRef: actionRef // for catching location(x, y) of MenuItems + + }, React.createElement(MenuItem, { + onClick: function onClick() { + channel.unmuteUser(member, function () { + refreshList(); + closeDropdown(); + }); + } + }, "Unmute")); + } + }); + } + }); + }), members && members.length === 0 && React.createElement(Label, { + className: "sendbird-channel-settings__empty-list", + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_3 + }, "No muted members yet"), hasNext && React.createElement("div", { + className: "sendbird-channel-settings-accordion__footer" + }, React.createElement(Button, { + type: Type.SECONDARY, + size: Size.SMALL, + onClick: function onClick() { + setShowModal(true); + } + }, "All muted members")), showModal && React.createElement(MutedMembersModal, { + currentUser: sdk.currentUser.userId, + channel: channel, + hideModal: function hideModal() { + setShowModal(false); + refreshList(); + } + })); +}; + +var mapStoreToProps$3 = function mapStoreToProps(store) { + return { + sdk: getSdk(store) + }; +}; + +var MutedMemberList$1 = withSendbirdContext(MutedMemberList, mapStoreToProps$3); + +var kFormatter = function kFormatter(num) { + return Math.abs(num) > 999 ? (Math.abs(num) / 1000).toFixed(1) + "K" : num; +}; + +function index(_a) { + var userQueryCreator = _a.userQueryCreator, + channel = _a.channel; + + var _b = useState(false), + frozen = _b[0], + setFrozen = _b[1]; // work around for + // https://sendbird.slack.com/archives/G01290GCDCN/p1595922832000900 + // SDK bug - after frozen/unfrozen myRole becomes "none" + + + useEffect(function () { + setFrozen(channel.isFrozen); + }, [channel]); + var stringSet = useContext(LocalizationContext).stringSet; + return React.createElement(AccordionGroup, { + className: "sendbird-channel-settings__operator" + }, React.createElement(Accordion, { + className: "sendbird-channel-settings__operators-list", + id: "operators", + renderTitle: function renderTitle() { + return React.createElement(React.Fragment, null, React.createElement(Icon, { + type: IconTypes.ICON_OPERATOR, + fillColor: IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE)); + }, + renderContent: function renderContent() { + return React.createElement(React.Fragment, null, React.createElement(OperatorList$1, { + channel: channel + })); + } + }), React.createElement(Accordion, { + className: "sendbird-channel-settings__members-list", + id: "members", + renderTitle: function renderTitle() { + return React.createElement(React.Fragment, null, React.createElement(Icon, { + type: IconTypes.MEMBERS, + fillColor: IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__MEMBERS__TITLE), React.createElement(Badge, { + count: kFormatter(channel.memberCount) + })); + }, + renderContent: function renderContent() { + return React.createElement(React.Fragment, null, React.createElement(MemberList$1, { + userQueryCreator: userQueryCreator, + channel: channel + })); + } + }), // No muted members in broadcast channel + !channel.isBroadcast && React.createElement(Accordion, { + id: "mutedMembers", + className: "sendbird-channel-settings__muted-members-list", + renderTitle: function renderTitle() { + return React.createElement(React.Fragment, null, React.createElement(Icon, { + type: IconTypes.ICON_MUTED, + fillColor: IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__MUTED_MEMBERS__TITLE)); + }, + renderContent: function renderContent() { + return React.createElement(React.Fragment, null, React.createElement(MutedMemberList$1, { + channel: channel + })); + } + }), React.createElement(Accordion, { + className: "sendbird-channel-settings__banned-members-list", + id: "bannedMembers", + renderTitle: function renderTitle() { + return React.createElement(React.Fragment, null, React.createElement(Icon, { + type: IconTypes.ICON_BANNED, + fillColor: IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__BANNED_MEMBERS__TITLE)); + }, + renderContent: function renderContent() { + return React.createElement(React.Fragment, null, React.createElement(BannedMemberList$1, { + channel: channel + })); + } + }), // cannot frozen broadcast channel + !channel.isBroadcast && React.createElement("div", { + className: "sendbird-channel-settings__freeze" + }, React.createElement(Icon, { + type: IconTypes.FROZEN_LIGHT, + fillColor: IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-channel-settings__accordion-icon" + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__FREEZE_CHANNEL), React.createElement("div", { + className: "sendbird-channel-settings__frozen-icon" + }, frozen ? React.createElement(Icon, { + onClick: function onClick() { + channel.unfreeze(function () { + setFrozen(false); + }); + }, + type: IconTypes.TOGGLE_ON, + width: 44, + height: 24 + }) : React.createElement(Icon, { + onClick: function onClick() { + channel.freeze(function () { + setFrozen(true); + }); + }, + type: IconTypes.TOGGLE_OFF, + width: 44, + height: 24 + })))); +} + +var kFormatter$1 = function kFormatter(num) { + return Math.abs(num) > 999 ? "".concat((Math.abs(num) / 1000).toFixed(1), "K") : num; +}; + +function ChannelSettings(props) { + var onCloseClick = props.onCloseClick, + channelUrl = props.channelUrl, + disableUserProfile = props.disableUserProfile, + renderUserProfile = props.renderUserProfile, + _onChannelModified = props.onChannelModified, + renderChannelProfile = props.renderChannelProfile, + onBeforeUpdateChannel = props.onBeforeUpdateChannel; + var sdkStore = props.stores.sdkStore, + _props$config = props.config, + userListQuery = _props$config.userListQuery, + theme = _props$config.theme, + userId = _props$config.userId, + logger = _props$config.logger, + isOnline = _props$config.isOnline, + _props$queries = props.queries, + queries = _props$queries === void 0 ? {} : _props$queries; + var _props$config2 = props.config, + config = _props$config2 === void 0 ? {} : _props$config2; + var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; + var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; + var userFilledApplicationUserListQuery = queries.applicationUserListQuery; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var sdk = sdkStore.sdk, + initialized = sdkStore.initialized; // hack to kepp track of channel updates by triggering useEffect + + var _useState = useState(uuidv4()), + _useState2 = _slicedToArray(_useState, 2), + channelUpdateId = _useState2[0], + setChannelUpdateId = _useState2[1]; + + var _useState3 = useState(null), + _useState4 = _slicedToArray(_useState3, 2), + channel = _useState4[0], + setChannel = _useState4[1]; + + var _useState5 = useState(false), + _useState6 = _slicedToArray(_useState5, 2), + invalidChannel = _useState6[0], + setInvalidChannel = _useState6[1]; + + var _useState7 = useState(false), + _useState8 = _slicedToArray(_useState7, 2), + showAccordion = _useState8[0], + setShowAccordion = _useState8[1]; + + var _useState9 = useState(false), + _useState10 = _slicedToArray(_useState9, 2), + showLeaveChannelModal = _useState10[0], + setShowLeaveChannelModal = _useState10[1]; + + useEffect(function () { + logger.info('ChannelSettings: Setting up'); + + if (!channelUrl || !initialized || !sdk) { + logger.warning('ChannelSettings: Setting up failed', 'No channelUrl or sdk uninitialized'); + setInvalidChannel(false); + } else { + if (!sdk || !sdk.GroupChannel) { + logger.warning('ChannelSettings: No GroupChannel'); + return; + } + + sdk.GroupChannel.getChannel(channelUrl, function (groupChannel) { + if (!groupChannel) { + logger.warning('ChannelSettings: Channel not found'); + setInvalidChannel(true); + } else { + logger.info('ChannelSettings: Fetched group channel', groupChannel); + setInvalidChannel(false); + setChannel(groupChannel); + } + }); + } + }, [channelUrl, initialized, channelUpdateId]); + + if (!channel || invalidChannel) { + return React.createElement("div", { + className: "sendbird-channel-settings" + }, React.createElement("div", { + className: "sendbird-channel-settings__header" + }, React.createElement(Label, { + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React.createElement(Icon, { + type: IconTypes.CLOSE, + className: "sendbird-channel-settings__close-icon", + height: "24px", + width: "24px", + onClick: function onClick() { + logger.info('ChannelSettings: Click close'); + onCloseClick(); + } + })), React.createElement("div", null, React.createElement(PlaceHolder, { + type: PlaceHolderTypes.WRONG + }))); + } + + return React.createElement(UserProfileProvider, { + disableUserProfile: userDefinedDisableUserProfile, + renderUserProfile: userDefinedRenderProfile, + className: "sendbird-channel-settings" + }, React.createElement("div", { + className: "sendbird-channel-settings__header" + }, React.createElement(Label, { + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React.createElement("div", { + className: "sendbird-channel-settings__header-icon" + }, React.createElement(IconButton, { + width: "32px", + height: "32px", + onClick: function onClick() { + logger.info('ChannelSettings: Click close'); + onCloseClick(); + } + }, React.createElement(Icon, { + type: IconTypes.CLOSE, + className: "sendbird-channel-settings__close-icon", + height: "24px", + width: "24px" + })))), React.createElement("div", { + className: "sendbird-channel-settings__scroll-area" + }, renderChannelProfile ? renderChannelProfile({ + channel: channel + }) : React.createElement(ChannelProfile, { + disabled: !isOnline, + channel: channel, + userId: userId, + theme: theme, + onChannelInfoChange: function onChannelInfoChange(currentImg, currentTitle) { + logger.info('ChannelSettings: Channel information being updated'); + var swapParams = sdk.getErrorFirstCallback(); + + if (onBeforeUpdateChannel) { + var params = onBeforeUpdateChannel(currentTitle, currentImg, channel.data); // swapParams + + channel.updateChannel(params, function (response, error) { + var groupChannel = response; + + if (swapParams) { + groupChannel = error; + } + + _onChannelModified(groupChannel); + + setChannelUpdateId(uuidv4()); + }); + return; + } + + channel.updateChannel(currentTitle, currentImg, channel.data, function (response, error) { + var groupChannel = response; + + if (swapParams) { + groupChannel = error; + } + + logger.info('ChannelSettings: Channel information updated', groupChannel); + + _onChannelModified(groupChannel); + + setChannelUpdateId(uuidv4()); + }); + } + }), channel.myRole === 'operator' ? React.createElement(index, { + channel: channel, + onChannelModified: function onChannelModified(groupChannel) { + // setChannelUpdateId(uuidv4()); + _onChannelModified(groupChannel); + }, + userQueryCreator: function userQueryCreator() { + return userListQuery && typeof userListQuery === 'function' ? userListQuery() : createDefaultUserListQuery({ + sdk: sdk, + userFilledApplicationUserListQuery: userFilledApplicationUserListQuery + }); + } + }) : React.createElement(React.Fragment, null, React.createElement("div", { + role: "switch", + "aria-checked": showAccordion, + tabIndex: 0, + onKeyDown: function onKeyDown() { + return setShowAccordion(!showAccordion); + }, + className: "\n sendbird-channel-settings__panel-item\n sendbird-channel-settings__members\n ", + onClick: function onClick() { + return setShowAccordion(!showAccordion); + } + }, React.createElement(Icon, { + type: IconTypes.MEMBERS, + className: "sendbird-channel-settings__panel-icon-left", + height: "24px", + width: "24px", + fillColor: IconColors.PRIMARY + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, "".concat(stringSet.CHANNEL_SETTING__MEMBERS__TITLE), React.createElement(Badge, { + count: kFormatter$1(channel.memberCount) + })), React.createElement(Icon, { + type: IconTypes.SHEVRON, + className: ['sendbird-channel-settings__panel-icon-right', 'sendbird-channel-settings__panel-icon--chevron', showAccordion ? 'sendbird-channel-settings__panel-icon--open' : ''].join(' '), + height: "24px", + width: "24px" + })), showAccordion && React.createElement(MemebersAccordion, { + currentUser: userId, + disabled: !isOnline // eslint-disable-next-line + , + userQueryCreator: function userQueryCreator() { + return userListQuery && typeof userListQuery === 'function' ? userListQuery() : createDefaultUserListQuery({ + sdk: sdk, + userFilledApplicationUserListQuery: userFilledApplicationUserListQuery + }); + }, + swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), + channel: channel, + members: channel.members, + onInviteMemebers: function onInviteMemebers(selectedMemebers) { + logger.info('ChannelSettings: Inviting new users'); + channel.inviteWithUserIds(selectedMemebers).then(function (res) { + _onChannelModified(res); + + setChannelUpdateId(uuidv4()); + logger.info('ChannelSettings: Inviting new users success!', res); + }); + } + })), React.createElement("div", { + className: "sendbird-channel-settings__panel-item\n sendbird-channel-settings__leave-channel\n ".concat(!isOnline ? 'sendbird-channel-settings__panel-item__disabled' : ''), + role: "button", + tabIndex: 0, + disabled: true, + onKeyDown: function onKeyDown() { + if (!isOnline) { + return; + } + + setShowLeaveChannelModal(true); + }, + onClick: function onClick() { + if (!isOnline) { + return; + } + + setShowLeaveChannelModal(true); + } + }, React.createElement(Icon, { + type: IconTypes.LEAVE, + className: ['sendbird-channel-settings__panel-icon-left', 'sendbird-channel-settings__panel-icon__leave'].join(' '), + height: "24px", + width: "24px" + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE)), showLeaveChannelModal && React.createElement(LeaveChannelModal, { + onCloseModal: function onCloseModal() { + return setShowLeaveChannelModal(false); + }, + onLeaveChannel: function onLeaveChannel() { + logger.info('ChannelSettings: Leaving channel', channel); + channel.leave().then(function () { + logger.info('ChannelSettings: Leaving channel successful!', channel); + onCloseClick(); + }); + } + }))); +} + +ChannelSettings.propTypes = { + onCloseClick: PropTypes.func, + onChannelModified: PropTypes.func, + onBeforeUpdateChannel: PropTypes.func, + renderChannelProfile: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + channelUrl: PropTypes.string.isRequired, + queries: PropTypes.shape({ + applicationUserListQuery: PropTypes.shape({ + limit: PropTypes.number, + userIdsFilter: PropTypes.arrayOf(PropTypes.string), + metaDataKeyFilter: PropTypes.string, + metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string) + }) + }), + // from withSendbirdContext + stores: PropTypes.shape({ + sdkStore: PropTypes.shape({ + sdk: PropTypes.shape({ + getErrorFirstCallback: PropTypes.func, + GroupChannel: PropTypes.oneOfType([PropTypes.shape({ + getChannel: PropTypes.func + }), PropTypes.func]), + createApplicationUserListQuery: PropTypes.any + }), + initialized: PropTypes.bool + }) + }).isRequired, + config: PropTypes.shape({ + userId: PropTypes.string, + theme: PropTypes.string, + userListQuery: PropTypes.func, + isOnline: PropTypes.bool, + logger: PropTypes.shape({ + info: PropTypes.func, + error: PropTypes.func, + warning: PropTypes.func + }) + }).isRequired +}; +ChannelSettings.defaultProps = { + onBeforeUpdateChannel: null, + queries: {}, + disableUserProfile: false, + renderUserProfile: null, + renderChannelProfile: null, + onCloseClick: function onCloseClick() {}, + onChannelModified: function onChannelModified() {} +}; +var ChannelSettings$1 = withSendbirdContext(ChannelSettings); + +export default ChannelSettings$1; +//# sourceMappingURL=ChannelSettings.js.map diff --git a/dist/esm/ChannelSettings.js.map b/dist/esm/ChannelSettings.js.map new file mode 100644 index 0000000..5ee4e28 --- /dev/null +++ b/dist/esm/ChannelSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ChannelSettings.js","sources":["../../../src/smart-components/ChannelSettings/components/EditDetails.jsx","../../../src/smart-components/ChannelSettings/components/ChannelProfile.jsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/MembersModal.tsx","../../../src/smart-components/ChannelSettings/components/MemebersAccordion.jsx","../../../src/smart-components/ChannelSettings/components/UserListItem.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/OperatorsModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/AddOperatorsModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/OperatorList.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/InviteMembersModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/MemberList.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/BannedMembersModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/BannedMemberList.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/MutedMembersModal.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/MutedMemberList.tsx","../../../src/smart-components/ChannelSettings/components/AdminPanel/index.tsx","../../../src/smart-components/ChannelSettings/index.jsx"],"sourcesContent":["import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Modal from '../../../ui/Modal';\nimport Input, { InputLabel } from '../../../ui/Input';\nimport Avatar from '../../../ui/Avatar/index';\nimport { Type as ButtonType } from '../../../ui/Button/type';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport TextButton from '../../../ui/TextButton';\nimport ChannelAvatar from '../../../ui/ChannelAvatar/index';\n\nconst EditDetails = (props) => {\n const {\n onSubmit,\n onCancel,\n channel,\n userId,\n theme,\n } = props;\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const hiddenInputRef = useRef(null);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n const title = channel.name;\n return (\n {\n if (title !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(newFile, inputRef.current.value);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE}\n \n
\n {\n currentImg\n ? (\n \n ) : (\n \n )\n }\n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME}\n \n \n
\n \n \n );\n};\n\nEditDetails.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n channel: PropTypes.shape({\n name: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n theme: PropTypes.string.isRequired,\n};\n\nexport default EditDetails;\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './channel-profile.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport EditDetailsModal from './EditDetails';\nimport TextButton from '../../../ui/TextButton';\nimport ChannelAvatar from '../../../ui/ChannelAvatar/index';\n\nconst ChannelProfile = (props) => {\n const {\n disabled,\n channel,\n userId,\n theme,\n onChannelInfoChange,\n } = props;\n const title = channel.name;\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n
\n \n
\n \n {title}\n \n {\n if (disabled) { return; }\n setShowModal(true);\n }}\n notUnderline\n >\n \n {stringSet.CHANNEL_SETTING__PROFILE__EDIT}\n \n \n {\n showModal && (\n setShowModal(false)}\n onSubmit={onChannelInfoChange}\n channel={channel}\n userId={userId}\n theme={theme}\n />\n )\n }\n
\n
\n );\n};\n\nChannelProfile.propTypes = {\n channel: PropTypes.shape({\n name: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n theme: PropTypes.string,\n disabled: PropTypes.bool,\n onChannelInfoChange: PropTypes.func,\n};\n\nChannelProfile.defaultProps = {\n theme: 'light',\n disabled: false,\n onChannelInfoChange: () => { },\n};\n\nexport default ChannelProfile;\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n currentUser?: string;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function MembersModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const memberListQuery = channel.createMemberListQuery();\n memberListQuery.limit = 20;\n memberListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"All Members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n <>\n {channel.myRole === 'operator' && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if ((member.role !== 'operator')) {\n channel.addOperators([member.userId], () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n role: 'operator',\n };\n }\n return m;\n }));\n closeDropdown();\n });\n } else {\n channel.removeOperators([member.userId], () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n role: '',\n };\n }\n return m;\n }));\n closeDropdown();\n });\n }\n }}\n >\n { member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'}\n \n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n {\n if (member.isMuted) {\n channel.unmuteUser(member, () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n isMuted: false,\n };\n }\n return m;\n }));\n closeDropdown();\n })\n } else {\n channel.muteUser(member, () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n isMuted: true,\n };\n }\n return m;\n }));\n closeDropdown();\n });\n }\n }}\n >\n { member.isMuted ? 'Unmute' : 'Mute' }\n \n )\n }\n {\n channel.banUser(member, -1, '', () => {\n setMembers(members.filter(({ userId }) => {\n return userId !== member.userId;\n }));\n });\n }}\n >\n Ban\n \n \n )}\n />\n )}\n \n )}\n />\n ))}\n
\n \n \n );\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './members-accordion.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Button from '../../../ui/Button';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../ui/Button/type';\nimport Avatar from '../../../ui/Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport InviteMembers from '../../InviteMembers';\nimport MembersModal from './AdminPanel/MembersModal';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nconst SHOWN_MEMBER_MAX = 10;\n\nconst UserListItem = ({ member = {}, currentUser = '' }) => {\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n src={member.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: member,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n
\n \n
\n );\n};\n\nUserListItem.propTypes = {\n member: PropTypes.shape({\n userId: PropTypes.string,\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }).isRequired,\n currentUser: PropTypes.string.isRequired,\n};\n\nconst MemebersAccordion = ({\n channel,\n disabled,\n currentUser,\n userQueryCreator,\n onInviteMemebers,\n swapParams,\n}) => {\n const members = channel.members || [];\n const [showMoreModal, setShowMoreModal] = useState(false);\n const [showAddUserModal, setShowAddUserModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n {\n members.slice(0, SHOWN_MEMBER_MAX).map((member) => (\n \n ))\n }\n
\n
\n {\n members.length >= SHOWN_MEMBER_MAX && (\n setShowMoreModal(true)}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS}\n \n )\n }\n {\n members.length >= SHOWN_MEMBER_MAX && showMoreModal && (\n {\n setShowMoreModal(false);\n }}\n channel={channel}\n />\n )\n }\n {\n if (disabled) { return; }\n setShowAddUserModal(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__INVITE_MEMBER}\n \n {\n showAddUserModal && (\n setShowAddUserModal(false)}\n idsToFilter={members.map((member) => (member.userId))}\n userQueryCreator={userQueryCreator}\n onSubmit={onInviteMemebers}\n />\n )\n }\n
\n
\n );\n};\n\nMemebersAccordion.propTypes = {\n swapParams: PropTypes.bool,\n disabled: PropTypes.bool,\n channel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n currentUser: PropTypes.string,\n userQueryCreator: PropTypes.func.isRequired,\n onInviteMemebers: PropTypes.func.isRequired,\n};\n\nMemebersAccordion.defaultProps = {\n swapParams: false,\n currentUser: '',\n disabled: false,\n channel: {},\n};\n\nexport default MemebersAccordion;\n","// might move to reusable/UI\n\nimport React, { ReactElement, useRef, useContext } from 'react';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Avatar from '../../../ui/Avatar/index';\nimport MutedAvatarOverlay from '../../../ui/Avatar/MutedAvatarOverlay';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nimport './user-list-item.scss';\nimport { SendbirdTypes } from '../../../types';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item--small';\n\ninterface ActionProps {\n actionRef: React.RefObject;\n parentRef: React.RefObject;\n}\n\ntype CustomUser = SendbirdTypes['User'] & {\n isMuted: boolean;\n role: string;\n};\n\ninterface Props {\n user: CustomUser;\n currentUser?: string;\n className?: string;\n action?(props: ActionProps): ReactElement;\n}\n\nconst UserListItem = ({\n user,\n className,\n currentUser,\n action,\n}: Props): ReactElement => {\n const actionRef = useRef(null);\n const parentRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const injectingClassNames = Array.isArray(className) ? className : [className];\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n \" (You)\"\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n \n );\n}\n\nexport default UserListItem;\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n currentUser?: string;\n}\n\nexport default function OperatorsModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [operators, setOperators] = useState([]);\n const [operatorQuery, setOperatorQuery] = useState(null);\n\n useEffect(() => {\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 20;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n });\n setOperatorQuery(operatorListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"All operators\"\n >\n {\n const { hasNext } = operatorQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n operatorQuery.next((o, error) => {\n if (error) {\n return;\n }\n setOperators([\n ...operators,\n ...o,\n ])\n });\n }\n }}\n >\n { operators.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.removeOperators([member.userId], (response, error) => {\n if (error) {\n return;\n }\n setOperators(operators.filter(({ userId }) => {\n return userId !== member.userId;\n }));\n });\n closeDropdown();\n }}\n >\n Dismiss operator\n \n \n )}\n />\n )}\n />\n ))}\n
\n \n \n )\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport Modal from '../../../../ui/Modal';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport { Type as ButtonType } from '../../../../ui/Button/type';\nimport UserListItem from '../../../../ui/UserListItem';\n\ninterface Props {\n hideModal(): void;\n onSubmit(members: string[]): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function AddOperatorsModal({\n hideModal,\n channel,\n onSubmit,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [selectedMembers, setSelectedMembers] = useState({});\n const [memberQuery, setMemberQuery] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n const memberListQuery = channel.createMemberListQuery();\n memberListQuery.limit = 20;\n memberListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberListQuery);\n }, [])\n\n const selectedCount = Object.keys(selectedMembers).filter((m) => selectedMembers[m]).length;\n return (\n
\n hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n {\n const modifiedSelectedMembers = {\n ...selectedMembers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedMembers[event.target.id];\n }\n setSelectedMembers(modifiedSelectedMembers);\n }\n }\n user={member}\n key={member.userId}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n useContext,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport OperatorsModal from './OperatorsModal';\nimport AddOperatorsModal from './AddOperatorsModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const OperatorList = ({ sdk, channel }: Props): ReactElement => {\n const [operators, setOperators] = useState([]);\n const [showMore, setShowMore] = useState(false);\n const [showAdd, setShowAdd] = useState(false);\n const [hasNext, setHasNext] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n if (!channel) {\n setOperators([]);\n return;\n }\n\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 10;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n }, [channel]);\n\n const refershList = useCallback(\n () => {\n if (!channel) {\n setOperators([]);\n return;\n }\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 10;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n },\n [channel],\n );\n\n return (\n <>\n {\n operators.map((operator) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.removeOperators([operator.userId], (response, error) => {\n if (error) {\n return;\n }\n setOperators(operators.filter(({ userId }) => {\n return userId !== operator.userId;\n }))\n });\n closeDropdown();\n }}\n >\n Dismiss operator\n \n \n )}\n />\n );\n }}\n />\n ))\n }\n {\n hasNext && (\n \n {\n setShowMore(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ALL}\n \n {\n setShowAdd(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ADD}\n \n \n )\n }\n {\n showMore && (\n {\n setShowMore(false);\n refershList();\n }}\n channel={channel}\n />\n )\n }\n {\n showAdd && (\n setShowAdd(false)}\n channel={channel}\n onSubmit={(members) => {\n setShowAdd(false);\n channel.addOperators(members, () => {\n refershList();\n });\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(OperatorList, mapStoreToProps);\n","import React, { ReactElement, useEffect, useState } from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport { Type as ButtonType } from '../../../../ui/Button/type';\nimport UserListItem from '../../../../ui/UserListItem';\n\ninterface Props {\n hideModal(): void;\n onSubmit(members: string[]): void;\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport default function InviteMembers({\n hideModal,\n userQueryCreator,\n onSubmit,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [selectedMembers, setSelectedMembers] = useState({});\n const [userQuery, setUserQuery] = useState(null);\n\n useEffect(() => {\n const userListQuery = userQueryCreator();\n userListQuery.limit = 20;\n userListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setUserQuery(userListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n {\n const { hasNext } = userQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n userQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n {\n const modifiedSelectedMembers = {\n ...selectedMembers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedMembers[event.target.id];\n }\n setSelectedMembers(modifiedSelectedMembers);\n }\n }\n user={member}\n key={member.userId}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport MembersModal from './MembersModal';\nimport InviteMembers from './InviteMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes['SendBirdInstance'];\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport const MemberList = ({ sdk, channel, userQueryCreator }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showAllMembers, setShowAllMembers] = useState(false);\n const [showInviteMembers, setShowInviteMembers] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refershList = useCallback(\n () => {\n if (!channel) {\n setMembers([]);\n return;\n }\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n },\n [channel],\n );\n\n return (\n <>\n {\n members.map((member) => (\n {\n return ( (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if ((member.role !== 'operator')) {\n channel.addOperators([member.userId], () => {\n refershList();\n closeDropdown();\n });\n } else {\n channel.removeOperators([member.userId], () => {\n refershList();\n closeDropdown();\n });\n }\n }}\n >\n { member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'}\n \n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n {\n if (member.isMuted) {\n channel.unmuteUser(member, () => {\n refershList();\n closeDropdown();\n })\n } else {\n channel.muteUser(member, () => {\n refershList();\n closeDropdown();\n });\n }\n }}\n >\n { member.isMuted ? 'Unmute' : 'Mute' }\n \n )\n }\n {\n channel.banUser(member, -1, '', () => {\n refershList();\n closeDropdown();\n });\n }}\n >\n Ban\n \n \n )}\n />)}\n }\n />\n ))\n }\n \n {\n hasNext && (\n setShowAllMembers(true)}\n >\n All members\n \n )\n }\n setShowInviteMembers(true)}\n >\n Invite members\n \n \n {\n showAllMembers && (\n {\n setShowAllMembers(false);\n refershList();\n }}\n />\n )\n }\n {\n showInviteMembers && (\n {\n channel.inviteWithUserIds(selectedMemebers, () => {\n setShowInviteMembers(false);\n refershList();\n });\n }}\n channel={channel}\n hideModal={() => setShowInviteMembers(false)}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(MemberList, mapStoreToProps);\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function BannedMembersModal({\n hideModal,\n channel,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next((users, error) => {\n if (error) {\n return;\n }\n setMembers(users);\n });\n setMemberQuery(bannedUserListQuery);\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unbanUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unban\n \n \n )}\n />\n )\n }\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport BannedMembersModal from './BannedMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const BannedMemberList = ({ channel }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next((users, error) => {\n if (error) {\n return;\n }\n setMembers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next(function(users, error) {\n if (error) {\n return;\n }\n setMembers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n members.map((member) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unbanUser(member, () => {\n closeDropdown();\n refreshList();\n })\n }}\n >\n Unban\n \n \n )}\n />\n )\n }}\n />\n ))\n }\n {\n members && members.length === 0 && (\n \n No banned members yet\n \n )\n }\n {\n hasNext && (\n \n {\n setShowModal(true);\n }}\n >\n All banned members\n \n \n )\n }\n {\n showModal && (\n {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(BannedMemberList, mapStoreToProps);\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n currentUser?: string;\n}\n\nexport default function MutedMembersModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberUserListQuery);\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unmuteUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unmute\n \n \n )}\n />\n )}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport MutedMembersModal from './MutedMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const MutedMemberList = ({ sdk, channel }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n members.map((member) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unmuteUser(member, () => {\n refreshList();\n closeDropdown();\n })\n }}\n >\n Unmute\n \n \n )}\n />\n );\n }\n }\n />\n ))\n }\n {\n members && members.length === 0 && (\n \n No muted members yet\n \n )\n }\n {\n hasNext && (\n \n {\n setShowModal(true);\n }}\n >\n All muted members\n \n \n )\n }\n {\n showModal && (\n {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(MutedMemberList, mapStoreToProps);\n","import './index.scss';\nimport React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react';\nimport { SendbirdTypes } from '../../../../types';\n\nimport Accordion, { AccordionGroup } from '../../../../ui/Accordion';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport Badge from '../../../../ui/Badge';\n\nimport OperatorList from './OperatorList';\nimport MemberList from './MemberList';\nimport BannedMemberList from './BannedMemberList';\nimport MutedMemberList from './MutedMemberList';\n\nconst kFormatter = (num: number): string|number => {\n return Math.abs(num) > 999\n ? `${(Math.abs(num)/1000).toFixed(1)}K`\n : num;\n}\n\ninterface Props {\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport default function index({\n userQueryCreator,\n channel,\n}: Props): ReactElement {\n const [frozen, setFrozen] = useState(false);\n\n // work around for\n // https://sendbird.slack.com/archives/G01290GCDCN/p1595922832000900\n // SDK bug - after frozen/unfrozen myRole becomes \"none\"\n useEffect(() => {\n setFrozen(channel.isFrozen);\n }, [channel]);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__MEMBERS__TITLE}\n \n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__MUTED_MEMBERS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n )\n }\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__BANNED_MEMBERS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n {\n // cannot frozen broadcast channel\n !channel.isBroadcast && (\n
\n \n \n {stringSet.CHANNEL_SETTING__FREEZE_CHANNEL}\n \n
\n {\n frozen\n ? (\n {\n channel.unfreeze(() => {\n setFrozen(false);\n });\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n {\n channel.freeze(() => {\n setFrozen(true);\n });\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n
\n
\n )\n }\n
\n );\n}\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport './index.scss';\nimport Badge from '../../ui/Badge';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../ui/Icon';\nimport IconButton from '../../ui/IconButton';\n\nimport ChannelProfile from './components/ChannelProfile';\nimport MemebersAccordion from './components/MemebersAccordion';\nimport LeaveChannelModal from './components/LeaveChannel';\nimport AdminPanel from './components/AdminPanel';\nimport PlaceHolder from '../../ui/PlaceHolder';\nimport PlaceHolderTypes from '../../ui/PlaceHolder/type';\nimport { uuidv4 } from '../../utils/uuid';\nimport { createDefaultUserListQuery } from '../ChannelList/components/utils';\n\n\nconst kFormatter = (num) => (\n Math.abs(num) > 999\n ? `${(Math.abs(num) / 1000).toFixed(1)}K`\n : num\n);\n\nfunction ChannelSettings(props) {\n const {\n onCloseClick,\n channelUrl,\n disableUserProfile,\n renderUserProfile,\n onChannelModified,\n renderChannelProfile,\n onBeforeUpdateChannel,\n } = props;\n\n const {\n stores: { sdkStore },\n config: {\n userListQuery,\n theme,\n userId,\n logger,\n isOnline,\n },\n queries = {},\n } = props;\n\n const { config = {} } = props;\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const userFilledApplicationUserListQuery = queries.applicationUserListQuery;\n const { stringSet } = useContext(LocalizationContext);\n\n const { sdk, initialized } = sdkStore;\n\n // hack to kepp track of channel updates by triggering useEffect\n const [channelUpdateId, setChannelUpdateId] = useState(uuidv4());\n const [channel, setChannel] = useState(null);\n const [invalidChannel, setInvalidChannel] = useState(false);\n const [showAccordion, setShowAccordion] = useState(false);\n const [showLeaveChannelModal, setShowLeaveChannelModal] = useState(false);\n\n useEffect(() => {\n logger.info('ChannelSettings: Setting up');\n if (!channelUrl || !initialized || !sdk) {\n logger.warning('ChannelSettings: Setting up failed', 'No channelUrl or sdk uninitialized');\n setInvalidChannel(false);\n } else {\n if (!sdk || !sdk.GroupChannel) {\n logger.warning('ChannelSettings: No GroupChannel');\n return;\n }\n sdk.GroupChannel.getChannel(channelUrl, (groupChannel) => {\n if (!groupChannel) {\n logger.warning('ChannelSettings: Channel not found');\n setInvalidChannel(true);\n } else {\n logger.info('ChannelSettings: Fetched group channel', groupChannel);\n setInvalidChannel(false);\n setChannel(groupChannel);\n }\n });\n }\n }, [channelUrl, initialized, channelUpdateId]);\n\n if (!channel || invalidChannel) {\n return (\n
\n
\n \n {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n />\n
\n
\n \n
\n
\n );\n }\n\n return (\n \n
\n \n
\n {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n >\n \n \n
\n
\n
\n {\n renderChannelProfile\n ? renderChannelProfile({ channel })\n : (\n {\n logger.info('ChannelSettings: Channel information being updated');\n const swapParams = sdk.getErrorFirstCallback();\n if (onBeforeUpdateChannel) {\n const params = onBeforeUpdateChannel(currentTitle, currentImg, channel.data);\n // swapParams\n channel.updateChannel(params, (response, error) => {\n let groupChannel = response;\n if (swapParams) {\n groupChannel = error;\n }\n\n onChannelModified(groupChannel);\n setChannelUpdateId(uuidv4());\n });\n return;\n }\n channel.updateChannel(\n currentTitle,\n currentImg,\n channel.data,\n (response, error) => {\n let groupChannel = response;\n if (swapParams) {\n groupChannel = error;\n }\n logger.info('ChannelSettings: Channel information updated', groupChannel);\n onChannelModified(groupChannel);\n setChannelUpdateId(uuidv4());\n },\n );\n }}\n />\n )\n }\n {\n channel.myRole === 'operator'\n ? (\n {\n // setChannelUpdateId(uuidv4());\n onChannelModified(groupChannel);\n }}\n userQueryCreator={\n () => ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )\n }\n />\n )\n : (\n <>\n {/* Move to different file */}\n setShowAccordion(!showAccordion)}\n className={`\n sendbird-channel-settings__panel-item\n sendbird-channel-settings__members\n `}\n onClick={() => setShowAccordion(!showAccordion)}\n >\n \n \n {`${stringSet.CHANNEL_SETTING__MEMBERS__TITLE}`}\n \n \n \n
\n {\n showAccordion && (\n ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )\n }\n swapParams={\n sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback()\n }\n channel={channel}\n members={channel.members}\n onInviteMemebers={(selectedMemebers) => {\n logger.info('ChannelSettings: Inviting new users');\n channel.inviteWithUserIds(selectedMemebers)\n .then((res) => {\n onChannelModified(res);\n setChannelUpdateId(uuidv4());\n logger.info('ChannelSettings: Inviting new users success!', res);\n });\n }}\n />\n )\n }\n \n )\n }\n\n {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n onClick={() => {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n >\n \n \n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n \n \n {\n showLeaveChannelModal && (\n setShowLeaveChannelModal(false)}\n onLeaveChannel={() => {\n logger.info('ChannelSettings: Leaving channel', channel);\n channel.leave()\n .then(() => {\n logger.info('ChannelSettings: Leaving channel successful!', channel);\n onCloseClick();\n });\n }}\n />\n )\n }\n \n \n );\n}\n\nChannelSettings.propTypes = {\n onCloseClick: PropTypes.func,\n onChannelModified: PropTypes.func,\n onBeforeUpdateChannel: PropTypes.func,\n renderChannelProfile: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n channelUrl: PropTypes.string.isRequired,\n queries: PropTypes.shape({\n applicationUserListQuery: PropTypes.shape({\n limit: PropTypes.number,\n userIdsFilter: PropTypes.arrayOf(PropTypes.string),\n metaDataKeyFilter: PropTypes.string,\n metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n // from withSendbirdContext\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n GroupChannel: PropTypes.oneOfType([\n PropTypes.shape({\n getChannel: PropTypes.func,\n }),\n PropTypes.func,\n ]),\n createApplicationUserListQuery: PropTypes.any,\n }),\n initialized: PropTypes.bool,\n }),\n }).isRequired,\n config: PropTypes.shape({\n userId: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n isOnline: PropTypes.bool,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n }).isRequired,\n};\n\nChannelSettings.defaultProps = {\n onBeforeUpdateChannel: null,\n queries: {},\n disableUserProfile: false,\n renderUserProfile: null,\n renderChannelProfile: null,\n onCloseClick: () => { },\n onChannelModified: () => { },\n};\n\nexport default withSendbirdContext(ChannelSettings);\n"],"names":["EditDetails","props","onSubmit","onCancel","channel","userId","theme","inputRef","useRef","formRef","hiddenInputRef","useState","currentImg","setCurrentImg","newFile","setNewFile","useContext","LocalizationContext","stringSet","title","name","MODAL__CHANNEL_INFORMATION__TITLE","BUTTON__SAVE","current","value","reportValidity","ButtonType","PRIMARY","e","preventDefault","MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE","display","URL","createObjectURL","target","files","click","LabelTypography","BUTTON_1","LabelColors","MODAL__CHANNEL_INFORMATION__UPLOAD","MODAL__CHANNEL_INFORMATION__CHANNEL_NAME","MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER","propTypes","PropTypes","func","isRequired","shape","string","ChannelProfile","disabled","onChannelInfoChange","showModal","setShowModal","SUBTITLE_2","ONBACKGROUND_1","ONBACKGROUND_2","CHANNEL_SETTING__PROFILE__EDIT","EditDetailsModal","bool","defaultProps","MembersModal","_a","hideModal","currentUser","_b","members","setMembers","_c","memberQuery","setMemberQuery","useEffect","memberListQuery","createMemberListQuery","limit","next","error","noop","hasNext","fetchMore","clientHeight","scrollTop","scrollHeight","o","map","member","UserListItem","parentRef","actionRef","myRole","toggleDropdown","IconTypes","MORE","IconColors","CONTENT_INVERSE","closeDropdown","role","addOperators","m","removeOperators","isBroadcast","isMuted","unmuteUser","muteUser","banUser","filter","SHOWN_MEMBER_MAX","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","profileUrl","paddingTop","paddingBottom","user","currentUserId","close","nickname","NO_NAME","MemebersAccordion","userQueryCreator","onInviteMemebers","swapParams","showMoreModal","setShowMoreModal","showAddUserModal","setShowAddUserModal","slice","length","ButtonTypes","SECONDARY","ButtonSizes","SMALL","CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS","CHANNEL_SETTING__MEMBERS__INVITE_MEMBER","InviteMembers","MODAL__INVITE_MEMBER__TITLE","BUTTON__INVITE","arrayOf","COMPONENT_NAME","className","action","injectingClassNames","Array","isArray","__spreadArrays","join","SUBTITLE_1","CAPTION_3","OperatorsModal","operators","setOperators","operatorQuery","setOperatorQuery","operatorListQuery","createOperatorListQuery","response","AddOperatorsModal","selectedMembers","setSelectedMembers","_d","selectedCount","Object","keys","ONBACKGROUND_3","CAPTION_1","MODAL__INVITE_MEMBER__SELECTEC","event","modifiedSelectedMembers","id","checked","OperatorList","sdk","showMore","setShowMore","showAdd","setShowAdd","_e","setHasNext","refershList","useCallback","operator","CHANNEL_SETTING__OPERATORS__TITLE_ALL","CHANNEL_SETTING__OPERATORS__TITLE_ADD","mapStoreToProps","store","getSdk","withSendbirdContext","userQuery","setUserQuery","userListQuery","MemberList","showAllMembers","setShowAllMembers","showInviteMembers","setShowInviteMembers","memberUserListQuery","selectedMemebers","inviteWithUserIds","BannedMembersModal","bannedUserListQuery","createBannedUserListQuery","users","unbanUser","BannedMemberList","refreshList","MutedMembersModal","mutedMemberFilter","MutedMemberList","kFormatter","num","Math","abs","toFixed","index","frozen","setFrozen","isFrozen","ICON_OPERATOR","CHANNEL_SETTING__OPERATORS__TITLE","MEMBERS","CHANNEL_SETTING__MEMBERS__TITLE","memberCount","ICON_MUTED","CHANNEL_SETTING__MUTED_MEMBERS__TITLE","ICON_BANNED","CHANNEL_SETTING__BANNED_MEMBERS__TITLE","FROZEN_LIGHT","CHANNEL_SETTING__FREEZE_CHANNEL","unfreeze","TOGGLE_ON","freeze","TOGGLE_OFF","ChannelSettings","onCloseClick","channelUrl","onChannelModified","renderChannelProfile","onBeforeUpdateChannel","sdkStore","stores","config","logger","isOnline","queries","userDefinedDisableUserProfile","userDefinedRenderProfile","userFilledApplicationUserListQuery","applicationUserListQuery","initialized","uuidv4","channelUpdateId","setChannelUpdateId","setChannel","invalidChannel","setInvalidChannel","showAccordion","setShowAccordion","showLeaveChannelModal","setShowLeaveChannelModal","info","warning","GroupChannel","getChannel","groupChannel","H_2","CHANNEL_SETTING__HEADER__TITLE","CLOSE","PlaceHolderTypes","WRONG","currentTitle","getErrorFirstCallback","params","data","updateChannel","AdminPanel","createDefaultUserListQuery","SHEVRON","then","res","LEAVE","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","leave","oneOfType","element","number","userIdsFilter","metaDataKeyFilter","metaDataValuesFilter","createApplicationUserListQuery","any"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/LeaveChannel-fcc0bfc3.js b/dist/esm/LeaveChannel-fcc0bfc3.js new file mode 100644 index 0000000..b54d505 --- /dev/null +++ b/dist/esm/LeaveChannel-fcc0bfc3.js @@ -0,0 +1,290 @@ +import { e as LocalizationContext, c as _toConsumableArray, b as _slicedToArray, a as _objectSpread2, l as _defineProperty } from './LocalizationContext-619bafba.js'; +import React, { useContext, useState, useEffect } from 'react'; +import PropTypes from 'prop-types'; +import { b as Label, c as LabelTypography, d as LabelColors, M as Modal, T as Type } from './index-0c67ae90.js'; +import { U as UserListItem } from './index-73379213.js'; + +function Badge(_ref) { + var count = _ref.count, + maxLevel = _ref.maxLevel, + className = _ref.className; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var maximumNumber = parseInt('9'.repeat(maxLevel > 6 ? 6 : maxLevel), 10); + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-badge']).join(' ') + }, React.createElement("div", { + className: "sendbird-badge__text" + }, React.createElement(Label, { + type: LabelTypography.CAPTION_2, + color: LabelColors.ONCONTENT_1 + }, count > maximumNumber ? "".concat(maximumNumber).concat(stringSet.BADGE__OVER) : count))); +} +Badge.propTypes = { + count: PropTypes.number.isRequired, + maxLevel: PropTypes.number, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +Badge.defaultProps = { + maxLevel: 2, + className: [] +}; + +var filterUser = function filterUser(idsToFilter) { + return function (currentId) { + return idsToFilter.includes(currentId); + }; +}; + +var InviteMembers = function InviteMembers(props) { + var userQueryCreator = props.userQueryCreator, + closeModal = props.closeModal, + _onSubmit = props.onSubmit, + submitText = props.submitText, + titleText = props.titleText, + idsToFilter = props.idsToFilter, + swapParams = props.swapParams; + + var _useState = useState([]), + _useState2 = _slicedToArray(_useState, 2), + users = _useState2[0], + setUsers = _useState2[1]; + + var _useState3 = useState({}), + _useState4 = _slicedToArray(_useState3, 2), + selectedUsers = _useState4[0], + setSelectedUsers = _useState4[1]; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var _useState5 = useState({}), + _useState6 = _slicedToArray(_useState5, 2), + usersDataSource = _useState6[0], + setUsersDataSource = _useState6[1]; + + var selectedCount = Object.keys(selectedUsers).length; + useEffect(function () { + var applicationUserListQuery = userQueryCreator(); + setUsersDataSource(applicationUserListQuery); + applicationUserListQuery.next(function (res, err) { + // eslint-disable-next-line no-underscore-dangle + var users_ = res; + var error = err; + + if (swapParams) { + users_ = err; + error = users_; + } + + if (error) { + return; + } + + setUsers(users_); + }); + }, []); + return React.createElement(Modal, { + onCancel: closeModal, + onSubmit: function onSubmit() { + var selectedUserList = Object.keys(selectedUsers); + + if (selectedUserList.length > 0) { + _onSubmit(selectedUserList); + + closeModal(); + } + }, + submitText: submitText, + titleText: titleText, + type: Type.PRIMARY + }, React.createElement("div", null, React.createElement(Label, { + color: selectedCount > 0 ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3, + type: LabelTypography.CAPTION_1 + }, "".concat(selectedCount, " ").concat(stringSet.MODAL__INVITE_MEMBER__SELECTEC)), React.createElement("div", { + className: "sendbird-create-channel--scroll", + onScroll: function onScroll(e) { + var hasNext = usersDataSource.hasNext; + var fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight; + + if (hasNext && fetchMore) { + usersDataSource.next(function (usersBatch, error) { + if (error) { + return; + } + + setUsers([].concat(_toConsumableArray(users), _toConsumableArray(usersBatch))); + }); + } + } + }, users.map(function (user) { + return !filterUser(idsToFilter)(user.userId) && React.createElement(UserListItem, { + key: user.userId, + user: user, + checkBox: true, + checked: selectedUsers[user.userId], + onChange: function onChange(event) { + var modifiedSelectedUsers = _objectSpread2({}, selectedUsers, _defineProperty({}, event.target.id, event.target.checked)); + + if (!event.target.checked) { + delete modifiedSelectedUsers[event.target.id]; + } + + setSelectedUsers(modifiedSelectedUsers); + } + }); + })))); +}; + +InviteMembers.propTypes = { + idsToFilter: PropTypes.arrayOf(PropTypes.string), + swapParams: PropTypes.bool, + userQueryCreator: PropTypes.func.isRequired, + closeModal: PropTypes.func.isRequired, + onSubmit: PropTypes.func.isRequired, + submitText: PropTypes.string, + titleText: PropTypes.string +}; +InviteMembers.defaultProps = { + swapParams: false, + submitText: 'create', + titleText: 'Create new channel', + idsToFilter: [] +}; + +var createDefaultUserListQuery = function createDefaultUserListQuery(_ref) { + var sdk = _ref.sdk, + _ref$userFilledApplic = _ref.userFilledApplicationUserListQuery, + userFilledApplicationUserListQuery = _ref$userFilledApplic === void 0 ? {} : _ref$userFilledApplic; + var params = sdk.createApplicationUserListQuery(); + + if (userFilledApplicationUserListQuery) { + Object.keys(userFilledApplicationUserListQuery).forEach(function (key) { + params[key] = userFilledApplicationUserListQuery[key]; + }); + } + + return params; +}; + +var getApplicationAttributes = function getApplicationAttributes() { + var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _sdk$appInfo = sdk.appInfo, + appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; + var _appInfo$applicationA = appInfo.applicationAttributes, + applicationAttributes = _appInfo$applicationA === void 0 ? [] : _appInfo$applicationA; + return applicationAttributes; +}; + +var isBroadcastChannelEnabled = function isBroadcastChannelEnabled() { + var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel'; + var applicationAttributes = getApplicationAttributes(sdk); + + if (Array.isArray(applicationAttributes)) { + return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL); + } + + return false; +}; +var isSuperGroupChannelEnabled = function isSuperGroupChannelEnabled() { + var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel'; + var applicationAttributes = getApplicationAttributes(sdk); + + if (Array.isArray(applicationAttributes)) { + return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL); + } + + return false; +}; +var setChannelType = function setChannelType(params, type) { + if (type === 'broadcast') { + // eslint-disable-next-line no-param-reassign + params.isBroadcast = true; + } + + if (type === 'supergroup') { + // eslint-disable-next-line no-param-reassign + params.isSuper = true; + } + + return params; +}; +var createChannel = function createChannel(sdk, selectedUsers, onBeforeCreateChannel, userId) { + var type = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'group'; + return new Promise(function (resolve, reject) { + // have custom params + if (onBeforeCreateChannel) { + var _params = onBeforeCreateChannel(selectedUsers); + + setChannelType(_params, type); + sdk.GroupChannel.createChannel(_params, function (response, error) { + var swapParams = sdk.getErrorFirstCallback(); + var groupChannel = response; + var err = error; + + if (swapParams) { + groupChannel = error; + err = response; + } + + if (err) { + reject(err); + } + + resolve(groupChannel); + }); + return; + } + + var params = new sdk.GroupChannelParams(); + params.addUserIds(selectedUsers); + params.isDistinct = false; + + if (userId) { + params.operatorUserIds = [userId]; + } + + setChannelType(params, type); // do not have custom params + + sdk.GroupChannel.createChannel(params, function (response, error) { + var swapParams = sdk.getErrorFirstCallback(); + var groupChannel = response; + var err = error; + + if (swapParams) { + groupChannel = error; + err = response; + } + + if (err) { + reject(err); + } + + resolve(groupChannel); + }); + }); +}; + +var LeaveChannel = function LeaveChannel(props) { + var onCloseModal = props.onCloseModal, + onLeaveChannel = props.onLeaveChannel; + return React.createElement(Modal, { + onCancel: onCloseModal, + onSubmit: onLeaveChannel, + submitText: "Leave", + titleText: "Leave this channel?" + }); +}; + +LeaveChannel.propTypes = { + onCloseModal: PropTypes.func.isRequired, + onLeaveChannel: PropTypes.func.isRequired +}; + +export { Badge as B, InviteMembers as I, LeaveChannel as L, isSuperGroupChannelEnabled as a, createChannel as b, createDefaultUserListQuery as c, isBroadcastChannelEnabled as i }; +//# sourceMappingURL=LeaveChannel-fcc0bfc3.js.map diff --git a/dist/esm/LeaveChannel-fcc0bfc3.js.map b/dist/esm/LeaveChannel-fcc0bfc3.js.map new file mode 100644 index 0000000..0436b72 --- /dev/null +++ b/dist/esm/LeaveChannel-fcc0bfc3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LeaveChannel-fcc0bfc3.js","sources":["../../../src/ui/Badge/index.jsx","../../../src/smart-components/InviteMembers/index.jsx","../../../src/smart-components/ChannelList/components/utils.js","../../../src/smart-components/ChannelSettings/components/LeaveChannel.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function Badge({\n count,\n maxLevel,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const maximumNumber = parseInt('9'.repeat((maxLevel > 6) ? 6 : maxLevel), 10);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n
\n \n
\n
\n );\n}\n\nBadge.propTypes = {\n count: PropTypes.number.isRequired,\n maxLevel: PropTypes.number,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nBadge.defaultProps = {\n maxLevel: 2,\n className: [],\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Modal from '../../ui/Modal';\nimport { Type as ButtonTypes } from '../../ui/Button/type';\nimport UserListItem from '../../ui/UserListItem';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst filterUser = (idsToFilter) => (currentId) => idsToFilter.includes(currentId);\n\nconst InviteMembers = (props) => {\n const {\n userQueryCreator,\n closeModal,\n onSubmit,\n submitText,\n titleText,\n idsToFilter,\n swapParams,\n } = props;\n\n const [users, setUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState({});\n const { stringSet } = useContext(LocalizationContext);\n const [usersDataSource, setUsersDataSource] = useState({});\n const selectedCount = Object.keys(selectedUsers).length;\n\n useEffect(() => {\n const applicationUserListQuery = userQueryCreator();\n setUsersDataSource(applicationUserListQuery);\n applicationUserListQuery.next((res, err) => {\n // eslint-disable-next-line no-underscore-dangle\n let users_ = res;\n let error = err;\n if (swapParams) {\n users_ = err;\n error = users_;\n }\n if (error) {\n return;\n }\n setUsers(users_);\n });\n }, []);\n\n return (\n {\n const selectedUserList = Object.keys(selectedUsers);\n if (selectedUserList.length > 0) {\n onSubmit(selectedUserList);\n closeModal();\n }\n }}\n submitText={submitText}\n titleText={titleText}\n type={ButtonTypes.PRIMARY}\n >\n
\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = usersDataSource;\n const fetchMore = (\n e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n usersDataSource.next((usersBatch, error) => {\n if (error) {\n return;\n }\n setUsers([\n ...users,\n ...usersBatch,\n ]);\n });\n }\n }}\n >\n {\n users.map((user) => (!filterUser(idsToFilter)(user.userId)) && (\n {\n const modifiedSelectedUsers = {\n ...selectedUsers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedUsers[event.target.id];\n }\n setSelectedUsers(modifiedSelectedUsers);\n }\n }\n />\n ))\n }\n
\n \n \n );\n};\n\nInviteMembers.propTypes = {\n idsToFilter: PropTypes.arrayOf(PropTypes.string),\n swapParams: PropTypes.bool,\n userQueryCreator: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string,\n titleText: PropTypes.string,\n};\nInviteMembers.defaultProps = {\n swapParams: false,\n submitText: 'create',\n titleText: 'Create new channel',\n idsToFilter: [],\n};\n\nexport default InviteMembers;\n","export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n const params = sdk.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.GroupChannel.createChannel(params, (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.GroupChannel.createChannel(\n params,\n (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n },\n );\n});\n\nexport default createChannel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\n\nconst LeaveChannel = (props) => {\n const {\n onCloseModal,\n onLeaveChannel,\n } = props;\n return (\n \n );\n};\n\nLeaveChannel.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nexport default LeaveChannel;\n"],"names":["Badge","count","maxLevel","className","useContext","LocalizationContext","stringSet","maximumNumber","parseInt","repeat","injectingClassName","Array","isArray","join","LabelTypography","CAPTION_2","LabelColors","ONCONTENT_1","BADGE__OVER","propTypes","PropTypes","number","isRequired","oneOfType","string","arrayOf","defaultProps","filterUser","idsToFilter","currentId","includes","InviteMembers","props","userQueryCreator","closeModal","onSubmit","submitText","titleText","swapParams","useState","users","setUsers","selectedUsers","setSelectedUsers","usersDataSource","setUsersDataSource","selectedCount","Object","keys","length","useEffect","applicationUserListQuery","next","res","err","users_","error","selectedUserList","ButtonTypes","PRIMARY","ONBACKGROUND_3","CAPTION_1","MODAL__INVITE_MEMBER__SELECTEC","e","hasNext","fetchMore","target","clientHeight","scrollTop","scrollHeight","usersBatch","map","user","userId","event","modifiedSelectedUsers","id","checked","bool","func","createDefaultUserListQuery","sdk","userFilledApplicationUserListQuery","params","createApplicationUserListQuery","forEach","key","getApplicationAttributes","appInfo","applicationAttributes","isBroadcastChannelEnabled","ALLOW_BROADCAST_CHANNEL","isSuperGroupChannelEnabled","ALLOW_SUPER_GROUP_CHANNEL","setChannelType","type","isBroadcast","isSuper","createChannel","onBeforeCreateChannel","Promise","resolve","reject","GroupChannel","response","getErrorFirstCallback","groupChannel","GroupChannelParams","addUserIds","isDistinct","operatorUserIds","LeaveChannel","onCloseModal","onLeaveChannel"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/LocalizationContext-619bafba.js b/dist/esm/LocalizationContext-619bafba.js new file mode 100644 index 0000000..393bf60 --- /dev/null +++ b/dist/esm/LocalizationContext-619bafba.js @@ -0,0 +1,361 @@ +import React from 'react'; + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); +} + +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); +} + +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); +} + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; + + return arr2; + } +} + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +function _iterableToArray(iter) { + if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); +} + +function _iterableToArrayLimit(arr, i) { + if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { + return; + } + + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance"); +} + +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); +} + +var SendbirdSdkContext = React.createContext(); + +var withSendbirdContext = function withSendbirdContext(OriginalComponent, mapStoreToProps) { + var ContextAwareComponent = function ContextAwareComponent(props) { + return React.createElement(SendbirdSdkContext.Consumer, null, function (context) { + if (mapStoreToProps && typeof mapStoreToProps !== 'function') { + // eslint-disable-next-line no-console + console.warn('Second parameter to withSendbirdContext must be a pure function'); + } // todo - memoize + + + var mergedProps = mapStoreToProps && typeof mapStoreToProps === 'function' ? _objectSpread2({}, mapStoreToProps(context), {}, props) : _objectSpread2({}, context, {}, props); // eslint-disable-next-line react/jsx-props-no-spreading + + return React.createElement(OriginalComponent, mergedProps); + }); + }; + + var componentName = OriginalComponent.displayName || OriginalComponent.name || 'Component'; + ContextAwareComponent.displayName = "SendbirdAware".concat(componentName); + return ContextAwareComponent; +}; + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +} + +/* eslint-disable no-bitwise */ + +/* eslint-disable eqeqeq */ + +/* eslint-disable no-mixed-operators */ +// https://stackoverflow.com/a/2117523 +// used mainly for dom key generation +var uuidv4 = function uuidv4() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0; + var v = c === 'x' ? r : r & 0x3 | 0x8; + return v.toString(16); + }); +}; + +var getStringSet = function getStringSet() { + var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en'; + var stringSet = { + en: { + OPEN_CHANNEL_SETTINGS__OPERATOR_TITLE: 'Channel Information', + OPEN_CHANNEL_SETTINGS__OPERATOR_URL: 'URL', + OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE: 'Participants', + OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL: 'Delete channel', + OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE: 'Delete this channel', + OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT: 'Delete', + OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE: 'Participants', + OPEN_CHANNEL_SETTINGS__EMPTY_LIST: 'No participants yet', + OPEN_CHANNEL_SETTINGS__SEE_ALL: 'See all participants', + OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE: 'All participants', + OPEN_CHANNEL_SETTINGS__NO_TITLE: '(No title)', + OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS: 'participants', + TRYING_TO_CONNECT: 'Trying to connect…', + USER_PROFILE__MESSAGE: 'Message', + USER_PROFILE__USER_ID: 'User ID', + EDIT_PROFILE__TITLE: 'My profile', + EDIT_PROFILE__IMAGE_LABEL: 'Profile image', + EDIT_PROFILE__IMAGE_UPLOAD: 'Upload', + EDIT_PROFILE__NICKNAME_LABEL: 'Nickname', + EDIT_PROFILE__NICKNAME_PLACEHOLDER: 'Enter your nickname', + EDIT_PROFILE__USERID_LABEL: 'User ID', + EDIT_PROFILE__THEME_LABEL: 'Dark theme', + CHANNEL_LIST__TITLE: 'Channels', + CHANNEL__MESSAGE_INPUT__PLACE_HOLDER: 'Enter message', + CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED: 'Chat is unavailable in this channel', + CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED: 'Chat is unavailable because you are being muted', + CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE: 'new message(s) since', + CHANNEL__MESSAGE_LIST__NOTIFICATION__ON: 'on', + CHANNEL_SETTING__HEADER__TITLE: 'Channel information', + CHANNEL_SETTING__PROFILE__EDIT: 'Edit', + CHANNEL_SETTING__MEMBERS__TITLE: 'Members', + CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS: 'All members', + CHANNEL_SETTING__MEMBERS__INVITE_MEMBER: 'Invite users', + CHANNEL_SETTING__LEAVE_CHANNEL__TITLE: 'Leave channel', + CHANNEL_SETTING__OPERATORS__TITLE: 'Operators', + CHANNEL_SETTING__OPERATORS__TITLE_ALL: 'All operators', + CHANNEL_SETTING__OPERATORS__TITLE_ADD: 'Add operator', + CHANNEL_SETTING__MUTED_MEMBERS__TITLE: 'Muted members', + CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL: 'All muted members', + CHANNEL_SETTING__BANNED_MEMBERS__TITLE: 'Banned members', + CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL: 'All banned members', + CHANNEL_SETTING__FREEZE_CHANNEL: 'Freeze Channel', + BUTTON__CANCEL: 'Cancel', + BUTTON__DELETE: 'Delete', + BUTTON__SAVE: 'Save', + BUTTON__CREATE: 'Create', + BUTTON__INVITE: 'Invite', + BUTTON__CLOSE: 'Close', + BADGE__OVER: '+', + MODAL__DELETE_MESSAGE__TITLE: 'Delete this message?', + MODAL__CHANNEL_INFORMATION__TITLE: 'Edit channel information', + MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE: 'Channel image', + MODAL__CHANNEL_INFORMATION__UPLOAD: 'Upload', + MODAL__CHANNEL_INFORMATION__CHANNEL_NAME: 'Channel name', + MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER: 'Enter name', + MODAL__INVITE_MEMBER__TITLE: 'Invite member', + MODAL__INVITE_MEMBER__SELECTEC: 'selected', + MODAL__CREATE_CHANNEL__TITLE: 'New channel', + MODAL__CREATE_CHANNEL__SELECTED: 'selected', + MODAL__USER_LIST__TITLE: 'members', + TYPING_INDICATOR__IS_TYPING: 'is typing...', + TYPING_INDICATOR__AND: 'and', + TYPING_INDICATOR__ARE_TYPING: 'are typing...', + TYPING_INDICATOR__MULTIPLE_TYPING: 'Several people are typing...', + MESSAGE_STATUS__SENDING_FAILED: 'Couldn\'t send message.', + MESSAGE_STATUS__TRY_AGAIN: 'Try again', + MESSAGE_STATUS__OR: 'or', + MESSAGE_STATUS__DELETE: 'delete', + PLACE_HOLDER__NO_CHANNEL: 'No channels', + CHANNEL_FROZEN: 'Channel frozen', + MUTED_PL: 'Channel frozen', + PLACE_HOLDER__WRONG: 'Something went wrong', + PLACE_HOLDER__RETRY_TO_CONNECT: 'Retry', + NO_TITLE: 'No title', + NO_NAME: '(No name)', + NO_MEMBERS: '(No members)', + TOOLTIP__AND_YOU: ', and you', + TOOLTIP__YOU: 'you', + TOOLTIP__UNKOWN_USER: '(no name)', + UNKNOWN__UNKNOWN_MESSAGE_TYPE: '(Unknown message type)', + UNKNOWN__CANNOT_READ_MESSAGE: 'Cannot read this message.', + MESSAGE_EDITED: '(edited)', + CONTEXT_MENU_DROPDOWN__COPY: 'Copy', + CONTEXT_MENU_DROPDOWN__EDIT: 'Edit', + CONTEXT_MENU_DROPDOWN__RESEND: 'Resend', + CONTEXT_MENU_DROPDOWN__DELETE: 'Delete' + } + }; + return stringSet[lang]; +}; + +var LocalizationContext = React.createContext({ + stringSet: getStringSet('en') +}); + +var LocalizationProvider = function LocalizationProvider(props) { + var children = props.children; + return React.createElement(LocalizationContext.Provider, { + value: props + }, children); +}; + +export { LocalizationProvider as L, SendbirdSdkContext as S, __assign as _, _objectSpread2 as a, _slicedToArray as b, _toConsumableArray as c, __spreadArrays as d, LocalizationContext as e, _inherits as f, getStringSet as g, _createClass as h, _classCallCheck as i, _possibleConstructorReturn as j, _getPrototypeOf as k, _defineProperty as l, _assertThisInitialized as m, uuidv4 as n, uuidv4 as u, withSendbirdContext as w }; +//# sourceMappingURL=LocalizationContext-619bafba.js.map diff --git a/dist/esm/LocalizationContext-619bafba.js.map b/dist/esm/LocalizationContext-619bafba.js.map new file mode 100644 index 0000000..3b19bdc --- /dev/null +++ b/dist/esm/LocalizationContext-619bafba.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LocalizationContext-619bafba.js","sources":["../../../src/lib/SendbirdSdkContext.jsx","../../../node_modules/tslib/tslib.es6.js","../../../src/utils/uuid.ts","../../../src/ui/Label/stringSet.js","../../../src/lib/LocalizationContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport const SendbirdSdkContext = React.createContext();\n\nconst withSendbirdContext = (OriginalComponent, mapStoreToProps) => {\n const ContextAwareComponent = (props) => (\n \n {(context) => {\n if (mapStoreToProps && typeof mapStoreToProps !== 'function') {\n // eslint-disable-next-line no-console\n console.warn('Second parameter to withSendbirdContext must be a pure function');\n }\n // todo - memoize\n const mergedProps = (mapStoreToProps && typeof mapStoreToProps === 'function')\n ? { ...mapStoreToProps(context), ...props }\n : { ...context, ...props };\n // eslint-disable-next-line react/jsx-props-no-spreading\n return ;\n }}\n \n );\n\n const componentName = OriginalComponent.displayName || OriginalComponent.name || 'Component';\n ContextAwareComponent.displayName = `SendbirdAware${componentName}`;\n\n return ContextAwareComponent;\n};\n\nexport default withSendbirdContext;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* eslint-disable no-bitwise */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-mixed-operators */\n// https://stackoverflow.com/a/2117523\n// used mainly for dom key generation\nexport const uuidv4 = (): string => 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n});\n\nexport default uuidv4;\n","const getStringSet = (lang = 'en') => {\n const stringSet = {\n en: {\n OPEN_CHANNEL_SETTINGS__OPERATOR_TITLE: 'Channel Information',\n OPEN_CHANNEL_SETTINGS__OPERATOR_URL: 'URL',\n OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE: 'Participants',\n OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL: 'Delete channel',\n OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE: 'Delete this channel',\n OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT: 'Delete',\n OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE: 'Participants',\n OPEN_CHANNEL_SETTINGS__EMPTY_LIST: 'No participants yet',\n OPEN_CHANNEL_SETTINGS__SEE_ALL: 'See all participants',\n OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE: 'All participants',\n OPEN_CHANNEL_SETTINGS__NO_TITLE: '(No title)',\n OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS: 'participants',\n TRYING_TO_CONNECT: 'Trying to connect…',\n USER_PROFILE__MESSAGE: 'Message',\n USER_PROFILE__USER_ID: 'User ID',\n EDIT_PROFILE__TITLE: 'My profile',\n EDIT_PROFILE__IMAGE_LABEL: 'Profile image',\n EDIT_PROFILE__IMAGE_UPLOAD: 'Upload',\n EDIT_PROFILE__NICKNAME_LABEL: 'Nickname',\n EDIT_PROFILE__NICKNAME_PLACEHOLDER: 'Enter your nickname',\n EDIT_PROFILE__USERID_LABEL: 'User ID',\n EDIT_PROFILE__THEME_LABEL: 'Dark theme',\n CHANNEL_LIST__TITLE: 'Channels',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER: 'Enter message',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED: 'Chat is unavailable in this channel',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED: 'Chat is unavailable because you are being muted',\n CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE: 'new message(s) since',\n CHANNEL__MESSAGE_LIST__NOTIFICATION__ON: 'on',\n CHANNEL_SETTING__HEADER__TITLE: 'Channel information',\n CHANNEL_SETTING__PROFILE__EDIT: 'Edit',\n CHANNEL_SETTING__MEMBERS__TITLE: 'Members',\n CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS: 'All members',\n CHANNEL_SETTING__MEMBERS__INVITE_MEMBER: 'Invite users',\n CHANNEL_SETTING__LEAVE_CHANNEL__TITLE: 'Leave channel',\n CHANNEL_SETTING__OPERATORS__TITLE: 'Operators',\n CHANNEL_SETTING__OPERATORS__TITLE_ALL: 'All operators',\n CHANNEL_SETTING__OPERATORS__TITLE_ADD: 'Add operator',\n CHANNEL_SETTING__MUTED_MEMBERS__TITLE: 'Muted members',\n CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL: 'All muted members',\n CHANNEL_SETTING__BANNED_MEMBERS__TITLE: 'Banned members',\n CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL: 'All banned members',\n CHANNEL_SETTING__FREEZE_CHANNEL: 'Freeze Channel',\n BUTTON__CANCEL: 'Cancel',\n BUTTON__DELETE: 'Delete',\n BUTTON__SAVE: 'Save',\n BUTTON__CREATE: 'Create',\n BUTTON__INVITE: 'Invite',\n BUTTON__CLOSE: 'Close',\n BADGE__OVER: '+',\n MODAL__DELETE_MESSAGE__TITLE: 'Delete this message?',\n MODAL__CHANNEL_INFORMATION__TITLE: 'Edit channel information',\n MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE: 'Channel image',\n MODAL__CHANNEL_INFORMATION__UPLOAD: 'Upload',\n MODAL__CHANNEL_INFORMATION__CHANNEL_NAME: 'Channel name',\n MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER: 'Enter name',\n MODAL__INVITE_MEMBER__TITLE: 'Invite member',\n MODAL__INVITE_MEMBER__SELECTEC: 'selected',\n MODAL__CREATE_CHANNEL__TITLE: 'New channel',\n MODAL__CREATE_CHANNEL__SELECTED: 'selected',\n MODAL__USER_LIST__TITLE: 'members',\n TYPING_INDICATOR__IS_TYPING: 'is typing...',\n TYPING_INDICATOR__AND: 'and',\n TYPING_INDICATOR__ARE_TYPING: 'are typing...',\n TYPING_INDICATOR__MULTIPLE_TYPING: 'Several people are typing...',\n MESSAGE_STATUS__SENDING_FAILED: 'Couldn\\'t send message.',\n MESSAGE_STATUS__TRY_AGAIN: 'Try again',\n MESSAGE_STATUS__OR: 'or',\n MESSAGE_STATUS__DELETE: 'delete',\n PLACE_HOLDER__NO_CHANNEL: 'No channels',\n CHANNEL_FROZEN: 'Channel frozen',\n MUTED_PL: 'Channel frozen',\n PLACE_HOLDER__WRONG: 'Something went wrong',\n PLACE_HOLDER__RETRY_TO_CONNECT: 'Retry',\n NO_TITLE: 'No title',\n NO_NAME: '(No name)',\n NO_MEMBERS: '(No members)',\n TOOLTIP__AND_YOU: ', and you',\n TOOLTIP__YOU: 'you',\n TOOLTIP__UNKOWN_USER: '(no name)',\n UNKNOWN__UNKNOWN_MESSAGE_TYPE: '(Unknown message type)',\n UNKNOWN__CANNOT_READ_MESSAGE: 'Cannot read this message.',\n MESSAGE_EDITED: '(edited)',\n CONTEXT_MENU_DROPDOWN__COPY: 'Copy',\n CONTEXT_MENU_DROPDOWN__EDIT: 'Edit',\n CONTEXT_MENU_DROPDOWN__RESEND: 'Resend',\n CONTEXT_MENU_DROPDOWN__DELETE: 'Delete',\n },\n };\n return stringSet[lang];\n};\n\nexport default getStringSet;\n","import React from 'react';\n\nimport getStringSet from '../ui/Label/stringSet';\n\nconst LocalizationContext = React.createContext({\n stringSet: getStringSet('en'),\n});\n\ninterface LocalizationProviderProps {\n stringSet: Record;\n children: React.Component;\n}\n\nconst LocalizationProvider = (props: LocalizationProviderProps): React.ReactNode => {\n const { children } = props;\n return (\n \n {children}\n \n );\n};\n\nexport { LocalizationContext, LocalizationProvider };\n"],"names":["SendbirdSdkContext","React","createContext","withSendbirdContext","OriginalComponent","mapStoreToProps","ContextAwareComponent","props","context","console","warn","mergedProps","componentName","displayName","name","uuidv4","replace","c","r","Math","random","v","toString","getStringSet","lang","stringSet","en","OPEN_CHANNEL_SETTINGS__OPERATOR_TITLE","OPEN_CHANNEL_SETTINGS__OPERATOR_URL","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE","OPEN_CHANNEL_SETTINGS__EMPTY_LIST","OPEN_CHANNEL_SETTINGS__SEE_ALL","OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE","OPEN_CHANNEL_SETTINGS__NO_TITLE","OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS","TRYING_TO_CONNECT","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","EDIT_PROFILE__TITLE","EDIT_PROFILE__IMAGE_LABEL","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","EDIT_PROFILE__THEME_LABEL","CHANNEL_LIST__TITLE","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","CHANNEL_SETTING__HEADER__TITLE","CHANNEL_SETTING__PROFILE__EDIT","CHANNEL_SETTING__MEMBERS__TITLE","CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS","CHANNEL_SETTING__MEMBERS__INVITE_MEMBER","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","CHANNEL_SETTING__OPERATORS__TITLE","CHANNEL_SETTING__OPERATORS__TITLE_ALL","CHANNEL_SETTING__OPERATORS__TITLE_ADD","CHANNEL_SETTING__MUTED_MEMBERS__TITLE","CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL","CHANNEL_SETTING__BANNED_MEMBERS__TITLE","CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL","CHANNEL_SETTING__FREEZE_CHANNEL","BUTTON__CANCEL","BUTTON__DELETE","BUTTON__SAVE","BUTTON__CREATE","BUTTON__INVITE","BUTTON__CLOSE","BADGE__OVER","MODAL__DELETE_MESSAGE__TITLE","MODAL__CHANNEL_INFORMATION__TITLE","MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE","MODAL__CHANNEL_INFORMATION__UPLOAD","MODAL__CHANNEL_INFORMATION__CHANNEL_NAME","MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER","MODAL__INVITE_MEMBER__TITLE","MODAL__INVITE_MEMBER__SELECTEC","MODAL__CREATE_CHANNEL__TITLE","MODAL__CREATE_CHANNEL__SELECTED","MODAL__USER_LIST__TITLE","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","MESSAGE_STATUS__SENDING_FAILED","MESSAGE_STATUS__TRY_AGAIN","MESSAGE_STATUS__OR","MESSAGE_STATUS__DELETE","PLACE_HOLDER__NO_CHANNEL","CHANNEL_FROZEN","MUTED_PL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT","NO_TITLE","NO_NAME","NO_MEMBERS","TOOLTIP__AND_YOU","TOOLTIP__YOU","TOOLTIP__UNKOWN_USER","UNKNOWN__UNKNOWN_MESSAGE_TYPE","UNKNOWN__CANNOT_READ_MESSAGE","MESSAGE_EDITED","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","LocalizationContext","LocalizationProvider","children"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/OpenChannel.js b/dist/esm/OpenChannel.js new file mode 100644 index 0000000..bcb72ae --- /dev/null +++ b/dist/esm/OpenChannel.js @@ -0,0 +1,2737 @@ +import { e as LocalizationContext, n as uuidv4, d as __spreadArrays, _ as __assign, w as withSendbirdContext } from './LocalizationContext-619bafba.js'; +import React, { useContext, useRef, useState, useMemo, useEffect, useReducer, useCallback } from 'react'; +import 'prop-types'; +import { b as Label, c as LabelTypography, L as LabelStringSet, A as Avatar, I as Icon, a as IconTypes, g as IconColors, d as LabelColors, e as IconButton, n as UserProfileContext, C as ContextMenu, h as MenuItems, o as UserProfile, i as MenuItem, r as ImageRenderer, f as TextButton, M as Modal, P as PlaceHolder, t as PlaceHolderTypes, l as UserProfileProvider } from './index-0c67ae90.js'; +import format from 'date-fns/format'; +import 'react-dom'; +import { M as MessageInput, L as LinkLabel, i as isImage, a as isVideo, D as DateSeparator, F as FileViewer, c as compareIds } from './index-1cf7b066.js'; +import isSameDay from 'date-fns/isSameDay'; + +var getMessageCreatedAt = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var scrollIntoLast = function scrollIntoLast(selector, intialTry) { + if (intialTry === void 0) { + intialTry = 0; + } + + var MAX_TRIES = 10; + var currentTry = intialTry; + + if (currentTry > MAX_TRIES) { + return; + } + + try { + var nodes = document.querySelectorAll(selector); + var last = nodes[nodes.length - 1]; + last.scrollIntoView(false); + /** alignToTop: false */ + } catch (error) { + setTimeout(function () { + scrollIntoLast(selector, currentTry + 1); + }, 500 * currentTry); + } +}; +var isSameGroup = function isSameGroup(message, comparingMessage) { + if (!message || !comparingMessage || message.messageType === 'admin' || comparingMessage.messageType === 'admin') { + return false; + } + + return message.sendingStatus === comparingMessage.sendingStatus && message.sender.userId === comparingMessage.sender.userId && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage); +}; +var compareMessagesForGrouping = function compareMessagesForGrouping(prevMessage, currMessage, nextMessage) { + return [isSameGroup(prevMessage, currMessage), isSameGroup(currMessage, nextMessage)]; +}; +var kFormatter = function kFormatter(num) { + if (Math.abs(num) > 999999) { + return (Math.abs(num) / 1000000).toFixed(1) + "M"; + } + + if (Math.abs(num) > 999) { + return (Math.abs(num) / 1000).toFixed(1) + "K"; + } + + return "" + num; +}; +var isOperator = function isOperator(openChannel, userId) { + var operators = openChannel.operators; + + if (operators.map(function (operator) { + return operator.userId; + }).indexOf(userId) < 0) { + return false; + } + + return true; +}; +var isDisabledBecauseFrozen = function isDisabledBecauseFrozen(openChannel, userId) { + var isFrozen = openChannel.isFrozen; + return isFrozen && !isOperator(openChannel, userId); +}; + +var MessageInputWrapper = function MessageInputWrapper(_a, ref) { + var channel = _a.channel, + user = _a.user, + disabled = _a.disabled, + onSendMessage = _a.onSendMessage, + onFileUpload = _a.onFileUpload, + renderMessageInput = _a.renderMessageInput; + + if (!channel) { + return; + } + + var stringSet = useContext(LocalizationContext).stringSet; + + if (renderMessageInput) { + return renderMessageInput({ + channel: channel, + user: user, + disabled: disabled + }); + } + + return React.createElement("div", { + className: "sendbird-openchannel-footer" + }, React.createElement(MessageInput, { + ref: ref, + disabled: disabled, + onSendMessage: onSendMessage, + onFileUpload: onFileUpload, + placeholder: disabled && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED // add disabled because of muted state + + })); +}; + +var MessageInputWrapper$1 = React.forwardRef(MessageInputWrapper); + +var FrozenNotification = function FrozenNotification() { + var stringSet = useContext(LocalizationContext).stringSet; + return React.createElement("div", { + className: "sendbird-frozen-channel-notification" + }, React.createElement(Label, { + className: "sendbird-frozen-channel-notification__text", + type: LabelTypography.CAPTION_2 + }, stringSet.CHANNEL_FROZEN)); +}; + +var COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation-header'; +function OpenchannelConversationHeader(_a) { + var coverImage = _a.coverImage, + _b = _a.title, + title = _b === void 0 ? LabelStringSet.NO_TITLE : _b, + _c = _a.subTitle, + subTitle = _c === void 0 ? LabelStringSet.NO_TITLE : _c, + onActionClick = _a.onActionClick; + return React.createElement("div", { + className: COMPONENT_CLASS_NAME + }, React.createElement("div", { + className: COMPONENT_CLASS_NAME + "__left" + }, coverImage ? React.createElement(Avatar, { + className: COMPONENT_CLASS_NAME + "__left__cover-image", + src: coverImage, + alt: "channel cover image", + width: "32px", + height: "32px" + }) : React.createElement(Icon, { + className: COMPONENT_CLASS_NAME + "__left__cover-image--icon", + width: "32px", + height: "32px", + type: IconTypes.AVATAR_NO_IMAGE, + fillColor: IconColors.BACKGROUND_3 + }), React.createElement(Label, { + className: COMPONENT_CLASS_NAME + "__left__title", + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, title), React.createElement(Label, { + className: COMPONENT_CLASS_NAME + "__left__sub-title", + type: LabelTypography.BODY_2, + color: LabelColors.ONBACKGROUND_2 + }, subTitle)), React.createElement("div", { + className: COMPONENT_CLASS_NAME + "__right" + }, React.createElement(IconButton, { + className: COMPONENT_CLASS_NAME + "__right__trigger", + width: "32px", + height: "32px", + onClick: onActionClick + }, React.createElement(Icon, { + type: IconTypes.INFO, + fillColor: IconColors.PRIMARY, + width: "24px", + height: "24px" + })))); +} + +var copyToClipboard = function copyToClipboard(text) { + // @ts-ignore: Unreachable code error + if (window.clipboardData && window.clipboardData.setData) { + // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible. + // @ts-ignore: Unreachable code error + return window.clipboardData.setData('Text', text); + } + + if (document.queryCommandSupported && document.queryCommandSupported('copy')) { + var textarea = document.createElement('textarea'); + textarea.textContent = text; + textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. + + document.body.appendChild(textarea); + textarea.select(); + + try { + return document.execCommand('copy'); // Security exception may be thrown by some browsers. + } catch (ex) { + return false; + } finally { + document.body.removeChild(textarea); + } + } + + return false; +}; + +var OpenChannelMessageStatusTypes = { + NONE: 'none', + PENDING: 'pending', + FAILED: 'failed', + CANCELED: 'canceled', + SUCCEEDED: 'succeeded' +}; +var getSenderFromMessage = function getSenderFromMessage(message) { + return message.sender || message._sender; +}; +var checkIsSent = function checkIsSent(status) { + return status === OpenChannelMessageStatusTypes.SUCCEEDED; +}; +var checkIsByMe = function checkIsByMe(message, userId) { + return getSenderFromMessage(message).userId === userId; +}; +var isFineCopy = function isFineCopy(_a) { + var message = _a.message; + return message.messageType === 'user' && message.message.length > 0; +}; +var isFineResend = function isFineResend(_a) { + var message = _a.message, + status = _a.status, + userId = _a.userId; + return checkIsByMe(message, userId) && !checkIsSent(status) && message.isResendable && message.isResendable(); +}; +var isFineEdit = function isFineEdit(_a) { + var message = _a.message, + status = _a.status, + userId = _a.userId; + return checkIsByMe(message, userId) && checkIsSent(status); +}; +var isFineDelete = function isFineDelete(_a) { + var message = _a.message, + userId = _a.userId; + return checkIsByMe(message, userId); +}; +var showMenuTrigger = function showMenuTrigger(props) { + var message = props.message, + status = props.status, + userId = props.userId; + + if (message.messageType === 'user') { + return isFineDelete({ + message: message, + status: status, + userId: userId + }) || isFineEdit({ + message: message, + status: status, + userId: userId + }) || isFineCopy({ + message: message, + status: status, + userId: userId + }) || isFineResend({ + message: message, + status: status, + userId: userId + }); + } else { + return isFineDelete({ + message: message, + status: status, + userId: userId + }) || isFineResend({ + message: message, + status: status, + userId: userId + }); + } +}; + +function OpenchannelUserMessage(_a) { + var message = _a.message, + className = _a.className, + userId = _a.userId, + resendMessage = _a.resendMessage, + disabled = _a.disabled, + showEdit = _a.showEdit, + showRemove = _a.showRemove, + chainTop = _a.chainTop, + status = _a.status; + + if (!message || message.messageType !== 'user') { + return null; + } // hooks + + + var stringSet = useContext(LocalizationContext).stringSet; + + var _b = useContext(UserProfileContext), + disableUserProfile = _b.disableUserProfile, + renderUserProfile = _b.renderUserProfile; + + var messageRef = useRef(null); + var avatarRef = useRef(null); + var contextMenuRef = useRef(null); + + var _c = useState({}), + contextStyle = _c[0], + setContextStyle = _c[1]; // consts + + + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push("sendbird-openchannel-user-message"); + var isByMe = checkIsByMe(message, userId); + var sender = getSenderFromMessage(message); + var MemoizedMessageText = useMemo(function () { + return function () { + var splitMessage = message.message.split(/\r/); + var matchedMessage = splitMessage.map(function (word) { + return word !== '' ? word : React.createElement("br", null); + }); + + if (message.updatedAt > 0) { + matchedMessage.push(React.createElement(Label, { + key: uuidv4(), + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_2, + calssName: "sendbird-openchannel-user-message-word" + }, " " + stringSet.MESSAGE_EDITED + " ")); + } + + return matchedMessage; + }; + }, [message, message.updatedAt]); // place context menu top depending clientHeight of message component + + useEffect(function () { + if (messageRef.current.clientHeight > 36) { + setContextStyle({ + top: '8px ' + }); + } else { + setContextStyle({ + top: '2px' + }); + } + }, [window.innerWidth]); + return React.createElement("div", { + className: injectingClassName.join(' '), + ref: messageRef + }, React.createElement("div", { + className: "sendbird-openchannel-user-message__left" + }, !chainTop && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + className: "sendbird-openchannel-user-message__left__avatar", + src: sender.profileUrl || '', + ref: avatarRef, + width: "28px", + height: "28px", + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + } + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: avatarRef, + parentContainRef: avatarRef, + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: sender, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: sender, + onSuccess: closeDropdown, + disableMessaging: true + })); + } + })), React.createElement("div", { + className: "sendbird-openchannel-user-message__right" + }, !chainTop && React.createElement("div", { + className: "sendbird-openchannel-user-message__right__top" + }, React.createElement(Label, { + className: "sendbird-openchannel-user-message__right__top__sender-name", + type: LabelTypography.CAPTION_2, + color: isByMe ? LabelColors.SECONDARY_3 : LabelColors.ONBACKGROUND_2 + }, sender && (sender.friendName || sender.nickname || sender.userId)), React.createElement(Label, { + className: "sendbird-openchannel-user-message__right__top__sent-at", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_3 + }, message.createdAt && format(message.createdAt, 'p'))), React.createElement("div", { + className: "sendbird-openchannel-user-message__right__bottom" + }, React.createElement(Label, { + className: "sendbird-openchannel-user-message__right__bottom__message", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, MemoizedMessageText()))), React.createElement("div", { + className: "sendbird-openchannel-user-message__context-menu", + ref: contextMenuRef, + style: contextStyle + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return showMenuTrigger({ + message: message, + userId: userId, + status: status + }) && React.createElement(IconButton, { + className: "sendbird-openchannel-user-message__context-menu--icon", + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: contextMenuRef, + parentContainRef: contextMenuRef, + closeDropdown: closeDropdown, + openLeft: true + }, isFineCopy({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + className: "sendbird-openchannel-user-message__context-menu__copy", + onClick: function onClick() { + copyToClipboard(message.message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__COPY), isFineEdit({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + className: "sendbird-openchannel-user-message__context-menu__edit", + onClick: function onClick() { + if (disabled) { + return; + } + + showEdit(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__EDIT), isFineResend({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + className: "sendbird-openchannel-user-message__context-menu__resend", + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), isFineDelete({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + className: "sendbird-openchannel-user-message__context-menu__delete", + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }))); +} + +function OpenChannelAdminMessage(_a) { + var message = _a.message, + className = _a.className; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push('sendbird-openchannel-admin-message'); + return React.createElement("div", { + className: __spreadArrays(injectingClassName).join(' ') + }, React.createElement(Label, { + className: "sendbird-openchannel-admin-message__text", + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, message.message || '')); +} + +var URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; +var createUrlTester = function createUrlTester(regexp) { + return function (text) { + return regexp.test(text); + }; +}; +var checkOGIsEnalbed = function checkOGIsEnalbed(message) { + var ogMetaData = message.ogMetaData; + + if (!ogMetaData) { + return false; + } + + var url = ogMetaData.url; + + if (!url) { + return false; + } + + return true; +}; + +function OpenchannelOGMessage(_a) { + var message = _a.message, + className = _a.className, + disabled = _a.disabled, + showEdit = _a.showEdit, + showRemove = _a.showRemove, + resendMessage = _a.resendMessage, + chainTop = _a.chainTop, + status = _a.status, + userId = _a.userId; + + if (!message || message.messageType !== 'user') { + return null; + } + + var ogMetaData = message.ogMetaData; + var defaultImage = ogMetaData.defaultImage; + var stringSet = useContext(LocalizationContext).stringSet; + + var _b = useContext(UserProfileContext), + disableUserProfile = _b.disableUserProfile, + renderUserProfile = _b.renderUserProfile; + + var _c = useState({}), + contextStyle = _c[0], + setContextStyle = _c[1]; + + var messageComponentRef = useRef(null); + var contextMenuRef = useRef(null); + var avatarRef = useRef(null); + var isUrl = createUrlTester(URL_REG); + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push('sendbird-openchannel-og-message'); + var isByMe = checkIsByMe(message, userId); + var sender = getSenderFromMessage(message); + var MemoizedMessageText = useMemo(function () { + return function () { + var wordClassName = 'sendbird-openchannel-og-message--word'; + var splitMessage = message.message.split(' '); + var matchedMessage = splitMessage.map(function (word) { + return isUrl(word) ? React.createElement(LinkLabel, { + key: uuidv4(), + className: [wordClassName, 'sendbird-openchannel-og-message--word--link'], + src: word, + type: LabelTypography.BODY_1, + color: LabelColors.PRIMARY + }, word) : React.createElement(Label, { + key: uuidv4(), + className: wordClassName, + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, word); + }); + + if (message.updatedAt > 0) { + matchedMessage.push(React.createElement(Label, { + key: uuidv4(), + className: wordClassName, + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_2 + }, stringSet.MESSAGE_EDITED)); + } + + return matchedMessage; + }; + }, [message, message.updatedAt]); + + var openLink = function openLink() { + if (checkOGIsEnalbed(message)) { + var url = ogMetaData.url; + window.open(url); + } + }; // place conxt menu top depending clientHeight of message component + + + useEffect(function () { + if (messageComponentRef.current.clientHeight > 36) { + setContextStyle({ + top: '8px ' + }); + } else { + setContextStyle({ + top: '2px' + }); + } + }, [window.innerWidth]); + return React.createElement("div", { + className: injectingClassName.join(' '), + ref: messageComponentRef + }, React.createElement("div", { + className: "sendbird-openchannel-og-message__top" + }, React.createElement("div", { + className: "sendbird-openchannel-og-message__top__left" + }, !chainTop && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + className: "sendbird-openchannel-og-message__top__left__avatar", + src: sender.profileUrl || '', + ref: avatarRef, + width: "28px", + height: "28px", + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + } + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: avatarRef, + parentContainRef: avatarRef, + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: sender, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: sender, + onSuccess: closeDropdown, + disableMessaging: true + })); + } + })), React.createElement("div", { + className: "sendbird-openchannel-og-message__top__right" + }, !chainTop && React.createElement("div", { + className: "sendbird-openchannel-og-message__top__right__title" + }, React.createElement(Label, { + className: "sendbird-openchannel-og-message__top__right__title__sender-name", + type: LabelTypography.CAPTION_2, + color: isByMe ? LabelColors.SECONDARY_3 : LabelColors.ONBACKGROUND_2 + }, sender && (sender.friendName || sender.nickname || sender.userId)), React.createElement(Label, { + className: "sendbird-openchannel-og-message__top__right__title__sent-at", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_3 + }, message.createdAt && format(message.createdAt, 'p'))), React.createElement("div", { + className: "sendbird-openchannel-og-message__top__right__description" + }, React.createElement(Label, { + className: "sendbird-openchannel-og-message__top__right__description__message", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, MemoizedMessageText()))), React.createElement("div", { + className: "sendbird-openchannel-og-message__top__context-menu", + ref: contextMenuRef, + style: contextStyle + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return showMenuTrigger({ + message: message, + userId: userId, + status: status + }) && React.createElement(IconButton, { + className: "sendbird-openchannel-og-message__top__context-menu--icon", + width: "32px", + height: "32px", + onClick: function onClick() { + toggleDropdown(); + } + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: contextMenuRef, + parentContainRef: contextMenuRef, + closeDropdown: closeDropdown, + openLeft: true + }, isFineCopy({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + className: "sendbird-openchannel-og-message__top__context-menu__copy", + onClick: function onClick() { + copyToClipboard(message.message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__COPY), isFineEdit({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + className: "sendbird-openchannel-og-message__top__context-menu__edit", + onClick: function onClick() { + if (disabled) { + return; + } + + showEdit(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__EDIT), isFineResend({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + className: "sendbird-openchannel-og-message__top__context-menu__resend", + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), isFineDelete({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + className: "sendbird-openchannel-og-message__top__context-menu__delete", + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }))), React.createElement("div", { + className: "sendbird-openchannel-og-message__bottom" + }, React.createElement("div", { + className: "sendbird-openchannel-og-message__bottom__og-tag" + }, ogMetaData.url && React.createElement(Label, { + className: "sendbird-openchannel-og-message__bottom__og-tag__url", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, ogMetaData.url), ogMetaData.title && React.createElement(LinkLabel, { + className: "sendbird-openchannel-og-message__bottom__og-tag__title", + type: LabelTypography.SUBTITLE_2, + color: LabelColors.PRIMARY, + src: ogMetaData.url + }, ogMetaData.title), ogMetaData.description && React.createElement(Label, { + className: "sendbird-openchannel-og-message__bottom__og-tag__description", + type: LabelTypography.BODY_2, + color: LabelColors.ONBACKGROUND_1 + }, ogMetaData.description), ogMetaData.url && React.createElement("div", { + className: "sendbird-openchannel-og-message__bottom__og-tag__thumbnail", + onClick: openLink, + onKeyDown: openLink, + role: "button", + tabIndex: 0 + }, defaultImage && React.createElement(ImageRenderer, { + url: defaultImage.url || '', + alt: defaultImage.alt || '', + className: "sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image", + height: "189px", + defaultComponent: React.createElement("div", { + className: "sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image--placeholder" + }, React.createElement(Icon, { + width: "56px", + height: "56px", + type: IconTypes.NO_THUMBNAIL + })) + }))))); +} + +var SUPPORTING_TYPES = { + IMAGE: 'IMAGE', + VIDEO: 'VIDEO', + UNSUPPORTED: 'UNSUPPORTED' +}; +var SUPPORTED_MIMES = { + IMAGE: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp'], + VIDEO: ['video/mpeg', 'video/ogg', 'video/webm', 'video/mp4'] +}; +var getSupportingFileType = function getSupportingFileType(type) { + if (SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0) { + return SUPPORTING_TYPES.IMAGE; + } + + if (SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0) { + return SUPPORTING_TYPES.VIDEO; + } + + return SUPPORTING_TYPES.UNSUPPORTED; +}; + +function OpenchannelThumbnailMessage(_a) { + var _b; + + var message = _a.message, + className = _a.className, + disabled = _a.disabled, + userId = _a.userId, + status = _a.status, + chainTop = _a.chainTop, + _onClick = _a.onClick, + showRemove = _a.showRemove, + resendMessage = _a.resendMessage; + var type = message.type, + url = message.url, + localUrl = message.localUrl; + var stringSet = useContext(LocalizationContext).stringSet; + + var _c = useContext(UserProfileContext), + disableUserProfile = _c.disableUserProfile, + renderUserProfile = _c.renderUserProfile; + + var contextMenuRef = useRef(null); + var avatarRef = useRef(null); + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push('sendbird-openchannel-thumbnail-message'); + var isByMe = checkIsByMe(message, userId); + var isMessageSent = checkIsSent(status); + var sender = getSenderFromMessage(message); + return React.createElement("div", { + className: injectingClassName.join(' ') + }, React.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__left" + }, !chainTop && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + className: "sendbird-openchannel-thumbnail-message__left__avatar", + src: sender.profileUrl || '', + ref: avatarRef, + width: "28px", + height: "28px", + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + } + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: avatarRef, + parentContainRef: avatarRef, + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: sender, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: sender, + onSuccess: closeDropdown, + disableMessaging: true + })); + } + })), React.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right" + }, !chainTop && React.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__title" + }, React.createElement(Label, { + className: "sendbird-openchannel-thumbnail-message__right__title__sender-name", + type: LabelTypography.CAPTION_2, + color: isByMe ? LabelColors.SECONDARY_3 : LabelColors.ONBACKGROUND_2 + }, sender && (sender.friendName || sender.nickname || sender.userId)), React.createElement(Label, { + className: "sendbird-openchannel-thumbnail-message__right__title__sent-at", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_3 + }, message.createdAt && format(message.createdAt, 'p'))), React.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__body" + }, React.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap", + onClick: function onClick() { + if (isMessageSent) { + _onClick(true); + } + }, + onKeyDown: function onKeyDown() { + if (isMessageSent) { + _onClick(true); + } + }, + tabIndex: 0, + role: "button" + }, React.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__overlay" + }), (_b = {}, _b[SUPPORTING_TYPES.VIDEO] = url || localUrl ? React.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__video" + }, React.createElement("video", { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__video__video" + }, React.createElement("source", { + src: url || localUrl, + type: type + })), React.createElement(Icon, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__video__icon", + width: "56px", + height: "56px", + type: IconTypes.PLAY + })) : React.createElement(Icon, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon", + width: "56px", + height: "56px", + type: IconTypes.PHOTO, + fillColor: IconColors.ON_BACKGROUND_2 + }), _b[SUPPORTING_TYPES.IMAGE] = url || localUrl ? React.createElement(ImageRenderer, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__image", + height: "270px", + url: url || localUrl, + alt: "image" + }) : React.createElement(Icon, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon", + width: "56px", + height: "56px", + type: IconTypes.PHOTO, + fillColor: IconColors.ON_BACKGROUND_2 + }), _b[SUPPORTING_TYPES.UNSUPPORTED] = React.createElement(Icon, { + className: "sendbird-openchannel-thumbnail-message__right__body__wrap__unknown", + width: "56px", + height: "56px", + type: IconTypes.PHOTO, + fillColor: IconColors.ON_BACKGROUND_2 + }), _b)[getSupportingFileType(type)]))), React.createElement("div", { + className: "sendbird-openchannel-thumbnail-message__context-menu", + ref: contextMenuRef + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return showMenuTrigger({ + message: message, + userId: userId, + status: status + }) && React.createElement(IconButton, { + className: "sendbird-openchannel-thumbnail-message__context-menu--icon", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.MORE, + fillColor: IconColors.CONTENT_INVERSE + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: contextMenuRef, + parentContainRef: contextMenuRef, + closeDropdown: closeDropdown, + openLeft: true + }, isFineResend({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + onClick: function onClick() { + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), isFineDelete({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }))); +} + +var checkFileType = function checkFileType(fileUrl) { + var result = null; + var imageFile = /(\.gif|\.jpg|\.jpeg|\.txt|\.pdf)$/i; + var audioFile = /(\.mp3)$/i; + + if (imageFile.test(fileUrl)) { + result = IconTypes.FILE_DOCUMENT; + } else if (audioFile.test(fileUrl)) { + result = IconTypes.FILE_AUDIO; + } + + return result; +}; +var truncate = function truncate(fullStr, strLen) { + if (fullStr === null || fullStr === undefined) return ''; + if (fullStr.length <= strLen) return fullStr; + var separator = '...'; + var sepLen = separator.length; + var charsToShow = strLen - sepLen; + var frontChars = Math.ceil(charsToShow / 2); + var backChars = Math.floor(charsToShow / 2); + return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars); +}; + +function OpenchannelFileMessage(_a) { + var message = _a.message, + className = _a.className, + userId = _a.userId, + disabled = _a.disabled, + chainTop = _a.chainTop, + status = _a.status, + showRemove = _a.showRemove, + resendMessage = _a.resendMessage; + var contextMenuRef = useRef(null); + var avatarRef = useRef(null); + var stringSet = useContext(LocalizationContext).stringSet; + + var _b = useContext(UserProfileContext), + disableUserProfile = _b.disableUserProfile, + renderUserProfile = _b.renderUserProfile; + + var openFileUrl = function openFileUrl() { + window.open(message.url); + }; + + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.push('sendbird-openchannel-file-message'); + var isByMe = checkIsByMe(message, userId); + var sender = getSenderFromMessage(message); + return React.createElement("div", { + className: injectingClassName.join(' ') + }, React.createElement("div", { + className: "sendbird-openchannel-file-message__left" + }, !chainTop && React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + className: "sendbird-openchannel-file-message__left__avatar", + src: sender.profileUrl || '', + ref: avatarRef, + width: "28px", + height: "28px", + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + } + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: avatarRef, + parentContainRef: avatarRef, + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: sender, + close: closeDropdown + }) : React.createElement(UserProfile, { + user: sender, + onSuccess: closeDropdown, + disableMessaging: true + })); + } + })), React.createElement("div", { + className: "sendbird-openchannel-file-message__right" + }, !chainTop && React.createElement("div", { + className: "sendbird-openchannel-file-message__right__title" + }, React.createElement(Label, { + className: "sendbird-openchannel-file-message__right__title__sender-name", + type: LabelTypography.CAPTION_2, + color: isByMe ? LabelColors.SECONDARY_3 : LabelColors.ONBACKGROUND_2 + }, sender && (sender.friendName || sender.nickname || sender.userId)), React.createElement(Label, { + className: "sendbird-openchannel-file-message__right__title__sent-at", + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_3 + }, message.createdAt && format(message.createdAt, 'p'))), React.createElement("div", { + className: "sendbird-openchannel-file-message__right__body" + }, checkFileType(message.url) && React.createElement(Icon, { + className: "sendbird-openchannel-file-message__right__body__icon", + width: "48px", + height: "48px", + type: checkFileType(message.url), + color: IconColors.PRIMARY + }), React.createElement(TextButton, { + className: "sendbird-openchannel-file-message__right__body__file-name", + onClick: openFileUrl + }, React.createElement(Label, { + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, truncate(message.url, 40))))), React.createElement("div", { + className: "sendbird-openchannel-file-message__context-menu", + ref: contextMenuRef + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return showMenuTrigger({ + message: message, + userId: userId, + status: status + }) && React.createElement(IconButton, { + className: "sendbird-openchannel-file-message__context-menu__icon", + width: "32px", + height: "32px", + onClick: toggleDropdown + }, React.createElement(Icon, { + type: IconTypes.MORE, + width: "24px", + height: "24px" + })); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + parentRef: contextMenuRef, + parentContainRef: contextMenuRef, + closeDropdown: closeDropdown, + openLeft: true + }, isFineResend({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + resendMessage(message); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__RESEND), isFineDelete({ + message: message, + userId: userId, + status: status + }) && React.createElement(MenuItem, { + onClick: function onClick() { + if (disabled) { + return; + } + + showRemove(true); + closeDropdown(); + } + }, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)); + } + }))); +} + +function RemoveMessageModal(_a) { + var onCloseModal = _a.onCloseModal, + onDeleteMessage = _a.onDeleteMessage; + var stringSet = useContext(LocalizationContext).stringSet; + return React.createElement(Modal, { + onCancel: onCloseModal, + onSubmit: onDeleteMessage, + submitText: "Delete", + titleText: stringSet.MODAL__DELETE_MESSAGE__TITLE + }); +} + +var MessageTypes = { + ADMIN: 'ADMIN', + USER: 'USER', + FILE: 'FILE', + THUMBNAIL: 'THUMBNAIL', + OG: 'OG', + UNKNOWN: 'UNKNOWN' +}; +var SendingMessageStatus = { + NONE: 'none', + SUCCEEDED: 'succeeded', + FAILED: 'failed', + PENDING: 'pending' +}; +var getMessageType = function getMessageType(message) { + if (message.isUserMessage && message.isUserMessage() || message.messageType === 'user') { + return message.ogMetaData ? MessageTypes.OG : MessageTypes.USER; + } + + if (message.isAdminMessage && message.isAdminMessage()) { + return MessageTypes.ADMIN; + } + + if (message.messageType === 'file') { + return isImage(message.type) || isVideo(message.type) ? MessageTypes.THUMBNAIL : MessageTypes.FILE; + } + + return MessageTypes.UNKNOWN; +}; + +function MessageHoc(_a) { + var _b; + + var message = _a.message, + userId = _a.userId, + disabled = _a.disabled, + editDisabled = _a.editDisabled, + hasSeperator = _a.hasSeperator, + deleteMessage = _a.deleteMessage, + updateMessage = _a.updateMessage, + resendMessage = _a.resendMessage, + status = _a.status, + chainTop = _a.chainTop, + chainBottom = _a.chainBottom; + var sender = null; + + if (message.messageType !== 'admin') { + sender = message.sender; + } + + var _c = useState(false), + showEdit = _c[0], + setShowEdit = _c[1]; + + var _d = useState(false), + showRemove = _d[0], + setShowRemove = _d[1]; + + var _e = useState(false), + showFileViewer = _e[0], + setShowFileViewer = _e[1]; + + var editMessageInputRef = useRef(null); + var isByMe = false; + + if (sender && message.messageType !== 'admin') { + // pending and failed messages are by me + isByMe = userId === sender.userId || message.requestState === SendingMessageStatus.PENDING || message.requestState === SendingMessageStatus.FAILED; + } + + if (message.messageType === 'user' && showEdit) { + return React.createElement(MessageInput, { + isEdit: true, + disabled: editDisabled, + ref: editMessageInputRef, + name: message.messageId, + onSendMessage: updateMessage, + onCancelEdit: function onCancelEdit() { + setShowEdit(false); + }, + value: message.message + }); + } + + return React.createElement("div", { + className: "sendbird-msg-hoc sendbird-msg--scroll-ref" + }, hasSeperator && React.createElement(DateSeparator, null, React.createElement(Label, { + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, format(message.createdAt, 'MMMM dd, yyyy'))), (_b = {}, _b[MessageTypes.ADMIN] = function () { + if (message.messageType === 'admin') { + return React.createElement(OpenChannelAdminMessage, { + message: message + }); + } + }(), _b[MessageTypes.FILE] = function () { + if (message.messageType === 'file') { + return React.createElement(OpenchannelFileMessage, { + message: message, + disabled: disabled, + userId: userId, + showRemove: setShowRemove, + resendMessage: resendMessage, + status: status, + chainTop: chainTop, + chainBottom: chainBottom + }); + } + + return; + }(), _b[MessageTypes.OG] = function () { + if (message.messageType === 'user') { + return React.createElement(OpenchannelOGMessage, { + message: message, + status: status, + userId: userId, + showEdit: setShowEdit, + disabled: disabled, + showRemove: setShowRemove, + resendMessage: resendMessage, + chainTop: chainTop, + chainBottom: chainBottom + }); + } + + return; + }(), _b[MessageTypes.THUMBNAIL] = function () { + if (message.messageType === 'file') { + return React.createElement(OpenchannelThumbnailMessage, { + message: message, + disabled: disabled, + userId: userId, + showRemove: setShowRemove, + resendMessage: resendMessage, + onClick: setShowFileViewer, + status: status, + chainTop: chainTop, + chainBottom: chainBottom + }); + } + + return; + }(), _b[MessageTypes.USER] = function () { + if (message.messageType === 'user') { + return React.createElement(OpenchannelUserMessage, { + message: message, + userId: userId, + disabled: disabled, + showEdit: setShowEdit, + showRemove: setShowRemove, + resendMessage: resendMessage, + status: status, + chainTop: chainTop, + chainBottom: chainBottom + }); + } + + return; + }(), _b[MessageTypes.UNKNOWN] = function () { + return; // return ( + // + // ); + }(), _b)[getMessageType(message)], showRemove && React.createElement(RemoveMessageModal, { + onCloseModal: function onCloseModal() { + return setShowRemove(false); + }, + onDeleteMessage: function onDeleteMessage() { + if (message.messageType !== 'admin') { + deleteMessage(message); + } + } + }), showFileViewer && React.createElement(FileViewer, { + onClose: function onClose() { + return setShowFileViewer(false); + }, + message: message, + onDelete: deleteMessage, + isByMe: isByMe + })); +} + +function OpenchannelConversationScroll(_a) { + var _b = _a.useMessageGrouping, + useMessageGrouping = _b === void 0 ? true : _b, + openchannel = _a.openchannel, + user = _a.user, + allMessages = _a.allMessages, + _c = _a.isOnline, + isOnline = _c === void 0 ? true : _c, + hasMore = _a.hasMore, + onScroll = _a.onScroll, + scrollDownPromise = _a.scrollDownPromise, + showScrollDownButton = _a.showScrollDownButton, + updateMessage = _a.updateMessage, + deleteMessage = _a.deleteMessage, + resendMessage = _a.resendMessage; + var scrollRef = useRef(null); + + var handleOnScroll = function handleOnScroll(e) { + var element = e.target; + var scrollTop = element.scrollTop, + scrollHeight = element.scrollHeight, + clientHeight = element.clientHeight; + + if (showScrollDownButton) { + if (scrollHeight > scrollTop + clientHeight) { + showScrollDownButton(true); + } else { + showScrollDownButton(false); + } + } + + if (scrollTop === 0) { + if (!hasMore) { + return; + } + + var nodes_1 = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref'); + onScroll(function () { + var first = nodes_1[0]; + first.scrollIntoView(); + }); + } + }; + + useEffect(function () { + // This promise is created in everytime when user click the scroll to bottom button + // This scope waits when user click the button and scrolls to the bottom of conversation + if (scrollDownPromise && scrollRef && scrollRef.current) { + scrollDownPromise.then(function () { + scrollRef.current.scrollTo(0, scrollRef.current.scrollHeight); + + if (showScrollDownButton) { + showScrollDownButton(false); + } + }); + } + + return; + }, [scrollDownPromise]); + return React.createElement("div", { + className: "sendbird-openchannel-conversation-scroll", + onScroll: handleOnScroll, + ref: scrollRef + }, React.createElement("div", { + className: "sendbird-openchannel-conversation-scroll__container" + }, React.createElement("div", { + className: "sendbird-openchannel-conversation-scroll__container__padding" + }), React.createElement("div", { + className: "sendbird-openchannel-conversation-scroll__container__item-container" + }, allMessages.map(function (message, index) { + var status; + + if (message.messageType !== 'admin') { + status = message.sendingStatus; + } + + var previousMessage = allMessages[index - 1]; + var nextMessage = allMessages[index - 1]; + var previousMessageCreatedAt = previousMessage && previousMessage.createdAt; + var currentCreatedAt = message.createdAt; // https://stackoverflow.com/a/41855608 + + var hasSeperator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt)); + + var _a = useMessageGrouping ? compareMessagesForGrouping(previousMessage, message, nextMessage) : [false, false], + chainTop = _a[0], + chainBottom = _a[1]; + + return React.createElement(MessageHoc, { + key: message.messageId, + message: message, + status: status, + userId: user.userId, + disabled: !isOnline, + editDisabled: openchannel.isFrozen, + hasSeperator: hasSeperator, + chainTop: chainTop, + chainBottom: chainBottom, + deleteMessage: deleteMessage, + updateMessage: updateMessage, + resendMessage: resendMessage + }); + })))); +} + +var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL'; +var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID'; +var RESET_MESSAGES = 'RESET_MESSAGES'; +var GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS'; +var GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL'; +var SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED'; +var SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED'; +var SENDING_MESSAGE_START = 'SENDING_MESSAGE_START'; +var RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START'; // event handlers + +var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED'; +var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED'; +var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED'; +var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID'; +var ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED'; +var ON_USER_ENTERED = 'ON_USER_ENTERED'; +var ON_USER_EXITED = 'ON_USER_EXITED'; +var ON_USER_MUTED = 'ON_USER_MUTED'; +var ON_USER_UNMUTED = 'ON_USER_UNMUTED'; +var ON_USER_BANNED = 'ON_USER_BANNED'; +var ON_USER_UNBANNED = 'ON_USER_UNBANNED'; +var ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN'; +var ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN'; +var ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED'; +var ON_META_DATA_CREATED = 'ON_META_DATA_CREATED'; +var ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED'; +var ON_META_DATA_DELETED = 'ON_META_DATA_DELETED'; +var ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED'; +var ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED'; +var ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED'; +var ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED'; + +function reducer(state, action) { + switch (action.type) { + case RESET_MESSAGES: + { + return __assign(__assign({}, state), { + allMessages: [] + }); + } + + case SET_CURRENT_CHANNEL: + { + var currentChannel = action.payload; + var operators = currentChannel.operators; + + if (!state.isInvalid && state.currentOpenChannel && state.currentOpenChannel.url && state.currentOpenChannel.url === currentChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + currentOpenChannel: currentChannel, + isInvalid: false, + operators: operators, + participants: operators + }); + } + + case SET_CHANNEL_INVALID: + { + return __assign(__assign({}, state), { + isInvalid: true + }); + } + + case GET_PREV_MESSAGES_SUCESS: + case GET_PREV_MESSAGES_FAIL: + { + var isFailed = action.type === GET_PREV_MESSAGES_FAIL; + var _a = action.payload, + _b = _a.currentOpenChannel, + currentOpenChannel = _b === void 0 ? {} : _b, + _c = _a.messages, + messages = _c === void 0 ? [] : _c, + hasMore = _a.hasMore, + lastMessageTimestamp = _a.lastMessageTimestamp; + var actionChannelUrl = currentOpenChannel.url; + var receivedMessages_1 = isFailed ? [] : messages; + + var _hasMore = isFailed ? false : hasMore; + + var _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp; + + var stateChannel = state.currentOpenChannel; + var stateChannelUrl = stateChannel.url; + + if (actionChannelUrl !== stateChannelUrl) { + return state; + } + + var filteredAllMessages = state.allMessages.filter(function (message) { + return !receivedMessages_1.find(function (_a) { + var messageId = _a.messageId; + return compareIds(messageId, message.messageId); + }); + }); + return __assign(__assign({}, state), { + loading: false, + initialized: true, + hasMore: _hasMore, + lastMessageTimestamp: _lastMessageTimestamp, + allMessages: __spreadArrays(receivedMessages_1, filteredAllMessages) + }); + } + + case SENDING_MESSAGE_START: + { + var _d = action.payload, + message = _d.message, + channel = _d.channel; + + if (channel.url !== state.currentOpenChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + allMessages: __spreadArrays(state.allMessages, [__assign({}, message)]) + }); + } + + case SENDING_MESSAGE_SUCCEEDED: + { + var sentMessage_1 = action.payload; + var newMessages = state.allMessages.map(function (m) { + return compareIds(m.reqId, sentMessage_1.reqId) ? sentMessage_1 : m; + }); + return __assign(__assign({}, state), { + allMessages: newMessages + }); + } + + case SENDING_MESSAGE_FAILED: + { + var sentMessage_2 = action.payload; + return __assign(__assign({}, state), { + allMessages: state.allMessages.map(function (m) { + return compareIds(m.reqId, sentMessage_2.reqId) ? sentMessage_2 : m; + }) + }); + } + + case RESENDING_MESSAGE_START: + { + var eventedChannel = action.payload.channel; + var resentMessage_1 = action.payload.message; + + if (eventedChannel.url !== state.currentOpenChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + allMessages: state.allMessages.map(function (m) { + return compareIds(m.reqId, resentMessage_1.reqId) ? resentMessage_1 : m; + }) + }); + } + + case ON_MESSAGE_RECEIVED: + { + var eventedChannel = action.payload.channel; + var receivedMessage = action.payload.message; + var currentOpenChannel = state.currentOpenChannel; + + if (!compareIds(eventedChannel.url, currentOpenChannel.url) || !(state.allMessages.map(function (message) { + return message.messageId; + }).indexOf(receivedMessage.messageId) < 0)) { + return state; + } + + return __assign(__assign({}, state), { + allMessages: __spreadArrays(state.allMessages, [receivedMessage]) + }); + } + + case ON_MESSAGE_UPDATED: + { + var eventedChannel = action.payload.channel; + var updatedMessage_1 = action.payload.message; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + allMessages: state.allMessages.map(function (message) { + return message.isIdentical(updatedMessage_1) ? updatedMessage_1 : message; + }) + }); + } + + case ON_MESSAGE_DELETED: + { + var eventedChannel = action.payload.channel; + var deletedMessageId_1 = action.payload.messageId; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + allMessages: state.allMessages.filter(function (message) { + return !compareIds(message.messageId, deletedMessageId_1); + }) + }); + } + + case ON_MESSAGE_DELETED_BY_REQ_ID: + { + return __assign(__assign({}, state), { + allMessages: state.allMessages.filter(function (m) { + return !compareIds(m.reqId, action.payload); + }) + }); + } + + case ON_OPERATOR_UPDATED: + { + var eventedChannel = action.payload.channel; + var updatedOperators = action.payload.operators; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + currentOpenChannel: __assign(__assign({}, state.currentOpenChannel), { + operators: updatedOperators + }), + operators: updatedOperators + }); + } + + case ON_USER_ENTERED: + { + var eventedChannel = action.payload.channel; + var enteredUser = action.payload.user; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + participants: __spreadArrays(state.participants, [enteredUser]) + }); + } + + case ON_USER_EXITED: + { + var eventedChannel = action.payload.channel; + var exitedUser_1 = action.payload.user; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== eventedChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + participants: state.participants.filter(function (participant) { + return !compareIds(participant.userId, exitedUser_1.userId); + }) + }); + } + + case ON_USER_MUTED: + { + // const eventedChannel = action.payload.channel; + // const mutedUser = action.payload.user; + // return { + // ...state + // }; + return state; + } + + case ON_USER_UNMUTED: + { + // const eventedChannel = action.payload.channel; + // const unmutedUser = action.payload.user; + // return { + // ...state + // }; + return state; + } + + case ON_USER_BANNED: + { + // const eventedChannel = action.payload.channel; + // const bannedUser = action.payload.user; + // return { + // ...state + // }; + return state; + } + + case ON_USER_UNBANNED: + { + // const eventedChannel = action.payload.channel; + // const unbannedUser = action.payload.user; + // return { + // ...state + // }; + return state; + } + + case ON_CHANNEL_FROZEN: + { + var frozenChannel = action.payload; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== frozenChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + frozen: true + }); + } + + case ON_CHANNEL_UNFROZEN: + { + var unfrozenChannel = action.payload; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== unfrozenChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + frozen: false + }); + } + + case ON_CHANNEL_CHANGED: + { + var changedChannel = action.payload; + var currentChannel = state.currentOpenChannel; + + if (!currentChannel || currentChannel.url && currentChannel.url !== changedChannel.url) { + return state; + } + + return __assign(__assign({}, state), { + currentOpenChannel: changedChannel + }); + } + + case ON_META_DATA_CREATED: + { + // const eventedChannel = action.payload.channel; + // const createdMetaData = action.payload.metaData; + // return { + // ...state + // }; + return state; + } + + case ON_META_DATA_UPDATED: + { + // const eventedChannel = action.payload.channel; + // const updatedMetaData = action.payload.metaData; + // return { + // ...state + // }; + return state; + } + + case ON_META_DATA_DELETED: + { + // const eventedChannel = action.payload.channel; + // const deletedMetaDataKeys = action.payload.metaDataKeys; + // return { + // ...state + // }; + return state; + } + + case ON_META_COUNTERS_CREATED: + { + // const eventedChannel = action.payload.channel; + // const createdMetaCounter = action.payload.metaCounter; + // return { + // ...state + // }; + return state; + } + + case ON_META_COUNTERS_UPDATED: + { + // const eventedChannel = action.payload.channel; + // const updatedMetaCounter = action.payload.metaCounter; + // return { + // ...state + // }; + return state; + } + + case ON_META_COUNTERS_DELETED: + { + // const eventedChannel = action.payload.channel; + // const deletedMetaCounterKeys = action.payload.metaCounterKeys; + // return { + // ...state + // }; + return state; + } + + case ON_MENTION_RECEIVED: + { + // const eventedChannel = action.payload.channel; + // const mentionedMessage = action.payload.message; + // return { + // ...state + // }; + return state; + } + + default: + return state; + } +} + +var initialState = { + allMessages: [], + loading: false, + initialized: false, + currentOpenChannel: null, + isInvalid: false, + hasMore: false, + lastMessageTimestamp: 0, + frozen: false, + operators: [], + participants: [] +}; + +var COMPONENT_CLASS_NAME$1 = 'sendbird-openchannel-conversation'; +var OpenchannelConversation = function OpenchannelConversation(props) { + // props + var useMessageGrouping = props.useMessageGrouping, + channelUrl = props.channelUrl, + stores = props.stores, + config = props.config, + _a = props.queries, + queries = _a === void 0 ? {} : _a, + disableUserProfile = props.disableUserProfile, + renderUserProfile = props.renderUserProfile, + renderChannelTitle = props.renderChannelTitle, + renderMessageInput = props.renderMessageInput, + onBeforeSendUserMessage = props.onBeforeSendUserMessage, + onBeforeSendFileMessage = props.onBeforeSendFileMessage, + onChatHeaderActionClick = props.onChatHeaderActionClick; + var sdkStore = stores.sdkStore, + userStore = stores.userStore; + var userId = config.userId, + isOnline = config.isOnline, + logger = config.logger; + var sdk = sdkStore.sdk; + var user = userStore.user; // hook variables + + var _b = useReducer(reducer, initialState), + messagesStore = _b[0], + messagesDispatcher = _b[1]; + + var allMessages = messagesStore.allMessages, + loading = messagesStore.loading, + initialized = messagesStore.initialized, + currentOpenChannel = messagesStore.currentOpenChannel, + isInvalid = messagesStore.isInvalid, + hasMore = messagesStore.hasMore, + lastMessageTimestamp = messagesStore.lastMessageTimestamp; // ref + + var messageInputRef = useRef(null); // useSendMessageCallback + + var stringSet = useContext(LocalizationContext).stringSet; + + var _c = useState(null), + scrollDownPromise = _c[0], + setScrollDownPromise = _c[1]; + + var _d = useState(false), + showScrollDownButton = _d[0], + setShowScrollDownButton = _d[1]; // const + + + var sdkInit = sdkStore.initialized; + var userFilledMessageListParams = queries ? queries.messageListParams : null; + var disabled = !initialized || !isOnline || isDisabledBecauseFrozen(currentOpenChannel, userId); // || utils.isDisabledBecauseMuted(mutedParticipantIds, userId) + + var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; + var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; // useSetChannel + + useEffect(function () { + if (channelUrl && sdkInit && sdk && sdk.OpenChannel) { + logger.info('OpenChannel | useSetChannel fetching channel', channelUrl); + sdk.OpenChannel.getChannel(channelUrl, function (openChannel, error) { + if (!error) { + logger.info('OpenChannel | useSetChannel fetched channel', openChannel); + messagesDispatcher({ + type: SET_CURRENT_CHANNEL, + payload: openChannel + }); + openChannel.enter(function (error) { + if (error) { + logger.warning('OpenChannel | useSetChannel enter channel failed', { + channelUrl: channelUrl, + error: error + }); + messagesDispatcher({ + type: SET_CHANNEL_INVALID + }); + } + }); + } else { + logger.warning('OpenChannel | useSetChannel fetch channel failed', { + channelUrl: channelUrl, + error: error + }); + messagesDispatcher({ + type: SET_CHANNEL_INVALID + }); + } + }); // .then((openChannel) => { + // logger.info('OpenChannel | useSetChannel fetched channel', openChannel); + // messagesDispatcher({ + // type: messageActionTypes.SET_CURRENT_CHANNEL, + // payload: openChannel, + // }); + // }) + // .catch((error) => { + // logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error }); + // messagesDispatcher({ + // type: messageActionTypes.SET_CHANNEL_INVALID, + // }); + // }); + } + }, [channelUrl, sdkInit]); // useHandleChannelEvents + + useEffect(function () { + var messageReceiverId = uuidv4(); + + if (currentOpenChannel && currentOpenChannel.url && sdk && sdk.ChannelHandler) { + var ChannelHandler = new sdk.ChannelHandler(); + logger.info('OpenChannel | useHandleChannelEvents: Setup event handler', messageReceiverId); + + ChannelHandler.onMessageReceived = function (channel, message) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { + channelUrl: channelUrl, + message: message + }); + messagesDispatcher({ + type: ON_MESSAGE_RECEIVED, + payload: { + channel: channel, + message: message + } + }); + }; + + ChannelHandler.onMessageUpdated = function (channel, message) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { + channelUrl: channelUrl, + message: message + }); + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: channel, + message: message + } + }); + }; + + ChannelHandler.onMessageDeleted = function (channel, messageId) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { + channelUrl: channelUrl, + messageId: messageId + }); + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: { + channel: channel, + messageId: messageId + } + }); + }; + + ChannelHandler.onOperatorUpdated = function (channel, operators) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { + channelUrl: channelUrl, + operators: operators + }); + messagesDispatcher({ + type: ON_OPERATOR_UPDATED, + payload: { + channel: channel, + operators: operators + } + }); + }; + + ChannelHandler.onUserEntered = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_ENTERED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserExited = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_EXITED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserMuted = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_MUTED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserUnmuted = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_UNMUTED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserBanned = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_BANNED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onUserUnbanned = function (channel, user) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { + channelUrl: channelUrl, + user: user + }); + messagesDispatcher({ + type: ON_USER_UNBANNED, + payload: { + channel: channel, + user: user + } + }); + }; + + ChannelHandler.onChannelFrozen = function (channel) { + logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel); + messagesDispatcher({ + type: ON_CHANNEL_FROZEN, + payload: channel + }); + }; + + ChannelHandler.onChannelUnfrozen = function (channel) { + logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel); + messagesDispatcher({ + type: ON_CHANNEL_UNFROZEN, + payload: channel + }); + }; + + ChannelHandler.onChannelChanged = function (channel) { + logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel); + messagesDispatcher({ + type: ON_CHANNEL_CHANGED, + payload: channel + }); + }; + + ChannelHandler.onMetaDataCreated = function (channel, metaData) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { + channelUrl: channelUrl, + metaData: metaData + }); + messagesDispatcher({ + type: ON_META_DATA_CREATED, + payload: { + channel: channel, + metaData: metaData + } + }); + }; + + ChannelHandler.onMetaDataUpdated = function (channel, metaData) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { + channelUrl: channelUrl, + metaData: metaData + }); + messagesDispatcher({ + type: ON_META_DATA_UPDATED, + payload: { + channel: channel, + metaData: metaData + } + }); + }; + + ChannelHandler.onMetaDataDeleted = function (channel, metaDataKeys) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { + channelUrl: channelUrl, + metaDataKeys: metaDataKeys + }); + messagesDispatcher({ + type: ON_META_DATA_DELETED, + payload: { + channel: channel, + metaDataKeys: metaDataKeys + } + }); + }; + + ChannelHandler.onMetaCountersCreated = function (channel, metaCounter) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { + channelUrl: channelUrl, + metaCounter: metaCounter + }); + messagesDispatcher({ + type: ON_META_COUNTERS_CREATED, + payload: { + channel: channel, + metaCounter: metaCounter + } + }); + }; + + ChannelHandler.onMetaCountersUpdated = function (channel, metaCounter) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { + channelUrl: channelUrl, + metaCounter: metaCounter + }); + messagesDispatcher({ + type: ON_META_COUNTERS_UPDATED, + payload: { + channel: channel, + metaCounter: metaCounter + } + }); + }; + + ChannelHandler.onMetaCountersDeleted = function (channel, metaCounterKeys) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { + channelUrl: channelUrl, + metaCounterKeys: metaCounterKeys + }); + messagesDispatcher({ + type: ON_META_COUNTERS_DELETED, + payload: { + channel: channel, + metaCounterKeys: metaCounterKeys + } + }); + }; + + ChannelHandler.onMentionReceived = function (channel, message) { + var channelUrl = channel.url; + logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { + channelUrl: channelUrl, + message: message + }); + messagesDispatcher({ + type: ON_MENTION_RECEIVED, + payload: { + channel: channel, + message: message + } + }); + }; + + sdk.addChannelHandler(messageReceiverId, ChannelHandler); + } + + return function () { + if (sdk && sdk.removeChannelHandler) { + logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId); + sdk.removeChannelHandler(messageReceiverId); + } + }; + }, [currentOpenChannel]); // useInitialMessagesFetch + + useEffect(function () { + logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel); + messagesDispatcher({ + type: RESET_MESSAGES + }); + + if (sdk && sdk.MessageListParams && currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) { + var messageListParams_1 = new sdk.MessageListParams(); + messageListParams_1.prevResultSize = 30; + messageListParams_1.isInclusive = true; + messageListParams_1.includeReplies = false; + messageListParams_1.includeReactions = false; + + if (userFilledMessageListParams) { + Object.keys(userFilledMessageListParams).forEach(function (key) { + messageListParams_1[key] = userFilledMessageListParams[key]; + }); + logger.info('OpenChannel | Used customizedMessageListParams'); + } + + logger.info('OpenChannel | Fetching messages', { + currentOpenChannel: currentOpenChannel, + messageListParams: messageListParams_1 + }); + currentOpenChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams_1, function (messages, error) { + if (!error) { + logger.info('OpenChannel | Fetching messages succeeded', messages); + var hasMore_1 = messages && messages.length > 0; + var lastMessageTimestamp_1 = hasMore_1 ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + currentOpenChannel: currentOpenChannel, + messages: messages, + hasMore: hasMore_1, + lastMessageTimestamp: lastMessageTimestamp_1 + } + }); + setTimeout(function () { + scrollIntoLast('.sendbird-msg--scroll-ref'); + }); + } else { + logger.error('OpenChannel | Fetching messages failed', error); + messagesDispatcher({ + type: GET_PREV_MESSAGES_FAIL, + payload: { + currentOpenChannel: currentOpenChannel, + messages: [], + hasMore: false, + lastMessageTimestamp: 0 + } + }); + } + }); // todo: use promise after CoreSDK adds required TS methods + // .then((messages) => { + // console.log('get messages via getMessagesByTimestamp', messages); + // const hasMore = (messages && messages.length > 0); + // const lastMessageTimestamp = hasMore + // ? messages[0].createdAt + // : null; + // messagesDispatcher({ + // type: messageActionTypes.GET_PREV_MESSAGES_SUCESS, + // payload: { + // currentOpenChannel, + // messages, + // hasMore, + // lastMessageTimestamp, + // }, + // }); + // }) + // .catch((error: Error): void => { + // logger.error('OpenChannel | Fetching messages failed', error); + // messagesDispatcher({ + // type: messageActionTypes.GET_PREV_MESSAGES_FAIL, + // payload: { + // currentOpenChannel, + // messages: [], + // hasMore: false, + // lastMessageTimestamp: 0, + // } + // }); + // }); + } + }, [currentOpenChannel]); // useScrollCallback + + var onScroll = useCallback(function (callback) { + if (!hasMore) { + return; + } + + var messageListParams = new sdk.MessageListParams(); + messageListParams.prevResultSize = 30; + messageListParams.includeReplies = false; + messageListParams.includeReactions = false; + + if (userFilledMessageListParams) { + Object.keys(userFilledMessageListParams).forEach(function (key) { + messageListParams[key] = userFilledMessageListParams[key]; + }); + logger.info('OpenChannel: Used userFilledMessageListParams'); + } + + logger.info('OpenChannel: Fetching messages', { + currentOpenChannel: currentOpenChannel, + messageListParams: messageListParams + }); + currentOpenChannel.getMessagesByTimestamp(lastMessageTimestamp || new Date().getTime(), messageListParams, function (messages, error) { + if (!error) { + logger.info('OpenChannel | Fetching messages succeeded', messages); + var hasMore_2 = messages && messages.length > 0; + var lastMessageTimestamp_2 = hasMore_2 ? messages[0].createdAt : null; + messagesDispatcher({ + type: GET_PREV_MESSAGES_SUCESS, + payload: { + currentOpenChannel: currentOpenChannel, + messages: messages, + hasMore: hasMore_2, + lastMessageTimestamp: lastMessageTimestamp_2 + } + }); + setTimeout(function () { + callback(); + }); + } else { + logger.error('OpenChannel | Fetching messages failed', error); + messagesDispatcher({ + type: GET_PREV_MESSAGES_FAIL, + payload: { + currentOpenChannel: currentOpenChannel, + messages: [], + hasMore: false, + lastMessageTimestamp: 0 + } + }); + } + }); + }, [currentOpenChannel, lastMessageTimestamp]); // useSendMessageCallback + + var handleSendMessage = useCallback(function () { + var text = messageInputRef.current.value; + + function createParamsDefualt(txt) { + var message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim(); + var params = new sdk.UserMessageParams(); + params.message = message; + return params; + } + + var createCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function'; + + if (createCustomParams) { + logger.info('OpenChannel | Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage); + } + + var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefualt(text); + logger.info('OpenChannel | Sending message has started', params); + var pendingMessage = currentOpenChannel.sendUserMessage(params, function (message, error) { + if (error) { + logger.warning('OpenChannel | Sending message failed', { + message: message + }); + messagesDispatcher({ + type: SENDING_MESSAGE_FAILED, + payload: message + }); + return; + } + + logger.info('OpenChannel | Sending message succeeded', { + message: message + }); + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + }); + messagesDispatcher({ + type: SENDING_MESSAGE_START, + payload: { + message: pendingMessage, + channel: currentOpenChannel + } + }); + }, [currentOpenChannel, onBeforeSendUserMessage]); // useFileUploadCallback + + var handleFileUpload = useCallback(function (file) { + function createParamsDefualt(file_) { + var params = new sdk.FileMessageParams(); + params.file = file_; + return params; + } + + var createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function'; + + if (createCustomParams) { + logger.info('OpenChannel | Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage); + } + + var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefualt(file); + logger.info('OpenChannel | Uploading file message start', params); + var pendingMessage = currentOpenChannel.sendFileMessage(params, function (message, error) { + if (error) { + logger.error('OpenChannel | Sending file message failed', { + message: message, + error: error + }); + message.localUrl = URL.createObjectURL(file); + message.file = file; + messagesDispatcher({ + type: SENDING_MESSAGE_FAILED, + payload: message + }); + return; + } + + logger.info('OpenChannel | Sending message succeeded', message); + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + }); + messagesDispatcher({ + type: SENDING_MESSAGE_START, + payload: { + message: __assign(__assign({}, pendingMessage), { + url: URL.createObjectURL(file), + // pending thumbnail message seems to be failed + requestState: 'pending' + }), + channel: currentOpenChannel + } + }); + }, [currentOpenChannel, onBeforeSendFileMessage]); // useUpdateMessageCallback + + var updateMessage = useCallback(function (messageId, text, callback) { + function createParamsDefualt(txt) { + var params = new sdk.UserMessageParams(); + params.message = txt; + return params; + } + + if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') { + logger.info('OpenChannel | Creating params using onBeforeUpdateUserMessage'); + } + + var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefualt(text); + currentOpenChannel.updateUserMessage(messageId, params, function (message, error) { + if (callback) { + callback(); + } + + if (!error) { + logger.info('OpenChannel | Updating message succeeded', { + message: message, + params: params + }); + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: currentOpenChannel, + message: message + } + }); + } else { + logger.warning('OpenChannel | Updating message failed', error); + } + }); + }, [currentOpenChannel, messagesDispatcher, onBeforeSendUserMessage]); // useDeleteMessageCallback + + var deleteMessage = useCallback(function (message, callback) { + logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message); + var requestState = message.requestState; + logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState: ', requestState); + + if (requestState === 'failed' || requestState === 'pending') { + logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local: ', message); + messagesDispatcher({ + type: ON_MESSAGE_DELETED_BY_REQ_ID, + payload: message.reqId + }); + + if (callback) { + callback(); + } + + return; + } + + currentOpenChannel.deleteMessage(message, function (error) { + logger.info('OpenChannel | useDeleteMessageCallback: Deleting message from remote: ', requestState); + + if (callback) { + callback(); + } + + if (!error) { + logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message); + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: { + channel: currentOpenChannel, + messageId: message.messageId + } + }); + } else { + logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error); + } + }); + }, [currentOpenChannel, messagesDispatcher]); // useResendMessageCallback + + var resendMessage = useCallback(function (failedMessage) { + logger.info('OpenChannel | Reseding message has started', failedMessage); + var messageType = failedMessage.messageType, + file = failedMessage.file; + + if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) { + // eslint-disable-next-line no-param-reassign + failedMessage.requestState = 'pending'; + messagesDispatcher({ + type: RESENDING_MESSAGE_START, + payload: { + channel: currentOpenChannel, + message: failedMessage + } + }); // userMessage + + if (messageType === 'user' && failedMessage.messageType === 'user') { + currentOpenChannel.resendUserMessage(failedMessage, function (message, error) { + if (!error) { + logger.info('OpenChannel | Reseding message succeeded', message); + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + } else { + logger.warning('OpenChannel | Resending message failed', error); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'failed'; + messagesDispatcher({ + type: SENDING_MESSAGE_FAILED, + payload: failedMessage + }); + } + }); + return; + } // fileMessage + + + if (messageType === 'file' && failedMessage.messageType === 'file') { + currentOpenChannel.resendFileMessage(failedMessage, file, function (message, error) { + if (!error) { + logger.info('OpenChannel | Resending file message succeeded', message); + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + } else { + logger.warning('OpenChannel | Resending file message failed', error); // eslint-disable-next-line no-param-reassign + + failedMessage.requestState = 'failed'; + messagesDispatcher({ + type: SENDING_MESSAGE_FAILED, + payload: failedMessage + }); + } + }); + } + } else { + // to alert user on console + // eslint-disable-next-line no-console + console.error('OpenChannel | Message is not resendable'); + logger.warning('OpenChannel | Message is not resendable', failedMessage); + } + }, [currentOpenChannel, messagesDispatcher]); + + var handleClickScrollDownButton = function handleClickScrollDownButton() { + var promise = new Promise(function (resolve) { + resolve(); + }); + setScrollDownPromise(promise); + }; + + if (!currentOpenChannel || !currentOpenChannel.url) { + return React.createElement("div", { + className: COMPONENT_CLASS_NAME$1 + }, React.createElement(PlaceHolder, { + type: PlaceHolderTypes.NO_CHANNELS + })); + } + + if (loading) { + return React.createElement("div", { + className: COMPONENT_CLASS_NAME$1 + }, React.createElement(PlaceHolder, { + type: PlaceHolderTypes.LOADING + })); + } + + if (isInvalid) { + return React.createElement("div", { + className: COMPONENT_CLASS_NAME$1 + }, React.createElement(PlaceHolder, { + type: PlaceHolderTypes.WRONG + })); + } + + return React.createElement(UserProfileProvider, { + className: COMPONENT_CLASS_NAME$1, + disableUserProfile: userDefinedDisableUserProfile, + renderUserProfile: userDefinedRenderProfile + }, showScrollDownButton && React.createElement("div", { + className: COMPONENT_CLASS_NAME$1 + "__go-to-bottom", + onClick: handleClickScrollDownButton, + onKeyDown: handleClickScrollDownButton, + tabIndex: 0, + role: "button" + }, React.createElement(Icon, { + width: "24px", + height: "24px", + type: IconTypes.SHEVRON_DOWN, + fillColor: IconColors.CONTENT + })), renderChannelTitle ? renderChannelTitle({ + channel: currentOpenChannel, + user: user + }) : React.createElement(OpenchannelConversationHeader, { + title: currentOpenChannel.name, + subTitle: kFormatter(currentOpenChannel.participantCount) + " " + stringSet.OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS, + coverImage: currentOpenChannel.coverUrl, + onActionClick: onChatHeaderActionClick + }), currentOpenChannel.isFrozen && React.createElement(FrozenNotification, null), React.createElement(OpenchannelConversationScroll, { + openchannel: currentOpenChannel, + user: user, + useMessageGrouping: useMessageGrouping, + isOnline: isOnline, + allMessages: allMessages, + onScroll: onScroll, + hasMore: hasMore, + scrollDownPromise: scrollDownPromise, + showScrollDownButton: setShowScrollDownButton, + updateMessage: updateMessage, + deleteMessage: deleteMessage, + resendMessage: resendMessage + }), renderMessageInput ? renderMessageInput({ + channel: currentOpenChannel, + user: user, + disabled: disabled + }) : React.createElement(MessageInputWrapper$1, { + channel: currentOpenChannel, + user: user, + ref: messageInputRef, + disabled: disabled, + onSendMessage: handleSendMessage, + onFileUpload: handleFileUpload, + renderMessageInput: renderMessageInput + })); +}; +var index = withSendbirdContext(OpenchannelConversation); + +export default index; +export { OpenchannelConversation }; +//# sourceMappingURL=OpenChannel.js.map diff --git a/dist/esm/OpenChannel.js.map b/dist/esm/OpenChannel.js.map new file mode 100644 index 0000000..252c2e3 --- /dev/null +++ b/dist/esm/OpenChannel.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OpenChannel.js","sources":["../../../src/smart-components/OpenchannelConversation/utils.ts","../../../src/smart-components/OpenchannelConversation/components/MessageInpuetWrapper.tsx","../../../src/smart-components/OpenchannelConversation/components/FrozenNotification.tsx","../../../src/ui/OpenchannelConversationHeader/index.tsx","../../../src/ui/OpenchannelUserMessage/utils.ts","../../../src/utils/openChannelUtils.ts","../../../src/ui/OpenchannelUserMessage/index.tsx","../../../src/ui/OpenChannelAdminMessage/index.tsx","../../../src/ui/OpenchannelOGMessage/utils.ts","../../../src/ui/OpenchannelOGMessage/index.tsx","../../../src/ui/OpenchannelThumbnailMessage/utils.ts","../../../src/ui/OpenchannelThumbnailMessage/index.tsx","../../../src/ui/OpenchannelFileMessage/utils.ts","../../../src/ui/OpenchannelFileMessage/index.tsx","../../../src/smart-components/OpenchannelConversation/components/RemoveMessageModal.tsx","../../../src/smart-components/OpenchannelConversation/components/types.ts","../../../src/smart-components/OpenchannelConversation/components/MessageHOC.tsx","../../../src/smart-components/OpenchannelConversation/components/OpenchannelConversationScroll.tsx","../../../src/smart-components/OpenchannelConversation/dux/actionTypes.ts","../../../src/smart-components/OpenchannelConversation/dux/reducers.ts","../../../src/smart-components/OpenchannelConversation/dux/initialState.ts","../../../src/smart-components/OpenchannelConversation/index.tsx"],"sourcesContent":["import format from 'date-fns/format';\nimport Sendbird from 'sendbird';\nimport SendbirdUIKit from '../../index';\n\nexport const getMessageCreatedAt = (message: SendbirdUIKit.EveryMessage): string => format(message.createdAt, 'p');\n\nexport const scrollIntoLast = (selector: string, intialTry = 0): void => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\n\nexport const isSameGroup = (\n message: SendbirdUIKit.EveryMessage,\n comparingMessage: SendbirdUIKit.EveryMessage,\n): boolean => {\n if (\n !message\n || !comparingMessage\n || message.messageType === 'admin'\n || comparingMessage.messageType === 'admin'\n ) {\n return false\n }\n\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: SendbirdUIKit.EveryMessage,\n currMessage: SendbirdUIKit.EveryMessage,\n nextMessage: SendbirdUIKit.EveryMessage,\n): [boolean, boolean] => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n );\n\nexport const kFormatter = (num: number): string => {\n if (Math.abs(num) > 999999) {\n return `${(Math.abs(num) / 1000000).toFixed(1)}M`;\n }\n\n if (Math.abs(num) > 999) {\n return `${(Math.abs(num) / 1000).toFixed(1)}K`;\n }\n\n return `${num}`;\n};\n\nexport const isOperator = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { operators } = openChannel;\n if (operators.map(operator => operator.userId).indexOf(userId) < 0) {\n return false;\n }\n return true;\n};\n\nexport const isDisabledBecauseFrozen = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { isFrozen } = openChannel;\n return isFrozen && !isOperator(openChannel, userId);\n};\n\nexport const isDisabledBecauseMuted = (mutedParticipantIds: string[], userId: string): boolean => {\n return mutedParticipantIds.indexOf(userId) < 0;\n};\n","import React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\nimport { RenderMessageInputProps } from '../../../index';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport MessageInput from '../../../ui/MessageInput';\n\ninterface Props {\n channel: Sendbird.OpenChannel;\n user: Sendbird.User;\n disabled: boolean;\n onSendMessage(): void;\n onFileUpload(file_: File): void;\n renderMessageInput?(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n disabled,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n}: Props, ref: React.RefObject): JSX.Element => {\n if (!channel) {\n return;\n }\n\n const { stringSet } = useContext(LocalizationContext);\n\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport './frozen-notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { ReactElement } from 'react';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, {\n LabelTypography,\n LabelColors,\n LabelStringSet,\n} from '../Label';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation-header';\n\ninterface Props {\n coverImage?: string;\n title?: string;\n subTitle?: string;\n onActionClick?(): void;\n}\n\nexport default function OpenchannelConversationHeader({\n coverImage,\n title = LabelStringSet.NO_TITLE,\n subTitle = LabelStringSet.NO_TITLE,\n onActionClick,\n}: Props): ReactElement {\n return (\n\n
\n
\n {\n coverImage ? (\n \n ) : (\n \n )\n }\n \n {title}\n \n \n {subTitle}\n \n
\n
\n \n \n \n
\n
\n );\n}\n","export const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport default { copyToClipboard };\n","import Sendbird from 'sendbird';\nimport { ClientUserMessage, ClientFileMessage } from '../index';\n\nconst OpenChannelMessageStatusTypes = {\n NONE: 'none',\n PENDING: 'pending',\n FAILED: 'failed',\n CANCELED: 'canceled',\n SUCCEEDED: 'succeeded'\n};\n\nexport const getSenderFromMessage = (message: ClientUserMessage | ClientFileMessage): Sendbird.User => {\n return message.sender || message._sender;\n};\n\nexport const checkIsSent = (status: string): boolean => (status === OpenChannelMessageStatusTypes.SUCCEEDED);\n\nexport const checkIsByMe = (message: ClientFileMessage | ClientUserMessage, userId: string): boolean => (getSenderFromMessage(message).userId === userId);\n\ninterface isFineCopyParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineCopy = ({ message }: isFineCopyParams): boolean => {\n return (message.messageType === 'user' && message.message.length > 0);\n};\n\ninterface isFineResendParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineResend = ({ message, status, userId }: isFineResendParams): boolean => {\n return checkIsByMe(message, userId)\n && !checkIsSent(status)\n && message.isResendable\n && message.isResendable();\n};\n\ninterface isFineEditParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineEdit = ({ message, status, userId }: isFineEditParams): boolean => {\n return checkIsByMe(message, userId) && checkIsSent(status);\n};\n\ninterface isFineDeleteParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineDelete = ({ message, userId }: isFineDeleteParams): boolean => {\n return checkIsByMe(message, userId);\n};\n\ninterface showMenuTriggerParams {\n message: ClientUserMessage | ClientFileMessage;\n status: string;\n userId: string;\n}\nexport const showMenuTrigger = (props: showMenuTriggerParams): boolean => {\n const { message, status, userId } = props;\n if (message.messageType === 'user') {\n return (\n isFineDelete({ message, status, userId })\n || isFineEdit({ message, status, userId })\n || isFineCopy({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n } else {\n return (\n isFineDelete({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n }\n};\n","import React, {\n useMemo,\n useContext,\n useRef,\n useState,\n ReactElement,\n useEffect,\n} from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { copyToClipboard } from './utils';\nimport uuidv4 from '../../utils/uuid';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n userId: string;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n}\n\nexport default function OpenchannelUserMessage({\n message,\n className,\n userId,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n chainTop,\n status,\n}: Props): ReactElement {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n // hooks\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const contextMenuRef = useRef(null);\n const [contextStyle, setContextStyle] = useState({});\n\n // consts\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push(`sendbird-openchannel-user-message`);\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const splitMessage = message.message.split(/\\r/);\n const matchedMessage = splitMessage.map((word) => (word !== '' ? word :
));\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n // place context menu top depending clientHeight of message component\n useEffect(() => {\n if (messageRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status}) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message: message, userId: userId, status: status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message: message, userId: userId, status: status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n );\n}\n","import React, { ReactElement } from 'react';\nimport { ClientAdminMessage } from '../../index';\nimport './index.scss';\n\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\ninterface Props {\n message: ClientAdminMessage;\n className?: string | string[];\n}\n\nexport default function OpenChannelAdminMessage({\n message,\n className,\n}: Props): ReactElement {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-admin-message');\n\n return (\n
\n \n {message.message || ''}\n \n
\n );\n}\n","import Sendbird from 'sendbird';\n\nexport const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const createUrlTester = (regexp: RegExp) => (text: string): boolean => regexp.test(text);\nexport const checkOGIsEnalbed = (message: Sendbird.UserMessage): boolean => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n","import React, { useState, useContext, useMemo, useRef, useEffect } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport LinkLabel from '../LinkLabel';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport uuidv4 from '../../utils/uuid';\nimport { copyToClipboard } from '../OpenchannelUserMessage/utils';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkOGIsEnalbed, createUrlTester, URL_REG } from './utils';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n userId: string;\n}\n\nexport default function OpenchannelOGMessage({\n message,\n className,\n disabled,\n showEdit,\n showRemove,\n resendMessage,\n chainTop,\n status,\n userId,\n}: Props): JSX.Element {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n const { ogMetaData } = message;\n const { defaultImage } = ogMetaData;\n\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const [contextStyle, setContextStyle] = useState({});\n const messageComponentRef = useRef(null);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const isUrl = createUrlTester(URL_REG);\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-og-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const wordClassName = 'sendbird-openchannel-og-message--word';\n const splitMessage = message.message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n // place conxt menu top depending clientHeight of message component\n useEffect(() => {\n if (messageComponentRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status }) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message, userId, status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n
\n
\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n ogMetaData.title && (\n \n {\n ogMetaData.title\n }\n \n )\n }\n {\n ogMetaData.description && (\n \n {ogMetaData.description}\n \n )\n }\n {\n ogMetaData.url && (\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n )\n }\n \n \n \n );\n}\n","export const SUPPORTING_TYPES = {\n IMAGE: 'IMAGE',\n VIDEO: 'VIDEO',\n UNSUPPORTED: 'UNSUPPORTED',\n};\n\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const getSupportingFileType = (type: string): string => {\n if (SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.IMAGE;\n }\n if (SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.VIDEO;\n }\n return SUPPORTING_TYPES.UNSUPPORTED;\n}\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\nimport { SUPPORTING_TYPES, getSupportingFileType } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport {\n checkIsByMe,\n checkIsSent,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n disabled: boolean;\n userId: string;\n status: string;\n chainTop: boolean;\n chainBottom: boolean;\n onClick(bool: boolean): void,\n showRemove(bool: boolean): void,\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelThumbnailMessage({\n message,\n className,\n disabled,\n userId,\n status,\n chainTop,\n onClick,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-thumbnail-message');\n const isByMe = checkIsByMe(message, userId);\n const isMessageSent = checkIsSent(status);\n const sender = getSenderFromMessage(message);\n\n return (\n
\n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n onKeyDown={() => {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n tabIndex={0}\n role=\"button\"\n >\n
\n {\n {\n [SUPPORTING_TYPES.VIDEO]: (\n (url || localUrl)\n ? (\n
\n \n \n \n \n
\n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.IMAGE]: (\n (url || localUrl)\n ? (\n \n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.UNSUPPORTED]: (\n \n ),\n }[getSupportingFileType(type)]\n }\n
\n
\n
\n \n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n
\n \n );\n}\n","import { IconTypes } from '../Icon';\n\nexport const checkFileType = (fileUrl: string): string => {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport const truncate = (fullStr:string, strLen: number): string => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkFileType, truncate } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineDelete,\n isFineResend,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n userId: string;\n disabled?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n\n showRemove(bool: boolean): void;\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelFileMessage({\n message,\n className,\n userId,\n disabled,\n chainTop,\n status,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n\n const openFileUrl = () => { window.open(message.url); };\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-file-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n checkFileType(message.url) && (\n \n )\n }\n \n \n {truncate(message.url, 40)}\n \n \n
\n
\n \n {\n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n if (disabled) { return; }\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n }\n \n \n );\n}\n","import React, { useContext } from 'react'\nimport { ClientFileMessage, ClientUserMessage } from '../../..'\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n onCloseModal(): void;\n onDeleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n}\n\nexport default function RemoveMessageModal({\n onCloseModal,\n onDeleteMessage,\n}: Props): JSX.Element {\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n \n );\n}\n","import { EveryMessage } from '../../..';\nimport { isImage, isVideo } from '../../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message: EveryMessage): string => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if (message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return MessageTypes.UNKNOWN;\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import React, { useState, useRef, ReactElement } from 'react';\n\nimport format from 'date-fns/format';\nimport { ClientFileMessage, ClientUserMessage, EveryMessage } from '../../../index';\n\nimport OpenChannelUserMessage from '../../../ui/OpenchannelUserMessage';\nimport OpenChannelAdminMessage from '../../../ui/OpenChannelAdminMessage';\nimport OpenChannelOGMessage from '../../../ui/OpenchannelOGMessage';\nimport OpenChannelThumbnailMessage from '../../../ui/OpenchannelThumbnailMessage';\nimport OpenChannelFileMessage from '../../../ui/OpenchannelFileMessage';\n// import UnknownMessage from '../../../ui/UnknownMessage';\n\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\n\nimport RemoveMessageModal from './RemoveMessageModal';\nimport {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n} from './types';\n\ninterface Props {\n message: EveryMessage;\n userId: string;\n disabled: boolean;\n editDisabled: boolean;\n hasSeperator: boolean;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n updateMessage(messageId: number, text: string, callback?: () => void): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n status?: string;\n chainTop: boolean;\n chainBottom: boolean;\n}\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n resendMessage,\n status,\n chainTop,\n chainBottom,\n}: Props): ReactElement {\n let sender: SendBird.User = null;\n if (message.messageType !== 'admin') {\n sender = message.sender;\n }\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n let isByMe = false;\n\n if (sender && message.messageType !== 'admin') {\n // pending and failed messages are by me\n isByMe = (userId === sender.userId)\n || (message.requestState === SendingMessageStatus.PENDING)\n || (message.requestState === SendingMessageStatus.FAILED);\n }\n\n if (message.messageType === 'user' && showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: (() => {\n if (message.messageType === 'admin') {\n return (\n \n )\n }\n })(),\n [MessageTypes.FILE]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.OG]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.THUMBNAIL]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.USER]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.UNKNOWN]: (() => {\n return;\n // return (\n // \n // );\n })(),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n if (message.messageType !== 'admin') {\n deleteMessage(message);\n }\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={deleteMessage}\n isByMe={isByMe}\n />\n )\n }\n {/* {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n } */}\n
\n );\n}\n","import React, { ReactElement, useRef, useEffect } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\nimport { ClientFileMessage, ClientUserMessage, EveryMessage } from '../../../index';\nimport MessageHoc from './MessageHOC';\n\nimport './openchannel-conversation-scroll.scss';\nimport { compareMessagesForGrouping } from '../utils';\n\ninterface Props {\n openchannel: SendBird.OpenChannel;\n user: SendBird.User;\n allMessages: EveryMessage[];\n useMessageGrouping: boolean;\n isOnline: boolean;\n hasMore: boolean;\n onScroll(callback?: () => void): void;\n scrollDownPromise: PromiseLike;\n showScrollDownButton?(bool: boolean): void;\n updateMessage(messageId: number, text: string, callback?: () => void ): void;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void ): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n}\n\nexport default function OpenchannelConversationScroll(\n {\n useMessageGrouping = true,\n openchannel,\n user,\n allMessages,\n isOnline = true,\n hasMore,\n onScroll,\n scrollDownPromise,\n showScrollDownButton,\n updateMessage,\n deleteMessage,\n resendMessage,\n }: Props\n): ReactElement {\n const scrollRef = useRef(null);\n\n const handleOnScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n } = element;\n if (showScrollDownButton) {\n if (scrollHeight > scrollTop + clientHeight) {\n showScrollDownButton(true);\n } else {\n showScrollDownButton(false);\n }\n }\n\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n onScroll(() => {\n const first = nodes[0];\n first.scrollIntoView();\n });\n }\n };\n\n useEffect(() => {\n // This promise is created in everytime when user click the scroll to bottom button\n // This scope waits when user click the button and scrolls to the bottom of conversation\n if (scrollDownPromise && scrollRef && scrollRef.current) {\n scrollDownPromise.then(() => {\n scrollRef.current.scrollTo(0, scrollRef.current.scrollHeight);\n if (showScrollDownButton) {\n showScrollDownButton(false);\n }\n });\n }\n return;\n }, [scrollDownPromise]);\n\n return (\n \n
\n
\n
\n {\n allMessages.map((message, index) => {\n let status: string;\n\n if (message.messageType !== 'admin') {\n status = message.sendingStatus;\n }\n\n const previousMessage = allMessages[index - 1];\n const nextMessage = allMessages[index - 1];\n\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = message.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, message, nextMessage)\n : [false, false];\n return (\n \n )\n })\n }\n
\n
\n
\n );\n}\n","export const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';\nexport const SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';\nexport const SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';\nexport const SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';\nexport const RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';\n\n// event handlers\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';\nexport const ON_USER_ENTERED = 'ON_USER_ENTERED';\nexport const ON_USER_EXITED = 'ON_USER_EXITED';\nexport const ON_USER_MUTED = 'ON_USER_MUTED';\nexport const ON_USER_UNMUTED = 'ON_USER_UNMUTED';\nexport const ON_USER_BANNED = 'ON_USER_BANNED';\nexport const ON_USER_UNBANNED = 'ON_USER_UNBANNED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';\nexport const ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';\nexport const ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';\nexport const ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';\nexport const ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';\nexport const ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';\nexport const ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';\n","import { State as initialStateInterface } from './initialState';\nimport * as actionTypes from './actionTypes';\n\nimport compareIds from '../../../utils/compareIds.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore: Unreachable code error\ninterface ActionInterface {\n type: string;\n payload?: any;\n}\n\nexport default function reducer(\n state: initialStateInterface,\n action: ActionInterface,\n): initialStateInterface {\n switch (action.type) {\n case actionTypes.RESET_MESSAGES: {\n return {\n ...state,\n allMessages: [],\n };\n }\n\n case actionTypes.SET_CURRENT_CHANNEL: {\n const currentChannel = action.payload;\n const operators = currentChannel.operators;\n if (\n !state.isInvalid\n && state.currentOpenChannel\n && state.currentOpenChannel.url\n && (state.currentOpenChannel.url === currentChannel.url)\n ) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: currentChannel,\n isInvalid: false,\n operators: operators,\n participants: operators,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_SUCESS:\n case actionTypes.GET_PREV_MESSAGES_FAIL: {\n const isFailed = (action.type === actionTypes.GET_PREV_MESSAGES_FAIL);\n const {\n currentOpenChannel = {},\n messages = [],\n hasMore,\n lastMessageTimestamp,\n } = action.payload;\n const actionChannelUrl = currentOpenChannel.url;\n const receivedMessages = isFailed ? [] : messages;\n const _hasMore = isFailed ? false : hasMore;\n const _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;\n\n const stateChannel = state.currentOpenChannel;\n const stateChannelUrl = stateChannel.url;\n\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n const filteredAllMessages = state.allMessages.filter((message) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, message.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: _hasMore,\n lastMessageTimestamp: _lastMessageTimestamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_START: {\n const {\n message,\n channel,\n } = action.payload;\n if (channel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...message },\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_SUCCEEDED: {\n const sentMessage = action.payload;\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SENDING_MESSAGE_FAILED: {\n const sentMessage = action.payload;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n )),\n };\n }\n case actionTypes.RESENDING_MESSAGE_START: {\n const eventedChannel = action.payload.channel;\n const resentMessage = action.payload.message;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, resentMessage.reqId) ? resentMessage : m\n )),\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const eventedChannel = action.payload.channel;\n const receivedMessage = action.payload.message;\n const {\n currentOpenChannel\n } = state;\n\n if (\n !compareIds(eventedChannel.url, currentOpenChannel.url)\n || (\n !(state.allMessages.map(\n (message) => message.messageId).indexOf(receivedMessage.messageId) < 0\n ))\n ) {\n return state;\n }\n\n return {\n ...state,\n allMessages: [...state.allMessages, receivedMessage],\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedMessage = action.payload.message;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((message) => (\n message.isIdentical(updatedMessage)\n ? updatedMessage\n : message\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED: {\n const eventedChannel = action.payload.channel;\n const deletedMessageId = action.payload.messageId;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.filter((message) => (\n !compareIds(message.messageId, deletedMessageId)\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID: {\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n }\n case actionTypes.ON_OPERATOR_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedOperators = action.payload.operators;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: {\n ...state.currentOpenChannel,\n operators: updatedOperators,\n },\n operators: updatedOperators,\n };\n }\n case actionTypes.ON_USER_ENTERED: {\n const eventedChannel = action.payload.channel;\n const enteredUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, enteredUser],\n };\n }\n case actionTypes.ON_USER_EXITED: {\n const eventedChannel = action.payload.channel;\n const exitedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: state.participants.filter((participant) => (\n !compareIds(participant.userId, exitedUser.userId)\n )),\n };\n }\n case actionTypes.ON_USER_MUTED: {\n // const eventedChannel = action.payload.channel;\n // const mutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNMUTED: {\n // const eventedChannel = action.payload.channel;\n // const unmutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_BANNED: {\n // const eventedChannel = action.payload.channel;\n // const bannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNBANNED: {\n // const eventedChannel = action.payload.channel;\n // const unbannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_CHANNEL_FROZEN: {\n const frozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== frozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: true,\n };\n }\n case actionTypes.ON_CHANNEL_UNFROZEN: {\n const unfrozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== unfrozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: false,\n };\n }\n case actionTypes.ON_CHANNEL_CHANGED: {\n const changedChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== changedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: changedChannel,\n };\n }\n case actionTypes.ON_META_DATA_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaDataKeys = action.payload.metaDataKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaCounterKeys = action.payload.metaCounterKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_MENTION_RECEIVED: {\n // const eventedChannel = action.payload.channel;\n // const mentionedMessage = action.payload.message;\n // return {\n // ...state\n // };\n return state;\n }\n default:\n return state;\n }\n}\n","import Sendbird from 'sendbird';\nimport { EveryMessage } from '../../../index';\n\nexport interface State {\n allMessages: EveryMessage[];\n loading: boolean;\n initialized: boolean;\n currentOpenChannel: Sendbird.OpenChannel;\n isInvalid: boolean;\n hasMore: boolean;\n lastMessageTimestamp: number;\n frozen: boolean;\n operators: Sendbird.User[];\n participants: Sendbird.User[];\n // add banned participant ids\n // add muted participant ids\n}\n\nconst initialState: State = {\n allMessages: [],\n loading: false,\n initialized: false,\n currentOpenChannel: null,\n isInvalid: false,\n hasMore: false,\n lastMessageTimestamp: 0,\n frozen: false,\n operators: [],\n participants: [],\n // bannedParticipantIds\n // mutedParticipantIds\n};\n\nexport default initialState;\n","import React, {\n useRef,\n useCallback,\n useEffect,\n useReducer,\n useContext,\n useState,\n} from 'react';\nimport Sendbird from 'sendbird';\nimport * as utils from './utils';\nimport './index.scss';\n\nimport MessageInputWrapper from './components/MessageInpuetWrapper';\nimport FrozenChannelNotification from './components/FrozenNotification';\nimport OpenchannelConversationHeader from '../../ui/OpenchannelConversationHeader';\nimport OpenchannelConversationScroll from './components/OpenchannelConversationScroll';\nimport Icon, { IconColors, IconTypes } from '../../ui/Icon';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport {\n EveryMessage,\n ClientUserMessage,\n ClientFileMessage,\n OpenChannelProps,\n} from '../../index';\nimport messagesReducer from './dux/reducers';\nimport messagesInitialState from './dux/initialState';\nimport * as messageActionTypes from './dux/actionTypes';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext.jsx';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport uuidv4 from '../../utils/uuid';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation';\n\ninterface Props extends OpenChannelProps {\n stores: {\n sdkStore?: SendbirdUIKit.SdkStore,\n userStore?: {\n user: Sendbird.User,\n },\n };\n config: {\n userId: string,\n isOnline: boolean,\n logger?: SendbirdUIKit.Logger,\n theme?: string,\n disableUserProfile?: boolean;\n renderUserProfile?(): JSX.Element;\n };\n}\n\nexport const OpenchannelConversation = (props: Props): JSX.Element => {\n // props\n const {\n useMessageGrouping,\n channelUrl,\n stores,\n config,\n queries = {},\n disableUserProfile,\n renderUserProfile,\n renderChannelTitle,\n renderMessageInput,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onChatHeaderActionClick\n } = props;\n\n const {\n sdkStore,\n userStore,\n } = stores;\n const {\n userId,\n isOnline,\n logger,\n } = config;\n\n const {\n sdk\n } = sdkStore;\n const {\n user\n } = userStore;\n\n // hook variables\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const {\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n } = messagesStore;\n // ref\n const messageInputRef = useRef(null); // useSendMessageCallback\n const { stringSet } = useContext(LocalizationContext);\n const [scrollDownPromise, setScrollDownPromise] = useState(null);\n const [showScrollDownButton, setShowScrollDownButton] = useState(false);\n\n // const\n const sdkInit = sdkStore.initialized;\n const userFilledMessageListParams = queries ? queries.messageListParams: null;\n const disabled = !initialized\n || !isOnline\n || utils.isDisabledBecauseFrozen(currentOpenChannel, userId);\n // || utils.isDisabledBecauseMuted(mutedParticipantIds, userId)\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n // useSetChannel\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.OpenChannel) {\n logger.info('OpenChannel | useSetChannel fetching channel', channelUrl);\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (!error) {\n logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: openChannel,\n });\n openChannel.enter((error) => {\n if (error) {\n logger.warning('OpenChannel | useSetChannel enter channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n } else {\n logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n // .then((openChannel) => {\n // logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n // messagesDispatcher({\n // type: messageActionTypes.SET_CURRENT_CHANNEL,\n // payload: openChannel,\n // });\n // })\n // .catch((error) => {\n // logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n // messagesDispatcher({\n // type: messageActionTypes.SET_CHANNEL_INVALID,\n // });\n // });\n }\n }, [channelUrl, sdkInit]);\n\n // useHandleChannelEvents\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (currentOpenChannel && currentOpenChannel.url && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('OpenChannel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n\n ChannelHandler.onMessageReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageUpdated = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageDeleted = (channel, messageId) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { channelUrl, messageId });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: { channel, messageId },\n });\n };\n ChannelHandler.onOperatorUpdated = (channel, operators) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { channelUrl, operators });\n messagesDispatcher({\n type: messageActionTypes.ON_OPERATOR_UPDATED,\n payload: { channel, operators },\n });\n };\n ChannelHandler.onUserEntered = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_ENTERED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserExited = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_EXITED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserMuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnmuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNMUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_BANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnbanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNBANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onMetaDataCreated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_CREATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataUpdated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_UPDATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataDeleted = (channel, metaDataKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { channelUrl, metaDataKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_DELETED,\n payload: { channel, metaDataKeys },\n });\n };\n ChannelHandler.onMetaCountersCreated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_CREATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersUpdated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_UPDATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersDeleted = (channel, metaCounterKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { channelUrl, metaCounterKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_DELETED,\n payload: { channel, metaCounterKeys },\n });\n };\n ChannelHandler.onMentionReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MENTION_RECEIVED,\n payload: { channel, message },\n });\n };\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [currentOpenChannel]);\n\n // useInitialMessagesFetch\n useEffect(() => {\n logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams && currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | Used customizedMessageListParams');\n }\n\n logger.info('OpenChannel | Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n },\n );\n // todo: use promise after CoreSDK adds required TS methods\n // .then((messages) => {\n // console.log('get messages via getMessagesByTimestamp', messages);\n // const hasMore = (messages && messages.length > 0);\n // const lastMessageTimestamp = hasMore\n // ? messages[0].createdAt\n // : null;\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n // payload: {\n // currentOpenChannel,\n // messages,\n // hasMore,\n // lastMessageTimestamp,\n // },\n // });\n // })\n // .catch((error: Error): void => {\n // logger.error('OpenChannel | Fetching messages failed', error);\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n // payload: {\n // currentOpenChannel,\n // messages: [],\n // hasMore: false,\n // lastMessageTimestamp: 0,\n // }\n // });\n // });\n }\n }, [currentOpenChannel]);\n\n // useScrollCallback\n const onScroll = useCallback((callback) => {\n if (!hasMore) {\n return;\n }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel: Used userFilledMessageListParams');\n }\n\n logger.info('OpenChannel: Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n lastMessageTimestamp || new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n callback();\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n }\n );\n }, [currentOpenChannel, lastMessageTimestamp]);\n\n // useSendMessageCallback\n const handleSendMessage = useCallback(() => {\n const text = messageInputRef.current.value;\n\n function createParamsDefualt(txt: string | number): Sendbird.UserMessageParams {\n const message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim();\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n }\n\n const createCustomParams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n logger.info('OpenChannel | Sending message has started', params);\n\n const pendingMessage = currentOpenChannel.sendUserMessage(params, (message, error) => {\n if (error) {\n logger.warning('OpenChannel | Sending message failed', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: pendingMessage,\n channel: currentOpenChannel,\n },\n });\n }, [currentOpenChannel, onBeforeSendUserMessage]);\n\n // useFileUploadCallback\n const handleFileUpload = useCallback((file) => {\n function createParamsDefualt(file_: File): Sendbird.FileMessageParams {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n }\n\n const createCustomParams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefualt(file);\n\n logger.info('OpenChannel | Uploading file message start', params);\n\n const pendingMessage = currentOpenChannel.sendFileMessage(\n params,\n (message: EveryMessage, error: Sendbird.SendBirdError) => {\n if (error) {\n logger.error('OpenChannel | Sending file message failed', { message, error });\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n );\n\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n }\n });\n }, [currentOpenChannel, onBeforeSendFileMessage]);\n\n // useUpdateMessageCallback\n const updateMessage = useCallback((messageId: number, text: string, callback?: () => void): void => {\n\n function createParamsDefualt(txt: string): SendBird.UserMessageParams {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n }\n\n if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {\n logger.info('OpenChannel | Creating params using onBeforeUpdateUserMessage');\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n currentOpenChannel.updateUserMessage(messageId, params, (message, error) => {\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | Updating message succeeded', { message, params });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentOpenChannel,\n message,\n },\n });\n } else {\n logger.warning('OpenChannel | Updating message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher, onBeforeSendUserMessage]);\n\n // useDeleteMessageCallback\n const deleteMessage = useCallback((message: ClientUserMessage | ClientFileMessage, callback?: () => void): void => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState: ', requestState);\n\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local: ', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (callback) {\n callback();\n }\n return;\n }\n\n currentOpenChannel.deleteMessage(message, (error) => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message from remote: ', requestState);\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: {\n channel: currentOpenChannel,\n messageId: message.messageId,\n },\n });\n } else {\n logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher]);\n\n // useResendMessageCallback\n const resendMessage = useCallback((failedMessage: ClientUserMessage | ClientFileMessage) => {\n logger.info('OpenChannel | Reseding message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESENDING_MESSAGE_START,\n payload: {\n channel: currentOpenChannel,\n message: failedMessage,\n },\n });\n\n // userMessage\n if (messageType === 'user' && failedMessage.messageType === 'user') {\n currentOpenChannel.resendUserMessage(failedMessage, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Reseding message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n return;\n }\n\n // fileMessage\n if (messageType === 'file' && failedMessage.messageType === 'file') {\n currentOpenChannel.resendFileMessage(failedMessage, file, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Resending file message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending file message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('OpenChannel | Message is not resendable');\n logger.warning('OpenChannel | Message is not resendable', failedMessage);\n }\n }, [currentOpenChannel, messagesDispatcher]);\n\n const handleClickScrollDownButton = () => {\n const promise = new Promise((resolve) => {\n resolve();\n });\n setScrollDownPromise(promise);\n };\n\n if (!currentOpenChannel || !currentOpenChannel.url) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n\n return (\n \n {\n showScrollDownButton && (\n \n \n \n )\n }\n {\n renderChannelTitle\n ? renderChannelTitle({\n channel: currentOpenChannel,\n user: user,\n })\n : (\n \n )\n }\n {\n currentOpenChannel.isFrozen && (\n \n )\n }\n \n {\n renderMessageInput\n ? (\n renderMessageInput({\n channel: currentOpenChannel,\n user: user,\n disabled: disabled,\n })\n )\n : (\n \n )\n }\n \n );\n};\n\nexport default withSendbirdContext(OpenchannelConversation);\n"],"names":["getMessageCreatedAt","message","format","createdAt","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","isSameGroup","comparingMessage","messageType","sendingStatus","sender","userId","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","kFormatter","num","Math","abs","toFixed","isOperator","openChannel","operators","map","operator","indexOf","isDisabledBecauseFrozen","isFrozen","MessageInputWrapper","_a","ref","channel","user","disabled","onSendMessage","onFileUpload","renderMessageInput","stringSet","useContext","LocalizationContext","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","React","forwardRef","FrozenNotification","LabelTypography","CAPTION_2","CHANNEL_FROZEN","COMPONENT_CLASS_NAME","OpenchannelConversationHeader","coverImage","_b","title","LabelStringSet","NO_TITLE","_c","subTitle","onActionClick","IconTypes","AVATAR_NO_IMAGE","IconColors","BACKGROUND_3","H_2","LabelColors","ONBACKGROUND_1","BODY_2","ONBACKGROUND_2","INFO","PRIMARY","copyToClipboard","text","window","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","OpenChannelMessageStatusTypes","NONE","PENDING","FAILED","CANCELED","SUCCEEDED","getSenderFromMessage","_sender","checkIsSent","status","checkIsByMe","isFineCopy","isFineResend","isResendable","isFineEdit","isFineDelete","showMenuTrigger","props","OpenchannelUserMessage","className","resendMessage","showEdit","showRemove","chainTop","UserProfileContext","disableUserProfile","renderUserProfile","messageRef","useRef","avatarRef","contextMenuRef","useState","contextStyle","setContextStyle","injectingClassName","Array","isArray","push","isByMe","MemoizedMessageText","useMemo","splitMessage","split","matchedMessage","word","updatedAt","uuidv4","BODY_1","MESSAGE_EDITED","useEffect","current","clientHeight","top","innerWidth","join","toggleDropdown","profileUrl","closeDropdown","paddingTop","paddingBottom","close","SECONDARY_3","friendName","nickname","CAPTION_3","ONBACKGROUND_3","MORE","CONTENT_INVERSE","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","OpenChannelAdminMessage","__spreadArrays","URL_REG","createUrlTester","regexp","test","checkOGIsEnalbed","ogMetaData","url","OpenchannelOGMessage","defaultImage","messageComponentRef","isUrl","wordClassName","openLink","open","SUBTITLE_2","description","alt","NO_THUMBNAIL","SUPPORTING_TYPES","IMAGE","VIDEO","UNSUPPORTED","SUPPORTED_MIMES","getSupportingFileType","type","OpenchannelThumbnailMessage","onClick","localUrl","isMessageSent","PLAY","PHOTO","ON_BACKGROUND_2","checkFileType","fileUrl","result","imageFile","audioFile","FILE_DOCUMENT","FILE_AUDIO","truncate","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","ceil","backChars","floor","substr","OpenchannelFileMessage","openFileUrl","RemoveMessageModal","onCloseModal","onDeleteMessage","MODAL__DELETE_MESSAGE__TITLE","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","UNKNOWN","SendingMessageStatus","getMessageType","isUserMessage","isAdminMessage","isImage","isVideo","MessageHoc","editDisabled","hasSeperator","deleteMessage","updateMessage","chainBottom","setShowEdit","_d","setShowRemove","_e","showFileViewer","setShowFileViewer","editMessageInputRef","requestState","messageId","OpenChannelFileMessage","OpenChannelOGMessage","OpenChannelThumbnailMessage","OpenChannelUserMessage","OpenchannelConversationScroll","useMessageGrouping","openchannel","allMessages","isOnline","hasMore","onScroll","scrollDownPromise","showScrollDownButton","scrollRef","handleOnScroll","e","element","target","scrollTop","scrollHeight","nodes_1","first","then","scrollTo","index","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","RESET_MESSAGES","GET_PREV_MESSAGES_SUCESS","GET_PREV_MESSAGES_FAIL","SENDING_MESSAGE_FAILED","SENDING_MESSAGE_SUCCEEDED","SENDING_MESSAGE_START","RESENDING_MESSAGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","ON_OPERATOR_UPDATED","ON_USER_ENTERED","ON_USER_EXITED","ON_USER_MUTED","ON_USER_UNMUTED","ON_USER_BANNED","ON_USER_UNBANNED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_CHANNEL_CHANGED","ON_META_DATA_CREATED","ON_META_DATA_UPDATED","ON_META_DATA_DELETED","ON_META_COUNTERS_CREATED","ON_META_COUNTERS_UPDATED","ON_META_COUNTERS_DELETED","ON_MENTION_RECEIVED","reducer","state","action","actionTypes","currentChannel","payload","isInvalid","currentOpenChannel","participants","isFailed","messages","lastMessageTimestamp","actionChannelUrl","receivedMessages_1","_hasMore","_lastMessageTimestamp","stateChannel","stateChannelUrl","filteredAllMessages","filter","find","compareIds","loading","initialized","sentMessage_1","newMessages","m","reqId","sentMessage_2","eventedChannel","resentMessage_1","receivedMessage","updatedMessage_1","isIdentical","deletedMessageId_1","updatedOperators","enteredUser","exitedUser_1","participant","frozenChannel","frozen","unfrozenChannel","changedChannel","initialState","OpenchannelConversation","channelUrl","stores","config","queries","renderChannelTitle","onBeforeSendUserMessage","onBeforeSendFileMessage","onChatHeaderActionClick","sdkStore","userStore","logger","sdk","useReducer","messagesReducer","messagesInitialState","messagesStore","messagesDispatcher","messageInputRef","setScrollDownPromise","setShowScrollDownButton","sdkInit","userFilledMessageListParams","messageListParams","utils","userDefinedDisableUserProfile","userDefinedRenderProfile","OpenChannel","info","getChannel","messageActionTypes","enter","warning","messageReceiverId","ChannelHandler","onMessageReceived","onMessageUpdated","onMessageDeleted","onOperatorUpdated","onUserEntered","onUserExited","onUserMuted","onUserUnmuted","onUserBanned","onUserUnbanned","onChannelFrozen","onChannelUnfrozen","onChannelChanged","onMetaDataCreated","metaData","onMetaDataUpdated","onMetaDataDeleted","metaDataKeys","onMetaCountersCreated","metaCounter","onMetaCountersUpdated","onMetaCountersDeleted","metaCounterKeys","onMentionReceived","addChannelHandler","removeChannelHandler","MessageListParams","getMessagesByTimestamp","messageListParams_1","prevResultSize","isInclusive","includeReplies","includeReactions","Object","keys","forEach","key","Date","getTime","hasMore_1","lastMessageTimestamp_1","useCallback","callback","hasMore_2","lastMessageTimestamp_2","handleSendMessage","value","createParamsDefualt","txt","trim","toString","params","UserMessageParams","createCustomParams","pendingMessage","sendUserMessage","handleFileUpload","file","file_","FileMessageParams","sendFileMessage","URL","createObjectURL","updateUserMessage","failedMessage","resendUserMessage","resendFileMessage","console","handleClickScrollDownButton","promise","Promise","resolve","PlaceHolderTypes","NO_CHANNELS","LOADING","WRONG","SHEVRON_DOWN","CONTENT","name","participantCount","OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS","coverUrl","FrozenChannelNotification","withSendbirdContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/OpenChannelSettings.js b/dist/esm/OpenChannelSettings.js new file mode 100644 index 0000000..6ba23ec --- /dev/null +++ b/dist/esm/OpenChannelSettings.js @@ -0,0 +1,664 @@ +import { e as LocalizationContext, d as __spreadArrays, w as withSendbirdContext } from './LocalizationContext-619bafba.js'; +import React, { useContext, useMemo, useRef, useState, useEffect } from 'react'; +import 'prop-types'; +import { A as Avatar, M as Modal, T as Type, f as TextButton, b as Label, c as LabelTypography, d as LabelColors, I as Icon, a as IconTypes, g as IconColors, B as Button, w as Size, n as UserProfileContext, C as ContextMenu, h as MenuItems, o as UserProfile, P as PlaceHolder, m as PlaceHolderTypes, F as selectors, l as UserProfileProvider } from './index-0c67ae90.js'; +import { d as getOpenChannelAvatar, n as noop } from './utils-53ba1773.js'; +import 'date-fns/format'; +import './type-0296584d.js'; +import 'react-dom'; +import { I as InputLabel, a as Input, U as UserListItem$1 } from './index-73379213.js'; +import { c as copyToClipboard } from './utils-d7f59026.js'; +import { a as Accordion, A as AccordionGroup } from './index-7bc4a9f7.js'; + +function ChannelAvatar(_a) { + var channel = _a.channel, + theme = _a.theme, + _b = _a.height, + height = _b === void 0 ? 56 : _b, + _c = _a.width, + width = _c === void 0 ? 56 : _c; + var stringSet = useContext(LocalizationContext).stringSet; + var memoizedAvatar = useMemo(function () { + return React.createElement(Avatar, { + className: "sendbird-chat-header__avatar--group-channel", + src: getOpenChannelAvatar(channel), + width: width + "px", + height: height + "px", + alt: channel.name || stringSet.OPEN_CHANNEL_SETTINGS__NO_TITLE + }); + }, [channel.coverUrl, theme]); + return React.createElement(React.Fragment, null, memoizedAvatar); +} + +var EditDetails = function EditDetails(props) { + var _onSubmit = props.onSubmit, + onCancel = props.onCancel, + channel = props.channel, + theme = props.theme; + var inputRef = useRef(null); + var formRef = useRef(null); + var hiddenInputRef = useRef(null); + + var _a = useState(null), + currentImg = _a[0], + setCurrentImg = _a[1]; + + var _b = useState(null), + newFile = _b[0], + setNewFile = _b[1]; + + var stringSet = useContext(LocalizationContext).stringSet; + var title = channel.name; + return React.createElement(Modal, { + titleText: stringSet.MODAL__CHANNEL_INFORMATION__TITLE, + submitText: stringSet.BUTTON__SAVE, + onCancel: onCancel, + onSubmit: function onSubmit() { + if (title !== '' && !inputRef.current.value) { + if (formRef.current.reportValidity) { + // might not work in explorer + formRef.current.reportValidity(); + } + + return; + } + + _onSubmit(newFile, inputRef.current.value); + + onCancel(); + }, + type: Type.PRIMARY + }, React.createElement("form", { + className: "channel-profile-form", + ref: formRef, + onSubmit: function onSubmit(e) { + e.preventDefault(); + } + }, React.createElement("div", { + className: "channel-profile-form__img-section" + }, React.createElement(InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE), React.createElement("div", { + className: "channel-profile-form__avatar" + }, currentImg ? React.createElement(Avatar, { + height: "80px", + width: "80px", + src: currentImg + }) : React.createElement(ChannelAvatar, { + height: 80, + width: 80, + channel: channel, + theme: theme + })), React.createElement("input", { + ref: hiddenInputRef, + type: "file", + accept: "image/gif, image/jpeg, image/png", + style: { + display: 'none' + }, + onChange: function onChange(e) { + setCurrentImg(URL.createObjectURL(e.target.files[0])); + setNewFile(e.target.files[0]); + hiddenInputRef.current.value = ''; + } + }), React.createElement(TextButton, { + className: "channel-profile-form__avatar-button", + onClick: function onClick() { + return hiddenInputRef.current.click(); + }, + notUnderline: true + }, React.createElement(Label, { + type: LabelTypography.BUTTON_1, + color: LabelColors.PRIMARY + }, stringSet.MODAL__CHANNEL_INFORMATION__UPLOAD))), React.createElement("div", { + className: "channel-profile-form__name-section" + }, React.createElement(InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME), React.createElement(Input, { + required: title !== '', + name: "channel-profile-form__name", + ref: inputRef, + value: title, + placeHolder: stringSet.MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER + })))); +}; + +function ChannelProfile(props) { + var disabled = props.disabled, + channel = props.channel, + theme = props.theme, + onChannelInfoChange = props.onChannelInfoChange; + var title = channel.name; + + var _a = useState(false), + showModal = _a[0], + setShowModal = _a[1]; + + var stringSet = useContext(LocalizationContext).stringSet; + return React.createElement("div", { + className: "sendbird-openchannel-profile" + }, React.createElement("div", { + className: "sendbird-openchannel-profile--inner" + }, React.createElement("div", { + className: "sendbird-openchannel-profile__avatar" + }, React.createElement(ChannelAvatar, { + channel: channel, + theme: theme, + height: 80, + width: 80 + })), React.createElement(Label, { + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1, + className: "sendbird-openchannel-profile__title" + }, title || stringSet.OPEN_CHANNEL_SETTINGS__NO_TITLE), React.createElement(TextButton, { + disabled: disabled, + className: "sendbird-openchannel-profile__edit", + onClick: function onClick() { + if (disabled) { + return; + } + + setShowModal(true); + }, + notUnderline: true + }, React.createElement(Label, { + type: LabelTypography.BUTTON_1, + color: disabled ? LabelColors.ONBACKGROUND_2 : LabelColors.PRIMARY + }, stringSet.CHANNEL_SETTING__PROFILE__EDIT)), showModal && React.createElement(EditDetails, { + onCancel: function onCancel() { + return setShowModal(false); + }, + onSubmit: onChannelInfoChange, + channel: channel, + theme: theme + }))); +} + +function ParticipantsModal(_a) { + var hideModal = _a.hideModal, + channel = _a.channel; + var stringSet = useContext(LocalizationContext).stringSet; + + var _b = useState([]), + participants = _b[0], + setParticipants = _b[1]; + + var _c = useState(null), + participantListQuery = _c[0], + setParticipantListQuery = _c[1]; + + useEffect(function () { + if (!channel || !channel.createParticipantListQuery) { + return; + } + + var participantListQuery = channel.createParticipantListQuery(); + setParticipantListQuery(participantListQuery); + participantListQuery.next(function (participantList, error) { + if (error) { + return; + } + + setParticipants(participantList); + }); + }, []); + return React.createElement("div", null, React.createElement(Modal, { + hideFooter: true, + onCancel: function onCancel() { + return hideModal(); + }, + onSubmit: noop, + titleText: stringSet.OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE + }, React.createElement("div", { + className: "sendbird-more-members__popup-scroll", + onScroll: function onScroll(e) { + var hasNext = participantListQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + participantListQuery.next(function (fetchedParticipants, error) { + if (error) { + return; + } + + setParticipants(__spreadArrays(participants, fetchedParticipants)); + }); + } + } + }, participants.map(function (p) { + return React.createElement(UserListItem$1, { + user: p, + key: p.userId + }); + })))); +} + +var SHOWN_MEMBER_MAX = 10; +var UserListItem = function UserListItem(_a) { + var member = _a.member, + _b = _a.currentUser, + currentUser = _b === void 0 ? '' : _b; + var avatarRef = useRef(null); + + var _c = useContext(UserProfileContext), + disableUserProfile = _c.disableUserProfile, + renderUserProfile = _c.renderUserProfile; + + var stringSet = useContext(LocalizationContext).stringSet; + return React.createElement("div", { + className: "sendbird-participants-accordion__member" + }, React.createElement("div", { + className: "sendbird-participants-accordion__member-avatar" + }, React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + ref: avatarRef, + src: member.profileUrl, + width: 24, + height: 24 + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + openLeft: true, + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: member, + currentUserId: currentUser, + close: closeDropdown + }) : React.createElement(UserProfile, { + disableMessaging: true, + user: member, + currentUserId: currentUser, + onSuccess: closeDropdown + })); + } + })), React.createElement(Label, { + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1 + }, member.nickname || stringSet.NO_NAME, currentUser === member.userId && stringSet.NO_NAME)); +}; +function ParticipantsAccordion(_a) { + var channel = _a.channel, + currentUser = _a.currentUser; + + var _b = useState([]), + participants = _b[0], + setParticipants = _b[1]; + + var _c = useState(false), + showMoreModal = _c[0], + setShowMoreModal = _c[1]; + + var stringSet = useContext(LocalizationContext).stringSet; + useEffect(function () { + if (!channel || !channel.createParticipantListQuery) { + return; + } + + var participantListQuery = channel.createParticipantListQuery(); + participantListQuery.next(function (participantList, error) { + if (error) { + return; + } + + setParticipants(participantList); + }); + }, [channel]); + return React.createElement(Accordion, { + className: "sendbird-participants-accordion", + id: "participants", + renderTitle: function renderTitle() { + return React.createElement(React.Fragment, null, React.createElement(Icon, { + type: IconTypes.MEMBERS, + fillColor: IconColors.PRIMARY, + width: 24, + height: 24, + className: "sendbird-openchannel-settings__accordion-icon" + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE)); + }, + renderContent: function renderContent() { + return React.createElement("div", { + className: "" + }, React.createElement("div", { + className: "sendbird-participants-accordion__list" + }, participants.slice(0, SHOWN_MEMBER_MAX).map(function (p) { + return React.createElement(UserListItem, { + member: p, + currentUser: currentUser, + key: p.userId + }); + }), participants && participants.length === 0 ? React.createElement(Label, { + className: "sendbird-channel-settings__empty-list", + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_3 + }, stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST) : null), participants.length >= SHOWN_MEMBER_MAX && React.createElement("div", { + className: "sendbird-participants-accordion__footer" + }, React.createElement(Button, { + className: "sendbird-participants-accordion__footer__all-participants", + type: Type.SECONDARY, + size: Size.SMALL, + onClick: function onClick() { + return setShowMoreModal(true); + } + }, stringSet.OPEN_CHANNEL_SETTINGS__SEE_ALL), showMoreModal && React.createElement(ParticipantsModal, { + currentUser: currentUser, + hideModal: function hideModal() { + setShowMoreModal(false); + }, + channel: channel + }))); + } + }); +} + +function DeleteChannel(_a) { + var isOnline = _a.isOnline, + onDeleteChannel = _a.onDeleteChannel; + + var _b = useState(false), + showDeleteChannelModal = _b[0], + setShowDeleteChannelModal = _b[1]; + + var stringSet = useContext(LocalizationContext).stringSet; + return React.createElement(React.Fragment, null, React.createElement("div", { + className: "sendbird-openchannel-settings__panel-item\n sendbird-openchannel-settings__delete-channel\n " + (!isOnline ? 'sendbird-openchannel-settings__panel-item__disabled' : ''), + role: "button", + tabIndex: 0, + onKeyDown: function onKeyDown() { + if (!isOnline) { + return; + } + + setShowDeleteChannelModal(true); + }, + onClick: function onClick() { + if (!isOnline) { + return; + } + + setShowDeleteChannelModal(true); + } + }, React.createElement(Icon, { + type: IconTypes.DELETE, + className: ['sendbird-openchannel-settings__panel-icon-left', 'sendbird-openchannel-settings__panel-icon__delete'].join(' '), + height: "24px", + width: "24px" + }), React.createElement(Label, { + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL)), showDeleteChannelModal && React.createElement(Modal, { + onCancel: function onCancel() { + setShowDeleteChannelModal(false); + }, + onSubmit: function onSubmit() { + onDeleteChannel(); + }, + submitText: stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT, + titleText: stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE + })); +} + +function ParticipantsList(_a) { + var channel = _a.channel, + onCloseClick = _a.onCloseClick, + currentUser = _a.currentUser; + var stringSet = useContext(LocalizationContext).stringSet; + + var _b = useState([]), + participants = _b[0], + setParticipants = _b[1]; + + var _c = useState(null), + participantListQuery = _c[0], + setParticipantListQuery = _c[1]; + + useEffect(function () { + if (!channel || !channel.createParticipantListQuery) { + return; + } + + var participantListQuery = channel.createParticipantListQuery(); + setParticipantListQuery(participantListQuery); + participantListQuery.next(function (participantList, error) { + if (error) { + return; + } + + setParticipants(participantList); + }); + }, [channel]); + return React.createElement("div", { + className: "sendbird-openchannel-settings__participant" + }, React.createElement("div", { + className: "sendbird-openchannel-settings__header" + }, React.createElement(Label, { + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE), React.createElement(Icon, { + type: IconTypes.CLOSE, + className: "sendbird-openchannel-settings__close-icon", + height: "24px", + width: "24px", + onClick: function onClick() { + onCloseClick(); + } + })), React.createElement("div", { + className: "sendbird-openchannel-settings__participants-list", + onScroll: function onScroll(e) { + var hasNext = participantListQuery.hasNext; + var target = e.target; + var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; + + if (hasNext && fetchMore) { + participantListQuery.next(function (fetchedParticipants, error) { + if (error) { + return; + } + + setParticipants(__spreadArrays(participants, fetchedParticipants)); + }); + } + } + }, React.createElement("div", null, participants.map(function (p) { + return React.createElement(UserListItem, { + member: p, + currentUser: currentUser, + key: p.userId + }); + }), participants && participants.length === 0 ? React.createElement(Label, { + className: "sendbird-channel-settings__empty-list", + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_3 + }, stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST) : null))); +} + +function InvalidChannel(_a) { + var onCloseClick = _a.onCloseClick; + var stringSet = useContext(LocalizationContext).stringSet; + return React.createElement("div", { + className: "sendbird-openchannel-settings" + }, React.createElement("div", { + className: "sendbird-openchannel-settings__header" + }, React.createElement(Label, { + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React.createElement(Icon, { + type: IconTypes.CLOSE, + className: "sendbird-openchannel-settings__close-icon", + height: "24px", + width: "24px", + onClick: function onClick() { + onCloseClick(); + } + })), React.createElement("div", { + className: "sendbird-openchannel-settings__placeholder" + }, React.createElement(PlaceHolder, { + type: PlaceHolderTypes.WRONG + }))); +} + +var emptyLogger = function emptyLogger() { + return { + info: noop, + error: noop, + warning: noop + }; +}; + +function OpenChannelSettings(props) { + var channelUrl = props.channelUrl, + _a = props.onCloseClick, + _onCloseClick = _a === void 0 ? noop : _a, + _b = props.onChannelModified, + onChannelModified = _b === void 0 ? noop : _b, + renderChannelProfile = props.renderChannelProfile, + renderUserProfile = props.renderUserProfile, + _c = props.disableUserProfile, + disableUserProfile = _c === void 0 ? false : _c, + _d = props.logger, + logger = _d === void 0 ? emptyLogger() : _d, + sdk = props.sdk, + theme = props.theme, + user = props.user, + isOnline = props.isOnline; + + var currentUser = user.userId; + + var _e = useState(null), + channel = _e[0], + setChannel = _e[1]; + + var stringSet = useContext(LocalizationContext).stringSet; + useEffect(function () { + if (!channelUrl || !sdk || !sdk.getConnectionState) { + setChannel(null); + return; + } + + sdk.OpenChannel.getChannel(channelUrl, function (openChannel, error) { + if (!error) { + setChannel(openChannel); + } else { + setChannel(null); + } + }); + }, [channelUrl, sdk]); + + if (!channel) { + return React.createElement(InvalidChannel, { + onCloseClick: function onCloseClick() { + logger.info('OpenChannelSettings: Click close'); + + if (_onCloseClick) { + _onCloseClick(); + } + } + }); + } + + return React.createElement(UserProfileProvider, { + disableUserProfile: disableUserProfile, + renderUserProfile: renderUserProfile, + className: "sendbird-openchannel-settings" + }, channel.isOperator(user) ? React.createElement(React.Fragment, null, React.createElement("div", { + className: "sendbird-openchannel-settings__header" + }, React.createElement(Label, { + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React.createElement(Icon, { + type: IconTypes.CLOSE, + className: "sendbird-openchannel-settings__close-icon", + height: "24px", + width: "24px", + onClick: function onClick() { + _onCloseClick(); + } + })), React.createElement("div", { + className: "sendbird-openchannel-settings__profile" + }, renderChannelProfile ? renderChannelProfile({ + channel: channel + }) : React.createElement(ChannelProfile, { + disabled: !isOnline, + channel: channel, + theme: theme, + onChannelInfoChange: function onChannelInfoChange(currentImg, currentTitle) { + logger.info('ChannelSettings: Channel information being updated'); + channel.updateChannel(currentTitle, currentImg, channel.data, function (openChannel) { + logger.info('ChannelSettings: Channel information updated', openChannel); + onChannelModified(openChannel); // setChannel(openChannel) => alone not working + + setChannel(null); + setChannel(openChannel); + }); + } + })), React.createElement("div", { + className: "sendbird-openchannel-settings__url" + }, React.createElement(Icon, { + type: IconTypes.COPY, + className: "sendbird-openchannel-settings__copy-icon", + height: "22px", + width: "22px", + onClick: function onClick() { + copyToClipboard(channel.url); + } + }), React.createElement(Label, { + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2, + className: "sendbird-openchannel-settings__url-label" + }, stringSet.OPEN_CHANNEL_SETTINGS__OPERATOR_URL), React.createElement(Label, { + type: LabelTypography.SUBTITLE_2, + className: "sendbird-openchannel-settings__url-value" + }, channel.url)), React.createElement(AccordionGroup, null, React.createElement(ParticipantsAccordion, { + channel: channel, + currentUser: currentUser + })), React.createElement(DeleteChannel, { + isOnline: isOnline, + onDeleteChannel: function onDeleteChannel() { + channel.delete(function (response, error) { + if (error) { + logger.warning('OpenChannelSettings: Delete channel failed', error); + return; + } + + logger.info('OpenChannelSettings: Delete channel success', response); + }); + } + })) : React.createElement(ParticipantsList, { + currentUser: currentUser, + channel: channel, + onCloseClick: function onCloseClick() { + _onCloseClick(); + } + })); +} + +var ChannelSettingsWithSendbird = withSendbirdContext(OpenChannelSettings, function (store) { + var logger = store && store.config && store.config.logger; + var theme = store && store.config && store.config.theme || 'light'; + var isOnline = store && store.config && store.config.isOnline; + var user = store && store.stores && store.stores.userStore && store.stores.userStore.user; + return { + sdk: selectors.getSdk(store), + logger: logger, + theme: theme, + isOnline: isOnline, + user: user + }; +}); + +export default ChannelSettingsWithSendbird; +//# sourceMappingURL=OpenChannelSettings.js.map diff --git a/dist/esm/OpenChannelSettings.js.map b/dist/esm/OpenChannelSettings.js.map new file mode 100644 index 0000000..71b0e73 --- /dev/null +++ b/dist/esm/OpenChannelSettings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OpenChannelSettings.js","sources":["../../../src/ui/ChannelAvatar/OpenChannelAvatar.tsx","../../../src/smart-components/OpenChannelSettings/components/EditDetailsModal.tsx","../../../src/smart-components/OpenChannelSettings/components/ChannelProfile.tsx","../../../src/smart-components/OpenChannelSettings/components/ParticipantsModal.tsx","../../../src/smart-components/OpenChannelSettings/components/ParticipantsAccordion.tsx","../../../src/smart-components/OpenChannelSettings/components/DeleteChannel.tsx","../../../src/smart-components/OpenChannelSettings/components/ParticipantsList.tsx","../../../src/smart-components/OpenChannelSettings/components/InvalidChannel.tsx","../../../src/smart-components/OpenChannelSettings/index.tsx"],"sourcesContent":["import React, { useMemo, useContext } from 'react';\n\nimport Avatar from '../Avatar/index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendBird.OpenChannel;\n theme: string;\n height?: number;\n width?: number;\n}\n\nfunction ChannelAvatar({\n channel,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { stringSet } = useContext(LocalizationContext);\n const memoizedAvatar = useMemo(() => {\n return (\n \n );\n }, [channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n","import React, {\n useState,\n useRef,\n useContext,\n ReactElement,\n} from 'react';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Modal from '../../../ui/Modal';\nimport Input, { InputLabel } from '../../../ui/Input';\nimport Avatar from '../../../ui/Avatar/index';\nimport { Type as ButtonType } from '../../../ui/Button/type';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport TextButton from '../../../ui/TextButton';\nimport OpenChannelAvatar from '../../../ui/ChannelAvatar/OpenChannelAvatar';\n\ninterface Props {\n onSubmit(newFile: File, newTitle: string): void;\n onCancel(): void;\n channel: SendBird.OpenChannel;\n theme: string;\n}\n\nconst EditDetails = (props: Props): ReactElement => {\n const {\n onSubmit,\n onCancel,\n channel,\n theme,\n } = props;\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const hiddenInputRef = useRef(null);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n const title = channel.name;\n return (\n {\n if (title !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(newFile, inputRef.current.value);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE}\n \n
\n {\n currentImg\n ? (\n \n ) : (\n \n )\n }\n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME}\n \n \n
\n \n \n );\n};\n\nexport default EditDetails;\n","import React, {\n ReactElement,\n useContext,\n useState,\n} from 'react';\n\nimport './channel-profile.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport TextButton from '../../../ui/TextButton';\nimport OpenChannelAvatar from '../../../ui/ChannelAvatar/OpenChannelAvatar';\nimport EditDetailsModal from './EditDetailsModal';\n\ninterface Props {\n channel: SendBird.OpenChannel;\n disabled: boolean;\n theme: string;\n onChannelInfoChange(currentImg: File, currentTitle: string): void;\n}\n\nexport default function ChannelProfile(props: Props): ReactElement {\n const {\n disabled,\n channel,\n theme,\n onChannelInfoChange,\n } = props;\n const title = channel.name;\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n
\n \n
\n \n {title || stringSet.OPEN_CHANNEL_SETTINGS__NO_TITLE}\n \n {\n if (disabled) { return; }\n setShowModal(true);\n }}\n notUnderline\n >\n \n {stringSet.CHANNEL_SETTING__PROFILE__EDIT}\n \n \n {\n showModal && (\n setShowModal(false)}\n onSubmit={onChannelInfoChange}\n channel={channel}\n theme={theme}\n />\n )\n }\n
\n
\n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react';\n\nimport Modal from '../../../ui/Modal';\nimport UserListItem from '../../../ui/UserListItem';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { noop } from '../../../utils/utils';\n\ninterface Props {\n currentUser: string;\n hideModal(): void;\n channel: SendBird.OpenChannel;\n}\n\nexport default function ParticipantsModal({\n hideModal,\n channel,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const [participants, setParticipants] = useState([]);\n const [participantListQuery, setParticipantListQuery] = useState(null);\n useEffect(() => {\n if (!channel || !channel.createParticipantListQuery) {\n return;\n }\n const participantListQuery = channel.createParticipantListQuery();\n setParticipantListQuery(participantListQuery);\n participantListQuery.next((participantList, error) => {\n if (error) {\n return;\n }\n setParticipants(participantList);\n });\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText={stringSet.OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE}\n >\n {\n const { hasNext } = participantListQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n participantListQuery.next((fetchedParticipants, error) => {\n if (error) {\n return;\n }\n setParticipants([\n ...participants,\n ...fetchedParticipants,\n ])\n });\n }\n }}\n >\n { participants.map((p) => (\n \n ))}\n
\n \n \n )\n}\n","import React, {\n ReactElement,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Button from '../../../ui/Button';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../ui/Button/type';\nimport Accordion from '../../../ui/Accordion';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport Avatar from '../../../ui/Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport ParticipantsModal from './ParticipantsModal';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nconst SHOWN_MEMBER_MAX = 10;\n\ninterface UserListItemProps {\n member: SendBird.User;\n currentUser?: string;\n}\n\nexport const UserListItem = ({\n member,\n currentUser = '',\n}: UserListItemProps): ReactElement => {\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n src={member.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: member,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n
\n \n
\n );\n};\n\ninterface Props {\n channel: SendBird.OpenChannel;\n currentUser: string;\n}\n\nexport default function ParticipantsAccordion({ channel, currentUser }: Props): ReactElement {\n const [participants, setParticipants] = useState([]);\n const [showMoreModal, setShowMoreModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n if (!channel || !channel.createParticipantListQuery) {\n return;\n }\n const participantListQuery = channel.createParticipantListQuery();\n participantListQuery.next((participantList, error) => {\n if (error) {\n return;\n }\n setParticipants(participantList);\n });\n }, [channel]);\n\n return (\n (\n <>\n \n \n {stringSet.OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE}\n \n \n )}\n renderContent={() => (\n
\n
\n {\n participants.slice(0, SHOWN_MEMBER_MAX).map((p) => (\n \n ))\n }\n {\n (participants && participants.length === 0)\n ? (\n \n {stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST}\n \n ): null\n }\n
\n {\n participants.length >= SHOWN_MEMBER_MAX && (\n
\n setShowMoreModal(true)}\n >\n {stringSet.OPEN_CHANNEL_SETTINGS__SEE_ALL}\n \n {\n showMoreModal && (\n {\n setShowMoreModal(false);\n }}\n channel={channel}\n />\n )\n }\n
\n )\n }\n
\n )}\n />\n );\n}\n","import React, {\n ReactElement,\n useState,\n useContext,\n} from 'react';\n\nimport Modal from '../../../ui/Modal';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes } from '../../../ui/Icon';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n isOnline: boolean;\n onDeleteChannel(): void;\n}\n\nexport default function DeleteChannel({\n isOnline,\n onDeleteChannel,\n}: Props): ReactElement {\n const [showDeleteChannelModal, setShowDeleteChannelModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n return (\n <>\n {\n if (!isOnline) { return; }\n setShowDeleteChannelModal(true);\n }}\n onClick={() => {\n if (!isOnline) { return; }\n setShowDeleteChannelModal(true);\n }}\n >\n \n \n {stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL}\n \n \n {\n showDeleteChannelModal && (\n {\n setShowDeleteChannelModal(false);\n }}\n onSubmit={() => {\n onDeleteChannel();\n }}\n submitText={stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT}\n titleText={stringSet.OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE}\n />\n )\n }\n \n )\n}\n","import React, {\n ReactElement,\n useContext,\n useState,\n useEffect,\n} from 'react';\n\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nimport { UserListItem } from './ParticipantsAccordion';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: SendBird.OpenChannel;\n onCloseClick(): void;\n currentUser: string;\n}\n\nexport default function ParticipantsList({\n channel,\n onCloseClick,\n currentUser,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n const [participants, setParticipants] = useState([]);\n const [participantListQuery, setParticipantListQuery] = useState(null);\n useEffect(() => {\n if (!channel || !channel.createParticipantListQuery) {\n return;\n }\n const participantListQuery = channel.createParticipantListQuery();\n setParticipantListQuery(participantListQuery);\n participantListQuery.next((participantList, error) => {\n if (error) {\n return;\n }\n setParticipants(participantList);\n });\n }, [channel]);\n return (\n
\n
\n \n {\n onCloseClick();\n }}\n />\n
\n {\n const { hasNext } = participantListQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n participantListQuery.next((fetchedParticipants, error) => {\n if (error) {\n return;\n }\n setParticipants([\n ...participants,\n ...fetchedParticipants,\n ])\n });\n }\n }}\n >\n
\n {\n participants.map((p: SendBird.User) => (\n \n ))\n }\n {\n (participants && participants.length === 0)\n ? (\n \n {stringSet.OPEN_CHANNEL_SETTINGS__EMPTY_LIST}\n \n ): null\n }\n
\n
\n \n )\n}\n","import React, { ReactElement, useContext } from 'react'\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nimport PlaceHolder from '../../../ui/PlaceHolder';\nimport PlaceHolderTypes from '../../../ui/PlaceHolder/type';\n\ninterface Props {\n onCloseClick?(): void;\n}\n\nexport default function InvalidChannel({\n onCloseClick,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n {\n onCloseClick();\n }}\n />\n
\n
\n \n
\n
\n )\n}\n","import React, {\n useContext,\n useState,\n useEffect,\n} from 'react';\nimport { OpenChannelSettingsProps } from '../../index';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport selectors from '../../lib/selectors';\n\nimport { copyToClipboard } from '../../ui/Message/utils.js'\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Icon, { IconTypes } from '../../ui/Icon';\nimport ChannelProfile from './components/ChannelProfile';\nimport ParticipantsAccordion from './components/ParticipantsAccordion';\nimport DeleteChannel from './components/DeleteChannel';\nimport ParticipantsList from './components/ParticipantsList';\nimport InvalidChannel from './components/InvalidChannel';\nimport { AccordionGroup } from '../../ui/Accordion';\nimport { noop } from '../../utils/utils';\n\nconst emptyLogger = () => ({\n info: noop,\n error: noop,\n warning: noop,\n});\n\ninterface Props extends OpenChannelSettingsProps {\n logger: SendbirdUIKit.Logger;\n sdk: SendBird.SendBirdInstance;\n theme: string;\n user: SendBird.User;\n isOnline: boolean;\n}\n\nfunction OpenChannelSettings(props: Props) {\n const {\n channelUrl,\n onCloseClick = noop,\n onChannelModified = noop,\n renderChannelProfile,\n renderUserProfile,\n disableUserProfile = false,\n logger = emptyLogger(),\n sdk,\n theme,\n user,\n isOnline,\n } = props;\n\n const currentUser = user.userId;\n const [channel, setChannel] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n useEffect(() => {\n if (!channelUrl || !sdk || !sdk.getConnectionState) {\n setChannel(null);\n return;\n }\n\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (!error) {\n setChannel(openChannel);\n } else {\n setChannel(null);\n }\n });\n }, [channelUrl, sdk])\n if (!channel) {\n return (\n {\n logger.info('OpenChannelSettings: Click close');\n if (onCloseClick) {\n onCloseClick();\n }\n }}\n />\n );\n }\n return (\n \n {\n channel.isOperator(user)\n ? (\n <>\n
\n \n {\n onCloseClick();\n }}\n />\n
\n
\n {\n renderChannelProfile\n ? renderChannelProfile({ channel })\n : (\n {\n logger.info('ChannelSettings: Channel information being updated');\n channel.updateChannel(\n currentTitle,\n currentImg,\n channel.data,\n (openChannel) => {\n logger.info('ChannelSettings: Channel information updated', openChannel);\n onChannelModified(openChannel);\n // setChannel(openChannel) => alone not working\n setChannel(null);\n setChannel(openChannel);\n },\n );\n }}\n />\n )\n }\n
\n
\n {\n copyToClipboard(channel.url);\n }}\n />\n \n {stringSet.OPEN_CHANNEL_SETTINGS__OPERATOR_URL}\n \n \n {channel.url}\n \n
\n \n \n \n {\n channel.delete((response, error) => {\n if (error) {\n logger.warning('OpenChannelSettings: Delete channel failed', error);\n return;\n }\n logger.info('OpenChannelSettings: Delete channel success', response);\n });\n }}\n />\n \n ) : (\n {\n onCloseClick();\n }}\n />\n )\n }\n \n )\n}\n\nconst ChannelSettingsWithSendbird = withSendbirdContext(OpenChannelSettings, (store) => {\n const logger = (store && store.config && store.config.logger);\n const theme = (store && store.config && store.config.theme) || 'light';\n const isOnline = (store && store.config && store.config.isOnline);\n const user = (store && store.stores && store.stores.userStore\n && store.stores.userStore.user);\n return {\n sdk: selectors.getSdk(store),\n logger,\n theme,\n isOnline,\n user,\n };\n});\n\nexport default ChannelSettingsWithSendbird;\n"],"names":["ChannelAvatar","_a","channel","theme","_b","height","_c","width","stringSet","useContext","LocalizationContext","memoizedAvatar","useMemo","utils","name","OPEN_CHANNEL_SETTINGS__NO_TITLE","coverUrl","EditDetails","props","onSubmit","onCancel","inputRef","useRef","formRef","hiddenInputRef","useState","currentImg","setCurrentImg","newFile","setNewFile","title","MODAL__CHANNEL_INFORMATION__TITLE","BUTTON__SAVE","current","value","reportValidity","ButtonType","PRIMARY","e","preventDefault","MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE","OpenChannelAvatar","display","URL","createObjectURL","target","files","click","LabelTypography","BUTTON_1","LabelColors","MODAL__CHANNEL_INFORMATION__UPLOAD","MODAL__CHANNEL_INFORMATION__CHANNEL_NAME","MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER","ChannelProfile","disabled","onChannelInfoChange","showModal","setShowModal","SUBTITLE_2","ONBACKGROUND_1","ONBACKGROUND_2","CHANNEL_SETTING__PROFILE__EDIT","EditDetailsModal","ParticipantsModal","hideModal","participants","setParticipants","participantListQuery","setParticipantListQuery","useEffect","createParticipantListQuery","next","participantList","error","noop","OPEN_CHANNEL_SETTINGS__ALL_PARTICIPANTS_TITLE","hasNext","fetchMore","clientHeight","scrollTop","scrollHeight","fetchedParticipants","map","p","UserListItem","userId","SHOWN_MEMBER_MAX","member","currentUser","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","toggleDropdown","profileUrl","closeDropdown","paddingTop","paddingBottom","user","currentUserId","close","nickname","NO_NAME","ParticipantsAccordion","showMoreModal","setShowMoreModal","IconTypes","MEMBERS","IconColors","SUBTITLE_1","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_ACCORDION_TITLE","slice","length","ONBACKGROUND_3","OPEN_CHANNEL_SETTINGS__EMPTY_LIST","ButtonTypes","SECONDARY","ButtonSizes","SMALL","OPEN_CHANNEL_SETTINGS__SEE_ALL","DeleteChannel","isOnline","onDeleteChannel","showDeleteChannelModal","setShowDeleteChannelModal","DELETE","join","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_PANEL","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_SUBMIT","OPEN_CHANNEL_SETTINGS__DELETE_CHANNEL_TITLE","ParticipantsList","onCloseClick","H_2","OPEN_CHANNEL_SETTINGS__PARTICIPANTS_TITLE","CLOSE","InvalidChannel","CHANNEL_SETTING__HEADER__TITLE","PlaceHolderTypes","WRONG","emptyLogger","info","warning","OpenChannelSettings","channelUrl","onChannelModified","renderChannelProfile","_d","logger","sdk","_e","setChannel","getConnectionState","OpenChannel","getChannel","openChannel","isOperator","currentTitle","updateChannel","data","COPY","copyToClipboard","url","CAPTION_2","OPEN_CHANNEL_SETTINGS__OPERATOR_URL","delete","response","ChannelSettingsWithSendbird","withSendbirdContext","store","config","stores","userStore","selectors","getSdk"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/SendbirdProvider.css b/dist/esm/SendbirdProvider.css new file mode 100644 index 0000000..585ef25 --- /dev/null +++ b/dist/esm/SendbirdProvider.css @@ -0,0 +1,3843 @@ +.sendbird-openchannel-conversation { + position: relative; + display: flex; + flex-direction: column; + height: 100%; + width: 100%; } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + bottom: 96px; + left: calc(50% - 20px); + width: 40px; + height: 40px; + border-radius: 24px; + z-index: 1; } + .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { + background-color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { + background-color: var(--sendbird-dark-primary-200); } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { + background-color: var(--sendbird-light-primary-400); } + .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { + background-color: var(--sendbird-light-primary-500); } + .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll { + overflow-y: auto; + flex: 1 1 0; + order: 2; + width: 100%; } + .sendbird-openchannel-conversation .sendbird-openchannel-footer { + order: 3; + padding: 12px 24px 24px 24px; } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container { + display: flex; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + flex-direction: column; } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container .sendbird-openchannel-conversation-scroll-padding { + flex: 1 1 0; } + +.sendbird-openchannel-settings { + height: 100%; + width: 320px; + display: inline-block; + overflow-y: scroll; + position: relative; } + .sendbird-theme--light .sendbird-openchannel-settings { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-participants-accordion__footer { + text-align: left; + padding-top: 16px; + padding-left: 16px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__accordion-icon, + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-icon__delete { + position: absolute; + left: 16px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__participant { + height: 100%; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__participants-list { + padding-top: 64px; + height: calc(100% - 64px); + overflow-y: scroll; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { + display: block; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 1; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { + background-color: var(--sendbird-dark-background-600); } + .sendbird-openchannel-settings .sendbird-participants-accordion, + .sendbird-openchannel-settings .sendbird-openchannel-settings__delete-channel { + text-align: left; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__members .sendbird-badge__text { + margin-top: -2px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__header { + height: 64px; + min-height: 64px; + position: relative; + padding: 20px 24px; + box-sizing: border-box; + text-align: left; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__header { + border-bottom: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__header { + border-bottom: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon { + cursor: pointer; + position: absolute; + top: 20px; + right: 16px; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__placeholder { + margin-top: 40%; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url { + padding: 16px; + box-sizing: border-box; + position: relative; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url:hover .sendbird-openchannel-settings__copy-icon { + display: inline-block; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__copy-icon { + cursor: pointer; + position: absolute; + display: none; + top: 10px; + right: 18px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value { + margin-top: 8px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value, + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-label { + text-align: left; + display: block; + word-wrap: break-word; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__url { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__url { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { + display: block; + cursor: pointer; + box-sizing: border-box; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item:focus { + outline: none; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { + cursor: not-allowed; } + .sendbird-openchannel-settings .sendbird-participants-accordion__member { + position: relative; + padding: 12px 0px 12px 56px; + height: 40px; + box-sizing: border-box; + text-align: left; } + .sendbird-openchannel-settings .sendbird-participants-accordion__member .sendbird-label { + max-width: 240px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-openchannel-settings .sendbird-participants-accordion__member-avatar { + position: absolute; + left: 16px; + top: 10px; + cursor: pointer; } + +.sendbird-openchannel-conversation-header { + position: relative; + min-height: 64px; } + .sendbird-theme--light .sendbird-openchannel-conversation-header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-conversation-header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-conversation-header .sendbird-openchannel-conversation-header__left__title { + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + max-width: calc(100% - 120px); } + .sendbird-openchannel-conversation-header__left [class*=sendbird-openchannel-conversation-header__left__cover-image] { + position: absolute; + left: 20px; + top: 16px; } + .sendbird-openchannel-conversation-header__left__title { + position: absolute; + left: 60px; + top: 12px; } + .sendbird-openchannel-conversation-header__left__sub-title { + position: absolute; + left: 60px; + top: 36px; } + .sendbird-openchannel-conversation-header__right { + position: absolute; + top: 0px; + right: 0px; + width: 64px; + height: 64px; } + .sendbird-openchannel-conversation-header__right__trigger { + position: absolute; + top: 16px; + right: 16px; + display: flex; + align-items: center; + justify-content: center; } + +.sendbird-frozen-channel-notification { + position: relative; + margin-top: 8px; + margin-right: 24px; + margin-left: 24px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; } + .sendbird-theme--light .sendbird-frozen-channel-notification { + background-color: var(--sendbird-light-information-100); } + .sendbird-theme--dark .sendbird-frozen-channel-notification { + background-color: var(--sendbird-dark-information-100); } + +.sendbird-avatar { + display: inline-block; + overflow: hidden; + border-radius: 50%; + position: relative; } + .sendbird-avatar:focus { + outline: none; } + .sendbird-avatar .sendbird-avatar-img { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); } + .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:first-child { + transform: translate(2%, -50%); } + .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:last-child { + transform: translate(-102%, -50%); } + .sendbird-avatar .sendbird-avatar--inner__three-child--upper .sendbird-avatar-img:first-child { + transform: translate(-50%, -102%); } + .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:first-child { + transform: translate(-77%, -23%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:last-child { + transform: translate(-23%, -23%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:first-child { + transform: translate(-77%, -77%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(2) { + transform: translate(-23%, -77%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(3) { + transform: translate(-77%, -23%) scale(0.5); } + .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:last-child { + transform: translate(-23%, -23%) scale(0.5); } + +.sendbird-accordion { + padding: 8px 0px 16px 0px; + position: relative; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-accordion { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-accordion { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-accordion .sendbird-accordion__member { + position: relative; + padding: 12px 0px 12px 44px; + height: 40px; + box-sizing: border-box; } + .sendbird-accordion .sendbird-accordion__footer { + display: flex; + justify-content: flex-start; + margin-top: 8px; } + +.sendbird-accordion__panel-heder { + cursor: pointer; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-accordion__panel-heder { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-accordion__panel-heder { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-accordion__panel-heder:focus { + outline: none; } + .sendbird-accordion__panel-heder.sendbird-accordion__panel-item__disabled { + cursor: not-allowed; } + +.sendbird-accordion__panel-icon-left, +.sendbird-accordion__panel-icon-right { + position: absolute; + top: 10px; } + +.sendbird-accordion__panel-icon-left { + left: 16px; } + +.sendbird-accordion__panel-icon-right { + right: 16px; } + +.sendbird-accordion__panel-icon--open { + transform: rotate(90deg); } + +.sendbird-theme--light .sendbird-accordion__panel-icon--chevron path { + fill: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-accordion__panel-icon--chevron path { + fill: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-accordion__panel-icon__leave path { + fill: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-accordion__panel-icon__leave path { + fill: var(--sendbird-dark-error-300); } + +.sendbird__user-profile { + width: 320px; + border-radius: 4px; + padding: 24px; + box-sizing: border-box; + text-align: center; } + .sendbird-theme--light .sendbird__user-profile { + box-shadow: var(--sendbird-light-shadow-02); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird__user-profile { + box-shadow: var(--sendbird-dark-shadow-02); + background-color: var(--sendbird-dark-background-500); } + .sendbird__user-profile .sendbird__user-profile-avatar { + margin: 8px 0px; } + .sendbird__user-profile .sendbird__user-profile-name { + max-width: 270px; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; } + .sendbird__user-profile .sendbird__user-profile-message { + margin-top: 20px; } + .sendbird__user-profile .sendbird__user-profile-message button { + width: 272px; } + .sendbird__user-profile .sendbird__user-profile-seperator { + margin: 24px 0px; + height: 1px; } + .sendbird-theme--light .sendbird__user-profile .sendbird__user-profile-seperator { + background-color: var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird__user-profile .sendbird__user-profile-seperator { + background-color: var(--sendbird-dark-ondark-04); } + .sendbird__user-profile .sendbird__user-profile-userId--label, + .sendbird__user-profile .sendbird__user-profile-userId--value { + display: block; + text-align: left; } + .sendbird__user-profile .sendbird__user-profile-userId--label { + margin-bottom: 8px; } + +.sendbird-openchannel-profile { + position: relative; + text-align: center; + padding: 32px 40px 27px 40px; } + .sendbird-theme--light .sendbird-openchannel-profile { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-openchannel-profile { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-openchannel-profile .sendbird-openchannel-profile--inner { + height: 116px; } + .sendbird-openchannel-profile .sendbird-openchannel-profile__avatar { + margin-bottom: 16px; + text-align: center; } + .sendbird-openchannel-profile .sendbird-openchannel-profile__title { + max-width: 240px; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + height: 18px; } + .sendbird-openchannel-profile .sendbird-openchannel-profile__edit { + position: absolute; + top: 10px; + right: 16px; } + +.sendbird-openchannel-conversation-scroll { + position: relative; + width: 100%; } + .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container { + position: absolute; + width: 100%; } + .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding { + height: 8px; } + +.sendbird-openchannel-admin-message { + position: relative; + margin: 16px 24px; + padding: 12px 16px; + border-radius: 4px; } + .sendbird-theme--light .sendbird-openchannel-admin-message { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-admin-message { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-admin-message .sendbird-openchannel-admin-message__text { + word-wrap: break-word; } + +.sendbird-openchannel-user-message { + position: relative; + display: flex; + flex-direction: row; + width: 100%; } + .sendbird-theme--light .sendbird-openchannel-user-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-user-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-user-message:hover .sendbird-openchannel-user-message__context-menu { + display: block; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left .sendbird-openchannel-user-message__left__avatar { + position: relative; + display: flex; + margin-top: 8px; + margin-left: 24px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + margin: 8px 24px 8px 12px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top { + position: relative; + display: flex; + margin-bottom: 2px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sender-name { + position: relative; + display: flex; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sent-at { + position: relative; + display: flex; + margin-left: 4px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom { + position: relative; + display: flex; + width: 100%; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom .sendbird-openchannel-user-message__right__bottom__message { + position: relative; + word-break: break-all; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu { + position: absolute; + right: 16px; + display: none; } + .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { + background-color: var(--sendbird-dark-background-400); } + +.sendbird-openchannel-og-message { + position: relative; + display: flex; + flex-direction: column; + width: 100%; } + .sendbird-theme--light .sendbird-openchannel-og-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-og-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-og-message:hover .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { + display: block; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top { + box-sizing: border-box; + position: relative; + display: flex; + flex-direction: row; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left .sendbird-openchannel-og-message__top__left__avatar { + position: absolute; + display: flex; + top: 8px; + left: 24px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right { + position: relative; + display: flex; + box-sizing: border-box; + flex-direction: column; + margin: 8px 24px 8px 12px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title { + position: relative; + display: flex; + margin-bottom: 2px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sender-name { + position: relative; + display: flex; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sent-at { + position: relative; + display: flex; + margin-left: 4px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__description .sendbird-openchannel-og-message__top__right__description__message { + position: relative; + display: inline; + white-space: pre-wrap; + word-break: break-all; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { + position: absolute; + right: 16px; + display: none; } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom { + position: relative; + display: inline; + margin-bottom: 8px; + width: 100%; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { + position: relative; + display: inline-block; + box-sizing: border-box; + width: calc(100% - 64px); + max-width: 360px; + left: 64px; + padding: 12px 12px 4px 12px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { + border: solid 1px var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { + border: solid 1px var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__url { + position: relative; + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-bottom: 8px; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title { + position: relative; + display: inline-block; + white-space: pre-wrap; + overflow-wrap: normal; + margin-bottom: 8px; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { + color: var(--sendbird-dark-primary-200); } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__description { + position: relative; + display: block; + white-space: pre-wrap; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + max-height: 32px; + margin-bottom: 8px; + width: 100%; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail { + box-sizing: border-box; + position: relative; + display: block; + margin-top: 4px; + margin-bottom: 8px; + width: 100%; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail:hover { + cursor: pointer; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image { + border-radius: 8px; + width: 100%; + min-width: 200px; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image--placeholder { + border-radius: 8px; + width: 100%; + min-width: 200px; + max-width: 336px; } + +.sendbird-openchannel-og-message--word { + display: inline; + margin: 0px 2px; + word-break: break-all; } + +.sendbird-theme--light .sendbird-openchannel-og-message--word--link { + color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-openchannel-og-message--word--link { + color: var(--sendbird-dark-primary-200); } + +.sendbird-app__wrap { + width: 100%; + height: 100%; + display: flex; } + .sendbird-app__wrap .sendbird-app__conversation-wrap { + flex: 1; + position: relative; } + .sendbird-app__wrap .sendbird-app__channellist-wrap { + max-width: 320px; } + .sendbird-theme--light .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { + background-color: var(--sendbird-dark-background-700); } + .sendbird-app__wrap .sendbird-channel-settings { + border-left: none; } + .sendbird-app__wrap .sendbird-channel-settings .sendbird-channel-settings__header { + height: 65px; } + +.sendbird-openchannel-file-message { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-openchannel-file-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-file-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-file-message:hover .sendbird-openchannel-file-message__context-menu { + display: block; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left .sendbird-openchannel-file-message__left__avatar { + position: absolute; + display: block; + margin-top: 8px; + margin-left: 24px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right { + position: relative; + display: flex; + flex-direction: column; + margin-left: 12px; + margin-bottom: 4px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title { + position: relative; + display: flex; + margin-top: 8px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sender-name { + position: relative; + display: flex; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sent-at { + position: relative; + display: flex; + margin-left: 4px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { + position: relative; + display: flex; + margin-top: 4px; + margin-bottom: 4px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { + background-color: var(--sendbird-light-background-100); + border: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { + background-color: var(--sendbird-dark-background-500); + border: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { + position: relative; + display: inline-block; + margin: 8px; + border-radius: 8.6px; } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { + background-color: var(--sendbird-dark-background-600); } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__file-name { + position: relative; + display: flex; + margin-top: 22px; + margin-right: 16px; + margin-left: 4px; + overflow: hidden; + height: 20px; + max-height: 20px; + text-overflow: ellipsis; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu { + position: absolute; + display: none; + top: 8px; + right: 16px; } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { + background-color: var(--sendbird-dark-background-400); } + +.sendbird-openchannel-thumbnail-message { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu { + display: block; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left .sendbird-openchannel-thumbnail-message__left__avatar { + position: absolute; + display: inline; + margin-top: 8px; + margin-left: 28px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right { + position: relative; + display: flex; + flex-direction: column; + margin-top: 8px; + margin-bottom: 8px; + margin-left: 12px; + width: calc(100% - 64px); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title { + position: relative; + display: inline; + margin-bottom: 4px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sender-name { + position: relative; + display: inline; + margin-right: 4px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sent-at { + position: relative; + display: inline; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body { + position: relative; + display: inline; + border-radius: 8px; + width: 100%; + max-width: 360px; + height: 100%; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body:hover .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + opacity: 1; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap { + position: relative; + width: 100%; + height: 100%; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + max-width: 360px; + top: 0px; + left: 0px; + border-radius: 8px; + cursor: pointer; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video { + max-width: 360px; + height: 270px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video:hover { + cursor: pointer; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__video { + max-width: 360px; + height: 270px; + border-radius: 8px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { + padding: 107px 152px 107px 152px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image { + border-radius: 8px; + max-width: 360px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { + padding: 107px 152px 107px 152px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { + padding: 107px 152px 107px 152px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__context-menu { + position: absolute; + display: none; + top: 8px; + right: 16px; } + +.sendbird__edit-user-profile section { + margin-top: 16px; } + .sendbird__edit-user-profile section .sendbird-input-label { + display: block; + margin-bottom: 12px; } + +.sendbird__edit-user-profile .sendbird__edit-user-profile__img .sendbird-input-label { + margin-bottom: 12px; } + +.sendbird__edit-user-profile__img { + position: relative; } + +.sendbird__edit-user__avatar-button { + position: absolute; + top: 50px; + left: 96px; } + +.sendbird__edit-user__theme-icon .sendbird-icon { + cursor: pointer; } + +.sendbird-channel-list { + width: 320px; + height: 100%; + display: flex; + flex-direction: column; } + .sendbird-theme--light .sendbird-channel-list { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-list { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-channel-list__header { + height: 64px; + min-height: 64px; } + +.sendbird-channel-list__body { + flex: 1 1 0; + -ms-flex: 1; + overflow-y: auto; + overflow-x: hidden; } + +.sendbird-conversation { + display: flex; + flex-direction: column; + height: 100%; } + .sendbird-theme--light .sendbird-conversation { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-conversation { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-conversation__messages { + overflow-y: auto; + flex: 1 1 0; + order: 2; } + +.sendbird-conversation__messages-list { + display: flex; + flex-direction: column; + height: 100%; + justify-content: flex-end; } + +.sendbird-conversation__footer { + order: 3; + padding: 0px 24px 24px 24px; } + +.sendbird-conversation__scroll-container { + display: flex; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + flex-direction: column; } + .sendbird-conversation__scroll-container .sendbird-conversation__padding { + flex: 1 1 0; } + +.sendbird-conversation__footer { + position: relative; } + .sendbird-conversation__footer .sendbird-conversation__typing-indicator { + position: absolute; + bottom: 8px; } + +.sendbird-channel-settings { + height: 100%; + width: 320px; + display: inline-block; } + .sendbird-theme--light .sendbird-channel-settings { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-channel-settings .sendbird-channel-settings__header-icon { + cursor: pointer; + position: absolute; + top: 18px; + right: 21px; } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-channel-settings .sendbird-channel-settings__members .sendbird-badge__text { + margin-top: -2px; } + .sendbird-channel-settings .sendbird-channel-settings__header { + height: 64px; + min-height: 64px; + position: relative; + padding: 20px 24px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header { + border-bottom: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header { + border-bottom: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-channel-settings .sendbird-channel-settings__scroll-area { + display: flex; + flex-grow: 1; + flex-direction: column; + height: calc(100% - 64px); + overflow-y: auto; } + .sendbird-channel-settings .sendbird-channel-settings__panel-item { + cursor: pointer; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-item { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-item { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-channel-settings .sendbird-channel-settings__panel-item:focus { + outline: none; } + .sendbird-channel-settings .sendbird-channel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { + cursor: not-allowed; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left, + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { + position: absolute; + top: 10px; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left { + left: 16px; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { + right: 16px; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon--open { + transform: rotate(90deg); } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { + fill: var(--sendbird-light-error-300); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { + fill: var(--sendbird-dark-error-300); } + +.sendbird-notification { + margin-top: 8px; + margin-left: 24px; + margin-right: 24px; + border-radius: 4px; + padding: 0px 2px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; } + .sendbird-theme--light .sendbird-notification { + background-color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-notification { + background-color: var(--sendbird-dark-primary-200); } + .sendbird-notification:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-notification:hover { + background-color: var(--sendbird-light-primary-400); } + .sendbird-theme--dark .sendbird-notification:hover { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen { + background-color: var(--sendbird-light-information-100); } + .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen { + background-color: var(--sendbird-dark-information-100); } + .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { + color: var(--sendbird-dark-onlight-01); } + .sendbird-notification .sendbird-notification__text { + display: flex; + align-items: center; + justify-content: center; + margin-right: 8px; } + +.sendbird-muted-avatar { + border-radius: 50%; + display: inline-block; } + .sendbird-muted-avatar .sendbird-muted-avatar__icon { + position: relative; } + .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon { + position: absolute; + top: 4px; + left: 4px; } + .sendbird-muted-avatar .sendbird-muted-avatar__bg { + opacity: .5; + position: absolute; + border-radius: 50%; + top: 0; + left: 0; } + .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg { + background-color: var(--sendbird-light-primary-400); } + .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg { + background-color: var(--sendbird-dark-primary-300); } + +.sendbird-place-holder { + display: flex; + justify-content: center; + align-items: center; + height: 100%; } + .sendbird-place-holder .sendbird-place-holder__body { + display: flex; + flex-direction: column; + height: 104px; + align-items: center; } + .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__icon { + margin-bottom: 10px; } + .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__text { + margin-top: 10px; } + .sendbird-place-holder .sendbird-place-holder__body__reconnect { + margin-top: 18px; + display: flex; + flex-direction: row; + cursor: pointer; } + .sendbird-place-holder .sendbird-place-holder__body__reconnect .sendbird-place-holder__body__reconnect__icon { + margin-right: 4px; } + +.sendbird-channel-settings__operator .sendbird-channel-settings__accordion-icon { + position: absolute; + left: 14px; } + +.sendbird-channel-settings__operator .sendbird-accordion__panel-heder { + position: relative; } + +.sendbird-channel-settings__empty-list { + text-align: center; + margin-top: 12px; + margin-bottom: 4px; + display: block; } + +.sendbird-channel-settings-accordion__footer { + padding-top: 16px; + display: flex; + justify-content: left; + padding-left: 12px; } + .sendbird-channel-settings-accordion__footer .sendbird-button:nth-child(2) { + margin-left: 8px; } + +.sendbird-channel-settings__freeze { + max-width: 320px; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-channel-settings__freeze { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings__freeze { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-channel-settings__frozen-icon { + position: absolute; + right: 20px; + top: 12px; } + .sendbird-channel-settings__frozen-icon .sendbird-icon { + cursor: pointer; } + +.sendbird-channel-settings__members-list .sendbird-badge, +.sendbird-channel-settings__members .sendbird-badge { + position: absolute; + right: 44px; + top: 12px; } + .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--light + .sendbird-channel-settings__members .sendbird-badge { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--dark + .sendbird-channel-settings__members .sendbird-badge { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--light + .sendbird-channel-settings__members .sendbird-badge .sendbird-label { + color: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--dark + .sendbird-channel-settings__members .sendbird-badge .sendbird-label { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-user-list-item--small { + display: block; + position: relative; + box-sizing: border-box; + height: 40px; } + .sendbird-user-list-item--small__avatar { + cursor: pointer; + position: absolute; + top: 10px; + left: 12px; } + .sendbird-user-list-item--small .sendbird-muted-avatar { + position: absolute; + top: 10px; + left: 12px; + z-index: 2; + pointer-events: none; } + .sendbird-user-list-item--small__title { + position: absolute; + top: 10px; + left: 54px; + width: 160px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item--small__subtitle { + position: absolute; + top: 23px; + left: 140px; + max-width: 237px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item--small__checkbox { + position: absolute; + top: 16px; + right: 16px; } + .sendbird-user-list-item--small__action { + display: none; + position: absolute; + right: 10px; + top: 4px; } + .sendbird-user-list-item--small__operator { + position: absolute; + right: 24px; + top: 10px; } + .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed { + background-color: var(--sendbird-dark-background-500); } + .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action { + display: block; } + .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator { + display: none; } + .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { + background-color: var(--sendbird-dark-background-700); } + +.sendbird-iconbutton { + color: var(--sendbird-iconbutton-color); + display: inline-block; + padding: 3px; + background-color: transparent; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 1px solid transparent; + border-radius: 4px; + outline: 0px; } + .sendbird-theme--light .sendbird-iconbutton .sendbird-iconbutton__inner svg { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-iconbutton .sendbird-iconbutton__inner svg { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-theme--light .sendbird-iconbutton:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-iconbutton:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-theme--light .sendbird-iconbutton:focus { + box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } + .sendbird-theme--dark .sendbird-iconbutton:focus { + box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } + .sendbird-theme--light .sendbird-iconbutton:active { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-iconbutton:active { + background-color: var(--sendbird-dark-background-400); } + .sendbird-iconbutton:disabled { + cursor: not-allowed !important; } + .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { + fill: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { + fill: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-iconbutton--pressed { + background-color: var(--sendbird-light-primary-100); } + +.sendbird-theme--dark .sendbird-iconbutton--pressed { + background-color: var(--sendbird-dark-background-700); } + +[class*=sendbird-label] { + font-family: var(--sendbird-font-family-default); } + +.sendbird-label--h-1 { + font-size: 20px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.4; + letter-spacing: -0.2px; } + +.sendbird-label--h-2 { + font-size: 18px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: -0.2px; } + +.sendbird-label--subtitle-1 { + font-size: 16px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.38; + letter-spacing: -0.2px; } + +.sendbird-label--subtitle-2 { + font-size: 14px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.14; + letter-spacing: -0.2px; } + +.sendbird-label--body-1 { + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } + +.sendbird-label--body-2 { + font-size: 12px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.33; + letter-spacing: normal; } + +.sendbird-label--button-1 { + font-size: 14px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } + +.sendbird-label--button-2 { + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } + +.sendbird-label--caption-1 { + font-size: 14px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } + +.sendbird-label--caption-2 { + font-size: 12px; + font-weight: bold; + font-style: normal; + line-height: 1; + letter-spacing: normal; } + +.sendbird-label--caption-3 { + font-size: 12px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; } + +.sendbird-theme--light .sendbird-label--color-onbackground-1 { + color: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-1 { + color: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-label--color-onbackground-2 { + color: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-2 { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-label--color-onbackground-3 { + color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-3 { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-label--color-oncontent-1 { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-1 { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-label--color-oncontent-2 { + color: var(--sendbird-light-ondark-02); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-2 { + color: var(--sendbird-dark-onlight-02); } + +.sendbird-theme--light .sendbird-label--color-primary { + color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-label--color-primary { + color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-label--color-error { + color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-label--color-error { + color: var(--sendbird-dark-error-300); } + +.sendbird-theme--light .sendbird-label--color-secondary-3 { + color: var(--sendbird-light-secondary-300); } + +.sendbird-theme--dark .sendbird-label--color-secondary-3 { + color: var(--sendbird-dark-secondary-200); } + +.sendbird-icon { + display: inline-block; } + .sendbird-icon:focus { + outline: none; } + +.sendbird-theme--light .sendbird-color--primary [class*='fill'] { + fill: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-color--primary [class*='fill'] { + fill: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-color--primary [class*='stroke'] { + stroke: var(--sendbird-light-primary-300); + stroke-width: 2px; + stroke-linejoin: round; } + +.sendbird-theme--dark .sendbird-color--primary [class*='stroke'] { + stroke: var(--sendbird-dark-primary-200); + stroke-width: 2px; + stroke-linejoin: round; } + +.sendbird-theme--light .sendbird-color--secondary [class*='fill'] { + fill: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-color--secondary [class*='fill'] { + fill: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-color--content [class*='fill'] { + fill: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-color--content [class*='fill'] { + fill: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-color--content-inverse [class*='fill'] { + fill: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-color--content-inverse [class*='fill'] { + fill: var(--sendbird-dark-ondark-01); } + +.sendbird-color--white [class*='fill'] { + fill: #ffffff; } + +.sendbird-theme--light .sendbird-color--sent [class*='fill'] { + fill: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-color--sent [class*='fill'] { + fill: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-color--read [class*='fill'] { + fill: var(--sendbird-light-secondary-300); } + +.sendbird-theme--dark .sendbird-color--read [class*='fill'] { + fill: var(--sendbird-dark-secondary-200); } + +.sendbird-theme--light .sendbird-color--on-background-2 [class*='fill'] { + fill: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-color--on-background-2 [class*='fill'] { + fill: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-color--on-background-3 [class*='fill'] { + fill: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-color--on-background-3 [class*='fill'] { + fill: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-color--background-3 [class*='fill'] { + fill: var(--sendbird-light-background-300); } + +.sendbird-theme--dark .sendbird-color--background-3 [class*='fill'] { + fill: var(--sendbird-dark-background-400); } + +.sendbird-textbutton { + text-decoration: underline; + cursor: pointer; } + +.sendbird-textbutton--not-underline { + text-decoration: none; + cursor: pointer; } + +.sendbird-textbutton--disabled { + cursor: not-allowed; } + .sendbird-theme--light .sendbird-textbutton--disabled { + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-textbutton--disabled { + color: var(--sendbird-dark-ondark-03); } + +.sendbird__offline .sendbird-dropdown__menu .sendbird-dropdown__menu-item { + cursor: not-allowed; } + +.sendbird-dropdown__menu { + z-index: 99999; + position: absolute; + top: 100%; + left: 0; + min-width: 140px; + margin: 0px; + padding: 8px 0px; + border-radius: 4px; + list-style: none; } + .sendbird-theme--light .sendbird-dropdown__menu { + box-shadow: var(--sendbird-light-shadow-02); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-dropdown__menu { + box-shadow: var(--sendbird-dark-shadow-02); + background-color: var(--sendbird-dark-background-500); } + .sendbird-dropdown__menu .sendbird-dropdown__menu-item { + cursor: pointer; + white-space: nowrap; + padding: 8px 16px; } + .sendbird-theme--light .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { + background-color: var(--sendbird-dark-background-400); } + +.sendbird-dropdown__reaction-bar { + position: absolute; + top: 100%; + left: 0; + min-width: 44px; + max-width: 352px; + max-height: 208px; + overflow-y: scroll; + margin: 0px; + padding: 8px; + border-radius: 8px; + list-style: none; } + .sendbird-theme--light .sendbird-dropdown__reaction-bar { + box-shadow: var(--sendbird-light-shadow-02); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-dropdown__reaction-bar { + box-shadow: var(--sendbird-dark-shadow-02); + background-color: var(--sendbird-dark-background-500); } + .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button, .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button--selected { + margin: 4px; } + +.sendbird-dropdown__menu-backdrop { + background-color: transparent; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +.sendbird-reactions--pressed { + display: block !important; } + +.sendbird-icon--pressed { + display: block !important; } + +.sendbird-message-input { + display: inline-block; + width: 100%; + position: relative; } + .sendbird-message-input .sendbird-message-input--textarea { + width: 100%; + border-radius: 4px; + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + height: 56px; + overflow-y: hidden; + letter-spacing: normal; + padding: 18px 64px 18px 16px; + box-sizing: border-box; + resize: none; + font-family: var(--sendbird-font-family-default); + background-color: inherit; } + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea { + color: var(--sendbird-light-onlight-01); + caret-color: var(--sendbird-light-primary-300); + border: solid 1px var(--sendbird-light-onlight-03); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea { + color: var(--sendbird-dark-ondark-01); + caret-color: var(--sendbird-dark-primary-200); + border: solid 1px var(--sendbird-dark-ondark-03); + background-color: var(--sendbird-dark-background-500); } + .sendbird-message-input .sendbird-message-input--textarea:focus { + outline: none; } + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:focus { + color: var(--sendbird-light-onlight-01); + border: solid 1px var(--sendbird-light-primary-300); + box-shadow: var(--sendbird-light-shadow-message-input); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:focus { + color: var(--sendbird-dark-ondark-01); + border: solid 1px var(--sendbird-dark-primary-200); + box-shadow: var(--sendbird-dark-shadow-message-input); } + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:active { + border: solid 1px var(--sendbird-message-input-border-active); + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:active { + border: solid 1px var(--sendbird-message-input-border-active); + color: var(--sendbird-dark-ondark-01); } + .sendbird-message-input .sendbird-message-input--placeholder { + position: absolute; + pointer-events: none; + top: 18px; + left: 16px; + font-family: var(--sendbird-font-family-default); + font-size: 14px; + line-height: 1.43; } + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--placeholder { + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--placeholder { + color: var(--sendbird-dark-ondark-03); } + .sendbird-message-input .sendbird-message-input--attach { + position: absolute; + right: 12px; + bottom: 18px; + padding: 6px; } + .sendbird-message-input .sendbird-message-input--send { + position: absolute; + padding: 6px; + right: 16px; + bottom: 16px; } + .sendbird-message-input .sendbird-message-input--attach-input { + display: none; } + +.sendbird-message-input__edit { + padding: 16px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-message-input__edit { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-message-input__edit { + background-color: var(--sendbird-dark-background-700); } + +.sendbird-message-input--edit-action { + text-align: right; + margin-top: 4px; } + .sendbird-message-input--edit-action button:last-child { + margin-left: 8px; } + .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { + width: 80px; } + .sendbird-theme--light .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { + border: solid 1px var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { + border: solid 1px var(--sendbird-dark-ondark-03); } + .sendbird-message-input--edit-action .sendbird-message-input--edit-action__save { + width: 80px; } + +.sendbird-message-input-form__disabled { + cursor: not-allowed; } + +.sendbird-message-input__disabled { + pointer-events: none; + cursor: disabled; } + .sendbird-theme--light .sendbird-message-input__disabled .sendbird-message-input--textarea { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-message-input__disabled .sendbird-message-input--textarea { + background-color: var(--sendbird-dark-background-500); } + .sendbird-theme--light .sendbird-message-input__disabled svg { + fill: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-message-input__disabled svg { + fill: var(--sendbird-dark-ondark-03); } + +.sendbird-image-renderer--hidden-placeholder { + display: none; } + +.sendbird-separator { + width: 100%; + display: flex; + align-items: center; } + .sendbird-separator .sendbird-separator__left { + border: none; + height: 1px; + display: inline-block; + width: 100%; } + .sendbird-separator .sendbird-separator__right { + border: none; + height: 1px; + display: inline-block; + width: 100%; } + .sendbird-separator .sendbird-separator__text { + margin: 0px 16px; + display: flex; + white-space: nowrap; } + +.sendbird-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; } + +.sendbird-modal-content { + width: 480px; + border-radius: 4px; + z-index: 10001; + padding: 18px 24px 24px 24px; + position: relative; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-modal-content { + background-color: var(--sendbird-light-background-50); + box-shadow: var(--sendbird-light-shadow-04); } + .sendbird-theme--dark .sendbird-modal-content { + background-color: var(--sendbird-dark-background-500); + box-shadow: var(--sendbird-dark-shadow-04); } + .sendbird-modal-content .sendbird-modal-close { + position: absolute; + top: 16px; + right: 16px; + cursor: pointer; } + .sendbird-theme--light .sendbird-modal-content .sendbird-modal-close path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-modal-content .sendbird-modal-close path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-modal-content .sendbird-modal-header { + margin-bottom: 16px; } + .sendbird-modal-content .sendbird-modal-footer { + margin-top: 32px; + text-align: right; } + .sendbird-modal-content .sendbird-modal-footer .sendbird-button:last-child { + margin-left: 8px; + width: 80px; + height: 40px; } + +.sendbird-modal-backdrop { + position: fixed; + z-index: 10000; + height: 100%; + width: 100%; + top: 0; + left: 0; } + .sendbird-theme--light .sendbird-modal-backdrop { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-modal-backdrop { + background-color: var(--sendbird-dark-overlay); } + +.sendbird-fileviewer { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 100000; } + .sendbird-theme--light .sendbird-fileviewer { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-fileviewer { + background-color: var(--sendbird-dark-background-600); } + +.sendbird-fileviewer__header { + height: 64px; + min-height: 64px; + box-sizing: border-box; + display: flex; + justify-content: space-between; } + .sendbird-theme--light .sendbird-fileviewer__header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-fileviewer__header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-fileviewer__header .sendbird-fileviewer__header-left { + padding: 16px 0px 16px 20px; + display: flex; + flex: 1; } + .sendbird-fileviewer__header .sendbird-fileviewer__header-right { + display: flex; + width: 160px; + justify-content: flex-end; } + .sendbird-fileviewer__header .sendbird-fileviewer__header-download, + .sendbird-fileviewer__header .sendbird-fileviewer__header-delete, + .sendbird-fileviewer__header .sendbird-fileviewer__header-close { + width: 64px; + padding: 21px; + box-sizing: border-box; + cursor: pointer; } + .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--light + .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--light + .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--dark + .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--dark + .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-close { + border-left: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-close { + border-left: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-fileviewer__header-avatar { + margin-right: 8px; } + +.sendbird-fileviewer__header-actions { + right: 0; + display: flex; + flex-direction: row; } + +.sendbird-fileviewer__header-filename { + max-width: 500px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: inline-block; + padding-top: 2px; } + +.sendbird-fileviewer__header-sendername { + max-width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: inline-block; + margin-left: 8px; + padding-top: 5px; } + +.sendbird-fileviewer__content { + height: calc(100% - 72px); + margin-top: 8px; + overflow-y: auto; + display: flex; + align-items: center; + justify-content: center; } + .sendbird-fileviewer__content .sendbird-fileviewer__video { + max-width: 100%; + max-height: 100%; } + .sendbird-fileviewer__content .sendbird-fileviewer__img { + max-width: 90%; + max-height: 90%; } + .sendbird-fileviewer__content .sendbird-fileviewer__unsupported { + max-width: 100%; + max-height: 100%; + display: flex; + justify-content: center; + align-items: center; } + +.sendbird-input { + display: inline-block; + width: 100%; + height: 40px; + position: relative; } + .sendbird-input .sendbird-input--input { + width: 100%; + height: 100%; + border-radius: 4px; + font-family: var(--sendbird-font-family-default); + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; + padding: 10px 16px; + box-sizing: border-box; + background-color: inherit; } + .sendbird-theme--light .sendbird-input .sendbird-input--input { + color: var(--sendbird-light-onlight-01); + caret-color: var(--sendbird-light-primary-300); + border: solid 1px var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input { + color: var(--sendbird-dark-ondark-01); + caret-color: var(--sendbird-dark-primary-200); + border: solid 1px var(--sendbird-dark-ondark-03); } + .sendbird-input .sendbird-input--input:focus { + outline: none; } + .sendbird-theme--light .sendbird-input .sendbird-input--input:focus { + box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-light-onlight-01); + border: solid 2px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input:focus { + box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-dark-ondark-01); + border: solid 2px var(--sendbird-dark-primary-200); } + .sendbird-theme--light .sendbird-input .sendbird-input--input:active { + box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-light-onlight-01); + border: solid 1px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input:active { + box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-dark-ondark-01); + border: solid 1px var(--sendbird-dark-primary-200); } + .sendbird-input .sendbird-input--input:disabled { + cursor: not-allowed; } + .sendbird-theme--light .sendbird-input .sendbird-input--input:disabled { + background-color: var(--sendbird-light-background-100); + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input:disabled { + background-color: var(--sendbird-dark-background-500); + color: var(--sendbird-dark-ondark-03); } + .sendbird-input .sendbird-input--placeholder { + position: absolute; + pointer-events: none; + top: 10px; + left: 16px; + font-family: var(--sendbird-font-family-default); + font-size: 14px; + line-height: 1.43; } + .sendbird-theme--light .sendbird-input .sendbird-input--placeholder { + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-input .sendbird-input--placeholder { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-input-label { + margin: 4px 0; } + +.sendbird-user-list-item { + display: block; + position: relative; + box-sizing: border-box; + width: 432px; + height: 56px; } + .sendbird-theme--light .sendbird-user-list-item { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-user-list-item { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-500); } + .sendbird-user-list-item__avatar { + position: absolute; + top: 8px; + left: 0px; + z-index: 1; + cursor: pointer; } + .sendbird-user-list-item .sendbird-muted-avatar { + position: absolute; + top: 8px; + left: 0px; + z-index: 2; + pointer-events: none; } + .sendbird-user-list-item__title { + position: absolute; + top: 17px; + left: 56px; + max-width: 280px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item__subtitle { + position: absolute; + top: 23px; + left: 140px; + max-width: 237px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item__checkbox { + position: absolute; + top: 16px; + right: 16px; } + .sendbird-user-list-item__action { + position: absolute; + right: 0; + top: 10px; } + .sendbird-user-list-item__operator { + position: absolute; + right: 40px; + top: 22px; } + +.sendbird__offline .sendbird-channel-preview { + cursor: not-allowed; } + +.sendbird-channel-preview { + position: relative; + cursor: pointer; + box-sizing: border-box; + width: 320px; + height: 80px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + padding: 12px 16px 12px 16px; } + .sendbird-theme--light .sendbird-channel-preview { + border-bottom: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-preview { + border-bottom: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-channel-preview .sendbird-channel-preview__frozen-icon { + padding-left: 4px; } + .sendbird-channel-preview .sendbird-channel-preview__broadcast-icon { + padding-right: 4px; } + .sendbird-channel-preview:focus { + outline: none; } + .sendbird-channel-preview .sendbird-channel-preview__avatar { + width: 56px; + height: 56px; } + .sendbird-channel-preview .sendbird-channel-preview__content { + width: 100%; + height: 100%; + margin-left: 16px; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper { + display: flex; + justify-content: space-between; + width: 216px; + height: 16px; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header { + display: flex; + justify-content: flex-start; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__channel-name { + overflow: hidden; + text-overflow: ellipsis; + max-width: 128px; + word-break: break-all; + white-space: nowrap; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__total-members { + margin-top: 2px; + margin-left: 4px; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__last-message-at { + margin-left: 4px; + margin-bottom: 4px; + white-space: nowrap; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower { + margin-top: 8px; + width: 216px; + height: 32px; + display: flex; + justify-content: space-between; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__last-message { + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__unread-message-count { + margin-left: 8px; + margin-bottom: 12px; } + .sendbird-channel-preview .sendbird-channel-preview__action { + position: absolute; + top: 12px; + right: 12px; + display: inline-block; } + .sendbird-channel-preview .sendbird-channel-preview__action .sendbird-iconbutton { + display: none; } + .sendbird-theme--light .sendbird-channel-preview:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-channel-preview:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-channel-preview:hover .sendbird-channel-preview__action .sendbird-iconbutton { + display: inline-block; } + .sendbird-channel-preview:hover .sendbird-channel-preview__content__upper__last-message-at { + display: none; } + .sendbird-channel-preview:hover .sendbird-channel-preview__content__lower__unread-message-count { + display: none; } + +.sendbird-channel-preview--active { + padding: 12px 16px 12px 12px; } + .sendbird-theme--light .sendbird-channel-preview--active { + border-left: solid 4px var(--sendbird-light-primary-300); + border-bottom: solid 1px var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-channel-preview--active { + border-left: solid 4px var(--sendbird-dark-primary-200); + border-bottom: solid 1px var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-700); } + .sendbird-theme--light .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { + color: var(--sendbird-dark-primary-200); } + +.sendbird-link-label { + text-decoration: unset; } + .sendbird-link-label:hover { + cursor: pointer; + text-decoration: underline; } + .sendbird-link-label:focus { + outline: none; } + .sendbird-link-label__label { + display: inline; } + +.sendbird-theme--light .sendbird-label--color-onbackground-1 { + color: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-1 { + color: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-label--color-onbackground-2 { + color: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-2 { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-label--color-onbackground-3 { + color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-3 { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-label--color-oncontent-1 { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-1 { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-label--color-oncontent-2 { + color: var(--sendbird-light-ondark-02); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-2 { + color: var(--sendbird-dark-onlight-02); } + +.sendbird-theme--light .sendbird-label--color-primary { + color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-label--color-primary { + color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-label--color-error { + color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-label--color-error { + color: var(--sendbird-dark-error-300); } + +.sendbird-theme--light .sendbird-label--color-secondary-3 { + color: var(--sendbird-light-secondary-300); } + +.sendbird-theme--dark .sendbird-label--color-secondary-3 { + color: var(--sendbird-dark-secondary-200); } + +.sendbird-add-channel__rectangle-wrap { + margin-top: 26px; } + +.sendbird-add-channel__rectangle-footer { + text-align: right; + margin-top: 32px; } + +.sendbird-add-channel__rectangle { + width: 432px; + height: 72px; + border-radius: 4px; + margin-bottom: 8px; + padding: 25px 72px; + position: relative; + box-sizing: border-box; + cursor: pointer; } + .sendbird-theme--light .sendbird-add-channel__rectangle { + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-add-channel__rectangle { + border: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-add-channel__rectangle .sendbird-icon { + position: absolute; + left: 22px; + top: 24px; } + +.sendbird-channel-header { + position: relative; + height: 64px; + min-height: 64px; + width: 320px; + padding: 8px 64px 8px 8px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-channel-header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-channel-header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-channel-header.sendbird-channel-header--allow-edit .sendbird-channel-header__title { + cursor: pointer; } + .sendbird-channel-header .sendbird-channel-header__title { + display: flex; + flex-direction: row; + width: 260px; + height: 48px; + border-radius: 4px; } + .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:hover { + background: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:hover { + background: var(--sendbird-dark-background-500); } + .sendbird-channel-header .sendbird-channel-header__title:focus { + outline: none; } + .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:focus { + background: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:focus { + background: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:active { + border: solid 2px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:active { + border: solid 2px var(--sendbird-dark-primary-200); } + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--left { + width: 48px; + padding: 8px; + box-sizing: border-box; } + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--right { + margin-left: 4px; + padding-top: 8px; } + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--name, + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--user-id { + display: block; + max-width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-channel-header .sendbird-channel-header__right-icon { + position: absolute; + right: 16px; + top: 16px; } + +.sendbird-conversation__messages .sendbird-conversation__messages-padding { + padding-left: 24px; + padding-right: 24px; } + +.sendbird-conversation__messages .sendbird-separator, +.sendbird-conversation__messages .sendbird-admin-message { + padding-top: 8px; + padding-bottom: 8px; } + +.sendbird-conversation__connection-status { + display: flex; + align-items: center; + padding-top: 5px; } + +.sendbird-badge { + height: 20px; + min-width: 20px; + border-radius: 10px; + display: inline-block; } + .sendbird-theme--light .sendbird-badge { + background-color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-badge { + background-color: var(--sendbird-dark-primary-200); } + .sendbird-badge .sendbird-badge__text { + margin: 0px 6px; } + +.sendbird-chat-header { + position: relative; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + height: 64px; + min-height: 64px; + padding-left: 20px; + padding-right: 16px; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-theme--light .sendbird-chat-header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-chat-header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-chat-header__left { + margin-right: 24px; } + .sendbird-chat-header__left, .sendbird-chat-header__right { + overflow: hidden; + display: flex; + flex-direction: row; + align-items: center; } + .sendbird-chat-header .sendbird-chat-header__title { + margin-left: 8px; + margin-right: 16px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: 780px; } + .sendbird-chat-header .sendbird-chat-header__subtitle { + max-width: 240px; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-chat-header .sendbird-chat-header__active { + margin-right: 4px; + width: 8px; + height: 8px; + border-radius: 4px; } + .sendbird-theme--light .sendbird-chat-header .sendbird-chat-header__active { + background-color: var(--sendbird-light-secondary-300); } + .sendbird-theme--dark .sendbird-chat-header .sendbird-chat-header__active { + background-color: var(--sendbird-dark-secondary-200); } + .sendbird-chat-header .sendbird-chat-header__mute { + margin-right: 26px; } + .sendbird-chat-header .sendbird-iconbutton--pressed { + background-color: inherit; } + +.sendbird-channel-profile { + position: relative; + text-align: center; + padding: 32px 40px 27px 40px; } + .sendbird-theme--light .sendbird-channel-profile { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-channel-profile { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-channel-profile .sendbird-channel-profile--inner { + height: 92px; } + .sendbird-channel-profile .sendbird-channel-profile__avatar { + margin-bottom: 16px; + text-align: center; } + .sendbird-channel-profile .sendbird-channel-profile__title { + max-width: 240px; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + height: 18px; } + .sendbird-channel-profile .sendbird-channel-profile__edit { + position: absolute; + top: 10px; + right: 16px; } + +.channel-profile-form .channel-profile-form__img-section { + position: relative; } + +.channel-profile-form .channel-profile-form__avatar-button { + position: absolute; + top: 54px; + left: 96px; } + +.channel-profile-form .channel-profile-form__avatar { + margin-top: 16px; } + +.channel-profile-form .channel-profile-form__name-section { + margin-top: 12px; } + .channel-profile-form .channel-profile-form__name-section .sendbird-input { + height: 40px; } + +.sendbird-loader { + display: inline-block; + -webkit-animation: 1s infinite linear; + animation: 1s infinite linear; + -webkit-animation-name: rotate; + animation-name: rotate; } + +@-webkit-keyframes rotate { + from { + transform: rotate(0); } + to { + transform: rotate(360deg); } } + +@keyframes rotate { + from { + transform: rotate(0); } + to { + transform: rotate(360deg); } } + +.sendbird-button { + display: inline-block; + box-shadow: none; + border-radius: 4px; + padding: 0px; + font-family: var(--sendbird-font-family-default); + cursor: pointer; } + .sendbird-button:hover { + box-shadow: none; } + .sendbird-button:focus { + outline: none; } + .sendbird-button:active { + box-shadow: none; } + .sendbird-button.sendbird-button__disabled { + cursor: not-allowed; } + .sendbird-theme--light .sendbird-button.sendbird-button__disabled { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button.sendbird-button__disabled { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-button.sendbird-button__disabled:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button.sendbird-button__disabled:hover { + background-color: var(--sendbird-dark-background-400); } + +.sendbird-button--big { + height: 40px; } + .sendbird-button--big .sendbird-button__text { + margin: 10px 16px; } + +.sendbird-button--small { + height: 32px; } + .sendbird-button--small .sendbird-button__text { + margin: 6px 16px; } + +.sendbird-theme--light .sendbird-button--primary { + border: 1px solid var(--sendbird-light-primary-300); + background-color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-button--primary { + border: 1px solid var(--sendbird-dark-primary-200); + background-color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-button--primary .sendbird-button__text { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-button--primary .sendbird-button__text { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-button--primary:hover { + background-color: var(--sendbird-light-primary-400); + border-color: var(--sendbird-light-primary-400); } + +.sendbird-theme--dark .sendbird-button--primary:hover { + background-color: var(--sendbird-dark-primary-300); + border-color: var(--sendbird-dark-primary-300); } + +.sendbird-theme--light .sendbird-button--primary:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); + border: 1px solid var(--sendbird-button-border-focus); } + +.sendbird-theme--dark .sendbird-button--primary:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); + border: 1px solid var(--sendbird-button-border-focus); } + +.sendbird-theme--light .sendbird-button--primary:active { + background-color: var(--sendbird-light-primary-500); } + +.sendbird-theme--dark .sendbird-button--primary:active { + background-color: var(--sendbird-dark-primary-400); } + +.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:hover { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-400); } + +.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:hover { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-300); } + +.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:active { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-500); } + +.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:active { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-400); } + +.sendbird-button--secondary { + background-color: transparent; } + .sendbird-theme--light .sendbird-button--secondary { + border: 1px solid var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-button--secondary { + border: 1px solid var(--sendbird-dark-ondark-03); } + .sendbird-theme--light .sendbird-button--secondary .sendbird-button__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-button--secondary .sendbird-button__text { + color: var(--sendbird-dark-ondark-01); } + .sendbird-button--secondary:hover { + background-color: transparent; } + .sendbird-theme--light .sendbird-button--secondary:hover { + border: 1px solid var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:hover { + border: 1px solid var(--sendbird-dark-primary-200); } + .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button__text { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button__text { + color: var(--sendbird-dark-primary-200); } + .sendbird-button--secondary.sendbird-button__disabled { + cursor: not-allowed; + border: none; } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { + color: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { + color: var(--sendbird-dark-ondark-02); } + .sendbird-button--secondary.sendbird-button__disabled:hover { + border: none; } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { + color: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { + color: var(--sendbird-dark-ondark-02); } + .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-dark-primary-200); } + .sendbird-button--secondary:focus { + border: 1px solid transparent; + background-color: transparent; } + .sendbird-theme--light .sendbird-button--secondary:focus { + box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } + .sendbird-theme--dark .sendbird-button--secondary:focus { + box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } + .sendbird-theme--light .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-dark-ondark-01); } + .sendbird-button--secondary:active { + box-shadow: none; } + .sendbird-theme--light .sendbird-button--secondary:active { + border: 1px solid var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:active { + border: 1px solid var(--sendbird-dark-primary-200); } + .sendbird-theme--light .sendbird-button--secondary:active .sendbird-button__text { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:active .sendbird-button__text { + color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-button--danger { + border: 1px solid var(--sendbird-light-error-300); + background-color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-button--danger { + border: 1px solid var(--sendbird-dark-error-300); + background-color: var(--sendbird-dark-error-300); } + +.sendbird-theme--light .sendbird-button--danger .sendbird-button__text { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-button--danger .sendbird-button__text { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-button--danger:hover { + background-color: var(--sendbird-light-error-400); + border-color: var(--sendbird-light-error-400); } + +.sendbird-theme--dark .sendbird-button--danger:hover { + background-color: var(--sendbird-dark-error-400); + border-color: var(--sendbird-dark-error-400); } + +.sendbird-theme--light .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-300); + border-color: var(--sendbird-button-border-focus); } + +.sendbird-theme--dark .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-300); + border-color: var(--sendbird-button-border-focus); } + +.sendbird-button--danger:active { + box-shadow: none; } + .sendbird-theme--light .sendbird-button--danger:active { + background-color: var(--sendbird-light-error-500); } + .sendbird-theme--dark .sendbird-button--danger:active { + background-color: var(--sendbird-dark-error-500); } + +.sendbird-theme--light .sendbird-button--danger:hover .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-400); } + +.sendbird-theme--dark .sendbird-button--danger:hover .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-400); } + +.sendbird-theme--light .sendbird-button--danger:active .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-500); } + +.sendbird-theme--dark .sendbird-button--danger:active .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-500); } + +.sendbird-button--disabled { + border: 1px solid transparent; + cursor: not-allowed; } + .sendbird-theme--light .sendbird-button--disabled { + background-color: var(--sendbird-light-background-200); + color: var(--sendbird-light-ondark-01); } + .sendbird-theme--dark .sendbird-button--disabled { + background-color: var(--sendbird-dark-background-400); + color: var(--sendbird-dark-onlight-01); } + +.sendbird-members-accordion { + padding: 8px 16px 16px 16px; + position: relative; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-members-accordion { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-members-accordion { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-members-accordion .sendbird-members-accordion__member { + position: relative; + padding: 12px 0px 12px 44px; + height: 40px; + box-sizing: border-box; } + .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label { + max-width: 240px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-members-accordion .sendbird-members-accordion__member-avatar { + position: absolute; + left: 0; + top: 10px; + cursor: pointer; } + .sendbird-members-accordion .sendbird-members-accordion__footer { + display: flex; + justify-content: flex-start; + margin-top: 8px; } + .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members { + margin-right: 16px; } + +.sendbird-more-members__popup-scroll { + max-height: 420px; + overflow-y: auto; } + +.sendbird-create-channel--content { + width: 480px; + max-height: 552px; } + +.sendbird-create-channel--scroll { + height: 360px; + overflow-y: auto; } + +.sendbird-reaction-button { + border-radius: 8px; + display: inline-block; + border: solid 1px transparent; + cursor: pointer; } + .sendbird-theme--light .sendbird-reaction-button:hover { + border: solid 1px var(--sendbird-light-background-100); + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-reaction-button:hover { + border: solid 1px var(--sendbird-dark-background-400); + background-color: var(--sendbird-dark-background-400); } + .sendbird-reaction-button__inner { + margin: 3px; } + +.sendbird-reaction-button--selected { + cursor: pointer; + border-radius: 8px; + display: inline-block; } + .sendbird-theme--light .sendbird-reaction-button--selected { + border: solid 1px var(--sendbird-light-primary-100); + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-reaction-button--selected { + border: solid 1px var(--sendbird-dark-primary-400); + background-color: var(--sendbird-dark-primary-400); } + .sendbird-reaction-button--selected:hover { + border: solid 1px var(--sendbird-selected-reaction-button-border-hover); } + .sendbird-reaction-button--selected__inner { + margin: 3px; } + .sendbird-reaction-button--selected.sendbird-reactions--pressed { + display: block !important; } + +.sendbird-sort-by-row { + display: flex; + justify-content: flex-start; + align-items: center; } + +.sendbird-checkbox { + display: block; + position: relative; + padding-left: 35px; + margin-bottom: 12px; + cursor: pointer; + font-size: 22px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.sendbird-checkbox input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; } + +.sendbird-checkbox--checkmark { + position: absolute; + top: 0; + left: 0; + height: 18px; + width: 18px; + border-radius: 2px; + background-color: inherit; } + .sendbird-theme--light .sendbird-checkbox--checkmark { + border: 2px solid var(--sendbird-light-background-400); } + .sendbird-theme--dark .sendbird-checkbox--checkmark { + border: 2px solid var(--sendbird-dark-background-300); } + +.sendbird-theme--light .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { + background-color: var(--sendbird-light-primary-300); + border: 2px solid var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { + background-color: var(--sendbird-dark-primary-200); + border: 2px solid var(--sendbird-dark-primary-200); } + +.sendbird-checkbox--checkmark:after { + content: ""; + position: absolute; + display: none; } + +.sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark:after { + display: block; } + +.sendbird-theme--light .sendbird-checkbox .sendbird-checkbox--checkmark:after { + left: 5px; + top: -0.5px; + width: 7px; + height: 12px; + border: solid var(--sendbird-light-background-50); + border-width: 0 2px 2px 0; + transform: rotate(45deg); } + +.sendbird-theme--dark .sendbird-checkbox .sendbird-checkbox--checkmark:after { + left: 5px; + top: -0.5px; + width: 7px; + height: 12px; + border: solid var(--sendbird-dark-background-600); + border-width: 0 2px 2px 0; + transform: rotate(45deg); } + +.sendbird-theme--light .sendbird-color--onbackground-1 { + color: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-color--onbackground-1 { + color: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-color--onbackground-1--background-color { + background-color: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-color--onbackground-1--background-color { + background-color: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-color--onbackground-2 { + color: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-color--onbackground-2 { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-color--onbackground-2--background-color { + background-color: var(--sendbird-light-onlight-02); } + +.sendbird-theme--dark .sendbird-color--onbackground-2--background-color { + background-color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-color--onbackground-3 { + color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-color--onbackground-3 { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-color--onbackground-3--background-color { + background-color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-color--onbackground-3--background-color { + background-color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-color--onbackground-4 { + color: var(--sendbird-light-onlight-04); } + +.sendbird-theme--dark .sendbird-color--onbackground-4 { + color: var(--sendbird-dark-ondark-04); } + +.sendbird-theme--light .sendbird-color--onbackground-4--background-color { + background-color: var(--sendbird-light-onlight-04); } + +.sendbird-theme--dark .sendbird-color--onbackground-4--background-color { + background-color: var(--sendbird-dark-ondark-04); } + +.sendbird-theme--light .sendbird-color--oncontent-1 { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-color--oncontent-1 { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-color--oncontent-1--background-color { + background-color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-color--oncontent-1--background-color { + background-color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-color--primary { + color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-color--primary { + color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-color--primary--background-color { + background-color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-color--primary--background-color { + background-color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-color--error { + color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-color--error { + color: var(--sendbird-dark-error-300); } + +.sendbird-theme--light .sendbird-color--error--background-color { + background-color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-color--error--background-color { + background-color: var(--sendbird-dark-error-300); } + +.sendbird-message { + position: relative; + line-height: 0; } + .sendbird-message--outgoing { + text-align: right; } + .sendbird-message--incoming { + text-align: left; } + +.sendbird-user-message--copy { + cursor: pointer !important; } + +.sendbird-user-message--outgoing { + position: relative; + right: 0px; + display: inline-block; + max-width: 496px; + text-align: right; } + .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-400); } + .sendbird-user-message--outgoing:hover .sendbird-user-message__left-padding .sendbird-user-message__more { + display: block; } + .sendbird-user-message--outgoing .sendbird-user-message--inner { + display: flex; + flex-direction: row; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding { + position: relative; + width: 68px; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more { + display: none; + position: absolute; + right: 4px; + top: 2px; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more[class*='--pressed'] { + display: block !important; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__status { + position: absolute; + bottom: 2px; + right: 4px; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; + text-align: left; } + .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { + display: flex; + flex-direction: column; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { + padding: 8px 12px; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + display: inline; + white-space: pre-wrap; + overflow-wrap: normal; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + position: relative; + bottom: 0px; } + .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-300); } + +.sendbird-user-message--incoming { + position: relative; + left: 0px; + display: inline-block; + padding-left: 40px; + max-width: 536px; + text-align: left; } + .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__more { + display: block; } + .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__sent-at { + display: none; } + .sendbird-user-message--incoming .sendbird-user-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-user-message--incoming .sendbird-user-message--body { + display: flex; + flex-direction: column; } + .sendbird-user-message--incoming .sendbird-user-message__right-padding { + position: relative; + width: 68px; } + .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__sent-at { + position: absolute; + left: 4px; + bottom: 2px; } + .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__more { + position: absolute; + display: none; + top: 18px; + left: 4px; } + .sendbird-user-message--incoming .sendbird-user-message__avatar { + position: absolute; + bottom: 4px; + left: -40px; + cursor: pointer; } + .sendbird-user-message--incoming .sendbird-user-message__sender-name { + margin-left: 12px; + margin-bottom: 4px; } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon { + margin-top: 4px; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; } + .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { + display: flex; + flex-direction: column; } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { + padding: 8px 12px; } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + display: inline; + white-space: pre-wrap; + overflow-wrap: normal; } + .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + color: var(--sendbird-dark-ondark-01); } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + position: relative; + bottom: 0px; } + .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + +.sendbird-user-message__text-balloon__inner__text-place__text { + word-break: break-word; + display: flex; + flex-direction: row; + flex-wrap: wrap; } + +.sendbird-user-message__text-balloon { + display: inline-block; } + +.sendbird-user-message-word { + display: inline; + margin: 0px 2px; } + +.sendbird-admin-message { + display: flex; + justify-content: center; + align-items: center; } + .sendbird-admin-message .sendbird-admin-message__text { + display: flex; } + +.sendbird-file-message--outgoing { + text-align: right; } + +.sendbird-file-message--incoming { + text-align: left; } + +.sendbird-file-message__outgoing { + position: relative; + right: 0px; + display: inline-block; + max-width: 496px; + text-align: right; + line-height: 0px; } + .sendbird-file-message__outgoing .sendbird-file-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-400); } + .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__more { + display: block; } + .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__status { + display: none; } + .sendbird-file-message__outgoing .sendbird-file-message__left-padding { + position: relative; + width: 68px; } + .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__more { + display: none; + position: absolute; + right: 4px; + top: 2px; } + .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__status { + position: absolute; + text-align: right; + right: 4px; + bottom: 4px; } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip { + display: flex; + flex-direction: column; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; } + .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { + display: flex; + flex: row; + padding: 8px 12px; + text-align: left; } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + border-radius: 10px; + margin-right: 8px; + background-color: var(--sendbird-file-message-icon-background); } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { + white-space: nowrap; + overflow-wrap: break-word; + margin: 4px 0px; + cursor: pointer; } + .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-300); } + +.sendbird-file-message__incoming { + position: relative; + left: 0px; + display: inline-block; + padding-left: 40px; + max-width: 536px; + text-align: left; + line-height: 0px; } + .sendbird-file-message__incoming .sendbird-file-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-file-message__incoming .sendbird-file-message__right-padding { + position: relative; + width: 68px; } + .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__more { + position: absolute; + display: none; + left: 4px; + top: 18px; } + .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__sent-at { + position: absolute; + left: 4px; + bottom: 4px; } + .sendbird-file-message__incoming:hover .sendbird-file-message__right-padding .sendbird-file-message__more { + display: block; } + .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-file-message__incoming .sendbird-file-message__avatar { + position: absolute; + bottom: 2px; + left: -40px; + cursor: pointer; } + .sendbird-file-message__incoming .sendbird-file-message__sender-name { + margin-left: 12px; + margin-bottom: 4px; } + .sendbird-file-message__incoming .sendbird-file-message__tooltip { + display: flex; + flex-direction: column; + margin-top: 4px; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; } + .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-background-500); } + .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { + display: flex; + flex-direction: row; + padding: 8px 12px; } + .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + border-radius: 10px; + margin-right: 8px; } + .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + background-color: var(--sendbird-dark-background-600); } + .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { + white-space: nowrap; + overflow-wrap: normal; + margin: 4px 0px; + cursor: pointer; } + .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + +.sendbird-unknown-message { + position: relative; + line-height: 0px; } + .sendbird-unknown-message--outgoing { + text-align: right; } + .sendbird-unknown-message--incoming { + text-align: left; } + +.sendbird-outgoing-unknown-message { + position: relative; + right: 0px; + display: inline-block; + text-align: right; + padding-left: 36px; + box-sizing: border-box; } + .sendbird-outgoing-unknown-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__more { + display: block; } + .sendbird-outgoing-unknown-message--left-padding { + position: relative; + width: 68px; } + .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__more { + display: none; + position: absolute; + top: 4px; + right: 4px; } + .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__message-status { + position: absolute; + text-align: right; + right: 4px; + bottom: 4px; } + .sendbird-outgoing-unknown-message__body { + display: flex; + flex-direction: column; } + .sendbird-outgoing-unknown-message__body__text-balloon { + box-sizing: border-box; + text-align: left; + border-radius: 16px; + padding: 8px 12px; + width: 198px; + height: 56px; } + .sendbird-theme--light .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-primary-300); } + +.sendbird-incoming-unknown-message { + position: relative; + left: 0px; + display: flex; + flex-direction: row; + text-align: left; } + .sendbird-incoming-unknown-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-incoming-unknown-message__left { + width: 38px; } + .sendbird-incoming-unknown-message__left__sender-profile-image { + position: absolute; + bottom: 4px; } + .sendbird-incoming-unknown-message__body { + width: 198px; + display: flex; + flex-direction: column; } + .sendbird-incoming-unknown-message__body__sender-name { + margin-left: 10px; + margin-bottom: 4px; } + .sendbird-incoming-unknown-message__body__text-balloon { + width: 198px; + height: 56px; + border-radius: 16px; + text-align: left; + padding: 8px 12px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-unknown-message--right-padding { + position: relative; + width: 68px; } + .sendbird-incoming-unknown-message--right-padding .sendbird-incoming-unknown-message__sent-at { + position: absolute; + left: 4px; + bottom: 4px; } + +.sendbird-message-status { + display: inline; + text-align: right; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again { + text-decoration: underline; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again:hover { + cursor: pointer; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete { + text-decoration: underline; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete:hover { + cursor: pointer; } + +.sendbird-emoji-reactions { + display: inline-block; + border-radius: 16px; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + min-height: 24px; + padding: 7px 5px 3px 5px; } + .sendbird-theme--light .sendbird-emoji-reactions { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-emoji-reactions { + background-color: var(--sendbird-dark-background-600); } + .sendbird-emoji-reactions .sendbird-emoji-reactions--inner { + display: flex; + flex-wrap: wrap; } + .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction { + margin-left: 2px; + margin-right: 2px; + margin-bottom: 4px; } + .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction-add { + width: 36px; + height: 24px; } + .sendbird-emoji-reactions:focus { + outline: none; } + +.sendbird-tooltip { + position: relative; + display: inline-flex; + justify-content: center; + max-width: 200px; + border-radius: 8px; + padding: 8px 16px; + background-color: var(--sendbird-tooltip-background); } + .sendbird-tooltip::after { + content: ''; + position: absolute; + bottom: -4px; + width: 8px; + height: 8px; + transform: rotate(45deg); + background-color: var(--sendbird-tooltip-background); } + .sendbird-tooltip__text { + font-family: var(--sendbird-font-family-default); + font-size: 12px; + font-weight: bold; + font-stretch: normal; + font-style: normal; + line-height: 1.33; + letter-spacing: normal; + color: var(--sendbird-tooltip-text-color); } + +.sendbird-tooltip-wrapper { + position: relative; + display: inline-flex; } + .sendbird-tooltip-wrapper__hover-tooltip { + position: absolute; + display: inline-flex; + width: 200px; } + .sendbird-tooltip-wrapper__hover-tooltip__inner__tooltip-container { + position: relative; + display: inline-flex; } + +.sendbird-reaction-badge { + display: inline-block; + border-radius: 15px; + width: 50px; + height: 24px; } + .sendbird-theme--light .sendbird-reaction-badge { + background-color: var(--sendbird-light-background-100); + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-reaction-badge { + background-color: var(--sendbird-dark-background-500); + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-reaction-badge:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-reaction-badge:hover { + border: solid 1px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-reaction-badge:hover { + border: solid 1px var(--sendbird-dark-primary-200); } + +.sendbird-reaction-badge--is-add { + display: inline-block; + border-radius: 15px; + width: 36px; + height: 24px; } + .sendbird-theme--light .sendbird-reaction-badge--is-add { + background-color: var(--sendbird-light-background-100); + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-reaction-badge--is-add { + background-color: var(--sendbird-dark-background-500); + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-reaction-badge--is-add:hover { + cursor: pointer; + border: solid 1px var(--sendbird-add-reaction-button-border-hover); } + .sendbird-reaction-badge--is-add .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { + left: 8px; } + +.sendbird-reaction-badge--selected { + display: inline-block; + border-radius: 15px; + width: 50px; + height: 24px; } + .sendbird-theme--light .sendbird-reaction-badge--selected { + background-color: var(--sendbird-light-primary-100); + border: solid 1px var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-reaction-badge--selected { + background-color: var(--sendbird-dark-primary-400); + border: solid 1px var(--sendbird-dark-primary-400); } + .sendbird-reaction-badge--selected:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-reaction-badge--selected:hover { + border: solid 1px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-reaction-badge--selected:hover { + border: solid 1px var(--sendbird-dark-primary-200); } + +.sendbird-reaction-badge__inner { + position: relative; + display: flex; + height: 24px; + flex-direction: row; + align-items: center; + justify-content: center; + padding-left: 20px; + padding-right: 4px; } + .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { + position: absolute; + top: 2px; + left: 4px; } + .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__count { + margin-left: 4px; } + +.sendbird-thumbnail { + text-align: right; + position: relative; } + .sendbird-thumbnail .sendbird-thumbnail__body { + position: relative; + display: inline-block; } + .sendbird-thumbnail .sendbird-thumbnail__more { + display: none; + position: absolute; + top: 10px; } + .sendbird-thumbnail:hover .sendbird-thumbnail__more { + display: block; } + .sendbird-thumbnail .sendbird-thumbnail__wrap { + position: relative; + display: flex; + flex-direction: column; + border-radius: 16px; + margin: 8px 0px; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap { + background-color: var(--sendbird-dark-background-500); } + .sendbird-thumbnail .sendbird-thumbnail__wrap:focus { + outline: none; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner { + cursor: pointer; } + .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + opacity: 1; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner { + width: 100%; + height: 100%; + position: relative; } + .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + border-radius: 16px; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-thumbnail .sendbird-thumbnail__avatar { + position: absolute; + bottom: 30px; + left: 0px; } + .sendbird-thumbnail .sendbird-thumbnail__sender-name { + margin-left: 12px; } + .sendbird-thumbnail.sendbird-thumbnail--incoming { + text-align: left; + padding-left: 40px; + box-sizing: border-box; } + .sendbird-thumbnail .sendbird-thumbnail__video-icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + .sendbird-thumbnail .sendbird-thumbnail__video, + .sendbird-thumbnail .sendbird-thumbnail__img { + display: block; + max-width: var(--sendbird-message-balloon-width); + max-height: 360px; + border-radius: 16px; } + +.sendbird-outgoing-thumbnail-message { + position: relative; + text-align: right; + line-height: 0px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message--inner { + display: inline-flex; + flex-direction: row; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding { + position: relative; + width: 68px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { + display: none; + position: absolute; + top: 4px; + right: 4px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__status { + position: absolute; + right: 4px; + bottom: 4px; } + .sendbird-outgoing-thumbnail-message:hover .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { + display: block; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body { + position: relative; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { + position: relative; + display: flex; + flex-direction: column; + border-radius: 16px; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { + background-color: var(--sendbird-dark-background-500); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:focus { + outline: none; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner { + cursor: pointer; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + opacity: 1; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner { + width: 100%; + height: 100%; + position: relative; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + border-radius: 16px; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video, + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__img { + display: block; + max-width: var(--sendbird-message-balloon-width); + max-height: 360px; + border-radius: 16px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video-icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + +.sendbird-incoming-thumbnail-message { + position: relative; + text-align: left; + padding-left: 40px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__sender-name { + position: relative; + box-sizing: border-box; + left: 12px; + height: 12px; + margin-bottom: 4px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__avatar { + position: absolute; + left: -40px; + bottom: 4px; + cursor: pointer; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message--inner { + display: flex; + flex-direction: row; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body { + position: relative; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { + position: relative; + display: flex; + flex-direction: column; + border-radius: 16px; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:focus { + outline: none; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner { + cursor: pointer; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + opacity: 1; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner { + width: 100%; + height: 100%; + position: relative; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + top: 0px; + left: 0px; + border-radius: 16px; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video, + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__img { + display: block; + max-width: var(--sendbird-message-balloon-width); + max-height: 360px; + border-radius: 16px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video-icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding { + position: relative; + width: 68px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__sent-at { + position: absolute; + left: 4px; + bottom: 4px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { + position: absolute; + left: 4px; + top: 4px; + display: none; } + .sendbird-incoming-thumbnail-message:hover .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { + display: block; } + +.sendbird-og-message { + position: relative; } + .sendbird-og-message--outgoing { + text-align: right; + line-height: 0px; } + .sendbird-og-message--incoming { + text-align: left; } + +.sendbird-outgoing-og-message { + position: relative; + right: 0px; + display: inline-block; + box-sizing: border-box; + text-align: right; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message__og-tag__url { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + display: inline-block; + width: 296px; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-400); } + .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { + display: block; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding { + position: relative; + width: 68px; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { + display: none; + position: absolute; + top: 2px; + right: 4px; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more[class*='--pressed'] { + display: block !important; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__message-status { + position: absolute; + right: 4px; + bottom: 4px; + text-align: right; } + .sendbird-outgoing-og-message__text-balloon { + box-sizing: border-box; + width: 320px; + padding: 8px 12px; + border-radius: 16px 16px 0px 0px; + word-break: break-all; + text-align: left; } + .sendbird-theme--light .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-outgoing-og-message__thumbnail--disabled:hover { + cursor: not-allowed !important; } + .sendbird-outgoing-og-message__thumbnail { + width: 320px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-outgoing-og-message__thumbnail { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__thumbnail { + background-color: var(--sendbird-dark-background-500); } + .sendbird-outgoing-og-message__thumbnail__image__placeholder { + width: 320px; + height: 160px; + display: flex; + justify-content: center; + align-items: center; } + .sendbird-outgoing-og-message__thumbnail:hover { + cursor: pointer; } + .sendbird-outgoing-og-message__thumbnail:focus { + outline: none; } + .sendbird-outgoing-og-message__og-tag--disabled:hover { + cursor: not-allowed !important; } + .sendbird-outgoing-og-message__og-tag { + padding: 8px 12px 12px 12px; + border-radius: 0px 0px 16px 16px; + text-align: left; + box-sizing: border-box; + width: 320px; } + .sendbird-theme--light .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-dark-background-500); } + .sendbird-outgoing-og-message__og-tag__title { + max-height: 150px; + overflow-y: hidden; + margin-bottom: 4px; } + .sendbird-outgoing-og-message__og-tag__description { + margin-bottom: 8px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .sendbird-outgoing-og-message__og-tag__url__label { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .sendbird-outgoing-og-message__og-tag__emoji-reactions--wrapper:focus { + outline: none; } + .sendbird-outgoing-og-message__og-tag__emoji-reactions { + margin: 8px -12px -12px -12px; + width: 320px; } + .sendbird-theme--light .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-500); } + .sendbird-outgoing-og-message__og-tag__emoji-reactions:hover { + cursor: default; } + .sendbird-outgoing-og-message__og-tag__emoji-reactions:focus { + outline: none; } + .sendbird-outgoing-og-message__og-tag:hover { + cursor: pointer; } + .sendbird-outgoing-og-message__og-tag:focus { + outline: none; } + +.sendbird-og-message-word { + display: inline; + margin: 0px 2px; } + +.sendbird-incoming-og-message { + position: relative; + left: 0px; + display: inline-block; + box-sizing: border-box; + text-align: left; + padding-left: 40px; } + .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-400); } + .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { + display: block; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body { + position: relative; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__avatar { + position: absolute; + bottom: 4px; + left: -40px; + cursor: pointer; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__sender-name { + margin-left: 12px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + box-sizing: border-box; + max-width: 320px; + padding: 8px 12px; + border-radius: 16px 16px 0px 0px; + word-break: break-all; + text-align: left; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail--disabled:hover { + cursor: not-allowed !important; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { + box-sizing: border-box; + width: 320px; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail .sendbird-incoming-og-message__thumbnail__image__placeholder { + width: 320px; + height: 160px; + display: flex; + justify-content: center; + align-items: center; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:hover { + cursor: pointer; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:focus { + outline: none; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag--disabled:hover { + cursor: not-allowed !important; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + padding: 8px 12px 12px 12px; + border-radius: 0px 0px 16px 16px; + text-align: left; + box-sizing: border-box; + width: 320px; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__title { + max-height: 150px; + overflow-y: hidden; + margin-bottom: 4px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__description { + margin-bottom: 8px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__url .sendbird-incoming-og-message__og-tag__url__label { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + display: inline-block; + width: 296px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper:focus { + outline: none; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + margin: 8px -12px -12px -12px; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:hover { + cursor: default; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:focus { + outline: none; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding { + position: relative; + width: 68px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__sent-at { + position: absolute; + bottom: 4px; + left: 4px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { + position: absolute; + top: 18px; + left: 4px; + display: none; } + +@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap"); +:root { + --sendbird-light-primary-500: #4d2aa6; + --sendbird-light-primary-400: #6440C4; + --sendbird-light-primary-300: #7B53EF; + --sendbird-light-primary-200: #9E8CF5; + --sendbird-light-primary-100: #E2DFFF; + --sendbird-light-secondary-500: #007A7A; + --sendbird-light-secondary-400: #189A8D; + --sendbird-light-secondary-300: #2EBA9F; + --sendbird-light-secondary-200: #6FD6BE; + --sendbird-light-secondary-100: #AEF2DC; + --sendbird-light-information-100: #b2d9ff; + --sendbird-light-error-500: #A30E2D; + --sendbird-light-error-400: #C11F41; + --sendbird-light-error-300: #E53157; + --sendbird-light-error-200: #FF6183; + --sendbird-light-error-100: #FFABBD; + --sendbird-light-background-700: #000000; + --sendbird-light-background-600: #161616; + --sendbird-light-background-500: #2C2C2C; + --sendbird-light-background-400: #393939; + --sendbird-light-background-300: #A8A8A8; + --sendbird-light-background-200: #D9D9D9; + --sendbird-light-background-100: #F0F0F0; + --sendbird-light-background-50: #FFFFFF; + --sendbird-light-overlay: rgba(0, 0, 0, 0.32); + --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88); + --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50); + --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38); + --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12); + --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88); + --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50); + --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38); + --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12); + --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + --sendbird-light-theme-surface-2: #EAEAEA; } + +:root { + --sendbird-dark-primary-500: #4d2aa6; + --sendbird-dark-primary-400: #6440C4; + --sendbird-dark-primary-300: #7B53EF; + --sendbird-dark-primary-200: #9E8CF5; + --sendbird-dark-primary-100: #E2DFFF; + --sendbird-dark-secondary-500: #007A7A; + --sendbird-dark-secondary-400: #189A8D; + --sendbird-dark-secondary-300: #2EBA9F; + --sendbird-dark-secondary-200: #6FD6BE; + --sendbird-dark-secondary-100: #AEF2DC; + --sendbird-dark-information-100: #b2d9ff; + --sendbird-dark-error-500: #A30E2D; + --sendbird-dark-error-400: #C11F41; + --sendbird-dark-error-300: #E53157; + --sendbird-dark-error-200: #FF6183; + --sendbird-dark-error-100: #FFABBD; + --sendbird-dark-background-700: #000000; + --sendbird-dark-background-600: #161616; + --sendbird-dark-background-500: #2C2C2C; + --sendbird-dark-background-400: #393939; + --sendbird-dark-background-300: #A8A8A8; + --sendbird-dark-background-200: #D9D9D9; + --sendbird-dark-background-100: #F0F0F0; + --sendbird-dark-background-50: #FFFFFF; + --sendbird-dark-overlay: rgba(0, 0, 0, 0.32); + --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88); + --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50); + --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38); + --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12); + --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88); + --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50); + --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38); + --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12); + --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } + +:root { + --sendbird-iconbutton-color: #825eeb; + --sendbird-message-input-border-active: #7B53EF; + --sendbird-selected-reaction-button-border-hover: #9E8CF5; + --sendbird-add-reaction-button-border-hover: #9E8CF5; + --sendbird-tooltip-background: #000000; + --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88); + --sendbird-button-border-focus: #FFFFFF; + --sendbird-file-message-icon-background: #FFFFFF; + --sendbird-font-family-default: 'Open Sans', sans-serif; + --sendbird-message-balloon-width: 404px; } + +/*# sourceMappingURL=SendbirdProvider.css.map */ \ No newline at end of file diff --git a/dist/esm/SendbirdProvider.css.map b/dist/esm/SendbirdProvider.css.map new file mode 100644 index 0000000..ead2079 --- /dev/null +++ b/dist/esm/SendbirdProvider.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.scss","frozen-notification.scss","channel-profile.scss","openchannel-conversation-scroll.scss","notification.scss","muted-avatar-overlay.scss","user-list-item.scss","add-channel.scss","conversation-scroll.scss","members-accordion.scss","color.scss"],"names":[],"mappings":"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","file":"SendbirdProvider.css","sourcesContent":["@import url(\"https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap\");\n:root {\n --sendbird-light-primary-500: #4d2aa6;\n --sendbird-light-primary-400: #6440C4;\n --sendbird-light-primary-300: #7B53EF;\n --sendbird-light-primary-200: #9E8CF5;\n --sendbird-light-primary-100: #E2DFFF;\n --sendbird-light-secondary-500: #007A7A;\n --sendbird-light-secondary-400: #189A8D;\n --sendbird-light-secondary-300: #2EBA9F;\n --sendbird-light-secondary-200: #6FD6BE;\n --sendbird-light-secondary-100: #AEF2DC;\n --sendbird-light-information-100: #b2d9ff;\n --sendbird-light-error-500: #A30E2D;\n --sendbird-light-error-400: #C11F41;\n --sendbird-light-error-300: #E53157;\n --sendbird-light-error-200: #FF6183;\n --sendbird-light-error-100: #FFABBD;\n --sendbird-light-background-700: #000000;\n --sendbird-light-background-600: #161616;\n --sendbird-light-background-500: #2C2C2C;\n --sendbird-light-background-400: #393939;\n --sendbird-light-background-300: #A8A8A8;\n --sendbird-light-background-200: #D9D9D9;\n --sendbird-light-background-100: #F0F0F0;\n --sendbird-light-background-50: #FFFFFF;\n --sendbird-light-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-theme-surface-2: #EAEAEA; }\n\n:root {\n --sendbird-dark-primary-500: #4d2aa6;\n --sendbird-dark-primary-400: #6440C4;\n --sendbird-dark-primary-300: #7B53EF;\n --sendbird-dark-primary-200: #9E8CF5;\n --sendbird-dark-primary-100: #E2DFFF;\n --sendbird-dark-secondary-500: #007A7A;\n --sendbird-dark-secondary-400: #189A8D;\n --sendbird-dark-secondary-300: #2EBA9F;\n --sendbird-dark-secondary-200: #6FD6BE;\n --sendbird-dark-secondary-100: #AEF2DC;\n --sendbird-dark-information-100: #b2d9ff;\n --sendbird-dark-error-500: #A30E2D;\n --sendbird-dark-error-400: #C11F41;\n --sendbird-dark-error-300: #E53157;\n --sendbird-dark-error-200: #FF6183;\n --sendbird-dark-error-100: #FFABBD;\n --sendbird-dark-background-700: #000000;\n --sendbird-dark-background-600: #161616;\n --sendbird-dark-background-500: #2C2C2C;\n --sendbird-dark-background-400: #393939;\n --sendbird-dark-background-300: #A8A8A8;\n --sendbird-dark-background-200: #D9D9D9;\n --sendbird-dark-background-100: #F0F0F0;\n --sendbird-dark-background-50: #FFFFFF;\n --sendbird-dark-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }\n\n:root {\n --sendbird-iconbutton-color: #825eeb;\n --sendbird-message-input-border-active: #7B53EF;\n --sendbird-selected-reaction-button-border-hover: #9E8CF5;\n --sendbird-add-reaction-button-border-hover: #9E8CF5;\n --sendbird-tooltip-background: #000000;\n --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88);\n --sendbird-button-border-focus: #FFFFFF;\n --sendbird-file-message-icon-background: #FFFFFF;\n --sendbird-font-family-default: 'Open Sans', sans-serif;\n --sendbird-message-balloon-width: 404px; }\n",".sendbird-frozen-channel-notification {\n position: relative;\n margin-top: 8px;\n margin-right: 24px;\n margin-left: 24px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px; }\n .sendbird-theme--light .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-dark-information-100); }\n",".sendbird-channel-profile {\n position: relative;\n text-align: center;\n padding: 32px 40px 27px 40px; }\n .sendbird-theme--light .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-channel-profile .sendbird-channel-profile--inner {\n height: 92px; }\n .sendbird-channel-profile .sendbird-channel-profile__avatar {\n margin-bottom: 16px;\n text-align: center; }\n .sendbird-channel-profile .sendbird-channel-profile__title {\n max-width: 240px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 18px; }\n .sendbird-channel-profile .sendbird-channel-profile__edit {\n position: absolute;\n top: 10px;\n right: 16px; }\n\n.channel-profile-form .channel-profile-form__img-section {\n position: relative; }\n\n.channel-profile-form .channel-profile-form__avatar-button {\n position: absolute;\n top: 54px;\n left: 96px; }\n\n.channel-profile-form .channel-profile-form__avatar {\n margin-top: 16px; }\n\n.channel-profile-form .channel-profile-form__name-section {\n margin-top: 12px; }\n .channel-profile-form .channel-profile-form__name-section .sendbird-input {\n height: 40px; }\n",".sendbird-openchannel-conversation-scroll {\n position: relative;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container {\n position: absolute;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding {\n height: 8px; }\n",".sendbird-notification {\n margin-top: 8px;\n margin-left: 24px;\n margin-right: 24px;\n border-radius: 4px;\n padding: 0px 2px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center; }\n .sendbird-theme--light .sendbird-notification {\n background-color: var(--sendbird-light-primary-300); }\n .sendbird-theme--dark .sendbird-notification {\n background-color: var(--sendbird-dark-primary-200); }\n .sendbird-notification:hover {\n cursor: pointer; }\n .sendbird-theme--light .sendbird-notification:hover {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-notification:hover {\n background-color: var(--sendbird-dark-primary-300); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-dark-information-100); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-light-onlight-01); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-dark-onlight-01); }\n .sendbird-notification .sendbird-notification__text {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 8px; }\n",".sendbird-muted-avatar {\n border-radius: 50%;\n display: inline-block; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon {\n position: relative; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon {\n position: absolute;\n top: 4px;\n left: 4px; }\n .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n opacity: .5;\n position: absolute;\n border-radius: 50%;\n top: 0;\n left: 0; }\n .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-dark-primary-300); }\n",".sendbird-user-list-item--small {\n display: block;\n position: relative;\n box-sizing: border-box;\n height: 40px; }\n .sendbird-user-list-item--small__avatar {\n cursor: pointer;\n position: absolute;\n top: 10px;\n left: 12px; }\n .sendbird-user-list-item--small .sendbird-muted-avatar {\n position: absolute;\n top: 10px;\n left: 12px;\n z-index: 2;\n pointer-events: none; }\n .sendbird-user-list-item--small__title {\n position: absolute;\n top: 10px;\n left: 54px;\n width: 160px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__subtitle {\n position: absolute;\n top: 23px;\n left: 140px;\n max-width: 237px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__checkbox {\n position: absolute;\n top: 16px;\n right: 16px; }\n .sendbird-user-list-item--small__action {\n display: none;\n position: absolute;\n right: 10px;\n top: 4px; }\n .sendbird-user-list-item--small__operator {\n position: absolute;\n right: 24px;\n top: 10px; }\n .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-light-background-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-dark-background-500); }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action {\n display: block; }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator {\n display: none; }\n .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-light-primary-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-dark-background-700); }\n",".sendbird-add-channel__rectangle-wrap {\n margin-top: 26px; }\n\n.sendbird-add-channel__rectangle-footer {\n text-align: right;\n margin-top: 32px; }\n\n.sendbird-add-channel__rectangle {\n width: 432px;\n height: 72px;\n border-radius: 4px;\n margin-bottom: 8px;\n padding: 25px 72px;\n position: relative;\n box-sizing: border-box;\n cursor: pointer; }\n .sendbird-theme--light .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-light-onlight-04); }\n .sendbird-theme--dark .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-dark-ondark-04); }\n .sendbird-add-channel__rectangle .sendbird-icon {\n position: absolute;\n left: 22px;\n top: 24px; }\n",".sendbird-conversation__messages .sendbird-conversation__messages-padding {\n padding-left: 24px;\n padding-right: 24px; }\n\n.sendbird-conversation__messages .sendbird-separator,\n.sendbird-conversation__messages .sendbird-admin-message {\n padding-top: 8px;\n padding-bottom: 8px; }\n",".sendbird-members-accordion {\n padding: 8px 16px 16px 16px;\n position: relative;\n box-sizing: border-box; }\n .sendbird-theme--light .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-members-accordion .sendbird-members-accordion__member {\n position: relative;\n padding: 12px 0px 12px 44px;\n height: 40px;\n box-sizing: border-box; }\n .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label {\n max-width: 240px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-members-accordion .sendbird-members-accordion__member-avatar {\n position: absolute;\n left: 0;\n top: 10px;\n cursor: pointer; }\n .sendbird-members-accordion .sendbird-members-accordion__footer {\n display: flex;\n justify-content: flex-start;\n margin-top: 8px; }\n .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members {\n margin-right: 16px; }\n\n.sendbird-more-members__popup-scroll {\n max-height: 420px;\n overflow-y: auto; }\n",".sendbird-theme--light .sendbird-color--onbackground-1 {\n color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1 {\n color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2 {\n color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2 {\n color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3 {\n color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3 {\n color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4 {\n color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4 {\n color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1 {\n color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1 {\n color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--primary {\n color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary {\n color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--primary--background-color {\n background-color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary--background-color {\n background-color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--error {\n color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error {\n color: var(--sendbird-dark-error-300); }\n\n.sendbird-theme--light .sendbird-color--error--background-color {\n background-color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error--background-color {\n background-color: var(--sendbird-dark-error-300); }\n"]} \ No newline at end of file diff --git a/dist/esm/SendbirdProvider.js b/dist/esm/SendbirdProvider.js new file mode 100644 index 0000000..f07405b --- /dev/null +++ b/dist/esm/SendbirdProvider.js @@ -0,0 +1,711 @@ +import { _ as __assign, a as _objectSpread2, b as _slicedToArray, u as uuidv4, g as getStringSet, S as SendbirdSdkContext, L as LocalizationProvider } from './LocalizationContext-619bafba.js'; +import React, { useLayoutEffect, useState, useEffect, useReducer } from 'react'; +import PropTypes from 'prop-types'; +import Sb from 'sendbird'; +import { R as RESET_USER, I as INIT_USER, U as UPDATE_USER_INFO } from './actionTypes-a85c0eaa.js'; +import cssVars from 'css-vars-ponyfill'; + +var INIT_SDK = 'INIT_SDK'; +var SET_SDK_LOADING = 'SET_SDK_LOADING'; +var RESET_SDK = 'RESET_SDK'; +var SDK_ERROR = 'SDK_ERROR'; + +var APP_VERSION_STRING = '2.0.0-alpha.0'; +var disconnectSdk = function disconnectSdk(_ref) { + var sdkDispatcher = _ref.sdkDispatcher, + userDispatcher = _ref.userDispatcher, + sdk = _ref.sdk, + onDisconnect = _ref.onDisconnect; + sdkDispatcher({ + type: SET_SDK_LOADING, + payload: true + }); + + if (sdk && sdk.disconnect) { + sdk.disconnect().then(function () { + sdkDispatcher({ + type: RESET_SDK + }); + userDispatcher({ + type: RESET_USER + }); + }).finally(function () { + onDisconnect(); + }); + } else { + onDisconnect(); + } +}; +var handleConnection = function handleConnection(_ref2, dispatchers) { + var userId = _ref2.userId, + appId = _ref2.appId, + nickname = _ref2.nickname, + profileUrl = _ref2.profileUrl, + accessToken = _ref2.accessToken, + sdk = _ref2.sdk, + logger = _ref2.logger; + var sdkDispatcher = dispatchers.sdkDispatcher, + userDispatcher = dispatchers.userDispatcher; + disconnectSdk({ + sdkDispatcher: sdkDispatcher, + userDispatcher: userDispatcher, + sdk: sdk, + logger: logger, + onDisconnect: function onDisconnect() { + logger.info('Setup connection'); + sdkDispatcher({ + type: SET_SDK_LOADING, + payload: true + }); + + if (userId && appId) { + var newSdk = new Sb({ + appId: appId + }); // to check if code is released version from rollup and *not from storybook* + // see rollup config file + + { + newSdk.addExtension('sb_uikit', APP_VERSION_STRING); + } + + var connectCbSucess = function connectCbSucess(user) { + sdkDispatcher({ + type: INIT_SDK, + payload: newSdk + }); + userDispatcher({ + type: INIT_USER, + payload: user + }); // use nickname/profileUrl if provided + // or set userID as nickname + + var newNickName = nickname || user.nickname; + var newProfileUrl = profileUrl || user.profileUrl; + newSdk.updateCurrentUserInfo(newNickName, newProfileUrl).then(function (namedUser) { + userDispatcher({ + type: UPDATE_USER_INFO, + payload: namedUser + }); + }); + }; + + var connectCbError = function connectCbError(e) { + logger.error('Connection failed', "".concat(e)); + sdkDispatcher({ + type: RESET_SDK + }); + sdkDispatcher({ + type: RESET_USER + }); + sdkDispatcher({ + type: SDK_ERROR + }); + }; + + if (accessToken) { + newSdk.connect(userId, accessToken).then(function (res) { + return connectCbSucess(res); + }).catch(function (err) { + return connectCbError(err); + }); + } else { + newSdk.connect(userId).then(function (res) { + return connectCbSucess(res); + }).catch(function (err) { + return connectCbError(err); + }); + } + } else { + sdkDispatcher({ + type: SDK_ERROR + }); + logger.warning('Connection failed', 'UserId or appId missing'); + } + } + }); +}; + +var isEmpty = function isEmpty(obj) { + if (obj === null || obj === undefined) { + return true; + } + + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + return false; + } + } + + return JSON.stringify(obj) === JSON.stringify({}); +}; + +var useTheme = function useTheme(overrides) { + useLayoutEffect(function () { + if (!isEmpty(overrides)) { + cssVars({ + variables: __assign({ + '--sendbird-dark-primary-500': '#4d2aa6', + '--sendbird-dark-primary-400': '#6440C4', + '--sendbird-dark-primary-300': '#7B53EF', + '--sendbird-dark-primary-200': '#9E8CF5', + '--sendbird-dark-primary-100': '#E2DFFF', + '--sendbird-dark-secondary-500': '#007A7A', + '--sendbird-dark-secondary-400': '#189A8D', + '--sendbird-dark-secondary-300': '#2EBA9F', + '--sendbird-dark-secondary-200': '#6FD6BE', + '--sendbird-dark-secondary-100': '#AEF2DC', + '--sendbird-dark-information-100': '#b2d9ff', + '--sendbird-dark-error-500': '#A30E2D', + '--sendbird-dark-error-400': '#C11F41', + '--sendbird-dark-error-300': '#E53157', + '--sendbird-dark-error-200': '#FF6183', + '--sendbird-dark-error-100': '#FFABBD', + '--sendbird-dark-background-700': '#000000', + '--sendbird-dark-background-600': '#161616', + '--sendbird-dark-background-500': '#2C2C2C', + '--sendbird-dark-background-400': '#393939', + '--sendbird-dark-background-300': '#A8A8A8', + '--sendbird-dark-background-200': '#D9D9D9', + '--sendbird-dark-background-100': '#F0F0F0', + '--sendbird-dark-background-50': '#FFFFFF', + '--sendbird-dark-overlay': 'rgba(0, 0, 0, 0.32)', + '--sendbird-dark-onlight-01': 'rgba(0, 0, 0, 0.88)', + '--sendbird-dark-onlight-02': 'rgba(0, 0, 0, 0.50)', + '--sendbird-dark-onlight-03': 'rgba(0, 0, 0, 0.38)', + '--sendbird-dark-onlight-04': 'rgba(0, 0, 0, 0.12)', + '--sendbird-dark-ondark-01': 'rgba(255, 255, 255, 0.88)', + '--sendbird-dark-ondark-02': 'rgba(255, 255, 255, 0.50)', + '--sendbird-dark-ondark-03': 'rgba(255, 255, 255, 0.38)', + '--sendbird-dark-ondark-04': 'rgba(255, 255, 255, 0.12)', + '--sendbird-dark-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)', + '--sendbird-dark-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)', + '--sendbird-dark-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)', + '--sendbird-dark-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)', + '--sendbird-dark-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)', + '--sendbird-light-primary-500': '#4d2aa6', + '--sendbird-light-primary-400': '#6440C4', + '--sendbird-light-primary-300': '#7B53EF', + '--sendbird-light-primary-200': '#9E8CF5', + '--sendbird-light-primary-100': '#E2DFFF', + '--sendbird-light-secondary-500': '#007A7A', + '--sendbird-light-secondary-400': '#189A8D', + '--sendbird-light-secondary-300': '#2EBA9F', + '--sendbird-light-secondary-200': '#6FD6BE', + '--sendbird-light-secondary-100': '#AEF2DC', + '--sendbird-light-information-100': '#b2d9ff', + '--sendbird-light-error-500': '#A30E2D', + '--sendbird-light-error-400': '#C11F41', + '--sendbird-light-error-300': '#E53157', + '--sendbird-light-error-200': '#FF6183', + '--sendbird-light-error-100': '#FFABBD', + '--sendbird-light-background-700': '#000000', + '--sendbird-light-background-600': '#161616', + '--sendbird-light-background-500': '#2C2C2C', + '--sendbird-light-background-400': '#393939', + '--sendbird-light-background-300': '#A8A8A8', + '--sendbird-light-background-200': '#D9D9D9', + '--sendbird-light-background-100': '#F0F0F0', + '--sendbird-light-background-50': ' #FFFFFF', + '--sendbird-light-overlay': 'rgba(0, 0, 0, 0.32)', + '--sendbird-light-onlight-01': 'rgba(0, 0, 0, 0.88)', + '--sendbird-light-onlight-02': 'rgba(0, 0, 0, 0.50)', + '--sendbird-light-onlight-03': 'rgba(0, 0, 0, 0.38)', + '--sendbird-light-onlight-04': 'rgba(0, 0, 0, 0.12)', + '--sendbird-light-ondark-01': 'rgba(255, 255, 255, 0.88)', + '--sendbird-light-ondark-02': 'rgba(255, 255, 255, 0.50)', + '--sendbird-light-ondark-03': 'rgba(255, 255, 255, 0.38)', + '--sendbird-light-ondark-04': 'rgba(255, 255, 255, 0.12)', + '--sendbird-light-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)', + '--sendbird-light-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)', + '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)', + '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)', + '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)', + '--sendbird-light-theme-surface-2': '#EAEAEA' + }, overrides) + }); + } + }, [overrides]); +}; + +var sdkInitialState = { + initialized: false, + loading: false, + sdk: {}, + error: false +}; + +function reducer(state, action) { + switch (action.type) { + case SET_SDK_LOADING: + return _objectSpread2({}, state, { + initialized: false, + loading: action.payload + }); + + case SDK_ERROR: + return _objectSpread2({}, state, { + initialized: false, + loading: false, + error: true + }); + + case INIT_SDK: + return { + sdk: action.payload, + initialized: true, + loading: false, + error: false + }; + + case RESET_SDK: + return sdkInitialState; + + default: + return state; + } +} + +var userInitialState = { + initialized: false, + loading: false, + user: {} +}; + +function reducer$1(state, action) { + switch (action.type) { + case INIT_USER: + return { + initialized: true, + loading: false, + user: action.payload + }; + + case RESET_USER: + return userInitialState; + + case UPDATE_USER_INFO: + return _objectSpread2({}, state, { + user: action.payload + }); + + default: + return state; + } +} + +function useConnectionStatus(sdk, logger) { + var _useState = useState(true), + _useState2 = _slicedToArray(_useState, 2), + isOnline = _useState2[0], + setIsOnline = _useState2[1]; + + useEffect(function () { + var uniqueHandlerId = uuidv4(); + logger.warning('sdk changed', uniqueHandlerId); + var handler; + + if (sdk && sdk.ConnectionHandler) { + handler = new sdk.ConnectionHandler(); + + handler.onReconnectStarted = function () { + setIsOnline(false); + logger.warning('onReconnectStarted', { + isOnline: isOnline + }); + }; + + handler.onReconnectSucceeded = function () { + setIsOnline(true); + logger.warning('onReconnectSucceeded', { + isOnline: isOnline + }); + }; + + handler.onReconnectFailed = function () { + sdk.reconnect(); + logger.warning('onReconnectFailed'); + }; + + logger.info('Added ConnectionHandler', uniqueHandlerId); + sdk.addConnectionHandler(uniqueHandlerId, handler); + } + + return function () { + try { + sdk.removeConnectionHandler(uniqueHandlerId); + logger.info('Removed ConnectionHandler', uniqueHandlerId); + } catch (_unused) {// + } + }; + }, [sdk]); + useEffect(function () { + var tryReconnect = function tryReconnect() { + try { + logger.warning('Try reconnecting SDK'); + + if (sdk.getConnectionState() !== 'OPEN') { + // connection is not broken yet + sdk.reconnect(); + } + } catch (_unused2) {// + } + }; // addEventListener version + + + window.addEventListener('online', tryReconnect); + return function () { + window.removeEventListener('online', tryReconnect); + }; + }, [sdk]); // add offline-class to body + + useEffect(function () { + var body = document.querySelector('body'); + + if (!isOnline) { + try { + body.classList.add('sendbird__offline'); + logger.info('Added class sendbird__offline to body'); + } catch (e) {// + } + } else { + try { + body.classList.remove('sendbird__offline'); + logger.info('Removed class sendbird__offline from body'); + } catch (e) {// + } + } + }, [isOnline]); + return isOnline; +} + +var LOG_LEVELS = { + DEBUG: 'debug', + WARNING: 'warning', + ERROR: 'error', + INFO: 'info', + ALL: 'all' +}; + +var colorLog = function colorLog(level) { + switch (level) { + case LOG_LEVELS.WARNING: + return 'color: Orange'; + + case LOG_LEVELS.ERROR: + return 'color: Red'; + + default: + return 'color: Gray'; + } +}; + +var printLog = function printLog(_ref) { + var level = _ref.level, + title = _ref.title, + _ref$description = _ref.description, + description = _ref$description === void 0 ? '' : _ref$description; + // eslint-disable-next-line no-console + console.log("%c SendbirdUIKit | ".concat(level, " | ").concat(new Date().toISOString(), " | ").concat(title, " ").concat(description && '|'), colorLog(level), description); +}; +var getDefaultLogger = function getDefaultLogger() { + return { + info: function info() {}, + error: function error() {}, + warning: function warning() {} + }; +}; +var LoggerFactory = function LoggerFactory(lvl, customInterface) { + var logInterface = customInterface || printLog; + var lvlArray = Array.isArray(lvl) ? lvl : [lvl]; + + var applyLog = function applyLog(lgLvl) { + return function (title, description) { + return logInterface({ + level: lgLvl, + title: title, + description: description + }); + }; + }; + + var logger = lvlArray.reduce(function (accumulator, currentLvl) { + if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) { + return _objectSpread2({}, accumulator, { + info: applyLog(LOG_LEVELS.INFO), + error: applyLog(LOG_LEVELS.ERROR), + warning: applyLog(LOG_LEVELS.WARNING) + }); + } + + if (currentLvl === LOG_LEVELS.INFO) { + return _objectSpread2({}, accumulator, { + info: applyLog(LOG_LEVELS.INFO) + }); + } + + if (currentLvl === LOG_LEVELS.ERROR) { + return _objectSpread2({}, accumulator, { + error: applyLog(LOG_LEVELS.ERROR) + }); + } + + if (currentLvl === LOG_LEVELS.WARNING) { + return _objectSpread2({}, accumulator, { + warning: applyLog(LOG_LEVELS.WARNING) + }); + } + + return _objectSpread2({}, accumulator); + }, getDefaultLogger()); + return logger; +}; + +// https://davidwalsh.name/pubsub-javascript +var pubSubFactory = (function () { + var topics = {}; + var hOP = topics.hasOwnProperty; + return { + __getTopics: function __getTopics() { + return topics; + }, + subscribe: function subscribe(topic, listener) { + // Create the topic's object if not yet created + if (!hOP.call(topics, topic)) { + topics[topic] = []; + } // Add the listener to queue + + + var index = topics[topic].push(listener) - 1; // Provide handle back for removal of topic + + return { + remove: function remove() { + delete topics[topic][index]; + } + }; + }, + publish: function publish(topic, info) { + // If the topic doesn't exist, or there's no listeners in queue, just leave + if (!hOP.call(topics, topic)) { + return; + } // Cycle through topics queue, fire! + + + topics[topic].forEach(function (item) { + item(info !== undefined ? info : {}); + }); + } + }; +}); + +function useAppendDomNode() { + var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var rootSelector = arguments.length > 1 ? arguments[1] : undefined; + useEffect(function () { + var root = document.querySelector(rootSelector); + ids.forEach(function (id) { + var elem = document.createElement('div'); + elem.setAttribute('id', id); + root.appendChild(elem); + }); + return function () { + ids.forEach(function (id) { + var target = document.getElementById(id); + + if (target) { + root.removeChild(target); + } + }); + }; + }, []); +} + +function Sendbird(props) { + var userId = props.userId, + appId = props.appId, + accessToken = props.accessToken, + children = props.children, + disableUserProfile = props.disableUserProfile, + renderUserProfile = props.renderUserProfile, + allowProfileEdit = props.allowProfileEdit, + theme = props.theme, + nickname = props.nickname, + profileUrl = props.profileUrl, + userListQuery = props.userListQuery, + _props$config = props.config, + config = _props$config === void 0 ? {} : _props$config, + colorSet = props.colorSet, + stringSet = props.stringSet; + var _config$logLevel = config.logLevel, + logLevel = _config$logLevel === void 0 ? '' : _config$logLevel; + + var _useState = useState(LoggerFactory(logLevel)), + _useState2 = _slicedToArray(_useState, 2), + logger = _useState2[0], + setLogger = _useState2[1]; + + var _useState3 = useState(), + _useState4 = _slicedToArray(_useState3, 2), + pubSub = _useState4[0], + setPubSub = _useState4[1]; + + var _useReducer = useReducer(reducer, sdkInitialState), + _useReducer2 = _slicedToArray(_useReducer, 2), + sdkStore = _useReducer2[0], + sdkDispatcher = _useReducer2[1]; + + var _useReducer3 = useReducer(reducer$1, userInitialState), + _useReducer4 = _slicedToArray(_useReducer3, 2), + userStore = _useReducer4[0], + userDispatcher = _useReducer4[1]; + + useTheme(colorSet); + useEffect(function () { + setPubSub(pubSubFactory()); + }, []); + useEffect(function () { + logger.info('App Init'); // dispatch action + + handleConnection({ + userId: userId, + appId: appId, + accessToken: accessToken, + sdkStore: sdkStore, + nickname: nickname, + profileUrl: profileUrl, + sdk: sdkStore.sdk, + logger: logger + }, { + sdkDispatcher: sdkDispatcher, + userDispatcher: userDispatcher + }); + }, [userId, appId, accessToken]); // to create a pubsub to communicate between parent and child + + useEffect(function () { + setLogger(LoggerFactory(logLevel)); + }, [logLevel]); + useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body'); // should move to reducer + + var _useState5 = useState(theme), + _useState6 = _slicedToArray(_useState5, 2), + currenttheme = _useState6[0], + setCurrenttheme = _useState6[1]; + + useEffect(function () { + setCurrenttheme(theme); + }, [theme]); // add-remove theme from body + + useEffect(function () { + logger.info('Setup theme', "Theme: ".concat(currenttheme)); + + try { + var body = document.querySelector('body'); + body.classList.remove('sendbird-theme--light'); + body.classList.remove('sendbird-theme--dark'); + body.classList.add("sendbird-theme--".concat(currenttheme || 'light')); + logger.info('Finish setup theme'); // eslint-disable-next-line no-empty + } catch (e) { + logger.warning('Setup theme failed', "".concat(e)); + } + + return function () { + try { + var _body = document.querySelector('body'); + + _body.classList.remove('sendbird-theme--light'); + + _body.classList.remove('sendbird-theme--dark'); // eslint-disable-next-line no-empty + + } catch (_unused) {} + }; + }, [currenttheme]); + var isOnline = useConnectionStatus(sdkStore.sdk, logger); + var localeStringSet = React.useMemo(function () { + if (!stringSet) { + return getStringSet('en'); + } + + return _objectSpread2({}, getStringSet('en'), {}, stringSet); + }, [stringSet]); + return React.createElement(SendbirdSdkContext.Provider, { + value: { + stores: { + sdkStore: sdkStore, + userStore: userStore + }, + dispatchers: { + sdkDispatcher: sdkDispatcher, + userDispatcher: userDispatcher, + reconnect: function reconnect() { + handleConnection({ + userId: userId, + appId: appId, + accessToken: accessToken, + sdkStore: sdkStore, + nickname: nickname, + profileUrl: profileUrl, + logger: logger, + sdk: sdkStore.sdk + }, { + sdkDispatcher: sdkDispatcher, + userDispatcher: userDispatcher + }); + } + }, + config: { + disableUserProfile: disableUserProfile, + renderUserProfile: renderUserProfile, + allowProfileEdit: allowProfileEdit, + isOnline: isOnline, + userId: userId, + appId: appId, + accessToken: accessToken, + theme: currenttheme, + setCurrenttheme: setCurrenttheme, + userListQuery: userListQuery, + logger: logger, + pubSub: pubSub + } + } + }, React.createElement(LocalizationProvider, { + stringSet: localeStringSet + }, children)); +} +Sendbird.propTypes = { + userId: PropTypes.string.isRequired, + appId: PropTypes.string.isRequired, + accessToken: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, + theme: PropTypes.string, + nickname: PropTypes.string, + profileUrl: PropTypes.string, + disableUserProfile: PropTypes.bool, + renderUserProfile: PropTypes.func, + allowProfileEdit: PropTypes.bool, + userListQuery: PropTypes.func, + config: PropTypes.shape({ + // None Error Warning Info 'All/Debug' + logLevel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + pubSub: PropTypes.shape({ + subscribe: PropTypes.func, + publish: PropTypes.func + }) + }), + stringSet: PropTypes.objectOf(PropTypes.string), + colorSet: PropTypes.objectOf(PropTypes.string) +}; +Sendbird.defaultProps = { + accessToken: '', + theme: 'light', + nickname: '', + profileUrl: '', + disableUserProfile: false, + renderUserProfile: null, + allowProfileEdit: false, + userListQuery: null, + config: {}, + stringSet: null, + colorSet: null +}; + +export default Sendbird; +//# sourceMappingURL=SendbirdProvider.js.map diff --git a/dist/esm/SendbirdProvider.js.map b/dist/esm/SendbirdProvider.js.map new file mode 100644 index 0000000..cd39b69 --- /dev/null +++ b/dist/esm/SendbirdProvider.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SendbirdProvider.js","sources":["../../../src/lib/dux/sdk/actionTypes.js","../../../src/lib/dux/sdk/thunks.js","../../../src/lib/hooks/useTheme.ts","../../../src/lib/dux/sdk/initialState.js","../../../src/lib/dux/sdk/reducers.js","../../../src/lib/dux/user/initialState.js","../../../src/lib/dux/user/reducers.js","../../../src/lib/hooks/useOnlineStatus.js","../../../src/lib/Logger/index.js","../../../src/lib/pubSub/index.js","../../../src/hooks/useAppendDomNode.js","../../../src/lib/Sendbird.jsx"],"sourcesContent":["export const INIT_SDK = 'INIT_SDK';\nexport const SET_SDK_LOADING = 'SET_SDK_LOADING';\nexport const RESET_SDK = 'RESET_SDK';\nexport const SDK_ERROR = 'SDK_ERROR';\n","import Sb from 'sendbird';\n\nimport {\n INIT_SDK,\n SET_SDK_LOADING,\n RESET_SDK,\n SDK_ERROR,\n} from './actionTypes';\nimport { INIT_USER, UPDATE_USER_INFO, RESET_USER } from '../user/actionTypes';\n\nconst APP_VERSION_STRING = '__uikit_app_version__';\nconst IS_ROLLUP = '__is_rollup__';\nconst IS_ROLLUP_REPLACE = '__is_rollup_replace__';\n\nexport const disconnectSdk = ({\n sdkDispatcher,\n userDispatcher,\n sdk,\n onDisconnect,\n}) => {\n sdkDispatcher({ type: SET_SDK_LOADING, payload: true });\n if (sdk && sdk.disconnect) {\n sdk.disconnect()\n .then(() => {\n sdkDispatcher({ type: RESET_SDK });\n userDispatcher({ type: RESET_USER });\n })\n .finally(() => {\n onDisconnect();\n });\n } else {\n onDisconnect();\n }\n};\n\nexport const handleConnection = ({\n userId,\n appId,\n nickname,\n profileUrl,\n accessToken,\n sdk,\n logger,\n}, dispatchers) => {\n const {\n sdkDispatcher,\n userDispatcher,\n } = dispatchers;\n disconnectSdk({\n sdkDispatcher,\n userDispatcher,\n sdk,\n logger,\n onDisconnect: () => {\n logger.info('Setup connection');\n sdkDispatcher({ type: SET_SDK_LOADING, payload: true });\n if (userId && appId) {\n const newSdk = new Sb({ appId });\n // to check if code is released version from rollup and *not from storybook*\n // see rollup config file\n if (IS_ROLLUP === IS_ROLLUP_REPLACE) {\n newSdk.addExtension('sb_uikit', APP_VERSION_STRING);\n }\n const connectCbSucess = (user) => {\n sdkDispatcher({ type: INIT_SDK, payload: newSdk });\n userDispatcher({ type: INIT_USER, payload: user });\n // use nickname/profileUrl if provided\n // or set userID as nickname\n const newNickName = nickname || user.nickname;\n const newProfileUrl = profileUrl || user.profileUrl;\n newSdk.updateCurrentUserInfo(newNickName, newProfileUrl)\n .then((namedUser) => {\n userDispatcher({ type: UPDATE_USER_INFO, payload: namedUser });\n });\n };\n\n const connectCbError = (e) => {\n logger.error('Connection failed', `${e}`);\n sdkDispatcher({ type: RESET_SDK });\n sdkDispatcher({ type: RESET_USER });\n sdkDispatcher({ type: SDK_ERROR });\n };\n\n if (accessToken) {\n newSdk.connect(userId, accessToken)\n .then((res) => connectCbSucess(res))\n .catch((err) => connectCbError(err));\n } else {\n newSdk.connect(userId)\n .then((res) => connectCbSucess(res))\n .catch((err) => connectCbError(err));\n }\n } else {\n sdkDispatcher({ type: SDK_ERROR });\n logger.warning('Connection failed', 'UserId or appId missing');\n }\n },\n });\n};\n","import { useLayoutEffect } from 'react';\nimport cssVars from 'css-vars-ponyfill';\n\nconst isEmpty = (obj) => {\n if (obj === null || obj === undefined) {\n return true;\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n return JSON.stringify(obj) === JSON.stringify({});\n}\n\nconst useTheme = (overrides: Record): void => {\n useLayoutEffect(() => {\n if (!isEmpty(overrides)) {\n cssVars({\n variables: {\n ...{\n '--sendbird-dark-primary-500': '#4d2aa6',\n '--sendbird-dark-primary-400': '#6440C4',\n '--sendbird-dark-primary-300': '#7B53EF',\n '--sendbird-dark-primary-200': '#9E8CF5',\n '--sendbird-dark-primary-100': '#E2DFFF',\n\n '--sendbird-dark-secondary-500': '#007A7A',\n '--sendbird-dark-secondary-400': '#189A8D',\n '--sendbird-dark-secondary-300': '#2EBA9F',\n '--sendbird-dark-secondary-200': '#6FD6BE',\n '--sendbird-dark-secondary-100': '#AEF2DC',\n\n '--sendbird-dark-information-100': '#b2d9ff',\n\n '--sendbird-dark-error-500': '#A30E2D',\n '--sendbird-dark-error-400': '#C11F41',\n '--sendbird-dark-error-300': '#E53157',\n '--sendbird-dark-error-200': '#FF6183',\n '--sendbird-dark-error-100': '#FFABBD',\n\n '--sendbird-dark-background-700': '#000000',\n '--sendbird-dark-background-600': '#161616',\n '--sendbird-dark-background-500': '#2C2C2C',\n '--sendbird-dark-background-400': '#393939',\n '--sendbird-dark-background-300': '#A8A8A8',\n '--sendbird-dark-background-200': '#D9D9D9',\n '--sendbird-dark-background-100': '#F0F0F0',\n '--sendbird-dark-background-50': '#FFFFFF',\n\n '--sendbird-dark-overlay': 'rgba(0, 0, 0, 0.32)',\n\n '--sendbird-dark-onlight-01': 'rgba(0, 0, 0, 0.88)',\n '--sendbird-dark-onlight-02': 'rgba(0, 0, 0, 0.50)',\n '--sendbird-dark-onlight-03': 'rgba(0, 0, 0, 0.38)',\n '--sendbird-dark-onlight-04': 'rgba(0, 0, 0, 0.12)',\n\n '--sendbird-dark-ondark-01': 'rgba(255, 255, 255, 0.88)',\n '--sendbird-dark-ondark-02': 'rgba(255, 255, 255, 0.50)',\n '--sendbird-dark-ondark-03': 'rgba(255, 255, 255, 0.38)',\n '--sendbird-dark-ondark-04': 'rgba(255, 255, 255, 0.12)',\n\n '--sendbird-dark-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',\n\n '--sendbird-dark-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-primary-500': '#4d2aa6',\n '--sendbird-light-primary-400': '#6440C4',\n '--sendbird-light-primary-300': '#7B53EF',\n '--sendbird-light-primary-200': '#9E8CF5',\n '--sendbird-light-primary-100': '#E2DFFF',\n\n '--sendbird-light-secondary-500': '#007A7A',\n '--sendbird-light-secondary-400': '#189A8D',\n '--sendbird-light-secondary-300': '#2EBA9F',\n '--sendbird-light-secondary-200': '#6FD6BE',\n '--sendbird-light-secondary-100': '#AEF2DC',\n\n '--sendbird-light-information-100': '#b2d9ff',\n\n '--sendbird-light-error-500': '#A30E2D',\n '--sendbird-light-error-400': '#C11F41',\n '--sendbird-light-error-300': '#E53157',\n '--sendbird-light-error-200': '#FF6183',\n '--sendbird-light-error-100': '#FFABBD',\n\n '--sendbird-light-background-700': '#000000',\n '--sendbird-light-background-600': '#161616',\n '--sendbird-light-background-500': '#2C2C2C',\n '--sendbird-light-background-400': '#393939',\n '--sendbird-light-background-300': '#A8A8A8',\n '--sendbird-light-background-200': '#D9D9D9',\n '--sendbird-light-background-100': '#F0F0F0',\n '--sendbird-light-background-50': ' #FFFFFF',\n\n '--sendbird-light-overlay': 'rgba(0, 0, 0, 0.32)',\n\n '--sendbird-light-onlight-01': 'rgba(0, 0, 0, 0.88)',\n '--sendbird-light-onlight-02': 'rgba(0, 0, 0, 0.50)',\n '--sendbird-light-onlight-03': 'rgba(0, 0, 0, 0.38)',\n '--sendbird-light-onlight-04': 'rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-ondark-01': 'rgba(255, 255, 255, 0.88)',\n '--sendbird-light-ondark-02': 'rgba(255, 255, 255, 0.50)',\n '--sendbird-light-ondark-03': 'rgba(255, 255, 255, 0.38)',\n '--sendbird-light-ondark-04': 'rgba(255, 255, 255, 0.12)',\n\n '--sendbird-light-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-light-theme-surface-2': '#EAEAEA',\n },\n ...overrides,\n },\n });\n }\n }, [overrides]);\n};\n\nexport default useTheme;\n","export default {\n initialized: false,\n loading: false,\n sdk: {},\n error: false,\n};\n","import * as sdkActions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case sdkActions.SET_SDK_LOADING:\n return {\n ...state,\n initialized: false,\n loading: action.payload,\n };\n case sdkActions.SDK_ERROR:\n return {\n ...state,\n initialized: false,\n loading: false,\n error: true,\n };\n case sdkActions.INIT_SDK:\n return {\n sdk: action.payload,\n initialized: true,\n loading: false,\n error: false,\n };\n case sdkActions.RESET_SDK:\n return initialState;\n default:\n return state;\n }\n}\n","export default {\n initialized: false,\n loading: false,\n user: {},\n};\n","import * as actions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actions.INIT_USER:\n return {\n initialized: true,\n loading: false,\n user: action.payload,\n };\n case actions.RESET_USER:\n return initialState;\n case actions.UPDATE_USER_INFO:\n return {\n ...state,\n user: action.payload,\n };\n default:\n return state;\n }\n}\n","import { useState, useEffect } from 'react';\n\nimport { uuidv4 } from '../../utils/uuid';\n\nfunction useConnectionStatus(sdk, logger) {\n const [isOnline, setIsOnline] = useState(true);\n\n useEffect(() => {\n const uniqueHandlerId = uuidv4();\n logger.warning('sdk changed', uniqueHandlerId);\n let handler;\n if (sdk && sdk.ConnectionHandler) {\n handler = new sdk.ConnectionHandler();\n\n handler.onReconnectStarted = () => {\n setIsOnline(false);\n logger.warning('onReconnectStarted', { isOnline });\n };\n handler.onReconnectSucceeded = () => {\n setIsOnline(true);\n logger.warning('onReconnectSucceeded', { isOnline });\n };\n handler.onReconnectFailed = () => {\n sdk.reconnect();\n logger.warning('onReconnectFailed');\n };\n logger.info('Added ConnectionHandler', uniqueHandlerId);\n sdk.addConnectionHandler(uniqueHandlerId, handler);\n }\n return () => {\n try {\n sdk.removeConnectionHandler(uniqueHandlerId);\n logger.info('Removed ConnectionHandler', uniqueHandlerId);\n } catch {\n //\n }\n };\n }, [sdk]);\n\n useEffect(() => {\n const tryReconnect = () => {\n try {\n logger.warning('Try reconnecting SDK');\n if (sdk.getConnectionState() !== 'OPEN') { // connection is not broken yet\n sdk.reconnect();\n }\n } catch {\n //\n }\n };\n // addEventListener version\n window.addEventListener('online', tryReconnect);\n return () => {\n window.removeEventListener('online', tryReconnect);\n };\n }, [sdk]);\n\n // add offline-class to body\n useEffect(() => {\n const body = document.querySelector('body');\n if (!isOnline) {\n try {\n body.classList.add('sendbird__offline');\n logger.info('Added class sendbird__offline to body');\n } catch (e) {\n //\n }\n } else {\n try {\n body.classList.remove('sendbird__offline');\n logger.info('Removed class sendbird__offline from body');\n } catch (e) {\n //\n }\n }\n }, [isOnline]);\n\n return isOnline;\n}\n\nexport default useConnectionStatus;\n","export const LOG_LEVELS = {\n DEBUG: 'debug',\n WARNING: 'warning',\n ERROR: 'error',\n INFO: 'info',\n ALL: 'all',\n};\n\nconst colorLog = (level) => {\n switch (level) {\n case LOG_LEVELS.WARNING:\n return ('color: Orange');\n case LOG_LEVELS.ERROR:\n return ('color: Red');\n default:\n return ('color: Gray');\n }\n};\n\nexport const printLog = ({\n level,\n title,\n description = '',\n}) => {\n // eslint-disable-next-line no-console\n console.log(\n `%c SendbirdUIKit | ${level} | ${new Date().toISOString()} | ${title} ${description && '|'}`, colorLog(level),\n description,\n );\n};\n\nexport const getDefaultLogger = () => ({\n info: () => {},\n error: () => {},\n warning: () => {},\n});\n\nexport const LoggerFactory = (lvl, customInterface) => {\n const logInterface = customInterface || printLog;\n const lvlArray = Array.isArray(lvl) ? lvl : [lvl];\n\n const applyLog = (lgLvl) => (title, description) => logInterface({\n level: lgLvl,\n title,\n description,\n });\n\n const logger = lvlArray.reduce((accumulator, currentLvl) => {\n if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) {\n return ({\n ...accumulator,\n info: applyLog(LOG_LEVELS.INFO),\n error: applyLog(LOG_LEVELS.ERROR),\n warning: applyLog(LOG_LEVELS.WARNING),\n });\n }\n\n if (currentLvl === LOG_LEVELS.INFO) {\n return ({\n ...accumulator,\n info: applyLog(LOG_LEVELS.INFO),\n });\n }\n\n if (currentLvl === LOG_LEVELS.ERROR) {\n return ({\n ...accumulator,\n error: applyLog(LOG_LEVELS.ERROR),\n });\n }\n\n if (currentLvl === LOG_LEVELS.WARNING) {\n return ({\n ...accumulator,\n warning: applyLog(LOG_LEVELS.WARNING),\n });\n }\n\n return { ...accumulator };\n }, getDefaultLogger());\n return logger;\n};\n","// https://davidwalsh.name/pubsub-javascript\nexport default () => {\n const topics = {};\n const hOP = topics.hasOwnProperty;\n\n return {\n __getTopics: () => topics,\n subscribe: (topic, listener) => {\n // Create the topic's object if not yet created\n if (!hOP.call(topics, topic)) { topics[topic] = []; }\n\n // Add the listener to queue\n const index = topics[topic].push(listener) - 1;\n\n // Provide handle back for removal of topic\n return {\n remove: () => {\n delete topics[topic][index];\n },\n };\n },\n publish: (topic, info) => {\n // If the topic doesn't exist, or there's no listeners in queue, just leave\n if (!hOP.call(topics, topic)) { return; }\n\n // Cycle through topics queue, fire!\n topics[topic].forEach((item) => {\n item(info !== undefined ? info : {});\n });\n },\n };\n};\n","import { useEffect } from 'react';\n\nfunction useAppendDomNode(ids = [], rootSelector) {\n useEffect(() => {\n const root = document.querySelector(rootSelector);\n ids.forEach((id) => {\n const elem = document.createElement('div');\n elem.setAttribute('id', id);\n root.appendChild(elem);\n });\n return () => {\n ids.forEach((id) => {\n const target = document.getElementById(id);\n if (target) {\n root.removeChild(target);\n }\n });\n };\n }, []);\n}\n\nexport default useAppendDomNode;\n","import './index.scss';\n\nimport React, { useEffect, useReducer, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SendbirdSdkContext } from './SendbirdSdkContext';\nimport { handleConnection } from './dux/sdk/thunks';\n\nimport useTheme from './hooks/useTheme';\n\nimport sdkReducers from './dux/sdk/reducers';\nimport userReducers from './dux/user/reducers';\nimport sdkInitialState from './dux/sdk/initialState';\nimport userInitialState from './dux/user/initialState';\n\nimport useOnlineStatus from './hooks/useOnlineStatus';\n\nimport { LoggerFactory } from './Logger';\nimport pubSubFactory from './pubSub/index';\nimport useAppendDomNode from '../hooks/useAppendDomNode';\n\nimport { LocalizationProvider } from './LocalizationContext';\nimport getStringSet from '../ui/Label/stringSet';\n\nexport default function Sendbird(props) {\n const {\n userId,\n appId,\n accessToken,\n children,\n disableUserProfile,\n renderUserProfile,\n allowProfileEdit,\n theme,\n nickname,\n profileUrl,\n userListQuery,\n config = {},\n colorSet,\n stringSet,\n } = props;\n\n const {\n logLevel = '',\n } = config;\n const [logger, setLogger] = useState(LoggerFactory(logLevel));\n const [pubSub, setPubSub] = useState();\n const [sdkStore, sdkDispatcher] = useReducer(sdkReducers, sdkInitialState);\n const [userStore, userDispatcher] = useReducer(userReducers, userInitialState);\n\n useTheme(colorSet);\n\n useEffect(() => {\n setPubSub(pubSubFactory());\n }, []);\n\n useEffect(() => {\n logger.info('App Init');\n // dispatch action\n handleConnection({\n userId,\n appId,\n accessToken,\n sdkStore,\n nickname,\n profileUrl,\n sdk: sdkStore.sdk,\n logger,\n }, {\n sdkDispatcher,\n userDispatcher,\n });\n }, [userId, appId, accessToken]);\n\n // to create a pubsub to communicate between parent and child\n useEffect(() => {\n setLogger(LoggerFactory(logLevel));\n }, [logLevel]);\n\n useAppendDomNode([\n 'sendbird-modal-root',\n 'sendbird-dropdown-portal',\n 'sendbird-emoji-list-portal',\n ], 'body');\n\n // should move to reducer\n const [currenttheme, setCurrenttheme] = useState(theme);\n useEffect(() => {\n setCurrenttheme(theme);\n }, [theme]);\n // add-remove theme from body\n useEffect(() => {\n logger.info('Setup theme', `Theme: ${currenttheme}`);\n try {\n const body = document.querySelector('body');\n body.classList.remove('sendbird-theme--light');\n body.classList.remove('sendbird-theme--dark');\n body.classList.add(`sendbird-theme--${currenttheme || 'light'}`);\n logger.info('Finish setup theme');\n // eslint-disable-next-line no-empty\n } catch (e) {\n logger.warning('Setup theme failed', `${e}`);\n }\n return () => {\n try {\n const body = document.querySelector('body');\n body.classList.remove('sendbird-theme--light');\n body.classList.remove('sendbird-theme--dark');\n // eslint-disable-next-line no-empty\n } catch { }\n };\n }, [currenttheme]);\n\n const isOnline = useOnlineStatus(sdkStore.sdk, logger);\n\n const localeStringSet = React.useMemo(() => {\n if (!stringSet) {\n return getStringSet('en');\n }\n return {\n ...getStringSet('en'),\n ...stringSet,\n };\n }, [stringSet]);\n\n return (\n {\n handleConnection({\n userId,\n appId,\n accessToken,\n sdkStore,\n nickname,\n profileUrl,\n logger,\n sdk: sdkStore.sdk,\n }, {\n sdkDispatcher,\n userDispatcher,\n });\n },\n },\n config: {\n disableUserProfile,\n renderUserProfile,\n allowProfileEdit,\n isOnline,\n userId,\n appId,\n accessToken,\n theme: currenttheme,\n setCurrenttheme,\n userListQuery,\n logger,\n pubSub,\n },\n }}\n >\n \n {children}\n \n \n );\n}\n\nSendbird.propTypes = {\n userId: PropTypes.string.isRequired,\n appId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n theme: PropTypes.string,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n userListQuery: PropTypes.func,\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }),\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n};\n\nSendbird.defaultProps = {\n accessToken: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n disableUserProfile: false,\n renderUserProfile: null,\n allowProfileEdit: false,\n userListQuery: null,\n config: {},\n stringSet: null,\n colorSet: null,\n};\n"],"names":["INIT_SDK","SET_SDK_LOADING","RESET_SDK","SDK_ERROR","APP_VERSION_STRING","disconnectSdk","sdkDispatcher","userDispatcher","sdk","onDisconnect","type","payload","disconnect","then","RESET_USER","finally","handleConnection","dispatchers","userId","appId","nickname","profileUrl","accessToken","logger","info","newSdk","Sb","addExtension","connectCbSucess","user","INIT_USER","newNickName","newProfileUrl","updateCurrentUserInfo","namedUser","UPDATE_USER_INFO","connectCbError","e","error","connect","res","catch","err","warning","isEmpty","obj","undefined","prop","hasOwnProperty","JSON","stringify","useTheme","overrides","useLayoutEffect","cssVars","variables","initialized","loading","reducer","state","action","sdkActions","initialState","actions","useConnectionStatus","useState","isOnline","setIsOnline","useEffect","uniqueHandlerId","uuidv4","handler","ConnectionHandler","onReconnectStarted","onReconnectSucceeded","onReconnectFailed","reconnect","addConnectionHandler","removeConnectionHandler","tryReconnect","getConnectionState","window","addEventListener","removeEventListener","body","document","querySelector","classList","add","remove","LOG_LEVELS","DEBUG","WARNING","ERROR","INFO","ALL","colorLog","level","printLog","title","description","console","log","Date","toISOString","getDefaultLogger","LoggerFactory","lvl","customInterface","logInterface","lvlArray","Array","isArray","applyLog","lgLvl","reduce","accumulator","currentLvl","topics","hOP","__getTopics","subscribe","topic","listener","call","index","push","publish","forEach","item","useAppendDomNode","ids","rootSelector","root","id","elem","createElement","setAttribute","appendChild","target","getElementById","removeChild","Sendbird","props","children","disableUserProfile","renderUserProfile","allowProfileEdit","theme","userListQuery","config","colorSet","stringSet","logLevel","setLogger","pubSub","setPubSub","useReducer","sdkReducers","sdkInitialState","sdkStore","userReducers","userInitialState","userStore","pubSubFactory","currenttheme","setCurrenttheme","useOnlineStatus","localeStringSet","React","useMemo","getStringSet","stores","propTypes","PropTypes","string","isRequired","oneOfType","element","arrayOf","any","bool","func","shape","objectOf","defaultProps"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/actionTypes-a85c0eaa.js b/dist/esm/actionTypes-a85c0eaa.js new file mode 100644 index 0000000..f492a6e --- /dev/null +++ b/dist/esm/actionTypes-a85c0eaa.js @@ -0,0 +1,6 @@ +var INIT_USER = 'INIT_USER'; +var RESET_USER = 'RESET_USER'; +var UPDATE_USER_INFO = 'UPDATE_USER_INFO'; + +export { INIT_USER as I, RESET_USER as R, UPDATE_USER_INFO as U }; +//# sourceMappingURL=actionTypes-a85c0eaa.js.map diff --git a/dist/esm/actionTypes-a85c0eaa.js.map b/dist/esm/actionTypes-a85c0eaa.js.map new file mode 100644 index 0000000..8848fd0 --- /dev/null +++ b/dist/esm/actionTypes-a85c0eaa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"actionTypes-a85c0eaa.js","sources":["../../../src/lib/dux/user/actionTypes.js"],"sourcesContent":["export const INIT_USER = 'INIT_USER';\nexport const RESET_USER = 'RESET_USER';\nexport const SET_USER_LOADING = 'SET_USER_LOADING';\nexport const UPDATE_USER_INFO = 'UPDATE_USER_INFO';\n"],"names":["INIT_USER","RESET_USER","UPDATE_USER_INFO"],"mappings":"IAAaA,SAAS,GAAG;IACZC,UAAU,GAAG;IAEbC,gBAAgB,GAAG;;;;"} \ No newline at end of file diff --git a/dist/esm/index-0c67ae90.js b/dist/esm/index-0c67ae90.js new file mode 100644 index 0000000..bfe1482 --- /dev/null +++ b/dist/esm/index-0c67ae90.js @@ -0,0 +1,3300 @@ +import { b as _slicedToArray, c as _toConsumableArray, d as __spreadArrays, u as uuidv4, g as getStringSet, a as _objectSpread2, e as LocalizationContext, w as withSendbirdContext, f as _inherits, h as _createClass, i as _classCallCheck, j as _possibleConstructorReturn, k as _getPrototypeOf, l as _defineProperty, m as _assertThisInitialized } from './LocalizationContext-619bafba.js'; +import React, { useState, useEffect, useContext, Component } from 'react'; +import PropTypes from 'prop-types'; +import { createPortal } from 'react-dom'; + +var UserProfileContext = React.createContext({ + disableUserProfile: true, + isOpenChannel: false, + renderUserProfile: null +}); + +var UserProfileProvider = function UserProfileProvider(props) { + var children = props.children, + className = props.className; + return React.createElement(UserProfileContext.Provider, { + value: props + }, React.createElement("div", { + className: className + }, children)); +}; + +UserProfileProvider.propTypes = { + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, + // eslint-disable-next-line react/no-unused-prop-types + isOpenChannel: PropTypes.bool, + // eslint-disable-next-line react/no-unused-prop-types + disableUserProfile: PropTypes.bool, + // eslint-disable-next-line react/no-unused-prop-types + renderUserProfile: PropTypes.func, + className: PropTypes.string +}; +UserProfileProvider.defaultProps = { + className: null, + isOpenChannel: false, + disableUserProfile: false, + renderUserProfile: null +}; + +/* + ImageRenderer displays image with url or source + it checks if the source exist with img tag first + if it exists onLoad is called, if not onError is called + and those properties switch img tag to real purposing element +*/ + +function ImageRenderer(_ref) { + var alt = _ref.alt, + url = _ref.url, + width = _ref.width, + height = _ref.height, + className = _ref.className, + defaultComponent = _ref.defaultComponent, + circle = _ref.circle; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift('sendbird-image-renderer'); + + var _useState = useState(null), + _useState2 = _slicedToArray(_useState, 2), + realElement = _useState2[0], + setRealElement = _useState2[1]; + + useEffect(function () { + setRealElement(null); + }, [url]); + return realElement || React.createElement("img", { + className: "sendbird-image-renderer--hidden-placeholder ".concat(injectingClassName.join(' ')), + src: url, + alt: alt, + onError: function onError() { + setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent); + }, + onLoad: function onLoad() { + setRealElement(React.createElement("div", { + className: injectingClassName.join(' '), + style: { + width: width, + height: height, + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center', + backgroundSize: 'cover', + backgroundImage: "url(".concat(url, ")"), + borderRadius: circle ? '50%' : null + } + })); + } + }); +} +ImageRenderer.propTypes = { + alt: PropTypes.string, + url: PropTypes.string.isRequired, + width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + className: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]), + defaultComponent: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + circle: PropTypes.bool +}; +ImageRenderer.defaultProps = { + alt: '', + className: '', + circle: false, + defaultComponent: null, + width: null, + height: null +}; + +var Type = { + ADD: 'ADD', + ATTACH: 'ATTACH', + ARROW_LEFT: 'ARROW_LEFT', + AVATAR_DARK: 'AVATAR_DARK', + AVATAR_LIGHT: 'AVATAR_LIGHT', + AVATAR_NO_IMAGE: 'AVATAR_NO_IMAGE', + BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK', + BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT', + BROADCAST_DARK: 'BROADCAST_DARK', + BROADCAST_LIGHT: 'BROADCAST_LIGHT', + BROADCAST: 'BROADCAST', + FROZEN_DARK: 'FROZEN_DARK', + FROZEN_LIGHT: 'FROZEN_LIGHT', + CAMERA: 'CAMERA', + MORE: 'MORE', + MUTE: 'MUTE', + NO_THUMBNAIL: 'NO_THUMBNAIL', + CHECKBOX: 'CHECKBOX', + CHECKBOX_OFF: 'CHECKBOX_OFF', + CLOSE: 'CLOSE', + COPY: 'COPY', + CHAT: 'CHAT', + CREATE: 'CREATE', + DELETE: 'DELETE', + DISCONNECTED: 'DISCONNECTED', + DUMMY: 'DUMMY', + EDIT: 'EDIT', + ERROR: 'ERROR', + ERROR_FILLED: 'ERROR_FILLED', + EMOJI_FAILED: 'EMOJI_FAILED', + EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD', + EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY', + DELIVERED: 'DELIVERED', + DOCUMENT: 'DOCUMENT', + DOWNLOAD: 'DOWNLOAD', + FILE_AUDIO: 'FILE_AUDIO', + FILE_DOCUMENT: 'FILE_DOCUMENT', + GIF: 'GIF', + INFO: 'INFO', + LEAVE: 'LEAVE', + MEMBERS: 'MEMBERS', + NOTIFICATIONS: 'NOTIFICATIONS', + PHOTO: 'PHOTO', + PLAY: 'PLAY', + PLUS: 'PLUS', + READ: 'READ', + REFRESH: 'REFRESH', + SEND: 'SEND', + SENT: 'SENT', + SUPER_GROUP: 'SUPER_GROUP', + SHEVRON: 'SHEVRON', + SHEVRON_DOWN: 'SHEVRON_DOWN', + SPINNER: 'SPINNER', + SPINNER_LARGE: 'SPINNER_LARGE', + USER: 'USER', + ICON_OPERATOR: 'ICON_OPERATOR', + ICON_BANNED: 'ICON_BANNED', + ICON_FREEZE: 'ICON_FREEZE', + ICON_MUTED: 'ICON_MUTED', + ICON_MUTED_FG: 'ICON_MUTED_FG', + TOGGLE_ON: 'TOGGLE_ON', + TOGGLE_OFF: 'TOGGLE_OFF' +}; + +function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + +var _ref = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-add_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M19 2a3 3 0 013 3v14a3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3zm0 2H5a1 1 0 00-1 1v14a1 1 0 001 1h14a1 1 0 001-1V5a1 1 0 00-1-1zm-7 3a1 1 0 01.993.883L13 8v3h3a1 1 0 01.117 1.993L16 13h-3v3a1 1 0 01-1.993.117L11 16v-3H8a1 1 0 01-.117-1.993L8 11h3V8a1 1 0 011-1z" +}); + +function SvgIconAdd(props) { + return React.createElement("svg", _extends({ + viewBox: "0 0 24 24" + }, props), _ref); +} + +function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); } + +var _ref$1 = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-attach_svg__fill", + fillOpacity: 0.88, + fillRule: "evenodd", + d: "M19.021 9.943l-8.424 8.023c-1.795 1.71-4.723 1.71-6.518 0-1.77-1.685-1.77-4.398 0-6.084l8.424-8.023c1.079-1.027 2.845-1.027 3.924 0a2.461 2.461 0 010 3.614l-8.433 8.022a.984.984 0 01-1.33 0 .772.772 0 010-1.142l7.782-7.403a.917.917 0 00-1.264-1.328L5.4 13.025a2.605 2.605 0 000 3.798 2.816 2.816 0 003.858 0l8.433-8.022a4.294 4.294 0 000-6.27C15.905.83 13.025.83 11.24 2.531l-8.425 8.023c-2.528 2.408-2.528 6.332 0 8.74 2.504 2.384 6.544 2.384 9.047 0l8.425-8.023a.917.917 0 10-1.265-1.328z" +}); + +function SvgIconAttach(props) { + return React.createElement("svg", _extends$1({ + viewBox: "0 0 22 22" + }, props), _ref$1); +} + +function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); } + +var _ref$2 = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-arrow-left_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12.707 3.293a1 1 0 01.083 1.32l-.083.094L6.415 11H21a1 1 0 01.117 1.993L21 13H6.415l6.292 6.293a1 1 0 01.083 1.32l-.083.094a1 1 0 01-1.32.083l-.094-.083-8-8a1 1 0 01-.083-1.32l.083-.094 8-8a1 1 0 011.414 0z" +}); + +function SvgIconArrowLeft(props) { + return React.createElement("svg", _extends$2({ + viewBox: "0 0 24 24" + }, props), _ref$2); +} + +function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); } + +var _ref$3 = +/*#__PURE__*/ +React.createElement("path", { + fill: "#393939", + d: "M0 0h56v56H0z" +}); + +var _ref2 = +/*#__PURE__*/ +React.createElement("path", { + fillOpacity: 0.88, + d: "M34.667 31.333a8.334 8.334 0 018.325 7.972l.008.362V43a1.667 1.667 0 01-3.322.194L39.667 43v-3.333a5 5 0 00-4.707-4.992l-.293-.008H21.333a5 5 0 00-4.991 4.706l-.009.294V43a1.667 1.667 0 01-3.322.194L13 43v-3.333a8.333 8.333 0 017.972-8.326l.361-.008h13.334zm-6.667-20A8.333 8.333 0 1128 28a8.333 8.333 0 010-16.667zm0 3.334a5 5 0 100 10 5 5 0 000-10z" +}); + +function SvgIconAvatarDark(props) { + return React.createElement("svg", _extends$3({ + viewBox: "0 0 56 56" + }, props), _ref$3, _ref2); +} + +function _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); } + +var _ref$4 = +/*#__PURE__*/ +React.createElement("path", { + fill: "#A8A8A8", + d: "M0 0h56v56H0z" +}); + +var _ref2$1 = +/*#__PURE__*/ +React.createElement("path", { + fill: "#FFF", + fillOpacity: 0.88, + d: "M34.667 31.333a8.334 8.334 0 018.325 7.972l.008.362V43a1.667 1.667 0 01-3.322.194L39.667 43v-3.333a5 5 0 00-4.707-4.992l-.293-.008H21.333a5 5 0 00-4.991 4.706l-.009.294V43a1.667 1.667 0 01-3.322.194L13 43v-3.333a8.333 8.333 0 017.972-8.326l.361-.008h13.334zm-6.667-20A8.333 8.333 0 1128 28a8.333 8.333 0 010-16.667zm0 3.334a5 5 0 100 10 5 5 0 000-10z" +}); + +function SvgIconAvatarLight(props) { + return React.createElement("svg", _extends$4({ + viewBox: "0 0 56 56" + }, props), _ref$4, _ref2$1); +} + +function _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); } + +var _ref$5 = +/*#__PURE__*/ +React.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React.createElement("circle", { + cx: 16, + cy: 16, + r: 16, + className: "avatar-no-image-light_svg__fill" +}), React.createElement("path", { + d: "M19.043 8.381l.089.004a.762.762 0 01.677.753l-.004.089-.415 3.725h2.705a.762.762 0 01.089 1.519l-.089.005H19.22l-.338 3.048h3.213a.762.762 0 01.089 1.518l-.089.005h-3.382l-.432 3.894a.762.762 0 01-1.519-.079l.004-.09.414-3.725h-3.038l-.433 3.894a.76.76 0 01-1.519-.079l.005-.09.414-3.725H9.905a.76.76 0 01-.089-1.518l.089-.005h2.872l.339-3.048H9.905a.762.762 0 01-.089-1.519l.089-.005h3.381l.433-3.893a.76.76 0 01.752-.678l.09.004a.763.763 0 01.677.753l-.005.089-.414 3.725h3.038l.433-3.893a.762.762 0 01.753-.678zm-1.694 9.143l.34-3.048h-3.04l-.338 3.048h3.038z", + fill: "#FFF", + fillOpacity: 0.88 +})); + +function SvgAvatarNoImageLight(props) { + return React.createElement("svg", _extends$5({ + viewBox: "0 0 32 32" + }, props), _ref$5); +} + +function _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); } + +var _ref$6 = +/*#__PURE__*/ +React.createElement("g", { + className: "icon-broadcast-lrg-dark_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React.createElement("circle", { + cx: 28, + cy: 28, + r: 28, + fill: "#6FD6BE" +}), React.createElement("path", { + fill: "#000", + fillOpacity: 0.88, + d: "M41.273 16.083c.04.128.06.262.06.397v23.04a1.333 1.333 0 01-1.731 1.273l-8.975-2.805A5.335 5.335 0 0120 37.333v-2.666h-2.667a4 4 0 01-3.995-3.8l-.005-.2v-5.334a4 4 0 014-4H20l19.602-6.125a1.332 1.332 0 011.67.875zM22.667 35.627v1.706a2.667 2.667 0 005.326.199l.007-.239-5.333-1.666zm16-17.334l-16 4.999v9.415l16 4.998V18.293zM20 24h-2.667c-.683 0-1.247.515-1.324 1.178l-.009.155v5.334c0 .736.597 1.333 1.333 1.333H20v-8z" +})); + +function SvgIconBroadcastLrgDark(props) { + return React.createElement("svg", _extends$6({ + viewBox: "0 0 56 56" + }, props), _ref$6); +} + +function _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); } + +var _ref$7 = +/*#__PURE__*/ +React.createElement("g", { + className: "icon-broadcast-lrg-light_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React.createElement("circle", { + cx: 28, + cy: 28, + r: 28, + fill: "#2EBA9F" +}), React.createElement("path", { + fill: "#FFF", + fillOpacity: 0.88, + d: "M41.273 16.083c.04.128.06.262.06.397v23.04a1.333 1.333 0 01-1.731 1.273l-8.975-2.805A5.335 5.335 0 0120 37.333v-2.666h-2.667a4 4 0 01-3.995-3.8l-.005-.2v-5.334a4 4 0 014-4H20l19.602-6.125a1.332 1.332 0 011.67.875zM22.667 35.627v1.706a2.667 2.667 0 005.326.199l.007-.239-5.333-1.666zm16-17.334l-16 4.999v9.415l16 4.998V18.293zM20 24h-2.667c-.683 0-1.247.515-1.324 1.178l-.009.155v5.334c0 .736.597 1.333 1.333 1.333H20v-8z" +})); + +function SvgIconBroadcastLrgLight(props) { + return React.createElement("svg", _extends$7({ + viewBox: "0 0 56 56" + }, props), _ref$7); +} + +function _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); } + +var _ref$8 = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-broadcast-dark_svg__fill", + fill: "#6FD6BE", + fillRule: "evenodd", + d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" +}); + +function SvgIconBroadcastDark(props) { + return React.createElement("svg", _extends$8({ + viewBox: "0 0 16 16" + }, props), _ref$8); +} + +function _extends$9() { _extends$9 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); } + +var _ref$9 = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-broadcast-light_svg__fill", + fill: "#2EBA9F", + fillRule: "evenodd", + d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" +}); + +function SvgIconBroadcastLight(props) { + return React.createElement("svg", _extends$9({ + viewBox: "0 0 16 16" + }, props), _ref$9); +} + +function _extends$a() { _extends$a = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); } + +var _ref$a = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-broadcast_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" +}); + +function SvgIconBroadcast(props) { + return React.createElement("svg", _extends$a({ + viewBox: "0 0 16 16" + }, props), _ref$a); +} + +function _extends$b() { _extends$b = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$b.apply(this, arguments); } + +var _ref$b = +/*#__PURE__*/ +React.createElement("path", { + className: "frozen-dark_svg__fill", + fill: "#9E8CF5", + fillRule: "evenodd", + d: "M10.409.806l.063.056c.24.24.259.618.055.88l-.055.063-1.805 1.804v3.236l2.801-1.618.662-2.465a.665.665 0 011.304.263l-.016.082-.56 2.088 2.088.56a.665.665 0 01.488.734l-.016.082a.666.666 0 01-.735.488l-.082-.016-2.465-.661L9.334 8l2.801 1.618 2.466-.66.082-.017a.667.667 0 01.735.488l.016.082a.666.666 0 01-.488.734l-2.088.56.56 2.088.016.082a.666.666 0 01-1.304.263l-.662-2.465-2.801-1.618v3.236l1.805 1.804a.668.668 0 01-.88.999l-.063-.056L8 13.61l-1.528 1.53a.668.668 0 01-.88.055l-.063-.056a.668.668 0 01-.056-.88l.056-.063 1.804-1.805V9.155L4.53 10.773l-.66 2.465a.667.667 0 01-1.304-.263l.017-.082.559-2.088-2.088-.56a.667.667 0 01-.488-.734l.017-.082a.665.665 0 01.734-.488l.082.016 2.466.66L6.666 8 3.864 6.382l-2.465.66-.082.017a.666.666 0 01-.734-.488L.566 6.49a.667.667 0 01.488-.734l2.088-.56-.56-2.088-.016-.082a.667.667 0 011.305-.263l.659 2.465 2.803 1.618V3.61L5.529 1.805a.668.668 0 01.88-.999l.063.056L8 2.39 9.53.862a.668.668 0 01.88-.056z" +}); + +function SvgFrozenDark(props) { + return React.createElement("svg", _extends$b({ + viewBox: "0 0 16 16" + }, props), _ref$b); +} + +function _extends$c() { _extends$c = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$c.apply(this, arguments); } + +var _ref$c = +/*#__PURE__*/ +React.createElement("path", { + className: "frozen-light_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M10.409.806l.063.056c.24.24.259.618.055.88l-.055.063-1.805 1.804v3.236l2.801-1.618.662-2.465a.665.665 0 011.304.263l-.016.082-.56 2.088 2.088.56a.665.665 0 01.488.734l-.016.082a.666.666 0 01-.735.488l-.082-.016-2.465-.661L9.334 8l2.801 1.618 2.466-.66.082-.017a.667.667 0 01.735.488l.016.082a.666.666 0 01-.488.734l-2.088.56.56 2.088.016.082a.666.666 0 01-1.304.263l-.662-2.465-2.801-1.618v3.236l1.805 1.804a.668.668 0 01-.88.999l-.063-.056L8 13.61l-1.528 1.53a.668.668 0 01-.88.055l-.063-.056a.668.668 0 01-.056-.88l.056-.063 1.804-1.805V9.155L4.53 10.773l-.66 2.465a.667.667 0 01-1.304-.263l.017-.082.559-2.088-2.088-.56a.667.667 0 01-.488-.734l.017-.082a.665.665 0 01.734-.488l.082.016 2.466.66L6.666 8 3.864 6.382l-2.465.66-.082.017a.666.666 0 01-.734-.488L.566 6.49a.667.667 0 01.488-.734l2.088-.56-.56-2.088-.016-.082a.667.667 0 011.305-.263l.659 2.465 2.803 1.618V3.61L5.529 1.805a.668.668 0 01.88-.999l.063.056L8 2.39 9.53.862a.668.668 0 01.88-.056z" +}); + +function SvgFrozenLight(props) { + return React.createElement("svg", _extends$c({ + viewBox: "0 0 16 16" + }, props), _ref$c); +} + +function _extends$d() { _extends$d = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$d.apply(this, arguments); } + +var _ref$d = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-camera_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M15 2a1 1 0 01.832.445L17.535 5H21a3 3 0 012.995 2.824L24 8v11a3 3 0 01-3 3H3a3 3 0 01-3-3V8a3 3 0 013-3h3.464l1.704-2.555a1 1 0 01.708-.437L9 2zm-.536 2H9.535L7.832 6.555a1 1 0 01-.708.437L7 7H3a1 1 0 00-1 1v11a1 1 0 001 1h18a1 1 0 001-1V8a1 1 0 00-1-1h-4a1 1 0 01-.832-.445L14.464 4zM12 8a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z" +}); + +function SvgIconCamera(props) { + return React.createElement("svg", _extends$d({ + viewBox: "0 0 24 24" + }, props), _ref$d); +} + +function _extends$e() { _extends$e = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$e.apply(this, arguments); } + +var _ref$e = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-more_svg__fill", + fillRule: "evenodd", + d: "M12 17a2 2 0 110 4 2 2 0 010-4zm0-6.5a2 2 0 110 4 2 2 0 010-4zM12 4a2 2 0 110 4 2 2 0 010-4z" +}); + +function SvgIconMore(props) { + return React.createElement("svg", _extends$e({ + viewBox: "0 0 24 24" + }, props), _ref$e); +} + +function _extends$f() { _extends$f = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$f.apply(this, arguments); } + +var _ref$f = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-mute_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M15.125 20.09c0 .602-.694 2.41-2.778 2.41-1.389 0-2.315-.804-2.778-2.41zM12.789 1.606a6.496 6.496 0 015.388 2.861l2.464-2.463a.788.788 0 011.025-.077l.088.077a.788.788 0 010 1.113L3.378 21.494a.788.788 0 01-1.025.077l-.088-.077a.788.788 0 010-1.113l1.9-1.903-.04-.004a.387.387 0 01-.241-.596l1.557-2.295.001-.208a545.875 545.875 0 00-.028-6.563l-.008-.614a6.503 6.503 0 016.414-6.59h.969zm6.381 5.246c.08.407.122.827.122 1.257l-.001 7.53 1.52 2.238a.387.387 0 01-.32.604H7.54l3.214-3.214 8.415-8.415z" +}); + +function SvgIconMute(props) { + return React.createElement("svg", _extends$f({ + viewBox: "0 0 24 24" + }, props), _ref$f); +} + +function _extends$g() { _extends$g = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); } + +var _ref$g = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-no-thumbnail_svg__fill", + fillOpacity: 0.5, + fillRule: "evenodd", + d: "M30.333 4.667a2.333 2.333 0 110 4.666H11.667a2.334 2.334 0 00-2.334 2.334v32.666c0 1.001.63 1.855 1.516 2.186l24.834-24.836a2.336 2.336 0 013.3 0l7.684 7.683v-3.7c0-1.234.96-2.245 2.173-2.327l.16-.006a2.333 2.333 0 012.333 2.334v18.666a7 7 0 01-7 7H11.665a6.999 6.999 0 01-6.998-7V11.667a7 7 0 017-7zm7 21.966L17.3 46.666h27.034a2.333 2.333 0 002.328-2.173l.006-.16v-8.367l-9.334-9.333zM19.833 14a5.834 5.834 0 110 11.668 5.834 5.834 0 010-11.668zm0 4.667a1.166 1.166 0 100 2.332 1.166 1.166 0 000-2.332zm29.85-15.65a2.334 2.334 0 013.3 3.3L48.8 10.499l4.184 4.184c.87.87.91 2.256.119 3.173l-.119.127a2.334 2.334 0 01-3.3 0L45.5 13.8l-4.183 4.184c-.87.87-2.256.91-3.173.119l-.127-.119a2.334 2.334 0 010-3.3L42.2 10.5l-4.183-4.182a2.334 2.334 0 01-.119-3.173l.119-.127a2.334 2.334 0 013.3 0L45.5 7.2z" +}); + +function SvgIconNoThumbnail(props) { + return React.createElement("svg", _extends$g({ + viewBox: "0 0 56 56" + }, props), _ref$g); +} + +function _extends$h() { _extends$h = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); } + +var _ref$h = +/*#__PURE__*/ +React.createElement("g", { + className: "icon-checkbox_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd" +}, React.createElement("path", { + d: "M18 1H6a5 5 0 00-5 5v12a5 5 0 005 5h12a5 5 0 005-5V6a5 5 0 00-5-5zm0 2a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h12z" +}), React.createElement("path", { + d: "M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" +})); + +function SvgIconCheckbox(props) { + return React.createElement("svg", _extends$h({ + viewBox: "0 0 24 24" + }, props), _ref$h); +} + +function _extends$i() { _extends$i = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); } + +var _ref$i = +/*#__PURE__*/ +React.createElement("g", { + className: "icon-checkbox-off_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd" +}, React.createElement("path", { + d: "M18 1H6a5 5 0 00-5 5v12a5 5 0 005 5h12a5 5 0 005-5V6a5 5 0 00-5-5zm0 2a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h12z" +}), React.createElement("path", { + d: "M19 19H5V5h14v14zm0-16H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" +})); + +function SvgIconCheckboxOff(props) { + return React.createElement("svg", _extends$i({ + viewBox: "0 0 24 24" + }, props), _ref$i); +} + +function _extends$j() { _extends$j = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); } + +var _ref$j = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-close_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M6.613 5.21l.094.083L12 10.585l5.293-5.292a1 1 0 011.497 1.32l-.083.094L13.415 12l5.292 5.293a1 1 0 01-1.32 1.497l-.094-.083L12 13.415l-5.293 5.292a1 1 0 01-1.497-1.32l.083-.094L10.585 12 5.293 6.707a1 1 0 011.32-1.497z" +}); + +function SvgIconClose(props) { + return React.createElement("svg", _extends$j({ + viewBox: "0 0 24 24" + }, props), _ref$j); +} + +function _extends$k() { _extends$k = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); } + +var _ref$k = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-copy_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M20 8a3 3 0 013 3v9a3 3 0 01-3 3h-9a3 3 0 01-3-3v-9a3 3 0 013-3zm0 2h-9a1 1 0 00-1 1v9a1 1 0 001 1h9a1 1 0 001-1v-9a1 1 0 00-1-1zm-7-9a3 3 0 012.995 2.824L16 4v1a1 1 0 01-1.993.117L14 5V4a1 1 0 00-.883-.993L13 3H4a1 1 0 00-.993.883L3 4v9a1 1 0 00.883.993L4 14h1a1 1 0 01.117 1.993L5 16H4a3 3 0 01-2.995-2.824L1 13V4a3 3 0 012.824-2.995L4 1h9z" +}); + +function SvgIconCopy(props) { + return React.createElement("svg", _extends$k({ + viewBox: "0 0 24 24" + }, props), _ref$k); +} + +function _extends$l() { _extends$l = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); } + +var _ref$l = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-chat_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11c-1.67 0-3.255-.373-4.673-1.039l-.657.218c-2.237.716-3.8.964-4.69.742-1.049-.261-1.256-.72-.62-1.373.439-.524.805-1.178 1.097-1.963.234-.625.142-1.5-.276-2.625A10.933 10.933 0 011 12C1 5.925 5.925 1 12 1zm0 2a9 9 0 00-8.187 12.742l.152.314.051.101.04.107c.569 1.532.709 2.859.275 4.02l-.143.365-.072.162.088-.019a23.181 23.181 0 001.832-.511l.646-.213.765-.26.73.343A8.962 8.962 0 0012 21a9 9 0 000-18z" +}); + +function SvgIconChat(props) { + return React.createElement("svg", _extends$l({ + viewBox: "0 0 24 24" + }, props), _ref$l); +} + +function _extends$m() { _extends$m = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); } + +var _ref$m = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-supergroup_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M16.139 18.818c2.89 0 5.303 2.05 5.438 4.696l.006.235v1.626a1.166 1.166 0 01-2.326.136l-.007-.136v-1.626c0-1.343-1.255-2.501-2.903-2.592l-.208-.006H11.86c-1.679 0-3.001 1.105-3.105 2.431l-.006.167v1.626a1.166 1.166 0 01-2.325.136l-.008-.136v-1.626c0-2.68 2.329-4.806 5.19-4.926l.254-.005h4.278zm8.128-7.565c.116 0 .232.018.343.052 2.026.624 3.289 2.1 3.384 4.239l.006.26v5.6a1.166 1.166 0 01-2.325.136l-.008-.137v-5.599c-.001-1.135-.509-1.825-1.543-2.202l-.046-.016h-1.095c-.598 0-1.091-.45-1.158-1.03l-.008-.136c0-.598.45-1.092 1.03-1.159l.136-.008h1.284zm-19.25 0l.136.008c.58.067 1.03.56 1.03 1.159l-.008.136c-.067.58-.56 1.03-1.158 1.03H3.919l-.052.018c-.983.372-1.533 1.126-1.534 2.252v5.547l-.008.136A1.166 1.166 0 010 21.404v-5.548l.006-.259c.099-2.132 1.402-3.681 3.374-4.29.112-.035.228-.053.345-.053h1.292zM14 8.732c2.412 0 4.375 1.928 4.375 4.318 0 2.39-1.963 4.319-4.375 4.319S9.625 15.44 9.625 13.05c0-2.39 1.963-4.318 4.375-4.318zm0 2.333c-1.132 0-2.042.893-2.042 1.985s.91 1.986 2.042 1.986c1.132 0 2.042-.894 2.042-1.986s-.91-1.985-2.042-1.985zM7.583 1.167c2.412 0 4.375 1.929 4.375 4.318 0 2.39-1.963 4.32-4.375 4.32-2.411 0-4.375-1.93-4.375-4.32 0-2.39 1.964-4.318 4.375-4.318zm12.834 0c2.411 0 4.375 1.929 4.375 4.318 0 2.39-1.964 4.32-4.375 4.32-2.412 0-4.375-1.93-4.375-4.32 0-2.39 1.963-4.318 4.375-4.318zM7.583 3.5c-1.132 0-2.041.894-2.041 1.985 0 1.092.91 1.986 2.041 1.986 1.132 0 2.042-.894 2.042-1.986 0-1.091-.91-1.985-2.042-1.985zm12.834 0c-1.132 0-2.042.894-2.042 1.985 0 1.092.91 1.986 2.042 1.986 1.132 0 2.041-.894 2.041-1.986 0-1.091-.91-1.985-2.041-1.985z" +}); + +function SvgIconSupergroup(props) { + return React.createElement("svg", _extends$m({ + viewBox: "0 0 28 28" + }, props), _ref$m); +} + +function _extends$n() { _extends$n = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$n.apply(this, arguments); } + +var _ref$n = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-create_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11c-1.67 0-3.255-.373-4.673-1.039l-.657.218c-2.237.716-3.8.964-4.69.742-1.049-.261-1.256-.72-.62-1.373.439-.524.805-1.178 1.097-1.963.234-.625.142-1.5-.276-2.625A10.933 10.933 0 011 12C1 5.925 5.925 1 12 1zm0 2a9 9 0 00-8.187 12.742l.152.314.051.101.04.107c.569 1.532.709 2.859.275 4.02l-.143.365-.072.162.088-.019a23.181 23.181 0 001.832-.511l.646-.213.765-.26.73.343A8.962 8.962 0 0012 21a9 9 0 000-18zm1 6v2h2c1.333 0 1.333 2 0 2h-2v2c0 1.333-2 1.333-2 0v-2H9c-1.333 0-1.333-2 0-2h2V9c0-1.333 2-1.333 2 0z" +}); + +function SvgIconCreate(props) { + return React.createElement("svg", _extends$n({ + viewBox: "0 0 24 24" + }, props), _ref$n); +} + +function _extends$o() { _extends$o = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$o.apply(this, arguments); } + +var _ref$o = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-delete_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M14 1a3 3 0 012.995 2.824L17 4v1h4a1 1 0 01.117 1.993L21 7h-1v13a3 3 0 01-2.824 2.995L17 23H7a3 3 0 01-2.995-2.824L4 20V7H3a1 1 0 01-.117-1.993L3 5h4V4a3 3 0 012.824-2.995L10 1h4zm4 6H6v13a1 1 0 00.883.993L7 21h10a1 1 0 00.993-.883L18 20V7zm-8 3a1 1 0 01.993.883L11 11v6a1 1 0 01-1.993.117L9 17v-6a1 1 0 011-1zm4 0a1 1 0 01.993.883L15 11v6a1 1 0 01-1.993.117L13 17v-6a1 1 0 011-1zm0-7h-4a1 1 0 00-.993.883L9 4v1h6V4a1 1 0 00-.883-.993L14 3z" +}); + +function SvgIconDelete(props) { + return React.createElement("svg", _extends$o({ + viewBox: "0 0 24 24" + }, props), _ref$o); +} + +function _extends$p() { _extends$p = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$p.apply(this, arguments); } + +var _ref$p = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-dummy_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" +}); + +function SvgIconDummy(props) { + return React.createElement("svg", _extends$p({ + viewBox: "0 0 24 24" + }, props), _ref$p); +} + +function _extends$q() { _extends$q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$q.apply(this, arguments); } + +var _ref$q = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-edit_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M21.875 21.875a1.042 1.042 0 01.121 2.076l-.121.007H3.125a1.042 1.042 0 01-.121-2.076l.121-.007h18.75zM13.847 1.347a1.042 1.042 0 011.473 0l4.167 4.166a1.042 1.042 0 010 1.474L8.028 18.445c-.195.195-.46.305-.736.305H3.125a1.042 1.042 0 01-1.042-1.042v-4.166c0-.277.11-.542.305-.737zm.736 2.21L4.167 13.973v2.694h2.691L17.276 6.25l-2.693-2.693z" +}); + +function SvgIconEdit(props) { + return React.createElement("svg", _extends$q({ + viewBox: "0 0 26 26" + }, props), _ref$q); +} + +function _extends$r() { _extends$r = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$r.apply(this, arguments); } + +var _ref$r = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-error_svg__fill", + fill: "#E53157", + fillRule: "evenodd", + d: "M8 1.265c.655 0 1.266.32 1.64.856l.072.11 5.652 9.436c.355.615.357 1.373.006 1.99-.33.579-.925.953-1.59 1.004l-.133.006H2.346a2.001 2.001 0 01-1.772-2.883l.067-.127 5.649-9.43A2 2 0 018 1.266zm0 1.333a.669.669 0 00-.52.248l-.048.07-5.641 9.417a.669.669 0 00.477.994l.085.006H13.64a.664.664 0 00.612-.914l-.036-.076L8.57 2.919a.663.663 0 00-.57-.32zm0 8.069A.667.667 0 118 12a.667.667 0 010-1.333zm0-5.334c.342 0 .624.258.662.59L8.667 6v2.667a.667.667 0 01-1.329.077l-.005-.077V6c0-.368.299-.667.667-.667z" +}); + +function SvgIconError(props) { + return React.createElement("svg", _extends$r({ + viewBox: "0 0 16 16" + }, props), _ref$r); +} + +function _extends$s() { _extends$s = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$s.apply(this, arguments); } + +var _ref$s = +/*#__PURE__*/ +React.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React.createElement("path", { + className: "icon-error-filled_svg__fill", + fill: "#E53157", + d: "M10.281 4.18L1.77 17.85a1.87 1.87 0 00-.005 1.924c.353.597 1.01.968 1.724.976h17.024a2.024 2.024 0 001.724-.976 1.87 1.87 0 00-.005-1.924L13.719 4.18A2.028 2.028 0 0012 3.25a2.03 2.03 0 00-1.719.93z" +}), React.createElement("path", { + fill: "#FFF", + fillRule: "nonzero", + d: "M11.125 12.875V8.5c0-1.167 1.75-1.167 1.75 0v4.375c0 1.167-1.75 1.167-1.75 0zm0 3.5c0-1.167 1.75-1.167 1.75 0s-1.75 1.167-1.75 0z" +})); + +function SvgIconErrorFilled(props) { + return React.createElement("svg", _extends$s({ + viewBox: "0 0 24 24" + }, props), _ref$s); +} + +function _extends$t() { _extends$t = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$t.apply(this, arguments); } + +var _ref$t = +/*#__PURE__*/ +React.createElement("g", { + className: "emoji-fail_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React.createElement("rect", { + width: 26.526, + height: 26.526, + x: 0.737, + y: 0.737, + fill: "#FFF", + rx: 4 +}), React.createElement("path", { + fill: "#000", + fillOpacity: 0.12, + d: "M14 23.456a9.457 9.457 0 11.001-18.913A9.457 9.457 0 0114 23.456zm0-1.72a7.736 7.736 0 100-15.473 7.737 7.737 0 000 15.474zm.714-6.005a.86.86 0 11-1.72 0v-.867a.86.86 0 01.588-.816 5.248 5.248 0 001.084-.544c.592-.395.907-.815.907-1.22a1.72 1.72 0 00-3.341-.574.86.86 0 11-1.622-.57 3.438 3.438 0 016.682 1.145c0 1.1-.651 1.969-1.672 2.65a6.81 6.81 0 01-.906.508v.288zm-1.72 2.425a.86.86 0 011.72 0v.142a.86.86 0 11-1.72 0V18.156z" +})); + +function SvgEmojiFail(props) { + return React.createElement("svg", _extends$t({ + viewBox: "0 0 28 28" + }, props), _ref$t); +} + +function _extends$u() { _extends$u = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$u.apply(this, arguments); } + +var _ref$u = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-reactions-add_svg__fill", + fillOpacity: 0.88, + fillRule: "evenodd", + d: "M11.033 1.107a9.98 9.98 0 012.669.362.734.734 0 01-.393 1.413A8.466 8.466 0 002.567 11.04 8.466 8.466 0 1019.2 8.8a.736.736 0 01.514-.902.735.735 0 01.901.514c.233.85.352 1.731.352 2.628 0 5.486-4.448 9.933-9.934 9.933-5.486 0-9.933-4.447-9.933-9.933s4.447-9.933 9.933-9.933zm3.68 11.96c.5 0 .854.49.696.965-.644 1.933-2.385 3.261-4.376 3.261-1.99 0-3.732-1.328-4.375-3.261a.733.733 0 01.597-.959l.098-.006h7.36zm-1.195 1.466h-4.97l.101.131a3.115 3.115 0 002.012 1.14l.198.018.174.005c.868 0 1.672-.38 2.254-1.012l.13-.15.101-.132zM7.353 7.547c.374 0 .683.28.728.641l.006.092v1.84a.734.734 0 01-1.461.092l-.006-.092V8.28c0-.405.328-.733.733-.733zm7.36 0c.374 0 .683.28.728.641l.006.092v1.84a.734.734 0 01-1.461.092l-.006-.092V8.28c0-.405.328-.733.733-.733zM18.398 0c.405 0 .733.328.733.733v2.218h2.209a.734.734 0 010 1.467h-2.21v2.209a.732.732 0 11-1.466 0V4.418h-2.217a.734.734 0 110-1.466l2.216-.001.001-2.218c0-.405.328-.733.733-.733z" +}); + +function SvgIconReactionsAdd(props) { + return React.createElement("svg", _extends$u({ + viewBox: "0 0 22 22" + }, props), _ref$u); +} + +function _extends$v() { _extends$v = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$v.apply(this, arguments); } + +var _ref$v = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-emoji-reactions-add_svg__fill", + fillOpacity: 0.38, + fillRule: "evenodd", + d: "M10.03 1.006c.828 0 1.643.112 2.426.33a.666.666 0 11-.357 1.284 7.741 7.741 0 00-2.069-.28 7.697 7.697 0 107.697 7.696c0-.696-.092-1.379-.272-2.037a.667.667 0 011.287-.352c.21.773.319 1.574.319 2.39a9.03 9.03 0 01-9.03 9.03 9.03 9.03 0 11-.001-18.06zm3.346 10.873c.455 0 .776.445.632.877-.585 1.757-2.168 2.965-3.978 2.965s-3.392-1.208-3.978-2.965a.667.667 0 01.538-.87l.095-.007h6.69zm-1.087 1.333H7.771l.092.12c.46.563 1.103.938 1.813 1.033l.196.018.158.005c.784 0 1.512-.341 2.04-.91l.128-.147.091-.12zM6.685 6.86c.34 0 .62.254.661.583l.006.083V9.2a.667.667 0 01-1.329.084L6.018 9.2V7.527c0-.368.299-.666.667-.666zm6.69 0c.34 0 .621.254.662.583l.005.083V9.2a.667.667 0 01-1.328.084L12.71 9.2V7.527c0-.368.299-.666.667-.666zM16.726 0c.368 0 .667.298.667.667l-.001 2.016H19.4a.667.667 0 010 1.334l-2.01-.001.002 2.008a.667.667 0 01-1.334 0V4.016h-2.016a.666.666 0 110-1.333h2.016V.667c0-.369.299-.667.667-.667z" +}); + +function SvgIconEmojiReactionsAdd(props) { + return React.createElement("svg", _extends$v({ + viewBox: "0 0 20 20" + }, props), _ref$v); +} + +function _extends$w() { _extends$w = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$w.apply(this, arguments); } + +var _ref$w = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-delivered_svg__fill", + fillOpacity: 0.38, + fillRule: "evenodd", + d: "M2.207 11.793l5 5a1 1 0 01-1.414 1.414l-5-5a1 1 0 011.414-1.414zm19.586-6a1 1 0 011.414 1.414l-11 11a1 1 0 01-1.414 0l-5-5a1 1 0 011.414-1.414l4.293 4.293zm-3.586 0a1 1 0 010 1.414l-5.999 5.999a1 1 0 01-1.414-1.414l5.999-6a1 1 0 011.414 0z" +}); + +function SvgIconDelivered(props) { + return React.createElement("svg", _extends$w({ + viewBox: "0 0 24 24" + }, props), _ref$w); +} + +function _extends$x() { _extends$x = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$x.apply(this, arguments); } + +var _ref$x = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-disconnected_svg__fill", + fillRule: "evenodd", + d: "M3.55 2.276l.093.081L10.9 9.615a.895.895 0 01.148.147l10.594 10.595a.91.91 0 01-1.193 1.367l-.093-.081-5.015-5.015a.913.913 0 01-.705-.15 4.545 4.545 0 00-5.265 0 .91.91 0 01-1.053-1.483 6.358 6.358 0 014.24-1.151l-2.529-2.53c-1.4.316-2.706.96-3.81 1.883a.91.91 0 01-1.167-1.394 10.854 10.854 0 013.504-1.962L6.445 7.728a13.518 13.518 0 00-3.461 2.226.909.909 0 01-1.204-1.362 15.38 15.38 0 013.299-2.229l-2.722-2.72A.91.91 0 013.55 2.276zm13.14 8.052c.812.397 1.572.894 2.262 1.479a.908.908 0 11-1.177 1.386 9.015 9.015 0 00-1.883-1.23.91.91 0 01.798-1.635zm5.53-1.737a.91.91 0 01-1.203 1.363A13.642 13.642 0 0010.9 6.588a.91.91 0 01-.146-1.813A15.457 15.457 0 0122.22 8.591z" +}); + +function SvgIconDisconnected(props) { + return React.createElement("svg", _extends$x({ + viewBox: "0 0 24 24" + }, props), _ref$x); +} + +function _extends$y() { _extends$y = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$y.apply(this, arguments); } + +var _ref$y = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-document_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M14 1a1.01 1.01 0 01.25.031l.03.009c.03.009.061.02.091.031l.027.012a.914.914 0 01.195.112c.04.03.078.062.114.098l-.093-.082.011.009.082.073 6 6a1.006 1.006 0 01.21.309l.012.027c.012.03.022.06.031.091l.008.03A.921.921 0 0121 8l-.008-.126.001.01L21 8v12a3 3 0 01-3 3H6a3 3 0 01-3-3V4a3 3 0 013-3h8zm-1 2H6a1 1 0 00-1 1v16a1 1 0 001 1h12a1 1 0 001-1V9h-5a1 1 0 01-.993-.883L13 8V3zm4.585 4L15 4.415V7h2.585z" +}); + +function SvgIconDocument(props) { + return React.createElement("svg", _extends$y({ + viewBox: "0 0 24 24" + }, props), _ref$y); +} + +function _extends$z() { _extends$z = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$z.apply(this, arguments); } + +var _ref$z = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-download_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M21 16a1 1 0 01.993.883L22 17v3a3 3 0 01-2.824 2.995L19 23H5a3 3 0 01-2.995-2.824L2 20v-3a1 1 0 011.993-.117L4 17v3a1 1 0 00.883.993L5 21h14a1 1 0 00.993-.883L20 20v-3a1 1 0 011-1zM12 1a1 1 0 01.993.883L13 2v11.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-4 4a1.006 1.006 0 01-.09.08l.09-.08a1.008 1.008 0 01-.674.292L12 17h-.032l-.054-.004L12 17a1.008 1.008 0 01-.613-.21 1.037 1.037 0 01-.094-.083l-4-4a1 1 0 011.32-1.497l.094.083L11 13.585V2a1 1 0 011-1z" +}); + +function SvgIconDownload(props) { + return React.createElement("svg", _extends$z({ + viewBox: "0 0 24 24" + }, props), _ref$z); +} + +function _extends$A() { _extends$A = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$A.apply(this, arguments); } + +var _ref$A = +/*#__PURE__*/ +React.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React.createElement("rect", { + fill: "#FFF", + fillRule: "nonzero", + rx: 10 +}), React.createElement("path", { + className: "icon-file-audio_svg__fill", + fill: "#7B53EF", + d: "M18.815 9.185c2.913 2.934 2.913 7.696 0 10.63a.617.617 0 01-.894-.013.67.67 0 01.012-.925 6.215 6.215 0 000-8.754.67.67 0 01-.012-.925.617.617 0 01.894-.013zm-5.291 0a.646.646 0 011.044.517v9.596c0 .544-.62.85-1.044.516l-3.31-2.702H7.646A.65.65 0 017 16.458v-3.916a.65.65 0 01.647-.654h2.566zm2.886 2.42a4.113 4.113 0 010 5.783.617.617 0 01-.893-.012.67.67 0 01.012-.925 2.772 2.772 0 000-3.908.67.67 0 01-.012-.925.617.617 0 01.893-.013z" +})); + +function SvgIconFileAudio(props) { + return React.createElement("svg", _extends$A({ + viewBox: "0 0 28 28" + }, props), _ref$A); +} + +function _extends$B() { _extends$B = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$B.apply(this, arguments); } + +var _ref$B = +/*#__PURE__*/ +React.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React.createElement("rect", { + fill: "#FFF", + fillRule: "nonzero", + rx: 10 +}), React.createElement("path", { + className: "icon-file-document_svg__fill", + fill: "#7B53EF", + d: "M16.317 5.667H9.05C7.907 5.667 7 6.58 7 7.687v12.625c0 1.107.907 2.021 2.05 2.021h9.9c1.143 0 2.05-.914 2.05-2.02v-9.97a.673.673 0 00-.198-.473l-3.95-3.984a.753.753 0 00-.535-.22z" +}), React.createElement("path", { + fill: "#FFF", + d: "M17.025 16.667c.354 0 .642.302.642.675 0 .372-.288.675-.642.675h-6.383c-.355 0-.642-.303-.642-.675 0-.373.287-.675.642-.675zm0-2.667c.354 0 .642.302.642.675 0 .373-.288.675-.642.675h-6.383c-.355 0-.642-.302-.642-.675 0-.373.287-.675.642-.675zm-3.357-2.667c.369 0 .668.303.668.675 0 .373-.3.675-.668.675h-3a.672.672 0 01-.668-.675c0-.372.3-.675.668-.675z" +})); + +function SvgIconFileDocument(props) { + return React.createElement("svg", _extends$B({ + viewBox: "0 0 28 28" + }, props), _ref$B); +} + +function _extends$C() { _extends$C = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$C.apply(this, arguments); } + +var _ref$C = +/*#__PURE__*/ +React.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React.createElement("circle", { + cx: 28, + cy: 28, + r: 28, + fill: "#FFF", + fillOpacity: 0.88 +}), React.createElement("path", { + className: "icon-gif_svg__fill", + fill: "#000", + fillOpacity: 0.55, + d: "M20.608 35.182c1.094 0 2.09-.162 2.99-.487.899-.325 1.595-.783 2.087-1.372v-5.296h-5.223v2.015h2.489v2.287c-.438.438-1.17.657-2.197.657-1.02 0-1.796-.356-2.324-1.067-.529-.71-.793-1.762-.793-3.153v-.848c.006-1.38.252-2.418.738-3.117.486-.699 1.194-1.048 2.124-1.048.729 0 1.302.176 1.718.528.416.353.685.909.806 1.668h2.662c-.164-1.434-.69-2.526-1.577-3.276s-2.118-1.126-3.691-1.126c-1.13 0-2.116.257-2.958.77-.842.514-1.486 1.255-1.932 2.224-.447.97-.67 2.116-.67 3.44v.903c.012 1.288.253 2.41.724 3.363.471.954 1.14 1.682 2.006 2.183.865.502 1.873.752 3.021.752zm10.2-.182V21.73h-2.735V35h2.734zm5.268 0v-5.423h5.25V27.37h-5.25v-3.427h5.906v-2.215h-8.64V35h2.734z" +})); + +function SvgIconGif(props) { + return React.createElement("svg", _extends$C({ + viewBox: "0 0 56 56" + }, props), _ref$C); +} + +function _extends$D() { _extends$D = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$D.apply(this, arguments); } + +var _ref$D = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-info_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 2a9 9 0 100 18 9 9 0 000-18zm0 8a1 1 0 011 1v4a1 1 0 01-2 0v-4a1 1 0 011-1zm0-3a1 1 0 110 2 1 1 0 010-2z" +}); + +function SvgIconInfo(props) { + return React.createElement("svg", _extends$D({ + viewBox: "0 0 24 24" + }, props), _ref$D); +} + +function _extends$E() { _extends$E = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$E.apply(this, arguments); } + +var _ref$E = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-leave_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 2a1 1 0 01.117 1.993L12 4H4a1 1 0 00-.993.883L3 5v14a1 1 0 00.883.993L4 20h8a1 1 0 01.117 1.993L12 22H4a3 3 0 01-2.995-2.824L1 19V5a3 3 0 012.824-2.995L4 2h8zm6.613 5.21l.094.083 4 4a1 1 0 01.083 1.32l-.083.094-4 4a1 1 0 01-1.497-1.32l.083-.094 1.792-1.793H7.5a1 1 0 01-.117-1.993L7.5 11.5h12.585l-2.792-2.793a1 1 0 01-.083-1.32l.083-.094a1 1 0 011.32-.083z" +}); + +function SvgIconLeave(props) { + return React.createElement("svg", _extends$E({ + viewBox: "0 0 24 24" + }, props), _ref$E); +} + +function _extends$F() { _extends$F = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$F.apply(this, arguments); } + +var _ref$F = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-members_svg__fill", + fillRule: "evenodd", + d: "M13 14a5 5 0 014.995 4.783L18 19v2a1 1 0 01-1.993.117L16 21v-2a3 3 0 00-2.824-2.995L13 16H5a3 3 0 00-2.995 2.824L2 19v2a1 1 0 01-1.993.117L0 21v-2a5 5 0 014.783-4.995L5 14h8zm7.25.162a5 5 0 013.745 4.611L24 19v2a1 1 0 01-1.993.117L22 21v-2a3 3 0 00-2.25-2.902 1 1 0 11.5-1.936zM9 2a5 5 0 110 10A5 5 0 019 2zm7.248.161a5 5 0 010 9.688 1 1 0 01-.496-1.938 3 3 0 000-5.812 1 1 0 11.496-1.938zM9 4a3 3 0 100 6 3 3 0 000-6z" +}); + +function SvgIconMembers(props) { + return React.createElement("svg", _extends$F({ + viewBox: "0 0 24 24" + }, props), _ref$F); +} + +function _extends$G() { _extends$G = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$G.apply(this, arguments); } + +var _ref$G = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-notifications_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M13.73 20a1 1 0 01.865 1.502 3 3 0 01-5.19 0 1 1 0 01.752-1.496L10.27 20h3.46zM12 1a8 8 0 017.996 7.75L20 9v5a2 2 0 001.85 1.995l.283.012c1.111.12 1.154 1.73.128 1.965l-.128.021L22 18H2l-.133-.007c-1.156-.124-1.156-1.862 0-1.986l.282-.012a2 2 0 001.845-1.838L4 14V9a8 8 0 018-8zm0 2a6 6 0 00-5.996 5.775L6 9v5c0 .586-.126 1.142-.352 1.643l-.103.212-.082.145h13.073l-.08-.145a3.973 3.973 0 01-.43-1.402l-.021-.253L18 14V9a6 6 0 00-6-6z" +}); + +function SvgIconNotifications(props) { + return React.createElement("svg", _extends$G({ + viewBox: "0 0 24 24" + }, props), _ref$G); +} + +function _extends$H() { _extends$H = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$H.apply(this, arguments); } + +var _ref$H = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-photo_svg__fill", + fillRule: "evenodd", + d: "M19 2a3 3 0 013 3v14a3 3 0 01-3 3H4.941v-.002l-.117-.003A3 3 0 012 19V5a3 3 0 013-3zm-3 9.415L7.414 20H19a1 1 0 00.993-.883L20 19v-3.585l-4-4zM19 4H5a1 1 0 00-1 1v14a1 1 0 00.65.937L15.292 9.293a1 1 0 011.32-.083l.094.083L20 12.585V5a1 1 0 00-.883-.993L19 4zM8.5 6a2.5 2.5 0 110 5 2.5 2.5 0 010-5zm0 2a.5.5 0 100 1 .5.5 0 000-1z" +}); + +function SvgIconPhoto(props) { + return React.createElement("svg", _extends$H({ + viewBox: "0 0 24 24" + }, props), _ref$H); +} + +function _extends$I() { _extends$I = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$I.apply(this, arguments); } + +var _ref$I = +/*#__PURE__*/ +React.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React.createElement("circle", { + cx: 28, + cy: 28, + r: 28, + fill: "#FFF", + fillOpacity: 0.88 +}), React.createElement("path", { + className: "icon-play_svg__fill", + fill: "#000", + fillOpacity: 0.55, + d: "M38.91 29.987c1.009-.63 1.007-1.664.007-2.304l-17.29-11.055c-1.006-.643-1.809-.2-1.793 1.004l.277 21.891c.015 1.198.847 1.657 1.855 1.029L38.91 29.987z" +})); + +function SvgIconPlay(props) { + return React.createElement("svg", _extends$I({ + viewBox: "0 0 56 56" + }, props), _ref$I); +} + +function _extends$J() { _extends$J = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$J.apply(this, arguments); } + +var _ref$J = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-plus_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M13 11h7c1.333 0 1.333 2 0 2h-7v7c0 1.333-2 1.333-2 0v-7H4c-1.333 0-1.333-2 0-2h7V4c0-1.333 2-1.333 2 0v7z" +}); + +function SvgIconPlus(props) { + return React.createElement("svg", _extends$J({ + viewBox: "0 0 24 24" + }, props), _ref$J); +} + +function _extends$K() { _extends$K = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$K.apply(this, arguments); } + +var _ref$K = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-read_svg__fill", + fill: "#2EBA9F", + fillRule: "evenodd", + d: "M2.207 11.793l5 5a1 1 0 01-1.414 1.414l-5-5a1 1 0 011.414-1.414zm19.586-6a1 1 0 011.414 1.414l-11 11a1 1 0 01-1.414 0l-5-5a1 1 0 011.414-1.414l4.293 4.293zm-3.586 0a1 1 0 010 1.414l-5.999 5.999a1 1 0 01-1.414-1.414l5.999-6a1 1 0 011.414 0z" +}); + +function SvgIconRead(props) { + return React.createElement("svg", _extends$K({ + viewBox: "0 0 24 24" + }, props), _ref$K); +} + +function _extends$L() { _extends$L = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$L.apply(this, arguments); } + +var _ref$L = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-refresh_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M14.419 4.51l.175.167 2.073 1.927V4.167c0-.428.321-.78.736-.828l.097-.006c.427 0 .78.322.828.736l.005.098v5c0 .427-.321.78-.736.827L17.5 10h-5a.833.833 0 01-.097-1.661l.097-.006h3.578L13.44 5.88a5.982 5.982 0 00-7.05-.986C4.083 6.15 2.898 8.756 3.48 11.286c.58 2.534 2.792 4.385 5.425 4.537 2.635.152 5.05-1.433 5.928-3.883a.833.833 0 011.569.561c-1.127 3.15-4.223 5.18-7.593 4.986-3.37-.195-6.206-2.57-6.954-5.828-.748-3.261.778-6.617 3.738-8.229 2.884-1.57 6.453-1.118 8.826 1.08z" +}); + +function SvgIconRefresh(props) { + return React.createElement("svg", _extends$L({ + width: 20, + height: 20 + }, props), _ref$L); +} + +function _extends$M() { _extends$M = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$M.apply(this, arguments); } + +var _ref$M = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-send_svg__fill", + fillRule: "evenodd", + d: "M20.554 10.117L2.52 1.024C1.613.619.605 1.428 1.008 2.337l2.115 5.685a2 2 0 001.545 1.275l10.345 1.73-10.345 1.728a2 2 0 00-1.545 1.275l-2.115 5.685c-.302.91.605 1.718 1.511 1.213l18.035-9.094c.706-.303.706-1.313 0-1.717z" +}); + +function SvgIconSend(props) { + return React.createElement("svg", _extends$M({ + viewBox: "0 0 22 22" + }, props), _ref$M); +} + +function _extends$N() { _extends$N = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$N.apply(this, arguments); } + +var _ref$N = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-sent_svg__fill", + fillOpacity: 0.38, + fillRule: "evenodd", + d: "M4.707 11.793a1 1 0 10-1.414 1.414l5 5a1 1 0 001.414 0l11-11a1 1 0 10-1.414-1.414L9 16.086l-4.293-4.293z" +}); + +function SvgIconSent(props) { + return React.createElement("svg", _extends$N({ + viewBox: "0 0 24 24" + }, props), _ref$N); +} + +function _extends$O() { _extends$O = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$O.apply(this, arguments); } + +var _ref$O = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-shevron_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M8.293 17.293a1 1 0 001.414 1.414l6-6a1 1 0 000-1.414l-6-6a1 1 0 00-1.414 1.414L13.586 12l-5.293 5.293z" +}); + +function SvgIconShevron(props) { + return React.createElement("svg", _extends$O({ + viewBox: "0 0 24 24" + }, props), _ref$O); +} + +function _extends$P() { _extends$P = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$P.apply(this, arguments); } + +var _ref$P = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-shevron-down_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M6.045 8.205a1.125 1.125 0 10-1.59 1.59l6.75 6.75c.439.44 1.151.44 1.59 0l6.75-6.75a1.125 1.125 0 10-1.59-1.59L12 14.159 6.045 8.205z" +}); + +function SvgIconShevronDown(props) { + return React.createElement("svg", _extends$P({ + viewBox: "0 0 24 24" + }, props), _ref$P); +} + +function _extends$Q() { _extends$Q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Q.apply(this, arguments); } + +var _ref$Q = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-spinner-small_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 22.5c5.799 0 10.5-4.701 10.5-10.5S17.799 1.5 12 1.5 1.5 6.201 1.5 12a1.432 1.432 0 002.864 0A7.636 7.636 0 1112 19.636a1.432 1.432 0 000 2.864z" +}); + +function SvgIconSpinnerSmall(props) { + return React.createElement("svg", _extends$Q({ + viewBox: "0 0 24 24" + }, props), _ref$Q); +} + +function _extends$R() { _extends$R = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$R.apply(this, arguments); } + +var _ref$R = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-spinner-large_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24a2.323 2.323 0 104.645 0C4.645 13.31 13.311 4.645 24 4.645c10.69 0 19.355 8.666 19.355 19.355 0 10.69-8.666 19.355-19.355 19.355A2.323 2.323 0 0024 48z" +}); + +function SvgIconSpinnerLarge(props) { + return React.createElement("svg", _extends$R({ + viewBox: "0 0 48 48" + }, props), _ref$R); +} + +function _extends$S() { _extends$S = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$S.apply(this, arguments); } + +var _ref$S = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-user_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M16 14a5 5 0 014.995 4.783L21 19v2a1 1 0 01-1.993.117L19 21v-2a3 3 0 00-2.824-2.995L16 16H8a3 3 0 00-2.995 2.824L5 19v2a1 1 0 01-1.993.117L3 21v-2a5 5 0 014.783-4.995L8 14h8zM12 2a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z" +}); + +function SvgIconUser(props) { + return React.createElement("svg", _extends$S({ + viewBox: "0 0 24 24" + }, props), _ref$S); +} + +function _extends$T() { _extends$T = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$T.apply(this, arguments); } + +var _ref$T = +/*#__PURE__*/ +React.createElement("g", { + fill: "none", + fillRule: "evenodd" +}, React.createElement("path", { + className: "icon-operator_svg__stroke", + d: "M2 6l5 4 5-7 5 7 5-4-3 14H5z" +}), React.createElement("circle", { + className: "icon-operator_svg__fill", + cx: 12, + cy: 14, + r: 2 +})); + +function SvgIconOperator(props) { + return React.createElement("svg", _extends$T({ + viewBox: "0 0 24 24" + }, props), _ref$T); +} + +function _extends$U() { _extends$U = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$U.apply(this, arguments); } + +var _ref$U = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-banned_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 2a9 9 0 10.001 18.001A9 9 0 0012 3zm4 8a1 1 0 010 2H8a1 1 0 010-2h8z" +}); + +function SvgIconBanned(props) { + return React.createElement("svg", _extends$U({ + viewBox: "0 0 24 24" + }, props), _ref$U); +} + +function _extends$V() { _extends$V = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$V.apply(this, arguments); } + +var _ref$V = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-muted_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M20.857 7.357l.026.045A9.96 9.96 0 0122 12a9.937 9.937 0 01-1.074 4.51c-.38 1.021-.463 1.817-.25 2.386.265.713.598 1.308.997 1.784.578.594.39 1.01-.565 1.249-.763.19-2.073 0-3.929-.571l-.333-.105-.598-.198A9.965 9.965 0 0112 22a9.952 9.952 0 01-4.622-1.13l-.022-.011 1.5-1.5c.982.42 2.046.641 3.144.641 1.073 0 2.114-.21 3.079-.613l.318-.142.722-.339 1.355.449.26.082c.228.07.445.133.65.19l.298.08.182.045-.063-.157-.075-.223c-.295-.974-.189-2.057.225-3.275l.1-.284.04-.107.198-.406A7.949 7.949 0 0020 12a7.97 7.97 0 00-.64-3.143l1.497-1.5zM12 2c2.401 0 4.604.846 6.328 2.257l1.965-1.964a1 1 0 011.497 1.32l-.083.094-18 18a1 1 0 01-1.497-1.32l.083-.094 1.963-1.965a9.956 9.956 0 01-2.25-5.998L2 12C2 6.477 6.477 2 12 2zm0 2a8 8 0 00-6.32 12.906L16.905 5.68a7.957 7.957 0 00-4.607-1.675L12 4z" +}); + +function SvgIconMuted(props) { + return React.createElement("svg", _extends$V({ + viewBox: "0 0 24 24" + }, props), _ref$V); +} + +function _extends$W() { _extends$W = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$W.apply(this, arguments); } + +var _ref$W = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-muted-foreground_svg__fill", + fill: "#FFF", + fillOpacity: 0.88, + fillRule: "evenodd", + d: "M13.904 4.904l.018.03c.476.919.745 1.96.745 3.066a6.628 6.628 0 01-.716 3.006c-.253.682-.309 1.212-.168 1.591.178.476.4.872.666 1.19.385.396.26.674-.377.832-.503.125-1.361.003-2.576-.367l-.266-.083-.398-.132c-.86.404-1.82.63-2.832.63a6.632 6.632 0 01-3.082-.754l-.014-.007 1-1c.655.28 1.364.427 2.096.427a5.32 5.32 0 001.999-.386l.266-.117.481-.226.903.299.174.055c.152.047.296.089.433.126l.199.054.121.03-.042-.105-.05-.149c-.192-.635-.129-1.34.133-2.132l.084-.24.026-.071.132-.271a5.294 5.294 0 00.474-2.2c0-.732-.147-1.44-.427-2.096l.998-1zm.567-3.375c.24.24.26.618.056.88l-.056.062-12 12a.666.666 0 01-.998-.88l.056-.062 1.31-1.31a6.636 6.636 0 01-1.5-3.94L1.333 8A6.667 6.667 0 0112.22 2.838l1.309-1.31c.26-.26.682-.26.942 0zM8 2.667a5.332 5.332 0 00-4.213 8.603l7.484-7.484a5.32 5.32 0 00-3.006-1.113L8 2.667z" +}); + +function SvgIconMutedForeground(props) { + return React.createElement("svg", _extends$W({ + viewBox: "0 0 16 16" + }, props), _ref$W); +} + +function _extends$X() { _extends$X = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$X.apply(this, arguments); } + +var _ref$X = +/*#__PURE__*/ +React.createElement("path", { + className: "icon-freeze_svg__fill", + fill: "#7B53EF", + fillRule: "evenodd", + d: "M9.613 1.21l.095.083L12 3.585l2.293-2.292a1 1 0 011.32-.083l.095.083a1 1 0 01.083 1.32l-.083.094L13 5.414v4.853l4.203-2.427.992-3.697a1 1 0 011.957.395l-.025.123-.84 3.131 3.133.84c.492.132.8.61.732 1.102l-.025.123c-.132.492-.61.8-1.102.732l-.123-.025-3.698-.991L14.001 12l4.203 2.426 3.698-.99.123-.025c.492-.068.97.24 1.102.732l.025.123a1 1 0 01-.732 1.102l-3.133.839.84 3.132.025.123a1 1 0 01-1.957.395l-.992-3.698L13 13.732v4.853l2.708 2.708a1 1 0 01-1.32 1.497l-.095-.083L12 20.414l-2.292 2.293a1 1 0 01-1.32.083l-.095-.083a1 1 0 01-.083-1.32l.083-.094L11 18.585v-4.853l-4.203 2.427-.99 3.698a1.002 1.002 0 01-1.958-.395l.025-.123.839-3.131-3.132-.84c-.492-.132-.8-.61-.732-1.102l.025-.123c.132-.492.61-.8 1.102-.732l.123.025 3.697.99 4.203-2.427-4.203-2.426-3.697.991-.123.025c-.492.068-.97-.24-1.102-.732L.85 9.734a1 1 0 01.732-1.102l3.132-.84-.839-3.131-.025-.123a1 1 0 011.957-.395l.991 3.697L11 10.267V5.414L8.293 2.707a1 1 0 011.32-1.497z" +}); + +function SvgIconFreeze(props) { + return React.createElement("svg", _extends$X({ + viewBox: "0 0 24 24" + }, props), _ref$X); +} + +function _extends$Y() { _extends$Y = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Y.apply(this, arguments); } + +var _ref$Y = +/*#__PURE__*/ +React.createElement("g", { + className: "icon-toggleon_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React.createElement("rect", { + width: 40, + height: 20, + x: 2, + y: 2, + fill: "#7B53EF", + rx: 10 +}), React.createElement("circle", { + cx: 32, + cy: 12, + r: 6, + fill: "#FFF" +}), React.createElement("path", { + fill: "#7B53EF", + d: "M32 0H12C5.373 0 0 5.373 0 12s5.373 12 12 12h20c6.627 0 12-5.373 12-12S38.627 0 32 0zm0 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20z" +})); + +function SvgIconToggleon(props) { + return React.createElement("svg", _extends$Y({ + viewBox: "0 0 44 24" + }, props), _ref$Y); +} + +function _extends$Z() { _extends$Z = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Z.apply(this, arguments); } + +var _ref$Z = +/*#__PURE__*/ +React.createElement("g", { + className: "icon-toggleoff_svg__fill", + fill: "none", + fillRule: "evenodd" +}, React.createElement("rect", { + width: 40, + height: 20, + x: 2, + y: 2, + fill: "#A8A8A8", + rx: 10 +}), React.createElement("circle", { + cx: 12, + cy: 12, + r: 6, + fill: "#FFF" +}), React.createElement("path", { + fill: "#A8A8A8", + d: "M32 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20zm0 1H12a9 9 0 00-.265 17.996L12 21h20a9 9 0 00.265-17.996L32 3z" +}), React.createElement("path", { + fill: "#FFF", + d: "M32 0H12C5.373 0 0 5.373 0 12s5.373 12 12 12h20c6.627 0 12-5.373 12-12S38.627 0 32 0zm0 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20z" +})); + +function SvgIconToggleoff(props) { + return React.createElement("svg", _extends$Z({ + viewBox: "0 0 44 24" + }, props), _ref$Z); +} + +var Colors = { + DEFAULT: 'DEFAULT', + PRIMARY: 'PRIMARY', + SECONDARY: 'SECONDARY', + CONTENT: 'CONTENT', + CONTENT_INVERSE: 'CONTENT_INVERSE', + WHITE: 'WHITE', + SENT: 'SENT', + READ: 'READ', + ON_BACKGROUND_2: 'ON_BACKGROUND_2', + ON_BACKGROUND_3: 'ON_BACKGROUND_3', + BACKGROUND_3: 'BACKGROUND_3' +}; + +function changeColorToClassName(color) { + switch (color) { + case Colors.PRIMARY: + return 'sendbird-color--primary'; + + case Colors.SECONDARY: + return 'sendbird-color--secondary'; + + case Colors.CONTENT: + return 'sendbird-color--content'; + + case Colors.CONTENT_INVERSE: + return 'sendbird-color--content-inverse'; + + case Colors.WHITE: + return 'sendbird-color--white'; + + case Colors.SENT: + return 'sendbird-color--sent'; + + case Colors.READ: + return 'sendbird-color--read'; + + case Colors.ON_BACKGROUND_2: + return 'sendbird-color--on-background-2'; + + case Colors.ON_BACKGROUND_3: + return 'sendbird-color--on-background-3'; + + case Colors.BACKGROUND_3: + return 'sendbird-color--background-3'; + + default: + return ''; + } +} + +function changeTypeToIconComponent(type) { + switch (type) { + case Type.ADD: + return React.createElement(SvgIconAdd, null); + + case Type.ARROW_LEFT: + return React.createElement(SvgIconArrowLeft, null); + + case Type.CAMERA: + return React.createElement(SvgIconCamera, null); + + case Type.ATTACH: + return React.createElement(SvgIconAttach, null); + + case Type.AVATAR_DARK: + return React.createElement(SvgIconAvatarDark, null); + + case Type.AVATAR_LIGHT: + return React.createElement(SvgIconAvatarLight, null); + + case Type.AVATAR_NO_IMAGE: + return React.createElement(SvgAvatarNoImageLight, null); + + case Type.BROADCAST_LARGE_DARK: + return React.createElement(SvgIconBroadcastLrgDark, null); + + case Type.BROADCAST_LARGE_LIGHT: + return React.createElement(SvgIconBroadcastLrgLight, null); + + case Type.BROADCAST_DARK: + return React.createElement(SvgIconBroadcastDark, null); + + case Type.BROADCAST_LIGHT: + return React.createElement(SvgIconBroadcastLight, null); + + case Type.BROADCAST: + return React.createElement(SvgIconBroadcast, null); + + case Type.FROZEN_DARK: + return React.createElement(SvgFrozenDark, null); + + case Type.FROZEN_LIGHT: + return React.createElement(SvgFrozenLight, null); + + case Type.MORE: + return React.createElement(SvgIconMore, null); + + case Type.MUTE: + return React.createElement(SvgIconMute, null); + + case Type.NO_THUMBNAIL: + return React.createElement(SvgIconNoThumbnail, null); + + case Type.CHECKBOX: + return React.createElement(SvgIconCheckbox, null); + + case Type.CHECKBOX_OFF: + return React.createElement(SvgIconCheckboxOff, null); + + case Type.CLOSE: + return React.createElement(SvgIconClose, null); + + case Type.COPY: + return React.createElement(SvgIconCopy, null); + + case Type.CHAT: + return React.createElement(SvgIconChat, null); + + case Type.SUPER_GROUP: + return React.createElement(SvgIconSupergroup, null); + + case Type.CREATE: + return React.createElement(SvgIconCreate, null); + + case Type.DELETE: + return React.createElement(SvgIconDelete, null); + + case Type.DISCONNECTED: + return React.createElement(SvgIconDisconnected, null); + + case Type.DUMMY: + return React.createElement(SvgIconDummy, null); + + case Type.EDIT: + return React.createElement(SvgIconEdit, null); + + case Type.ERROR: + return React.createElement(SvgIconError, null); + + case Type.ERROR_FILLED: + return React.createElement(SvgIconErrorFilled, null); + + case Type.EMOJI_FAILED: + return React.createElement(SvgEmojiFail, null); + + case Type.EMOJI_REACTIONS_ADD: + return React.createElement(SvgIconReactionsAdd, null); + + case Type.EMOJI_REACTIONS_ADD_GRAY: + return React.createElement(SvgIconEmojiReactionsAdd, null); + + case Type.DELIVERED: + return React.createElement(SvgIconDelivered, null); + + case Type.DOCUMENT: + return React.createElement(SvgIconDocument, null); + + case Type.DOWNLOAD: + return React.createElement(SvgIconDownload, null); + + case Type.FILE_AUDIO: + return React.createElement(SvgIconFileAudio, null); + + case Type.FILE_DOCUMENT: + return React.createElement(SvgIconFileDocument, null); + + case Type.GIF: + return React.createElement(SvgIconGif, null); + + case Type.INFO: + return React.createElement(SvgIconInfo, null); + + case Type.LEAVE: + return React.createElement(SvgIconLeave, null); + + case Type.MEMBERS: + return React.createElement(SvgIconMembers, null); + + case Type.NOTIFICATIONS: + return React.createElement(SvgIconNotifications, null); + + case Type.PHOTO: + return React.createElement(SvgIconPhoto, null); + + case Type.PLAY: + return React.createElement(SvgIconPlay, null); + + case Type.PLUS: + return React.createElement(SvgIconPlus, null); + + case Type.READ: + return React.createElement(SvgIconRead, null); + + case Type.REFRESH: + return React.createElement(SvgIconRefresh, null); + + case Type.SEND: + return React.createElement(SvgIconSend, null); + + case Type.SENT: + return React.createElement(SvgIconSent, null); + + case Type.SHEVRON: + return React.createElement(SvgIconShevron, null); + + case Type.SHEVRON_DOWN: + return React.createElement(SvgIconShevronDown, null); + + case Type.SPINNER: + return React.createElement(SvgIconSpinnerSmall, null); + + case Type.SPINNER_LARGE: + return React.createElement(SvgIconSpinnerLarge, null); + + case Type.USER: + return React.createElement(SvgIconUser, null); + + case Type.ICON_OPERATOR: + return React.createElement(SvgIconOperator, null); + + case Type.ICON_BANNED: + return React.createElement(SvgIconBanned, null); + + case Type.ICON_MUTED: + return React.createElement(SvgIconMuted, null); + + case Type.ICON_MUTED_FG: + return React.createElement(SvgIconMutedForeground, null); + + case Type.ICON_FREEZE: + return React.createElement(SvgIconFreeze, null); + + case Type.TOGGLE_ON: + return React.createElement(SvgIconToggleon, null); + + case Type.TOGGLE_OFF: + return React.createElement(SvgIconToggleoff, null); + + default: + return null; + } +} + +function Icon(_ref) { + var type = _ref.type, + width = _ref.width, + height = _ref.height, + children = _ref.children, + className = _ref.className, + onClick = _ref.onClick, + fillColor = _ref.fillColor; + var iconStyle = { + width: typeof width === 'string' ? width : "".concat(width, "px"), + minWidth: typeof width === 'string' ? width : "".concat(width, "px"), + height: typeof height === 'string' ? height : "".concat(height, "px"), + minHeight: typeof height === 'string' ? height : "".concat(height, "px") + }; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + onClick: onClick, + onKeyDown: onClick, + role: "button", + tabIndex: "0", + className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-icon', changeColorToClassName(fillColor)]).join(' '), + style: iconStyle + }, children || changeTypeToIconComponent(type)); +} +Icon.propTypes = { + type: PropTypes.oneOfType([PropTypes.oneOf(Object.keys(Type)), PropTypes.string]).isRequired, + width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + onClick: PropTypes.func, + children: PropTypes.element, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + fillColor: PropTypes.oneOf(Object.keys(Colors)) +}; +Icon.defaultProps = { + onClick: function onClick() {}, + width: 26, + height: 26, + children: null, + className: '', + fillColor: Colors.DEFAULT +}; +var IconTypes = Type; +var IconColors = Colors; + +var imageRendererClassName = 'sendbird-avatar-img'; + +var defaultComponent = function defaultComponent(_a) { + var width = _a.width, + height = _a.height; + return function () { + return document.querySelector('.sendbird-theme--dark') ? React.createElement(Icon, { + className: imageRendererClassName, + type: IconTypes.AVATAR_DARK, + width: width, + height: height + }) : React.createElement(Icon, { + className: imageRendererClassName, + type: IconTypes.AVATAR_LIGHT, + width: width, + height: height + }); + }; +}; + +var AvatarInner = function AvatarInner(_a) { + var _b = _a.src, + src = _b === void 0 ? '' : _b, + _c = _a.alt, + alt = _c === void 0 ? '' : _c, + height = _a.height, + width = _a.width; + + if (typeof src === 'string') { + return React.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src, + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }); + } + + if (src && src.length) { + if (src.length === 1) { + return React.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[0], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }); + } + + if (src.length === 2) { + return React.createElement("div", { + className: "sendbird-avatar--inner__two-child" + }, React.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[0], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }), React.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[1], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + })); + } + + if (src.length === 3) { + return React.createElement(React.Fragment, null, React.createElement("div", { + className: "sendbird-avatar--inner__three-child--upper" + }, React.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[0], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + })), React.createElement("div", { + className: "sendbird-avatar--inner__three-child--lower" + }, React.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[1], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }), React.createElement(ImageRenderer, { + className: imageRendererClassName, + url: src[2], + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }))); + } + + return React.createElement("div", { + className: "sendbird-avatar--inner__four-child" + }, src.slice(0, 4).map(function (i) { + return React.createElement(ImageRenderer, { + className: imageRendererClassName, + url: i, + height: height, + width: width, + alt: alt, + key: uuidv4(), + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }); + })); + } // default img + + + return React.createElement(ImageRenderer, { + className: imageRendererClassName, + url: "", + height: height, + width: width, + alt: alt, + defaultComponent: defaultComponent({ + height: height, + width: width + }) + }); +}; + +function Avatar(_a, ref) { + var _b = _a.src, + src = _b === void 0 ? '' : _b, + _c = _a.alt, + alt = _c === void 0 ? '' : _c, + _d = _a.width, + width = _d === void 0 ? '56px' : _d, + _e = _a.height, + height = _e === void 0 ? '56px' : _e, + onClick = _a.onClick, + _f = _a.className, + className = _f === void 0 ? '' : _f; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + className: __spreadArrays(injectingClassName, ['sendbird-avatar']).join(' '), + ref: ref, + style: { + height: height, + width: width + }, + onClick: onClick, + role: "button", + tabIndex: 0, + onKeyDown: onClick + }, React.createElement(AvatarInner, { + src: src, + height: height, + width: width, + alt: alt + })); +} + +var Avatar$1 = React.forwardRef(Avatar); + +var Typography = { + H_1: 'H_1', + H_2: 'H_2', + SUBTITLE_1: 'SUBTITLE_1', + SUBTITLE_2: 'SUBTITLE_2', + BODY_1: 'BODY_1', + BODY_2: 'BODY_2', + BUTTON_1: 'BUTTON_1', + BUTTON_2: 'BUTTON_2', + CAPTION_1: 'CAPTION_1', + CAPTION_2: 'CAPTION_2', + CAPTION_3: 'CAPTION_3' +}; +var Colors$1 = { + ONBACKGROUND_1: 'ONBACKGROUND_1', + ONBACKGROUND_2: 'ONBACKGROUND_2', + ONBACKGROUND_3: 'ONBACKGROUND_3', + ONCONTENT_1: 'ONCONTENT_1', + ONCONTENT_2: 'ONCONTENT_2', + PRIMARY: 'PRIMARY', + ERROR: 'ERROR', + SECONDARY_3: 'SECONDARY_3' +}; + +function changeTypographyToClassName(type) { + switch (type) { + case Typography.H_1: + return 'sendbird-label--h-1'; + + case Typography.H_2: + return 'sendbird-label--h-2'; + + case Typography.SUBTITLE_1: + return 'sendbird-label--subtitle-1'; + + case Typography.SUBTITLE_2: + return 'sendbird-label--subtitle-2'; + + case Typography.BODY_1: + return 'sendbird-label--body-1'; + + case Typography.BODY_2: + return 'sendbird-label--body-2'; + + case Typography.BUTTON_1: + return 'sendbird-label--button-1'; + + case Typography.BUTTON_2: + return 'sendbird-label--button-2'; + + case Typography.CAPTION_1: + return 'sendbird-label--caption-1'; + + case Typography.CAPTION_2: + return 'sendbird-label--caption-2'; + + case Typography.CAPTION_3: + return 'sendbird-label--caption-3'; + + default: + return null; + } +} +function changeColorToClassName$1(color) { + switch (color) { + case Colors$1.ONBACKGROUND_1: + return 'sendbird-label--color-onbackground-1'; + + case Colors$1.ONBACKGROUND_2: + return 'sendbird-label--color-onbackground-2'; + + case Colors$1.ONBACKGROUND_3: + return 'sendbird-label--color-onbackground-3'; + + case Colors$1.ONCONTENT_1: + return 'sendbird-label--color-oncontent-1'; + + case Colors$1.ONCONTENT_2: + return 'sendbird-label--color-oncontent-2'; + + case Colors$1.PRIMARY: + return 'sendbird-label--color-primary'; + // should be Primary-3 fix me + + case Colors$1.ERROR: + return 'sendbird-label--color-error'; + + case Colors$1.SECONDARY_3: + return 'sendbird-label--color-secondary-3'; + + default: + return null; + } +} + +var CLASS_NAME = 'sendbird-label'; +function Label(_ref) { + var type = _ref.type, + color = _ref.color, + children = _ref.children, + className = _ref.className; + var injectingClassName = Array.isArray(className) ? [CLASS_NAME].concat(_toConsumableArray(className)) : [CLASS_NAME, className]; + + if (type) { + injectingClassName.push(changeTypographyToClassName(type)); + } + + if (color) { + injectingClassName.push(changeColorToClassName$1(color)); + } + + return React.createElement("span", { + className: injectingClassName.join(' ') + }, children); +} +Label.propTypes = { + type: PropTypes.oneOf([].concat(_toConsumableArray(Object.keys(Typography)), [''])), + color: PropTypes.oneOf([].concat(_toConsumableArray(Object.keys(Colors$1)), [''])), + children: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.element, PropTypes.any]), + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +Label.defaultProps = { + type: '', + color: '', + className: [], + children: null +}; +var LabelTypography = Typography; +var LabelColors = Colors$1; +var LabelStringSet = getStringSet('en'); + +var CLASS_NAME$1 = 'sendbird-iconbutton'; +var IconButton = React.forwardRef(function (props, ref) { + var children = props.children, + className = props.className, + _props$disabled = props.disabled, + disabled = _props$disabled === void 0 ? false : _props$disabled, + type = props.type, + height = props.height, + width = props.width, + _onClick = props.onClick, + _onBlur = props.onBlur, + style = props.style; + + var _useState = useState(''), + _useState2 = _slicedToArray(_useState, 2), + pressed = _useState2[0], + setPressed = _useState2[1]; + + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift(CLASS_NAME$1); + return (// eslint-disable-next-line react/button-has-type + React.createElement("button", { + className: "".concat(injectingClassName.join(' '), " ").concat(pressed), + disabled: disabled, + ref: ref, + type: type, + style: _objectSpread2({}, style, { + height: height, + width: width + }), + onClick: function onClick(e) { + if (disabled) { + return; + } + + setPressed('sendbird-iconbutton--pressed'); + + _onClick(e); + }, + onBlur: function onBlur(e) { + setPressed(''); + + _onBlur(e); + } + }, React.createElement("span", { + className: "sendbird-iconbutton__inner" + }, children)) + ); +}); +IconButton.propTypes = { + height: PropTypes.string, + width: PropTypes.string, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, + type: PropTypes.string, + disabled: PropTypes.bool, + onClick: PropTypes.func, + onBlur: PropTypes.func, + style: PropTypes.shape({}) +}; +IconButton.defaultProps = { + height: '56px', + width: '56px', + className: '', + type: 'button', + disabled: false, + onClick: function onClick() {}, + onBlur: function onBlur() {}, + style: {} +}; + +// simple component to be used as modal root +var MODAL_ROOT = 'sendbird-modal-root'; + +var Type$1 = { + PRIMARY: 'PRIMARY', + SECONDARY: 'SECONDARY', + DANGER: 'DANGER', + DISABLED: 'DISABLED' +}; +var Size = { + BIG: 'BIG', + SMALL: 'SMALL' +}; + +function changeTypeToClassName(type) { + switch (type) { + case Type$1.PRIMARY: + return 'sendbird-button--primary'; + + case Type$1.SECONDARY: + return 'sendbird-button--secondary'; + + case Type$1.DANGER: + return 'sendbird-button--danger'; + + case Type$1.DISABLED: + return 'sendbird-button--disabled'; + + default: + return null; + } +} +function changeSizeToClassName(size) { + switch (size) { + case Size.BIG: + return 'sendbird-button--big'; + + case Size.SMALL: + return 'sendbird-button--small'; + + default: + return null; + } +} + +function Button(_ref) { + var type = _ref.type, + size = _ref.size, + children = _ref.children, + disabled = _ref.disabled, + onClick = _ref.onClick, + className = _ref.className; + var injectingClassNames = ['sendbird-button', disabled ? 'sendbird-button__disabled' : '', changeTypeToClassName(type), changeSizeToClassName(size)].concat(_toConsumableArray(Array.isArray(className) ? className : [className])).join(' '); + return React.createElement("button", { + type: "button", + className: injectingClassNames, + onClick: onClick, + disabled: disabled + }, React.createElement(Label, { + className: "sendbird-button__text", + type: LabelTypography.BUTTON_1, + color: LabelColors.ONCONTENT_1 + }, children)); +} +Button.propTypes = { + children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.arrayOf(PropTypes.element)]), + disabled: PropTypes.bool, + type: PropTypes.oneOf(Object.keys(Type$1)), + size: PropTypes.oneOf(Object.keys(Size)), + onClick: PropTypes.func, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) +}; +Button.defaultProps = { + children: 'Button', + type: Type$1.PRIMARY, + disabled: false, + size: Size.BIG, + onClick: function onClick() {}, + className: '' +}; + +var ModalHeader = function ModalHeader(_ref) { + var titleText = _ref.titleText; + return React.createElement("div", { + className: "sendbird-modal-header" + }, React.createElement(Label, { + type: LabelTypography.H_1, + color: LabelColors.ONBACKGROUND_1 + }, titleText)); +}; +ModalHeader.propTypes = { + titleText: PropTypes.string.isRequired +}; +var ModalBody = function ModalBody(_ref2) { + var children = _ref2.children; + return React.createElement("div", { + className: "sendbird-modal-body" + }, children); +}; +ModalBody.propTypes = { + children: PropTypes.oneOfType([PropTypes.element.isRequired, PropTypes.arrayOf(PropTypes.element.isRequired)]) +}; +ModalBody.defaultProps = { + children: null +}; +var ModalFooter = function ModalFooter(_ref3) { + var onSubmit = _ref3.onSubmit, + onCancel = _ref3.onCancel, + _ref3$disabled = _ref3.disabled, + disabled = _ref3$disabled === void 0 ? false : _ref3$disabled, + submitText = _ref3.submitText, + type = _ref3.type; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + return React.createElement("div", { + className: "sendbird-modal-footer" + }, React.createElement(Button, { + type: Type$1.SECONDARY, + onClick: onCancel + }, React.createElement(Label, { + type: LabelTypography.BUTTON_1, + color: LabelColors.ONBACKGROUND_1 + }, stringSet.BUTTON__CANCEL)), React.createElement(Button, { + type: type, + disabled: disabled, + onClick: onSubmit + }, submitText)); +}; +ModalFooter.propTypes = { + onCancel: PropTypes.func.isRequired, + onSubmit: PropTypes.func.isRequired, + submitText: PropTypes.string.isRequired, + disabled: PropTypes.bool, + type: PropTypes.string +}; +ModalFooter.defaultProps = { + disabled: false, + type: Type$1.DANGER +}; + +function Modal(props) { + var children = props.children, + onCancel = props.onCancel, + onSubmit = props.onSubmit, + disabled = props.disabled, + submitText = props.submitText, + titleText = props.titleText, + hideFooter = props.hideFooter, + type = props.type; + return createPortal(React.createElement("div", { + className: "sendbird-modal" + }, React.createElement("div", { + className: "sendbird-modal-content" + }, React.createElement(ModalHeader, { + titleText: titleText + }), React.createElement(ModalBody, null, children), !hideFooter && React.createElement(ModalFooter, { + disabled: disabled, + onCancel: onCancel, + onSubmit: onSubmit, + submitText: submitText, + type: type + }), React.createElement("div", { + className: "sendbird-modal-close" + }, React.createElement(IconButton, { + width: "32px", + height: "32px", + onClick: onCancel + }, React.createElement(Icon, { + type: IconTypes.CLOSE, + fillColor: IconColors.SECONDARY, + width: "24px", + height: "24px" + })))), React.createElement("div", { + className: "sendbird-modal-backdrop" + })), document.getElementById(MODAL_ROOT)); +} + +Modal.propTypes = { + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]), + onCancel: PropTypes.func.isRequired, + onSubmit: PropTypes.func.isRequired, + hideFooter: PropTypes.bool, + disabled: PropTypes.bool, + type: PropTypes.string +}; +Modal.defaultProps = { + children: null, + hideFooter: false, + disabled: false, + type: Type$1.DANGER +}; + +var Colors$2 = { + ONBACKGROUND_1: 'ONBACKGROUND_1', + ONBACKGROUND_2: 'ONBACKGROUND_2', + ONBACKGROUND_3: 'ONBACKGROUND_3', + ONBACKGROUND_4: 'ONBACKGROUND_4', + ONCONTENT_1: 'ONCONTENT_1', + PRIMARY: 'PRIMARY', + ERROR: 'ERROR' +}; +function changeColorToClassName$2(color) { + switch (color) { + case Colors$2.ONBACKGROUND_1: + return 'sendbird-color--onbackground-1'; + + case Colors$2.ONBACKGROUND_2: + return 'sendbird-color--onbackground-2'; + + case Colors$2.ONBACKGROUND_3: + return 'sendbird-color--onbackground-3'; + + case Colors$2.ONBACKGROUND_4: + return 'sendbird-color--onbackground-4'; + + case Colors$2.ONCONTENT_1: + return 'sendbird-color--oncontent-1'; + + case Colors$2.PRIMARY: + return 'sendbird-color--primary'; + + case Colors$2.ERROR: + return 'sendbird-color--error'; + + default: + return null; + } +} + +function TextButton(_ref) { + var color = _ref.color, + children = _ref.children, + disabled = _ref.disabled, + className = _ref.className, + onClick = _ref.onClick, + notUnderline = _ref.notUnderline; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + role: "button", + tabIndex: 0, + className: [].concat(_toConsumableArray(injectingClassName), [changeColorToClassName$2(color), notUnderline ? 'sendbird-textbutton--not-underline' : 'sendbird-textbutton', disabled ? 'sendbird-textbutton--disabled' : '']).join(' '), + onClick: onClick, + onKeyPress: onClick + }, children); +} +TextButton.propTypes = { + color: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + onClick: PropTypes.func, + notUnderline: PropTypes.bool, + disabled: PropTypes.bool +}; +TextButton.defaultProps = { + color: Colors$2.ONBACKGROUND_1, + className: '', + onClick: function onClick() {}, + notUnderline: false, + disabled: false +}; + +function Types() { + return { + LOADING: 'LOADING', + NO_CHANNELS: 'NO_CHANNELS', + WRONG: 'WRONG' + }; +} +var PlaceHolderTypes = Types(); + +var SEND_MESSAGE_START = 'SEND_MESSAGE_START'; +var SEND_USER_MESSAGE = 'SEND_USER_MESSAGE'; +var SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE'; +var UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE'; +var DELETE_MESSAGE = 'DELETE_MESSAGE'; +var LEAVE_CHANNEL = 'LEAVE_CHANNEL'; +var CREATE_CHANNEL = 'CREATE_CHANNEL'; + +var getSdk = function getSdk(store) { + var _store$stores = store.stores, + stores = _store$stores === void 0 ? {} : _store$stores; + var _stores$sdkStore = stores.sdkStore, + sdkStore = _stores$sdkStore === void 0 ? {} : _stores$sdkStore; + var sdk = sdkStore.sdk; + return sdk; +}; +var getPubSub = function getPubSub(store) { + var _store$config = store.config, + config = _store$config === void 0 ? {} : _store$config; + var pubSub = config.pubSub; + return pubSub; +}; // SendBird disconnect. Invalidates currentUser +// eslint-disable-next-line max-len + +var getConnect = function getConnect(store) { + return function (userId, accessToken) { + return new Promise(function (resolve, reject) { + var sdk = getSdk(store); + + if (!sdk) { + reject(new Error('Sdk not found')); + } + + if (!accessToken) { + sdk.connect(userId).then(function (res) { + return resolve(res); + }).catch(function (err) { + return reject(err); + }); + } else { + sdk.connect(userId, accessToken).then(function (res) { + return resolve(res); + }).catch(function (err) { + return reject(err); + }); + } + }); + }; +}; // SendBird disconnect. Invalidates currentUser + +var getDisconnect = function getDisconnect(store) { + return function () { + return new Promise(function (resolve, reject) { + var sdk = getSdk(store); + + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.disconnect().then(function (res) { + return resolve(res); + }).catch(function (err) { + return reject(err); + }); + }); + }; +}; // Using the updateCurrentUserInfo() method +// you can update a user's nickname and profile image with a URL +// eslint-disable-next-line max-len + +var getUpdateUserInfo = function getUpdateUserInfo(store) { + return function (nickName, profileUrl) { + return new Promise(function (resolve, reject) { + var sdk = getSdk(store); + + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.updateCurrentUserInfo(nickName, profileUrl).then(function (res) { + return resolve(res); + }).catch(function (err) { + return reject(err); + }); + }); + }; +}; +var getSendUserMessage = function getSendUserMessage(store) { + return function (channelUrl, userMessageParams) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + var promisify = function promisify() { + var pendingMsg = null; + var pendingPromise = new Promise(function (resolve_, reject_) { + pendingMsg = channel.sendUserMessage(userMessageParams, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject_(error); + return; + } + + resolve_(message); + pubsub.publish(SEND_USER_MESSAGE, { + message: message, + channel: channel + }); + }); + pubsub.publish(SEND_MESSAGE_START, { + message: pendingMsg, + channel: channel + }); + }); + + pendingPromise.get = function () { + return pendingMsg; + }; + + return pendingPromise; + }; + + resolve(promisify()); + }).catch(reject); + }); + }; +}; +var getSendFileMessage = function getSendFileMessage(store) { + return function (channelUrl, fileMessageParams) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + var promisify = function promisify() { + var pendingMsg = null; + var pendingPromise = new Promise(function (resolve_, reject_) { + pendingMsg = channel.sendFileMessage(fileMessageParams, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject_(error); + return; + } + + resolve_(message); + pubsub.publish(SEND_FILE_MESSAGE, { + message: message, + channel: channel + }); + }); + }); + + if (fileMessageParams.file) { + // keep the file's local version in pendingMsg.localUrl + // because promise doesnt allow overriding of pendingMsg.url + // eslint-disable-next-line no-param-reassign + pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file); + } + + if (fileMessageParams.fileUrl) { + // eslint-disable-next-line no-param-reassign + pendingMsg.localUrl = fileMessageParams.fileUrl; + } // eslint-disable-next-line no-param-reassign + + + pendingMsg.requestState = 'pending'; + pubsub.publish(SEND_MESSAGE_START, { + message: pendingMsg, + channel: channel + }); + + pendingPromise.get = function () { + return pendingMsg; + }; + + return pendingPromise; + }; + + resolve(promisify()); + }).catch(reject); + }); + }; +}; +var getUpdateUserMessage = function getUpdateUserMessage(store) { + return function (channelUrl, messageId, params) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.updateUserMessage(messageId, params, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject(error); + return; + } + + resolve(message); + pubsub.publish(UPDATE_USER_MESSAGE, { + message: message, + channel: channel, + // workaround for updating channelPreview on message-edit + // https://sendbird.atlassian.net/browse/UIKIT-268 + fromSelector: true + }); + }); + }).catch(reject); + }); + }; +}; +var getDeleteMessage = function getDeleteMessage(store) { + return function (channelUrl, message) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + var messageId = message.messageId; + channel.deleteMessage(message, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var error = err; + + if (swapParams) { + error = res; + } + + if (error) { + reject(error); + return; + } + + resolve(message); + pubsub.publish(DELETE_MESSAGE, { + messageId: messageId, + channel: channel + }); + }); + }).catch(reject); + }); + }; +}; +var getResendUserMessage = function getResendUserMessage(store) { + return function (channelUrl, failedMessage) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.resendUserMessage(failedMessage).then(function (message) { + resolve(message); + pubsub.publish(SEND_USER_MESSAGE, { + message: message, + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var getResendFileMessage = function getResendFileMessage(store) { + return function (channelUrl, failedMessage) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.resendFileMessage(failedMessage).then(function (message) { + resolve(message); + pubsub.publish(SEND_FILE_MESSAGE, { + message: message, + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var getCreateChannel = function getCreateChannel(store) { + return function (params) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.createChannel(params).then(function (channel) { + resolve(channel); + pubsub.publish(CREATE_CHANNEL, { + channel: channel + }); + }).catch(reject); + }); + }; +}; +var getLeaveChannel = function getLeaveChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.leave().then(function () { + resolve(channel); + pubsub.publish(LEAVE_CHANNEL, { + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var getFreezeChannel = function getFreezeChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.freeze().then(function () { + // do not need pubsub here - event listener works + resolve(channel); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var getUnFreezeChannel = function getUnFreezeChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + channel.unfreeze().then(function () { + // do not need pubsub here - event listener works + resolve(channel); + }).catch(reject); + }).catch(reject); + }); + }; +}; +var selectors = { + getSdk: getSdk, + getConnect: getConnect, + getDisconnect: getDisconnect, + getUpdateUserInfo: getUpdateUserInfo, + getSendUserMessage: getSendUserMessage, + getSendFileMessage: getSendFileMessage, + getUpdateUserMessage: getUpdateUserMessage, + getDeleteMessage: getDeleteMessage, + getResendUserMessage: getResendUserMessage, + getResendFileMessage: getResendFileMessage, + getFreezeChannel: getFreezeChannel, + getUnFreezeChannel: getUnFreezeChannel, + getCreateChannel: getCreateChannel, + getLeaveChannel: getLeaveChannel +}; + +function UserProfile(_a) { + var user = _a.user, + currentUserId = _a.currentUserId, + sdk = _a.sdk, + logger = _a.logger, + _b = _a.disableMessaging, + disableMessaging = _b === void 0 ? false : _b, + createChannel = _a.createChannel, + onSuccess = _a.onSuccess; + var stringSet = useContext(LocalizationContext).stringSet; + return React.createElement("div", { + className: "sendbird__user-profile" + }, React.createElement("section", { + className: "sendbird__user-profile-avatar" + }, React.createElement(Avatar$1, { + height: "80px", + width: "80px", + src: user.profileUrl + })), React.createElement("section", { + className: "sendbird__user-profile-name" + }, React.createElement(Label, { + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, user.nickname || stringSet.NO_NAME)), user.userId !== currentUserId && !disableMessaging && React.createElement("section", { + className: "sendbird__user-profile-message" + }, React.createElement(Button, { + type: Type$1.SECONDARY, + onClick: function onClick() { + var params = new sdk.GroupChannelParams(); + params.isDistinct = true; + params.addUserIds([user.userId]); + onSuccess(); + createChannel(params).then(function (groupChannel) { + logger.info('UserProfile, channel create', groupChannel); + }); + } + }, stringSet.USER_PROFILE__MESSAGE)), React.createElement("div", { + className: "sendbird__user-profile-seperator" + }), React.createElement("section", { + className: "sendbird__user-profile-userId" + }, React.createElement(Label, { + className: "sendbird__user-profile-userId--label", + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, stringSet.USER_PROFILE__USER_ID), React.createElement(Label, { + className: "sendbird__user-profile-userId--value", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_1 + }, user.userId))); +} + +var mapStoreToProps = function mapStoreToProps(store) { + return { + sdk: getSdk(store), + createChannel: getCreateChannel(store), + logger: store.config.logger, + pubsub: store.config.pubSub + }; +}; + +var ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps); + +var MenuItems = +/*#__PURE__*/ +function (_Component) { + _inherits(MenuItems, _Component); + + function MenuItems(props) { + var _this; + + _classCallCheck(this, MenuItems); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(MenuItems).call(this, props)); + + _defineProperty(_assertThisInitialized(_this), "showParent", function () { + var _this$props$parentCon = _this.props.parentContainRef, + parentContainRef = _this$props$parentCon === void 0 ? {} : _this$props$parentCon; + var current = parentContainRef.current; + + if (parentContainRef && current) { + current.classList.add('sendbird-icon--pressed'); + } + }); + + _defineProperty(_assertThisInitialized(_this), "hideParent", function () { + var _this$props$parentCon2 = _this.props.parentContainRef, + parentContainRef = _this$props$parentCon2 === void 0 ? {} : _this$props$parentCon2; + var current = parentContainRef.current; + + if (parentContainRef && current) { + current.classList.remove('sendbird-icon--pressed'); + } + }); + + _defineProperty(_assertThisInitialized(_this), "setupEvents", function () { + var closeDropdown = _this.props.closeDropdown; + + var _assertThisInitialize = _assertThisInitialized(_this), + menuRef = _assertThisInitialize.menuRef; + + var handleClickOutside = function handleClickOutside(event) { + if (menuRef.current && !menuRef.current.contains(event.target)) { + closeDropdown(); + } + }; + + _this.setState({ + handleClickOutside: handleClickOutside + }); + + document.addEventListener('mousedown', handleClickOutside); + }); + + _defineProperty(_assertThisInitialized(_this), "cleanUpEvents", function () { + var handleClickOutside = _this.state.handleClickOutside; + document.removeEventListener('mousedown', handleClickOutside); + }); + + _defineProperty(_assertThisInitialized(_this), "getMenuPosition", function () { + var _this$props = _this.props, + parentRef = _this$props.parentRef, + openLeft = _this$props.openLeft; + var parentRect = parentRef.current.getBoundingClientRect(); + var x = parentRect.x || parentRect.left; + var y = parentRect.y || parentRect.top; + var menuStyle = { + top: y, + left: x + }; + if (!_this.menuRef.current) return menuStyle; + var _window = window, + innerWidth = _window.innerWidth, + innerHeight = _window.innerHeight; + + var rect = _this.menuRef.current.getBoundingClientRect(); + + if (y + rect.height > innerHeight) { + menuStyle.top -= rect.height; + } + + if (x + rect.width > innerWidth && !openLeft) { + menuStyle.left -= rect.width; + } + + if (menuStyle.top < 0) { + menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0; + } + + if (menuStyle.left < 0) { + menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0; + } + + menuStyle.top += 32; + + if (openLeft) { + var padding = Number.isNaN(rect.width - 30) ? 108 // default + : rect.width - 30; + menuStyle.left -= padding; + } + + return _this.setState({ + menuStyle: menuStyle + }); + }); + + _this.menuRef = React.createRef(); + _this.state = { + menuStyle: {}, + handleClickOutside: function handleClickOutside() {} + }; + return _this; + } + + _createClass(MenuItems, [{ + key: "componentDidMount", + value: function componentDidMount() { + this.setupEvents(); + this.getMenuPosition(); + this.showParent(); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.cleanUpEvents(); + this.hideParent(); + } + }, { + key: "render", + value: function render() { + var menuStyle = this.state.menuStyle; + var _this$props2 = this.props, + children = _this$props2.children, + style = _this$props2.style; + return createPortal(React.createElement(React.Fragment, null, React.createElement("div", { + className: "sendbird-dropdown__menu-backdrop" + }), React.createElement("ul", { + className: "sendbird-dropdown__menu", + ref: this.menuRef, + style: _objectSpread2({ + display: 'inline-block', + position: 'fixed', + left: "".concat(Math.round(menuStyle.left), "px"), + top: "".concat(Math.round(menuStyle.top), "px") + }, style) + }, children)), document.getElementById('sendbird-dropdown-portal')); + } + }]); + + return MenuItems; +}(Component); +MenuItems.propTypes = { + closeDropdown: PropTypes.func.isRequired, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired, + style: PropTypes.shape({}), + // https://stackoverflow.com/a/51127130 + parentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ + current: PropTypes.instanceOf(Element) + })]).isRequired, + parentContainRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ + current: PropTypes.instanceOf(Element) + })]).isRequired, + openLeft: PropTypes.bool +}; +MenuItems.defaultProps = { + style: {}, + openLeft: false +}; + +var componentClassName = 'sendbird-sort-by-row'; +function SortByRow(_ref) { + var className = _ref.className, + maxItemCount = _ref.maxItemCount, + itemWidth = _ref.itemWidth, + itemHeight = _ref.itemHeight, + children = _ref.children; + var injectingClassName = Array.isArray(className) ? className : [className]; + injectingClassName.unshift(componentClassName); + + if (children.length > maxItemCount) { + var result = []; + + for (var i = 0; i < children.length; i += maxItemCount) { + result.push(React.createElement("div", { + className: injectingClassName.join(' '), + style: { + width: itemWidth * maxItemCount, + height: itemHeight + }, + key: className + i + }, children.slice(i, i + maxItemCount))); + } + + return result; + } + + return React.createElement("div", { + className: injectingClassName.join(' '), + style: { + width: itemWidth * children.length, + height: itemHeight + } + }, children); +} +SortByRow.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + maxItemCount: PropTypes.number.isRequired, + itemWidth: PropTypes.number.isRequired, + itemHeight: PropTypes.number.isRequired, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).isRequired +}; +SortByRow.defaultProps = { + className: '' +}; + +var EmojiListItems = +/*#__PURE__*/ +function (_Component) { + _inherits(EmojiListItems, _Component); + + function EmojiListItems(props) { + var _this; + + _classCallCheck(this, EmojiListItems); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(EmojiListItems).call(this, props)); + + _defineProperty(_assertThisInitialized(_this), "showParent", function () { + var _this$props$parentCon = _this.props.parentContainRef, + parentContainRef = _this$props$parentCon === void 0 ? {} : _this$props$parentCon; + var current = parentContainRef.current; + + if (parentContainRef && current) { + current.classList.add('sendbird-reactions--pressed'); + } + }); + + _defineProperty(_assertThisInitialized(_this), "hideParent", function () { + var _this$props$parentCon2 = _this.props.parentContainRef, + parentContainRef = _this$props$parentCon2 === void 0 ? {} : _this$props$parentCon2; + var current = parentContainRef.current; + + if (parentContainRef && current) { + current.classList.remove('sendbird-reactions--pressed'); + } + }); + + _defineProperty(_assertThisInitialized(_this), "setupEvents", function () { + var closeDropdown = _this.props.closeDropdown; + + var _assertThisInitialize = _assertThisInitialized(_this), + reactionRef = _assertThisInitialize.reactionRef; + + var handleClickOutside = function handleClickOutside(event) { + if (reactionRef.current && !reactionRef.current.contains(event.target)) { + closeDropdown(); + } + }; + + _this.setState({ + handleClickOutside: handleClickOutside + }); + + document.addEventListener('mousedown', handleClickOutside); + }); + + _defineProperty(_assertThisInitialized(_this), "cleanUpEvents", function () { + var handleClickOutside = _this.state.handleClickOutside; + document.removeEventListener('mousedown', handleClickOutside); + }); + + _defineProperty(_assertThisInitialized(_this), "getBarPosition", function () { + var _this$props = _this.props, + parentRef = _this$props.parentRef, + spaceFromTrigger = _this$props.spaceFromTrigger; + var spaceFromTriggerX = spaceFromTrigger.x || 0; + var spaceFromTriggerY = spaceFromTrigger.y || 0; + var parentRect = parentRef.current.getBoundingClientRect(); + var x = parentRect.x || parentRect.left; + var y = parentRect.y || parentRect.top; + var reactionStyle = { + top: y, + left: x + }; + if (!_this.reactionRef.current) return reactionStyle; + + var rect = _this.reactionRef.current.getBoundingClientRect(); // const childRect = this.reactionRef.current.children[0].getBoundingClientRect(); + + + if (reactionStyle.top < rect.height) { + reactionStyle.top += parentRect.height; + reactionStyle.top += spaceFromTriggerY; + } else { + reactionStyle.top -= rect.height; + reactionStyle.top -= spaceFromTriggerY; + } + + reactionStyle.left -= rect.width / 2; + reactionStyle.left += parentRect.height / 2 - 2; + reactionStyle.left += spaceFromTriggerX; + var maximumLeft = window.innerWidth - rect.width; + + if (maximumLeft < reactionStyle.left) { + reactionStyle.left = maximumLeft; + } + + if (reactionStyle.left < 0) { + reactionStyle.left = 0; + } + + return _this.setState({ + reactionStyle: reactionStyle + }); + }); + + _this.reactionRef = React.createRef(); + _this.state = { + reactionStyle: {}, + handleClickOutside: function handleClickOutside() {} + }; + return _this; + } + + _createClass(EmojiListItems, [{ + key: "componentDidMount", + value: function componentDidMount() { + this.setupEvents(); + this.getBarPosition(); + this.showParent(); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.cleanUpEvents(); + this.hideParent(); + } + }, { + key: "render", + value: function render() { + var reactionStyle = this.state.reactionStyle; + var children = this.props.children; + return createPortal(React.createElement(React.Fragment, null, React.createElement("div", { + className: "sendbird-dropdown__menu-backdrop" + }), React.createElement("ul", { + className: "sendbird-dropdown__reaction-bar", + ref: this.reactionRef, + style: { + display: 'inline-block', + position: 'fixed', + left: "".concat(Math.round(reactionStyle.left), "px"), + top: "".concat(Math.round(reactionStyle.top), "px") + } + }, React.createElement(SortByRow, { + className: "sendbird-dropdown__reaction-bar__row", + maxItemCount: 8, + itemWidth: 44, + itemHeight: 40 + }, children))), document.getElementById('sendbird-emoji-list-portal')); + } + }]); + + return EmojiListItems; +}(Component); +EmojiListItems.propTypes = { + closeDropdown: PropTypes.func.isRequired, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired, + parentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ + current: PropTypes.instanceOf(Element) + })]).isRequired, + parentContainRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ + current: PropTypes.instanceOf(Element) + })]).isRequired, + spaceFromTrigger: PropTypes.shape({ + x: PropTypes.number, + y: PropTypes.number + }) +}; +EmojiListItems.defaultProps = { + spaceFromTrigger: {} +}; + +var ENTER = 13; +var MenuItems$1 = MenuItems; +var EmojiListItems$1 = EmojiListItems; +var MenuItem = function MenuItem(_ref) { + var children = _ref.children, + onClick = _ref.onClick, + className = _ref.className; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("li", { + tabIndex: 0, + className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-dropdown__menu-item']).join(' '), + onClick: onClick, + onKeyPress: function onKeyPress(e) { + if (e.keyCode === ENTER) { + onClick(e); + } + }, + role: "menuitem" + }, React.createElement(Label, { + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_1, + className: "sendbird-dropdown__menu-item__text" + }, children)); +}; +MenuItem.propTypes = { + onClick: PropTypes.func.isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired +}; +MenuItem.defaultProps = { + className: '' +}; +function ContextMenu(_ref2) { + var menuTrigger = _ref2.menuTrigger, + menuItems = _ref2.menuItems; + + var _useState = useState(false), + _useState2 = _slicedToArray(_useState, 2), + showMenu = _useState2[0], + setShowMenu = _useState2[1]; + + return React.createElement("div", { + className: "sendbird-context-menu", + style: { + display: 'inline' + } + }, menuTrigger(function () { + return setShowMenu(!showMenu); + }), showMenu && menuItems(function () { + return setShowMenu(false); + })); +} +ContextMenu.propTypes = { + menuTrigger: PropTypes.func.isRequired, + menuItems: PropTypes.func.isRequired +}; + +function Loader(_ref) { + var children = _ref.children, + className = _ref.className, + width = _ref.width, + height = _ref.height; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-loader']).join(' '), + style: { + width: typeof width === 'string' ? width : "".concat(width, "px"), + height: typeof height === 'string' ? height : "".concat(height, "px") + } + }, children); +} +Loader.propTypes = { + children: PropTypes.element, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) +}; +Loader.defaultProps = { + children: React.createElement(Icon, { + type: IconTypes.SPINNER, + width: "26px", + height: "26px" + }), + className: '', + width: '26px', + height: '26px' +}; + +var PlaceHolderTypes$1 = PlaceHolderTypes; +function PlaceHolder(_ref) { + var className = _ref.className, + type = _ref.type, + retryToConnect = _ref.retryToConnect; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-place-holder']).join(' ') + }, type === PlaceHolderTypes$1.LOADING ? React.createElement(Loader, { + width: "48px", + height: "48px" + }, React.createElement(Icon, { + type: IconTypes.SPINNER_LARGE, + width: "48px", + height: "48px" + })) : null, type === PlaceHolderTypes$1.NO_CHANNELS || type === PlaceHolderTypes$1.WRONG ? React.createElement("div", { + className: "sendbird-place-holder__body" + }, type === PlaceHolderTypes$1.NO_CHANNELS && React.createElement(Icon, { + className: "sendbird-place-holder__body__icon", + type: IconTypes.CHAT, + fillColor: IconColors.ON_BACKGROUND_3, + width: "64px", + height: "64px" + }), type === PlaceHolderTypes$1.WRONG && React.createElement(Icon, { + className: "sendbird-place-holder__body__icon", + type: IconTypes.ERROR, + fillColor: IconColors.ON_BACKGROUND_3, + width: "64px", + height: "64px" + }), React.createElement(Label, { + className: "sendbird-place-holder__body__text", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_2 + }, type === PlaceHolderTypes$1.NO_CHANNELS ? stringSet.PLACE_HOLDER__NO_CHANNEL : stringSet.PLACE_HOLDER__WRONG), retryToConnect ? React.createElement("div", { + className: "sendbird-place-holder__body__reconnect", + role: "button", + tabIndex: 0, + onClick: retryToConnect, + onKeyPress: retryToConnect + }, React.createElement(Icon, { + className: "sendbird-place-holder__body__reconnect__icon", + type: IconTypes.REFRESH, + fillColor: IconColors.PRIMARY, + width: "20px", + height: "20px" + }), React.createElement(Label, { + className: "sendbird-place-holder__body__reconnect__text", + type: LabelTypography.BUTTON_1, + color: LabelColors.PRIMARY + }, stringSet.PLACE_HOLDER__RETRY_TO_CONNECT)) : null) : null); +} +PlaceHolder.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + type: PropTypes.oneOfType([PropTypes.oneOf(Object.keys(PlaceHolderTypes$1)), PropTypes.string]).isRequired, + retryToConnect: PropTypes.func +}; +PlaceHolder.defaultProps = { + className: '', + retryToConnect: null +}; + +export { Avatar$1 as A, Button as B, ContextMenu as C, DELETE_MESSAGE as D, EmojiListItems$1 as E, selectors as F, Icon as I, LabelStringSet as L, Modal as M, PlaceHolder as P, SEND_MESSAGE_START as S, Type$1 as T, UPDATE_USER_MESSAGE as U, IconTypes as a, Label as b, LabelTypography as c, LabelColors as d, IconButton as e, TextButton as f, IconColors as g, MenuItems$1 as h, MenuItem as i, CREATE_CHANNEL as j, LEAVE_CHANNEL as k, UserProfileProvider as l, PlaceHolderTypes as m, UserProfileContext as n, ConnectedUserProfile as o, SEND_USER_MESSAGE as p, SEND_FILE_MESSAGE as q, ImageRenderer as r, Loader as s, PlaceHolderTypes$1 as t, Colors$2 as u, changeColorToClassName$2 as v, Size as w, MODAL_ROOT as x, changeColorToClassName$1 as y, getSdk as z }; +//# sourceMappingURL=index-0c67ae90.js.map diff --git a/dist/esm/index-0c67ae90.js.map b/dist/esm/index-0c67ae90.js.map new file mode 100644 index 0000000..f1208b3 --- /dev/null +++ b/dist/esm/index-0c67ae90.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-0c67ae90.js","sources":["../../../src/lib/UserProfileContext.jsx","../../../src/ui/ImageRenderer/index.jsx","../../../src/ui/Icon/type.js","../../../src/ui/Icon/index.jsx","../../../src/ui/Avatar/index.tsx","../../../src/ui/Label/types.js","../../../src/ui/Label/utils.js","../../../src/ui/Label/index.jsx","../../../src/ui/IconButton/index.jsx","../../../src/hooks/useModal/ModalRoot/index.jsx","../../../src/ui/Button/type.js","../../../src/ui/Button/utils.js","../../../src/ui/Button/index.jsx","../../../src/ui/Modal/index.jsx","../../../src/utils/color.js","../../../src/ui/TextButton/index.jsx","../../../src/ui/PlaceHolder/type.js","../../../src/lib/pubSub/topics.js","../../../src/lib/selectors.js","../../../src/ui/UserProfile/index.tsx","../../../src/ui/ContextMenu/items/MenuItems.jsx","../../../src/ui/SortByRow/index.jsx","../../../src/ui/ContextMenu/items/EmojiListItems.jsx","../../../src/ui/ContextMenu/index.jsx","../../../src/ui/Loader/index.jsx","../../../src/ui/PlaceHolder/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst UserProfileContext = React.createContext({\n disableUserProfile: true,\n isOpenChannel: false,\n renderUserProfile: null,\n});\n\nconst UserProfileProvider = (props) => {\n const { children, className } = props;\n return (\n \n
\n {children}\n
\n
\n );\n};\n\nUserProfileProvider.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n isOpenChannel: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n disableUserProfile: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n renderUserProfile: PropTypes.func,\n className: PropTypes.string,\n};\n\nUserProfileProvider.defaultProps = {\n className: null,\n isOpenChannel: false,\n disableUserProfile: false,\n renderUserProfile: null,\n};\n\nexport { UserProfileContext, UserProfileProvider };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\n/*\n ImageRenderer displays image with url or source\n it checks if the source exist with img tag first\n if it exists onLoad is called, if not onError is called\n and those properties switch img tag to real purposing element\n*/\n\nexport default function ImageRenderer({\n alt,\n url,\n width,\n height,\n className,\n defaultComponent,\n circle,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-image-renderer');\n const [realElement, setRealElement] = useState(null);\n useEffect(() => {\n setRealElement(null);\n }, [url]);\n return (\n realElement || (\n {\n setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent);\n }}\n onLoad={() => {\n setRealElement((\n \n ));\n }}\n />\n )\n );\n}\n\nImageRenderer.propTypes = {\n alt: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n defaultComponent: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n circle: PropTypes.bool,\n};\nImageRenderer.defaultProps = {\n alt: '',\n className: '',\n circle: false,\n defaultComponent: null,\n width: null,\n height: null,\n};\n","export default {\n ADD: 'ADD',\n ATTACH: 'ATTACH',\n ARROW_LEFT: 'ARROW_LEFT',\n AVATAR_DARK: 'AVATAR_DARK',\n AVATAR_LIGHT: 'AVATAR_LIGHT',\n AVATAR_NO_IMAGE: 'AVATAR_NO_IMAGE',\n BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK',\n BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT',\n BROADCAST_DARK: 'BROADCAST_DARK',\n BROADCAST_LIGHT: 'BROADCAST_LIGHT',\n BROADCAST: 'BROADCAST',\n FROZEN_DARK: 'FROZEN_DARK',\n FROZEN_LIGHT: 'FROZEN_LIGHT',\n CAMERA: 'CAMERA',\n MORE: 'MORE',\n MUTE: 'MUTE',\n NO_THUMBNAIL: 'NO_THUMBNAIL',\n CHECKBOX: 'CHECKBOX',\n CHECKBOX_OFF: 'CHECKBOX_OFF',\n CLOSE: 'CLOSE',\n COPY: 'COPY',\n CHAT: 'CHAT',\n CREATE: 'CREATE',\n DELETE: 'DELETE',\n DISCONNECTED: 'DISCONNECTED',\n DUMMY: 'DUMMY',\n EDIT: 'EDIT',\n ERROR: 'ERROR',\n ERROR_FILLED: 'ERROR_FILLED',\n EMOJI_FAILED: 'EMOJI_FAILED',\n EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD',\n EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY',\n DELIVERED: 'DELIVERED',\n DOCUMENT: 'DOCUMENT',\n DOWNLOAD: 'DOWNLOAD',\n FILE_AUDIO: 'FILE_AUDIO',\n FILE_DOCUMENT: 'FILE_DOCUMENT',\n GIF: 'GIF',\n INFO: 'INFO',\n LEAVE: 'LEAVE',\n MEMBERS: 'MEMBERS',\n NOTIFICATIONS: 'NOTIFICATIONS',\n PHOTO: 'PHOTO',\n PLAY: 'PLAY',\n PLUS: 'PLUS',\n READ: 'READ',\n REFRESH: 'REFRESH',\n SEND: 'SEND',\n SENT: 'SENT',\n SUPER_GROUP: 'SUPER_GROUP',\n SHEVRON: 'SHEVRON',\n SHEVRON_DOWN: 'SHEVRON_DOWN',\n SPINNER: 'SPINNER',\n SPINNER_LARGE: 'SPINNER_LARGE',\n USER: 'USER',\n ICON_OPERATOR: 'ICON_OPERATOR',\n ICON_BANNED: 'ICON_BANNED',\n ICON_FREEZE: 'ICON_FREEZE',\n ICON_MUTED: 'ICON_MUTED',\n ICON_MUTED_FG: 'ICON_MUTED_FG',\n TOGGLE_ON: 'TOGGLE_ON',\n TOGGLE_OFF: 'TOGGLE_OFF',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Type from './type';\n\nimport IconAdd from '../../svgs/icon-add.svg';\nimport IconAttach from '../../svgs/icon-attach.svg';\nimport IconArrowLeft from '../../svgs/icon-arrow-left.svg';\nimport IconAvatarDark from '../../svgs/icon-avatar-dark.svg';\nimport IconAvatarLight from '../../svgs/icon-avatar-light.svg';\nimport IconAvatarNoImage from '../../svgs/avatar-no-image-light.svg';\nimport BroadcastLargeDark from '../../svgs/icon-broadcast-lrg-dark.svg';\nimport BroadcastLargeLight from '../../svgs/icon-broadcast-lrg-light.svg';\nimport BroadcastDark from '../../svgs/icon-broadcast-dark.svg';\nimport BroadcastLight from '../../svgs/icon-broadcast-light.svg';\nimport Broadcast from '../../svgs/icon-broadcast.svg';\nimport FrozenDark from '../../svgs/frozen-dark.svg';\nimport FrozenLight from '../../svgs/frozen-light.svg';\nimport IconCamera from '../../svgs/icon-camera.svg';\nimport IconMore from '../../svgs/icon-more.svg';\nimport IconMute from '../../svgs/icon-mute.svg';\nimport IconNoThumbnail from '../../svgs/icon-no-thumbnail.svg';\nimport IconCheckbox from '../../svgs/icon-checkbox.svg';\nimport IconCheckboxOff from '../../svgs/icon-checkbox-off.svg';\nimport IconClose from '../../svgs/icon-close.svg';\nimport IconCopy from '../../svgs/icon-copy.svg';\nimport IconChat from '../../svgs/icon-chat.svg';\nimport IconSupergroup from '../../svgs/icon-supergroup.svg';\nimport IconCreate from '../../svgs/icon-create.svg';\nimport IconDelete from '../../svgs/icon-delete.svg';\nimport IconDummy from '../../svgs/icon-dummy.svg';\nimport IconEdit from '../../svgs/icon-edit.svg';\nimport IconError from '../../svgs/icon-error.svg';\nimport IconErrorFilled from '../../svgs/icon-error-filled.svg';\nimport IconEmojiFailed from '../../svgs/emoji-fail.svg';\nimport IconEmojiReactionsAdd from '../../svgs/icon-reactions-add.svg';\nimport IconEmojiReactionsAddGray from '../../svgs/icon-emoji-reactions-add.svg';\nimport IconDelivered from '../../svgs/icon-delivered.svg';\nimport IconDisconnected from '../../svgs/icon-disconnected.svg';\nimport IconDocument from '../../svgs/icon-document.svg';\nimport IconDownload from '../../svgs/icon-download.svg';\nimport IconFileAudio from '../../svgs/icon-file-audio.svg';\nimport IconFileDocument from '../../svgs/icon-file-document.svg';\nimport IconGif from '../../svgs/icon-gif.svg';\nimport IconInfo from '../../svgs/icon-info.svg';\nimport IconLeave from '../../svgs/icon-leave.svg';\nimport IconMembers from '../../svgs/icon-members.svg';\nimport IconNotifications from '../../svgs/icon-notifications.svg';\nimport IconPhoto from '../../svgs/icon-photo.svg';\nimport IconPlay from '../../svgs/icon-play.svg';\nimport IconPlus from '../../svgs/icon-plus.svg';\nimport IconRead from '../../svgs/icon-read.svg';\nimport IconRefresh from '../../svgs/icon-refresh.svg';\nimport IconSend from '../../svgs/icon-send.svg';\nimport IconSent from '../../svgs/icon-sent.svg';\nimport IconShevron from '../../svgs/icon-shevron.svg';\nimport IconShevronDown from '../../svgs/icon-shevron-down.svg';\nimport IconSpinner from '../../svgs/icon-spinner-small.svg';\nimport IconSpinnerLarge from '../../svgs/icon-spinner-large.svg';\nimport IconUser from '../../svgs/icon-user.svg';\nimport IconOperator from '../../svgs/icon-operator.svg';\nimport IconBanned from '../../svgs/icon-banned.svg';\nimport IconMuted from '../../svgs/icon-muted.svg';\nimport IconMutedFg from '../../svgs/icon-muted-foreground.svg';\nimport IconFreeze from '../../svgs/icon-freeze.svg';\nimport ToggleOn from '../../svgs/icon-toggleon.svg';\nimport ToggleOff from '../../svgs/icon-toggleoff.svg';\n\nconst Colors = {\n DEFAULT: 'DEFAULT',\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n CONTENT: 'CONTENT',\n CONTENT_INVERSE: 'CONTENT_INVERSE',\n WHITE: 'WHITE',\n SENT: 'SENT',\n READ: 'READ',\n ON_BACKGROUND_2: 'ON_BACKGROUND_2',\n ON_BACKGROUND_3: 'ON_BACKGROUND_3',\n BACKGROUND_3: 'BACKGROUND_3',\n};\n\nfunction changeColorToClassName(color) {\n switch (color) {\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.SECONDARY: return 'sendbird-color--secondary';\n case Colors.CONTENT: return 'sendbird-color--content';\n case Colors.CONTENT_INVERSE: return 'sendbird-color--content-inverse';\n case Colors.WHITE: return 'sendbird-color--white';\n case Colors.SENT: return 'sendbird-color--sent';\n case Colors.READ: return 'sendbird-color--read';\n case Colors.ON_BACKGROUND_2: return 'sendbird-color--on-background-2';\n case Colors.ON_BACKGROUND_3: return 'sendbird-color--on-background-3';\n case Colors.BACKGROUND_3: return 'sendbird-color--background-3';\n default: return '';\n }\n}\n\nfunction changeTypeToIconComponent(type) {\n switch (type) {\n case Type.ADD: return ;\n case Type.ARROW_LEFT: return ;\n case Type.CAMERA: return ;\n case Type.ATTACH: return ;\n case Type.AVATAR_DARK: return ;\n case Type.AVATAR_LIGHT: return ;\n case Type.AVATAR_NO_IMAGE: return ;\n case Type.BROADCAST_LARGE_DARK: return ;\n case Type.BROADCAST_LARGE_LIGHT: return ;\n case Type.BROADCAST_DARK: return ;\n case Type.BROADCAST_LIGHT: return ;\n case Type.BROADCAST: return ;\n case Type.FROZEN_DARK: return ;\n case Type.FROZEN_LIGHT: return ;\n case Type.MORE: return ;\n case Type.MUTE: return ;\n case Type.NO_THUMBNAIL: return ;\n case Type.CHECKBOX: return ;\n case Type.CHECKBOX_OFF: return ;\n case Type.CLOSE: return ;\n case Type.COPY: return ;\n case Type.CHAT: return ;\n case Type.SUPER_GROUP: return ;\n case Type.CREATE: return ;\n case Type.DELETE: return ;\n case Type.DISCONNECTED: return ;\n case Type.DUMMY: return ;\n case Type.EDIT: return ;\n case Type.ERROR: return ;\n case Type.ERROR_FILLED: return ;\n case Type.EMOJI_FAILED: return ;\n case Type.EMOJI_REACTIONS_ADD: return ;\n case Type.EMOJI_REACTIONS_ADD_GRAY: return ;\n case Type.DELIVERED: return ;\n case Type.DOCUMENT: return ;\n case Type.DOWNLOAD: return ;\n case Type.FILE_AUDIO: return ;\n case Type.FILE_DOCUMENT: return ;\n case Type.GIF: return ;\n case Type.INFO: return ;\n case Type.LEAVE: return ;\n case Type.MEMBERS: return ;\n case Type.NOTIFICATIONS: return ;\n case Type.PHOTO: return ;\n case Type.PLAY: return ;\n case Type.PLUS: return ;\n case Type.READ: return ;\n case Type.REFRESH: return ;\n case Type.SEND: return ;\n case Type.SENT: return ;\n case Type.SHEVRON: return ;\n case Type.SHEVRON_DOWN: return ;\n case Type.SPINNER: return ;\n case Type.SPINNER_LARGE: return ;\n case Type.USER: return ;\n case Type.ICON_OPERATOR: return ;\n case Type.ICON_BANNED: return ;\n case Type.ICON_MUTED: return ;\n case Type.ICON_MUTED_FG: return ;\n case Type.ICON_FREEZE: return ;\n case Type.TOGGLE_ON: return ;\n case Type.TOGGLE_OFF: return ;\n default: return null;\n }\n}\n\nexport default function Icon({\n type,\n width,\n height,\n children,\n className,\n onClick,\n fillColor,\n}) {\n const iconStyle = {\n width: typeof width === 'string' ? width : `${width}px`,\n minWidth: typeof width === 'string' ? width : `${width}px`,\n height: typeof height === 'string' ? height : `${height}px`,\n minHeight: typeof height === 'string' ? height : `${height}px`,\n };\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {\n children || changeTypeToIconComponent(type)\n }\n \n );\n}\n\nIcon.propTypes = {\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(Type)),\n PropTypes.string,\n ]).isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n onClick: PropTypes.func,\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n fillColor: PropTypes.oneOf(Object.keys(Colors)),\n};\n\nIcon.defaultProps = {\n onClick: () => { },\n width: 26,\n height: 26,\n children: null,\n className: '',\n fillColor: Colors.DEFAULT,\n};\n\nexport const IconTypes = Type;\nexport const IconColors = Colors;\n","import React, { ReactElement } from 'react';\n\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes } from '../Icon';\n\nimport './index.scss';\nimport { uuidv4 } from '../../utils/uuid';\n\nconst imageRendererClassName = 'sendbird-avatar-img';\n\ninterface DefaultComponentProps {\n width: string | number,\n height: string | number,\n}\n\nconst defaultComponent = (\n {\n width,\n height,\n }: DefaultComponentProps\n) => (): ReactElement => (\n document.querySelector('.sendbird-theme--dark')\n ? \n : \n);\n\ninterface AvatarInnerProps {\n height: string | number,\n width: string | number,\n src?: string | string[],\n alt?: string,\n}\n\nexport const AvatarInner = ({\n src = '',\n alt = '',\n height,\n width,\n}: AvatarInnerProps): ReactElement => {\n if (typeof src === 'string') {\n return (\n \n );\n }\n\n if (src && src.length) {\n if (src.length === 1) {\n return (\n \n );\n }\n\n if (src.length === 2) {\n return (\n
\n \n \n
\n );\n }\n\n if (src.length === 3) {\n return (\n <>\n
\n \n
\n
\n \n \n
\n \n );\n }\n\n return (\n
\n {\n src.slice(0, 4)\n .map((i) => (\n \n ))\n }\n
\n );\n }\n // default img\n return (\n \n );\n};\n\ninterface AvatarProps {\n height?: string | number,\n width?: string | number,\n src?: string | string[],\n alt?: string,\n onClick?(): void,\n className?: string | string[],\n}\n\nfunction Avatar(\n {\n src = '',\n alt = '',\n width = '56px',\n height = '56px',\n onClick,\n className = '',\n }: AvatarProps,\n ref: React.Ref,\n): ReactElement {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n \n \n );\n}\n\nexport default React.forwardRef(Avatar);\n","export const Typography = {\n H_1: 'H_1',\n H_2: 'H_2',\n SUBTITLE_1: 'SUBTITLE_1',\n SUBTITLE_2: 'SUBTITLE_2',\n BODY_1: 'BODY_1',\n BODY_2: 'BODY_2',\n BUTTON_1: 'BUTTON_1',\n BUTTON_2: 'BUTTON_2',\n CAPTION_1: 'CAPTION_1',\n CAPTION_2: 'CAPTION_2',\n CAPTION_3: 'CAPTION_3',\n};\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONCONTENT_1: 'ONCONTENT_1',\n ONCONTENT_2: 'ONCONTENT_2',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n SECONDARY_3: 'SECONDARY_3',\n};\n","import { Typography, Colors } from './types';\n\nexport function changeTypographyToClassName(type) {\n switch (type) {\n case Typography.H_1: return 'sendbird-label--h-1';\n case Typography.H_2: return 'sendbird-label--h-2';\n case Typography.SUBTITLE_1: return 'sendbird-label--subtitle-1';\n case Typography.SUBTITLE_2: return 'sendbird-label--subtitle-2';\n case Typography.BODY_1: return 'sendbird-label--body-1';\n case Typography.BODY_2: return 'sendbird-label--body-2';\n case Typography.BUTTON_1: return 'sendbird-label--button-1';\n case Typography.BUTTON_2: return 'sendbird-label--button-2';\n case Typography.CAPTION_1: return 'sendbird-label--caption-1';\n case Typography.CAPTION_2: return 'sendbird-label--caption-2';\n case Typography.CAPTION_3: return 'sendbird-label--caption-3';\n default: return null;\n }\n}\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-label--color-onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-label--color-onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-label--color-onbackground-3';\n case Colors.ONCONTENT_1: return 'sendbird-label--color-oncontent-1';\n case Colors.ONCONTENT_2: return 'sendbird-label--color-oncontent-2';\n case Colors.PRIMARY: return 'sendbird-label--color-primary'; // should be Primary-3 fix me\n case Colors.ERROR: return 'sendbird-label--color-error';\n case Colors.SECONDARY_3: return 'sendbird-label--color-secondary-3';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { Typography, Colors } from './types';\nimport { changeTypographyToClassName, changeColorToClassName } from './utils';\nimport getStringSet from './stringSet';\n\nconst CLASS_NAME = 'sendbird-label';\n\nexport default function Label({\n type,\n color,\n children,\n className,\n}) {\n const injectingClassName = (Array.isArray(className))\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n if (type) {\n injectingClassName.push(changeTypographyToClassName(type));\n }\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n\n return (\n \n {children}\n \n );\n}\n\nLabel.propTypes = {\n type: PropTypes.oneOf([...Object.keys(Typography), '']),\n color: PropTypes.oneOf([...Object.keys(Colors), '']),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.element,\n PropTypes.any,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nLabel.defaultProps = {\n type: '',\n color: '',\n className: [],\n children: null,\n};\n\nconst LabelTypography = Typography;\nconst LabelColors = Colors;\nconst LabelStringSet = getStringSet('en');\nexport { LabelTypography, LabelColors, LabelStringSet };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-iconbutton';\n\nconst IconButton = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n disabled = false,\n type,\n height,\n width,\n onClick,\n onBlur,\n style,\n } = props;\n\n const [pressed, setPressed] = useState('');\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n // eslint-disable-next-line react/button-has-type\n {\n if (disabled) { return; }\n setPressed('sendbird-iconbutton--pressed');\n onClick(e);\n }}\n onBlur={(e) => {\n setPressed('');\n onBlur(e);\n }}\n >\n \n {children}\n \n \n );\n});\n\nIconButton.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nIconButton.defaultProps = {\n height: '56px',\n width: '56px',\n className: '',\n type: 'button',\n disabled: false,\n onClick: () => { },\n onBlur: () => { },\n style: {},\n};\n\nexport default IconButton;\n","// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n
\n);\n","export const Type = {\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n DANGER: 'DANGER',\n DISABLED: 'DISABLED',\n};\n\nexport const Size = {\n BIG: 'BIG',\n SMALL: 'SMALL',\n};\n","import { Type, Size } from './type';\n\nexport function changeTypeToClassName(type) {\n switch (type) {\n case Type.PRIMARY: return 'sendbird-button--primary';\n case Type.SECONDARY: return 'sendbird-button--secondary';\n case Type.DANGER: return 'sendbird-button--danger';\n case Type.DISABLED: return 'sendbird-button--disabled';\n default: return null;\n }\n}\n\nexport function changeSizeToClassName(size) {\n switch (size) {\n case Size.BIG: return 'sendbird-button--big';\n case Size.SMALL: return 'sendbird-button--small';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { Type, Size } from './type';\nimport { changeTypeToClassName, changeSizeToClassName } from './utils';\n\nexport default function Button({\n type,\n size,\n children,\n disabled,\n onClick,\n className,\n}) {\n const injectingClassNames = [\n 'sendbird-button',\n (disabled ? 'sendbird-button__disabled' : ''),\n changeTypeToClassName(type),\n changeSizeToClassName(size),\n ...((Array.isArray(className)) ? className : [className]),\n ].join(' ');\n\n return (\n \n );\n}\n\nButton.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n disabled: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(Type)),\n size: PropTypes.oneOf(Object.keys(Size)),\n onClick: PropTypes.func,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nButton.defaultProps = {\n children: 'Button',\n type: Type.PRIMARY,\n disabled: false,\n size: Size.BIG,\n onClick: () => { },\n className: '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport const ModalHeader = ({ titleText }) => (\n
\n \n
\n);\nModalHeader.propTypes = {\n titleText: PropTypes.string.isRequired,\n};\n\nexport const ModalBody = ({ children }) => (\n
{children}
\n);\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element.isRequired,\n PropTypes.arrayOf(PropTypes.element.isRequired),\n ]),\n};\nModalBody.defaultProps = {\n children: null,\n};\n\nexport const ModalFooter = ({\n onSubmit,\n onCancel,\n disabled = false,\n submitText,\n type,\n}) => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n \n
\n );\n};\n\nModalFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModalFooter.defaultProps = {\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nfunction Modal(props) {\n const {\n children,\n onCancel,\n onSubmit,\n disabled,\n submitText,\n titleText,\n hideFooter,\n type,\n } = props;\n return createPortal((\n
\n
\n \n {children}\n {\n !hideFooter && (\n \n )\n }\n
\n \n \n \n
\n
\n
\n
\n ), document.getElementById(MODAL_ROOT));\n}\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n hideFooter: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModal.defaultProps = {\n children: null,\n hideFooter: false,\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nexport default Modal;\n","import './color.scss';\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONBACKGROUND_4: 'ONBACKGROUND_4',\n ONCONTENT_1: 'ONCONTENT_1',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-color--onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-color--onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-color--onbackground-3';\n case Colors.ONBACKGROUND_4: return 'sendbird-color--onbackground-4';\n case Colors.ONCONTENT_1: return 'sendbird-color--oncontent-1';\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.ERROR: return 'sendbird-color--error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\n\nexport default function TextButton({\n color,\n children,\n disabled,\n className,\n onClick,\n notUnderline,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nTextButton.propTypes = {\n color: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClick: PropTypes.func,\n notUnderline: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nTextButton.defaultProps = {\n color: Colors.ONBACKGROUND_1,\n className: '',\n onClick: () => { },\n notUnderline: false,\n disabled: false,\n};\n","export function Types() {\n return {\n LOADING: 'LOADING',\n NO_CHANNELS: 'NO_CHANNELS',\n WRONG: 'WRONG',\n };\n}\n\nexport default Types();\n","export const USER_UPDATED = 'USER_UPDATED';\nexport const SEND_MESSAGE_START = 'SEND_MESSAGE_START';\nexport const SEND_USER_MESSAGE = 'SEND_USER_MESSAGE';\nexport const SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE';\nexport const UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE';\nexport const DELETE_MESSAGE = 'DELETE_MESSAGE';\nexport const LEAVE_CHANNEL = 'LEAVE_CHANNEL';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\n","import * as topics from './pubSub/topics';\n\nexport const getSdk = (store) => {\n const { stores = {} } = store;\n const { sdkStore = {} } = stores;\n const { sdk } = sdkStore;\n return sdk;\n};\n\nexport const getPubSub = (store) => {\n const { config = {} } = store;\n const { pubSub } = config;\n return pubSub;\n};\n\n// SendBird disconnect. Invalidates currentUser\n// eslint-disable-next-line max-len\nexport const getConnect = (store) => (userId, accessToken) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n if (!accessToken) {\n sdk.connect(userId)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n } else {\n sdk.connect(userId, accessToken)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n }\n});\n\n// SendBird disconnect. Invalidates currentUser\nexport const getDisconnect = (store) => () => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.disconnect()\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\n// Using the updateCurrentUserInfo() method\n// you can update a user's nickname and profile image with a URL\n// eslint-disable-next-line max-len\nexport const getUpdateUserInfo = (store) => (nickName, profileUrl) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.updateCurrentUserInfo(nickName, profileUrl)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\nexport const getSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\nexport const getDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nexport const getResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getCreateChannel = (store) => (params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n pubsub.publish(\n topics.CREATE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n });\n};\n\nexport const getLeaveChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.leave()\n .then(() => {\n resolve(channel);\n pubsub.publish(\n topics.LEAVE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.freeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getUnFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.unfreeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport default {\n getSdk,\n getConnect,\n getDisconnect,\n getUpdateUserInfo,\n getSendUserMessage,\n getSendFileMessage,\n getUpdateUserMessage,\n getDeleteMessage,\n getResendUserMessage,\n getResendFileMessage,\n getFreezeChannel,\n getUnFreezeChannel,\n getCreateChannel,\n getLeaveChannel,\n};\n","import React, { ReactElement, useContext } from 'react';\nimport { SendbirdTypes } from '../../types';\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { getSdk, getCreateChannel } from '../../lib/selectors';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\n\ninterface Logger {\n info?(message: string, channel: SendbirdTypes['GroupChannel']): void;\n}\n\ninterface Props {\n user: SendbirdTypes['User'];\n currentUserId?: string;\n sdk?: SendbirdTypes['SendBirdInstance'];\n logger?: Logger;\n disableMessaging?: boolean;\n createChannel?(params: SendbirdTypes['GroupChannelParams']): Promise;\n onSuccess?(): void;\n}\n\nfunction UserProfile({\n user,\n currentUserId,\n sdk,\n logger,\n disableMessaging = false,\n createChannel,\n onSuccess,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n
\n
\n \n
\n {\n (user.userId !== currentUserId) && !disableMessaging && (\n
\n {\n const params = new sdk.GroupChannelParams();\n params.isDistinct = true;\n params.addUserIds([user.userId]);\n onSuccess();\n createChannel(params)\n .then((groupChannel) => {\n logger.info('UserProfile, channel create', groupChannel);\n });\n }}\n >\n {stringSet.USER_PROFILE__MESSAGE}\n \n
\n )\n }\n
\n
\n \n {stringSet.USER_PROFILE__USER_ID}\n \n \n {user.userId}\n \n
\n
\n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n createChannel: getCreateChannel(store),\n logger: store.config.logger,\n pubsub: store.config.pubSub,\n});\n\nconst ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps);\n\nexport default ConnectedUserProfile;\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class MenuItems extends Component {\n constructor(props) {\n super(props);\n this.menuRef = React.createRef();\n this.state = {\n menuStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getMenuPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-icon--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-icon--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { menuRef } = this;\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getMenuPosition = () => {\n const { parentRef, openLeft } = this.props;\n const parentRect = parentRef.current.getBoundingClientRect();\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n const menuStyle = {\n top: y,\n left: x,\n };\n\n if (!this.menuRef.current) return menuStyle;\n\n const { innerWidth, innerHeight } = window;\n const rect = this.menuRef.current.getBoundingClientRect();\n if (y + rect.height > innerHeight) {\n menuStyle.top -= rect.height;\n }\n\n if (x + rect.width > innerWidth && !openLeft) {\n menuStyle.left -= rect.width;\n }\n\n if (menuStyle.top < 0) {\n menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;\n }\n\n if (menuStyle.left < 0) {\n menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;\n }\n\n menuStyle.top += 32;\n if (openLeft) {\n const padding = Number.isNaN(rect.width - 30)\n ? 108 // default\n : rect.width - 30;\n menuStyle.left -= padding;\n }\n\n return this.setState({ menuStyle });\n }\n\n render() {\n const { menuStyle } = this.state;\n const { children, style } = this.props;\n return (\n createPortal(\n (\n <>\n
\n \n {children}\n \n \n ),\n document.getElementById('sendbird-dropdown-portal'),\n )\n );\n }\n}\nMenuItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n style: PropTypes.shape({}),\n // https://stackoverflow.com/a/51127130\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n openLeft: PropTypes.bool,\n};\nMenuItems.defaultProps = {\n style: {},\n openLeft: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst componentClassName = 'sendbird-sort-by-row';\nexport default function SortByRow({\n className,\n maxItemCount,\n itemWidth,\n itemHeight,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(componentClassName);\n\n if (children.length > maxItemCount) {\n const result = [];\n for (let i = 0; i < children.length; i += maxItemCount) {\n result.push(\n \n {\n children.slice(i, i + maxItemCount)\n }\n
,\n );\n }\n\n return result;\n }\n return (\n \n {children}\n
\n );\n}\n\nSortByRow.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n maxItemCount: PropTypes.number.isRequired,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]).isRequired,\n};\n\nSortByRow.defaultProps = {\n className: '',\n};\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport SortByRow from '../../SortByRow';\n\nexport default class EmojiListItems extends Component {\n constructor(props) {\n super(props);\n this.reactionRef = React.createRef();\n this.state = {\n reactionStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getBarPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-reactions--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-reactions--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { reactionRef } = this;\n const handleClickOutside = (event) => {\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getBarPosition = () => {\n const {\n parentRef,\n spaceFromTrigger,\n } = this.props;\n const spaceFromTriggerX = spaceFromTrigger.x || 0;\n const spaceFromTriggerY = spaceFromTrigger.y || 0;\n\n const parentRect = parentRef.current.getBoundingClientRect();\n\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n\n const reactionStyle = {\n top: y,\n left: x,\n };\n\n if (!this.reactionRef.current) return reactionStyle;\n const rect = this.reactionRef.current.getBoundingClientRect();\n // const childRect = this.reactionRef.current.children[0].getBoundingClientRect();\n\n if (reactionStyle.top < rect.height) {\n reactionStyle.top += parentRect.height;\n reactionStyle.top += spaceFromTriggerY;\n } else {\n reactionStyle.top -= rect.height;\n reactionStyle.top -= spaceFromTriggerY;\n }\n\n reactionStyle.left -= (rect.width / 2);\n reactionStyle.left += (parentRect.height / 2) - 2;\n reactionStyle.left += spaceFromTriggerX;\n\n const maximumLeft = (window.innerWidth - rect.width);\n if (maximumLeft < reactionStyle.left) {\n reactionStyle.left = maximumLeft;\n }\n if (reactionStyle.left < 0) {\n reactionStyle.left = 0;\n }\n\n return this.setState({ reactionStyle });\n }\n\n render() {\n const { reactionStyle } = this.state;\n const { children } = this.props;\n return (\n createPortal(\n <>\n
\n \n \n {children}\n \n \n ,\n document.getElementById('sendbird-emoji-list-portal'),\n )\n );\n }\n}\nEmojiListItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n spaceFromTrigger: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n};\nEmojiListItems.defaultProps = {\n spaceFromTrigger: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport MenuItems_ from './items/MenuItems';\nimport EmojiListItems_ from './items/EmojiListItems';\n\nconst ENTER = 13;\n\nexport const MenuItems = MenuItems_;\nexport const EmojiListItems = EmojiListItems_;\n\nexport const MenuItem = ({ children, onClick, className }) => {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n {\n if (e.keyCode === ENTER) {\n onClick(e);\n }\n }}\n role=\"menuitem\"\n >\n \n {children}\n \n \n );\n};\n\nMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n};\n\nMenuItem.defaultProps = {\n className: '',\n};\n\nexport const MenuRoot = () => (\n
\n);\n\nexport const EmojiReactionListRoot = () => (\n
\n);\n\nexport default function ContextMenu({ menuTrigger, menuItems }) {\n const [showMenu, setShowMenu] = useState(false);\n\n return (\n
\n {menuTrigger(() => setShowMenu(!showMenu))}\n {showMenu && menuItems(() => setShowMenu(false))}\n
\n );\n}\n\nContextMenu.propTypes = {\n menuTrigger: PropTypes.func.isRequired,\n menuItems: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes } from '../Icon';\n\nexport default function Loader({\n children,\n className,\n width,\n height,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nLoader.propTypes = {\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nLoader.defaultProps = {\n children: ,\n className: '',\n width: '26px',\n height: '26px',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Loader from '../Loader';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport _PlaceHolderTypes from './type';\n\nexport const PlaceHolderTypes = _PlaceHolderTypes;\n\nexport default function PlaceHolder({\n className,\n type,\n retryToConnect,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n {\n type === PlaceHolderTypes.LOADING\n ? (\n \n \n \n )\n : null\n }\n {\n type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG\n ? (\n
\n {\n type === PlaceHolderTypes.NO_CHANNELS && (\n \n )\n }\n {\n type === PlaceHolderTypes.WRONG && (\n \n )\n }\n \n {\n retryToConnect\n ? (\n \n \n \n
\n )\n : null\n }\n
\n )\n : null\n }\n
\n );\n}\n\nPlaceHolder.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(PlaceHolderTypes)),\n PropTypes.string,\n ]).isRequired,\n retryToConnect: PropTypes.func,\n};\n\nPlaceHolder.defaultProps = {\n className: '',\n retryToConnect: null,\n};\n"],"names":["UserProfileContext","React","createContext","disableUserProfile","isOpenChannel","renderUserProfile","UserProfileProvider","props","children","className","propTypes","PropTypes","oneOfType","element","arrayOf","any","isRequired","bool","func","string","defaultProps","ImageRenderer","alt","url","width","height","defaultComponent","circle","injectingClassName","Array","isArray","unshift","useState","realElement","setRealElement","useEffect","join","backgroundRepeat","backgroundPosition","backgroundSize","backgroundImage","borderRadius","number","ADD","ATTACH","ARROW_LEFT","AVATAR_DARK","AVATAR_LIGHT","AVATAR_NO_IMAGE","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","BROADCAST_DARK","BROADCAST_LIGHT","BROADCAST","FROZEN_DARK","FROZEN_LIGHT","CAMERA","MORE","MUTE","NO_THUMBNAIL","CHECKBOX","CHECKBOX_OFF","CLOSE","COPY","CHAT","CREATE","DELETE","DISCONNECTED","DUMMY","EDIT","ERROR","ERROR_FILLED","EMOJI_FAILED","EMOJI_REACTIONS_ADD","EMOJI_REACTIONS_ADD_GRAY","DELIVERED","DOCUMENT","DOWNLOAD","FILE_AUDIO","FILE_DOCUMENT","GIF","INFO","LEAVE","MEMBERS","NOTIFICATIONS","PHOTO","PLAY","PLUS","READ","REFRESH","SEND","SENT","SUPER_GROUP","SHEVRON","SHEVRON_DOWN","SPINNER","SPINNER_LARGE","USER","ICON_OPERATOR","ICON_BANNED","ICON_FREEZE","ICON_MUTED","ICON_MUTED_FG","TOGGLE_ON","TOGGLE_OFF","Colors","DEFAULT","PRIMARY","SECONDARY","CONTENT","CONTENT_INVERSE","WHITE","ON_BACKGROUND_2","ON_BACKGROUND_3","BACKGROUND_3","changeColorToClassName","color","changeTypeToIconComponent","type","Type","IconAdd","IconArrowLeft","IconCamera","IconAttach","IconAvatarDark","IconAvatarLight","IconAvatarNoImage","BroadcastLargeDark","BroadcastLargeLight","BroadcastDark","BroadcastLight","Broadcast","FrozenDark","FrozenLight","IconMore","IconMute","IconNoThumbnail","IconCheckbox","IconCheckboxOff","IconClose","IconCopy","IconChat","IconSupergroup","IconCreate","IconDelete","IconDisconnected","IconDummy","IconEdit","IconError","IconErrorFilled","IconEmojiFailed","IconEmojiReactionsAdd","IconEmojiReactionsAddGray","IconDelivered","IconDocument","IconDownload","IconFileAudio","IconFileDocument","IconGif","IconInfo","IconLeave","IconMembers","IconNotifications","IconPhoto","IconPlay","IconPlus","IconRead","IconRefresh","IconSend","IconSent","IconShevron","IconShevronDown","IconSpinner","IconSpinnerLarge","IconUser","IconOperator","IconBanned","IconMuted","IconMutedFg","IconFreeze","ToggleOn","ToggleOff","Icon","onClick","fillColor","iconStyle","minWidth","minHeight","oneOf","Object","keys","IconTypes","IconColors","imageRendererClassName","_a","document","querySelector","AvatarInner","_b","src","_c","length","slice","map","i","uuidv4","Avatar","ref","_d","_e","_f","__spreadArrays","forwardRef","Typography","H_1","H_2","SUBTITLE_1","SUBTITLE_2","BODY_1","BODY_2","BUTTON_1","BUTTON_2","CAPTION_1","CAPTION_2","CAPTION_3","ONBACKGROUND_1","ONBACKGROUND_2","ONBACKGROUND_3","ONCONTENT_1","ONCONTENT_2","SECONDARY_3","changeTypographyToClassName","CLASS_NAME","Label","push","LabelTypography","LabelColors","LabelStringSet","getStringSet","IconButton","disabled","onBlur","style","pressed","setPressed","e","shape","MODAL_ROOT","DANGER","DISABLED","Size","BIG","SMALL","changeTypeToClassName","changeSizeToClassName","size","Button","injectingClassNames","ModalHeader","titleText","ModalBody","ModalFooter","onSubmit","onCancel","submitText","useContext","LocalizationContext","stringSet","ButtonTypes","BUTTON__CANCEL","Modal","hideFooter","createPortal","getElementById","ONBACKGROUND_4","TextButton","notUnderline","Types","LOADING","NO_CHANNELS","WRONG","SEND_MESSAGE_START","SEND_USER_MESSAGE","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","DELETE_MESSAGE","LEAVE_CHANNEL","CREATE_CHANNEL","getSdk","store","stores","sdkStore","sdk","getPubSub","config","pubSub","getConnect","userId","accessToken","Promise","resolve","reject","Error","connect","then","res","catch","err","getDisconnect","disconnect","getUpdateUserInfo","nickName","profileUrl","updateCurrentUserInfo","getSendUserMessage","channelUrl","userMessageParams","pubsub","GroupChannel","getChannel","channel","promisify","pendingMsg","pendingPromise","resolve_","reject_","sendUserMessage","swapParams","getErrorFirstCallback","message","error","publish","topics","get","getSendFileMessage","fileMessageParams","sendFileMessage","file","localUrl","URL","createObjectURL","fileUrl","requestState","getUpdateUserMessage","messageId","params","updateUserMessage","fromSelector","getDeleteMessage","deleteMessage","getResendUserMessage","failedMessage","resendUserMessage","getResendFileMessage","resendFileMessage","getCreateChannel","createChannel","getLeaveChannel","leave","getFreezeChannel","freeze","getUnFreezeChannel","unfreeze","UserProfile","user","currentUserId","logger","disableMessaging","onSuccess","nickname","NO_NAME","GroupChannelParams","isDistinct","addUserIds","groupChannel","info","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","mapStoreToProps","ConnectedUserProfile","withSendbirdContext","MenuItems","parentContainRef","current","classList","add","remove","closeDropdown","menuRef","handleClickOutside","event","contains","target","setState","addEventListener","state","removeEventListener","parentRef","openLeft","parentRect","getBoundingClientRect","x","left","y","top","menuStyle","window","innerWidth","innerHeight","rect","padding","Number","isNaN","createRef","setupEvents","getMenuPosition","showParent","cleanUpEvents","hideParent","display","position","Math","round","Component","instanceOf","Element","componentClassName","SortByRow","maxItemCount","itemWidth","itemHeight","result","EmojiListItems","reactionRef","spaceFromTrigger","spaceFromTriggerX","spaceFromTriggerY","reactionStyle","maximumLeft","getBarPosition","ENTER","MenuItems_","EmojiListItems_","MenuItem","keyCode","ContextMenu","menuTrigger","menuItems","showMenu","setShowMenu","Loader","PlaceHolderTypes","_PlaceHolderTypes","PlaceHolder","retryToConnect","PLACE_HOLDER__NO_CHANNEL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqEA,IAAMC,MAAM,GAAG;AACbC,EAAAA,OAAO,EAAE,SADI;AAEbC,EAAAA,OAAO,EA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"} \ No newline at end of file diff --git a/dist/esm/index-1cf7b066.js b/dist/esm/index-1cf7b066.js new file mode 100644 index 0000000..0670927 --- /dev/null +++ b/dist/esm/index-1cf7b066.js @@ -0,0 +1,431 @@ +import { c as _toConsumableArray, e as LocalizationContext, b as _slicedToArray } from './LocalizationContext-619bafba.js'; +import React, { useContext, useRef, useState, useEffect } from 'react'; +import PropTypes from 'prop-types'; +import { b as Label, c as LabelTypography, d as LabelColors, u as Colors, v as changeColorToClassName, e as IconButton, I as Icon, a as IconTypes, g as IconColors, B as Button, T as Type, w as Size, A as Avatar, x as MODAL_ROOT, y as changeColorToClassName$1 } from './index-0c67ae90.js'; +import { createPortal } from 'react-dom'; + +// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types +var SUPPORTED_MIMES = { + IMAGE: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp' // not supported in IE + ], + VIDEO: ['video/mpeg', 'video/ogg', 'video/webm', 'video/mp4'] +}; +var isImage = function isImage(type) { + return SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0; +}; +var isVideo = function isVideo(type) { + return SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0; +}; +var unSupported = function unSupported(type) { + return !(isImage(type) || isVideo(type)); +}; + +var isEmpty = function isEmpty(val) { + return val === null || val === undefined; +}; // Some Ids return string and number inconsistently +// only use to comapre IDs + + +function compareIds (a, b) { + if (isEmpty(a) || isEmpty(b)) { + return false; + } + + var aString = a.toString(); + var bString = b.toString(); + return aString === bString; +} + +function DateSeparator(_ref) { + var className = _ref.className, + children = _ref.children, + separatorColor = _ref.separatorColor; + var injectingClassName = Array.isArray(className) ? className : [className]; + return React.createElement("div", { + className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-separator']).join(' ') + }, React.createElement("div", { + className: ["".concat(changeColorToClassName(separatorColor), "--background-color"), 'sendbird-separator__left'].join(' ') + }), React.createElement("div", { + className: "sendbird-separator__text" + }, children), React.createElement("div", { + className: ["".concat(changeColorToClassName(separatorColor), "--background-color"), 'sendbird-separator__right'].join(' ') + })); +} +DateSeparator.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.element]), + separatorColor: PropTypes.string +}; +DateSeparator.defaultProps = { + className: '', + children: React.createElement(Label, { + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, "Date Separator"), + separatorColor: Colors.ONBACKGROUND_4 +}; + +// import IconAttach from '../../svgs/icon-attach.svg'; + +var LINE_HEIGHT = 76; + +var noop = function noop() {}; + +var KeyCode = { + SHIFT: 16, + ENTER: 13 +}; + +var handleUploadFile = function handleUploadFile(callback) { + return function (event) { + if (event.target.files && event.target.files[0]) { + callback(event.target.files[0]); + } // eslint-disable-next-line no-param-reassign + + + event.target.value = ''; + }; +}; + +var MessageInput = React.forwardRef(function (props, ref) { + var isEdit = props.isEdit, + disabled = props.disabled, + value = props.value, + name = props.name, + placeholder = props.placeholder, + maxLength = props.maxLength, + onFileUpload = props.onFileUpload, + onSendMessage = props.onSendMessage, + onCancelEdit = props.onCancelEdit, + onStartTyping = props.onStartTyping; + + var _useContext = useContext(LocalizationContext), + stringSet = _useContext.stringSet; + + var fileInputRef = useRef(null); + + var _useState = useState(value), + _useState2 = _slicedToArray(_useState, 2), + inputValue = _useState2[0], + setInputValue = _useState2[1]; + + var _useState3 = useState(false), + _useState4 = _slicedToArray(_useState3, 2), + isShiftPressed = _useState4[0], + setIsShiftPressed = _useState4[1]; + + var setHeight = function setHeight() { + var elem = ref.current; + var MAX_HEIGHT = window.document.body.offsetHeight * 0.6; + + if (elem.scrollHeight >= LINE_HEIGHT) { + if (MAX_HEIGHT < elem.scrollHeight) { + elem.style.height = 'auto'; + elem.style.height = "".concat(MAX_HEIGHT, "px"); + } else { + elem.style.height = 'auto'; + elem.style.height = "".concat(elem.scrollHeight, "px"); + } + } else { + elem.style.height = ''; + } + }; // after setHeight called twice, the textarea goes to the initialized + + + useEffect(function () { + setHeight(); + return setHeight; + }, [inputValue]); + + var sendMessage = function sendMessage() { + if (inputValue && inputValue.trim().length > 0) { + var trimmedInputValue = inputValue.trim(); + + if (isEdit) { + onSendMessage(name, trimmedInputValue, function () { + onCancelEdit(); + }); + } else { + onSendMessage(trimmedInputValue); + setInputValue(''); + } + } + }; + + return React.createElement("form", { + className: "\n ".concat(isEdit ? 'sendbird-message-input__edit' : '', "\n ").concat(disabled ? 'sendbird-message-input-form__disabled' : '', "\n ") + }, React.createElement("div", { + className: "\n sendbird-message-input\n ".concat(disabled ? 'sendbird-message-input__disabled' : '', "\n ") + }, React.createElement("textarea", { + disabled: disabled, + ref: ref, + name: name, + value: inputValue, + className: "sendbird-message-input--textarea", + maxLength: maxLength, + onChange: function onChange(e) { + setInputValue(e.target.value); + onStartTyping(); + }, + onKeyDown: function onKeyDown(e) { + if (e.keyCode === KeyCode.SHIFT) { + setIsShiftPressed(true); + } + + if (!isShiftPressed && e.keyCode === KeyCode.ENTER) { + e.preventDefault(); + sendMessage(); + } + }, + onKeyUp: function onKeyUp(e) { + if (e.keyCode === KeyCode.SHIFT) { + setIsShiftPressed(false); + } + } + }), !inputValue && React.createElement(Label, { + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_3, + className: "sendbird-message-input--placeholder" + }, placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER), !isEdit && inputValue && inputValue.trim().length > 0 && React.createElement(IconButton, { + className: "sendbird-message-input--send", + height: "32px", + width: "32px", + onClick: sendMessage + }, React.createElement(Icon, { + type: IconTypes.SEND, + fillColor: IconColors.PRIMARY, + width: "20px", + height: "20px" + })), !isEdit && !inputValue && !(inputValue.trim().length > 0) && React.createElement(IconButton, { + className: "sendbird-message-input--attach", + height: "32px", + width: "32px", + onClick: function onClick() { + // todo: clear previous input + fileInputRef.current.click(); + } + }, React.createElement(Icon, { + type: IconTypes.ATTACH, + width: "20px", + height: "20px" + }), React.createElement("input", { + type: "file", + ref: fileInputRef, + onChange: handleUploadFile(onFileUpload), + className: "sendbird-message-input--attach-input" + }))), isEdit && React.createElement("div", { + className: "sendbird-message-input--edit-action" + }, React.createElement(Button, { + className: "sendbird-message-input--edit-action__cancel", + type: Type.SECONDARY, + size: Size.SMALL, + onClick: onCancelEdit + }, stringSet.BUTTON__CANCEL), React.createElement(Button, { + className: "sendbird-message-input--edit-action__save", + type: Type.PRIMARY, + size: Size.SMALL, + onClick: function onClick() { + if (inputValue) { + var trimmedInputValue = inputValue.trim(); + onSendMessage(name, trimmedInputValue, function () { + onCancelEdit(); + }); + } + } + }, stringSet.BUTTON__SAVE))); +}); +MessageInput.propTypes = { + placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), + isEdit: PropTypes.bool, + name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + value: PropTypes.string, + disabled: PropTypes.bool, + maxLength: PropTypes.number, + onFileUpload: PropTypes.func, + onSendMessage: PropTypes.func, + onStartTyping: PropTypes.func, + onCancelEdit: PropTypes.func +}; +MessageInput.defaultProps = { + value: '', + onSendMessage: noop, + name: 'sendbird-message-input', + isEdit: false, + disabled: false, + placeholder: '', + maxLength: 5000, + onFileUpload: noop, + onCancelEdit: noop, + onStartTyping: noop +}; + +var FileViewerComponent = function FileViewerComponent(_ref) { + var profileUrl = _ref.profileUrl, + nickname = _ref.nickname, + type = _ref.type, + url = _ref.url, + name = _ref.name, + onClose = _ref.onClose, + onDelete = _ref.onDelete, + isByMe = _ref.isByMe; + return React.createElement("div", { + className: "sendbird-fileviewer" + }, React.createElement("div", { + className: "sendbird-fileviewer__header" + }, React.createElement("div", { + className: "sendbird-fileviewer__header-left" + }, React.createElement("div", { + className: "sendbird-fileviewer__header-avatar" + }, React.createElement(Avatar, { + height: "32px", + width: "32px", + src: profileUrl + })), React.createElement(Label, { + className: "sendbird-fileviewer__header-filename", + type: LabelTypography.H_2, + color: LabelColors.ONBACKGROUND_1 + }, name), React.createElement(Label, { + className: "sendbird-fileviewer__header-sendername", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_2 + }, nickname)), React.createElement("div", { + className: "sendbird-fileviewer__header-right" + }, !unSupported(type) && React.createElement("div", { + className: "sendbird-fileviewer__header-actions" + }, React.createElement("a", { + href: url, + rel: "noopener noreferrer", + target: "_blank", + className: "sendbird-fileviewer__header-download" + }, React.createElement(Icon, { + type: IconTypes.DOWNLOAD, + height: "24px", + width: "24px" + })), onDelete && isByMe && React.createElement("div", { + className: "sendbird-fileviewer__header-delete" + }, React.createElement(Icon, { + type: IconTypes.DELETE, + height: "24px", + width: "24px", + onClick: onDelete + }))), React.createElement("div", { + className: "sendbird-fileviewer__header-close" + }, React.createElement(Icon, { + type: IconTypes.CLOSE, + height: "24px", + width: "24px", + onClick: onClose + })))), React.createElement("div", { + className: "sendbird-fileviewer__content" + }, isVideo(type) && // eslint-disable-next-line jsx-a11y/media-has-caption + React.createElement("video", { + controls: true, + className: "sendbird-fileviewer__video" + }, React.createElement("source", { + src: url, + type: type + })), isImage(type) && React.createElement("img", { + src: url, + alt: name, + className: "sendbird-fileviewer__img" + }), unSupported(type) && React.createElement("div", { + className: "sendbird-fileviewer__unsupported" + }, React.createElement(Label, { + type: LabelTypography.H_1, + color: LabelColors.ONBACKGROUND_1 + }, "Unsupoprted message")))); +}; +FileViewerComponent.propTypes = { + profileUrl: PropTypes.string.isRequired, + nickname: PropTypes.string.isRequired, + type: PropTypes.string.isRequired, + url: PropTypes.string.isRequired, + name: PropTypes.string.isRequired, + onClose: PropTypes.func.isRequired, + onDelete: PropTypes.func.isRequired, + isByMe: PropTypes.bool +}; +FileViewerComponent.defaultProps = { + isByMe: true +}; +function FileViewer(props) { + var onClose = props.onClose, + message = props.message, + onDelete = props.onDelete, + isByMe = props.isByMe; + var sender = message.sender, + type = message.type, + url = message.url, + _message$name = message.name, + name = _message$name === void 0 ? '' : _message$name; + var profileUrl = sender.profileUrl, + _sender$nickname = sender.nickname, + nickname = _sender$nickname === void 0 ? '' : _sender$nickname; + return createPortal(React.createElement(FileViewerComponent, { + profileUrl: profileUrl, + nickname: nickname, + type: type, + url: url, + name: name, + onClose: onClose, + onDelete: onDelete, + isByMe: isByMe + }), document.getElementById(MODAL_ROOT)); +} +FileViewer.propTypes = { + onClose: PropTypes.func.isRequired, + message: PropTypes.shape({ + sender: PropTypes.shape({ + profileUrl: PropTypes.string, + nickname: PropTypes.string + }), + type: PropTypes.string, + url: PropTypes.string, + name: PropTypes.string + }).isRequired, + onDelete: PropTypes.func.isRequired, + isByMe: PropTypes.bool +}; +FileViewer.defaultProps = { + isByMe: true +}; + +var LINK_LABEL = 'sendbird-link-label'; +var http = /https?:\/\//; +function LinkLabel(_ref) { + var className = _ref.className, + src = _ref.src, + type = _ref.type, + color = _ref.color, + children = _ref.children; + var injectingClassName = Array.isArray(className) ? className : [className]; + + if (color) { + injectingClassName.push(changeColorToClassName$1(color)); + } + + var url = http.test(src) ? src : "http://".concat(src); + return React.createElement("a", { + className: "".concat(LINK_LABEL, " ").concat(injectingClassName.join(' ')), + href: url, + target: "_blank", + rel: "noopener noreferrer" + }, React.createElement(Label, { + type: type, + color: color, + className: "".concat(LINK_LABEL, "__label") + }, children)); +} +LinkLabel.propTypes = { + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.arrayOf(PropTypes.string), PropTypes.arrayOf(PropTypes.element)]).isRequired, + src: PropTypes.string.isRequired, + type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired, + color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired +}; +LinkLabel.defaultProps = { + className: '' +}; + +export { DateSeparator as D, FileViewer as F, LinkLabel as L, MessageInput as M, isVideo as a, compareIds as c, isImage as i, unSupported as u }; +//# sourceMappingURL=index-1cf7b066.js.map diff --git a/dist/esm/index-1cf7b066.js.map b/dist/esm/index-1cf7b066.js.map new file mode 100644 index 0000000..7f61aa6 --- /dev/null +++ b/dist/esm/index-1cf7b066.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-1cf7b066.js","sources":["../../../src/ui/FileViewer/types.js","../../../src/utils/compareIds.js","../../../src/ui/DateSeparator/index.jsx","../../../src/ui/MessageInput/index.jsx","../../../src/ui/FileViewer/index.jsx","../../../src/ui/LinkLabel/index.jsx"],"sourcesContent":["// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const isImage = (type) => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type) => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const unSupported = (type) => !(isImage(type) || isVideo(type));\n\nexport default SUPPORTED_MIMES;\n","const isEmpty = (val) => (val === null || val === undefined);\n\n// Some Ids return string and number inconsistently\n// only use to comapre IDs\nexport default function (a, b) {\n if (isEmpty(a) || isEmpty(b)) {\n return false;\n }\n const aString = a.toString();\n const bString = b.toString();\n return aString === bString;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport default function DateSeparator({\n className,\n children,\n separatorColor,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n
\n
{children}
\n
\n
\n );\n}\n\nDateSeparator.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.element,\n ]),\n separatorColor: PropTypes.string,\n};\n\nDateSeparator.defaultProps = {\n className: '',\n children: (\n \n ),\n separatorColor: Colors.ONBACKGROUND_4,\n};\n","import React, {\n useState,\n useRef,\n useEffect,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport IconButton from '../IconButton';\nimport Button from '../Button';\nimport { Type, Size } from '../Button/type';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n// import IconSend from '../../svgs/icon-send.svg';\n// import IconAttach from '../../svgs/icon-attach.svg';\n\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst KeyCode = {\n SHIFT: 16,\n ENTER: 13,\n};\n\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n isEdit,\n disabled,\n value,\n name,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onCancelEdit,\n onStartTyping,\n } = props;\n\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [inputValue, setInputValue] = useState(value);\n const [isShiftPressed, setIsShiftPressed] = useState(false);\n\n const setHeight = () => {\n const elem = ref.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n };\n\n // after setHeight called twice, the textarea goes to the initialized\n useEffect(() => {\n setHeight();\n return setHeight;\n }, [inputValue]);\n\n const sendMessage = () => {\n if (inputValue && inputValue.trim().length > 0) {\n const trimmedInputValue = inputValue.trim();\n if (isEdit) {\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n } else {\n onSendMessage(trimmedInputValue);\n setInputValue('');\n }\n }\n };\n\n return (\n \n \n {\n setInputValue(e.target.value);\n onStartTyping();\n }}\n onKeyDown={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(true);\n }\n if (!isShiftPressed && e.keyCode === KeyCode.ENTER) {\n e.preventDefault();\n sendMessage();\n }\n }}\n onKeyUp={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(false);\n }\n }}\n />\n {/* placeholder */}\n {!inputValue && (\n \n {placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER}\n \n )}\n {/* send icon */}\n {\n (!isEdit && inputValue && inputValue.trim().length > 0) && (\n \n \n \n )\n }\n {/* upload icon */}\n {\n (!isEdit && !inputValue && !(inputValue.trim().length > 0)) && (\n {\n // todo: clear previous input\n fileInputRef.current.click();\n }}\n >\n \n \n \n )\n }\n
\n {/* Edit */}\n {\n isEdit && (\n
\n \n {stringSet.BUTTON__CANCEL}\n \n {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n }\n }}\n >\n {stringSet.BUTTON__SAVE}\n \n
\n )\n }\n \n );\n});\n\nMessageInput.propTypes = {\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isEdit: PropTypes.bool,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n value: PropTypes.string,\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n value: '',\n onSendMessage: noop,\n name: 'sendbird-message-input',\n isEdit: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n};\n\nexport default MessageInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes } from '../Icon';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, unSupported } from './types';\n\nexport const FileViewerComponent = ({\n profileUrl,\n nickname,\n type,\n url,\n name,\n onClose,\n onDelete,\n isByMe,\n}) => (\n
\n
\n
\n
\n \n
\n \n {name}\n \n \n {nickname}\n \n
\n
\n {\n !unSupported(type) && (\n
\n \n \n \n {\n onDelete && isByMe && (\n
\n \n
\n )\n }\n
\n )\n }\n
\n \n
\n
\n
\n
\n {isVideo(type) && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n \n )}\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n \n
\n )\n }\n
\n
\n);\n\nFileViewerComponent.propTypes = {\n profileUrl: PropTypes.string.isRequired,\n nickname: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewerComponent.defaultProps = {\n isByMe: true,\n};\n\nexport default function FileViewer(props) {\n const {\n onClose,\n message,\n onDelete,\n isByMe,\n } = props;\n const {\n sender,\n type,\n url,\n name = '',\n } = message;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n \n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nFileViewer.propTypes = {\n onClose: PropTypes.func.isRequired,\n message: PropTypes.shape({\n sender: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }),\n type: PropTypes.string,\n url: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewer.defaultProps = {\n isByMe: true,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { changeColorToClassName } from '../Label/utils';\nimport './index.scss';\n\nconst LINK_LABEL = 'sendbird-link-label';\nconst http = /https?:\\/\\//;\n\nexport default function LinkLabel({\n className,\n src,\n type,\n color,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n const url = (http.test(src)) ? src : `http://${src}`;\n\n return (\n \n \n \n );\n}\n\nLinkLabel.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n src: PropTypes.string.isRequired,\n type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired,\n color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired,\n};\n\nLinkLabel.defaultProps = {\n className: '',\n};\n\nexport const LinkLabelTypography = LabelTypography;\nexport const LinkLabelColors = LabelColors;\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","isImage","type","indexOf","isVideo","unSupported","isEmpty","val","undefined","a","b","aString","toString","bString","DateSeparator","className","children","separatorColor","injectingClassName","Array","isArray","join","changeColorToClassName","propTypes","PropTypes","oneOfType","string","arrayOf","element","defaultProps","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","Colors","ONBACKGROUND_4","LINE_HEIGHT","noop","KeyCode","SHIFT","ENTER","handleUploadFile","callback","event","target","files","value","MessageInput","React","forwardRef","props","ref","isEdit","disabled","name","placeholder","maxLength","onFileUpload","onSendMessage","onCancelEdit","onStartTyping","useContext","LocalizationContext","stringSet","fileInputRef","useRef","useState","inputValue","setInputValue","isShiftPressed","setIsShiftPressed","setHeight","elem","current","MAX_HEIGHT","window","document","body","offsetHeight","scrollHeight","style","height","useEffect","sendMessage","trim","length","trimmedInputValue","e","keyCode","preventDefault","BODY_1","ONBACKGROUND_3","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","IconTypes","SEND","IconColors","PRIMARY","click","ATTACH","Type","SECONDARY","Size","SMALL","BUTTON__CANCEL","BUTTON__SAVE","bool","number","func","FileViewerComponent","profileUrl","nickname","url","onClose","onDelete","isByMe","H_2","ONBACKGROUND_1","DOWNLOAD","DELETE","CLOSE","H_1","isRequired","FileViewer","message","sender","createPortal","getElementById","MODAL_ROOT","shape","LINK_LABEL","http","LinkLabel","src","color","push","test","oneOf","Object","keys"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/index-73379213.js b/dist/esm/index-73379213.js new file mode 100644 index 0000000..4e354f2 --- /dev/null +++ b/dist/esm/index-73379213.js @@ -0,0 +1,251 @@ +import { b as _slicedToArray, e as LocalizationContext, c as _toConsumableArray } from './LocalizationContext-619bafba.js'; +import React, { useState, useContext } from 'react'; +import PropTypes from 'prop-types'; +import { b as Label, c as LabelTypography, d as LabelColors, I as Icon, g as IconColors, a as IconTypes, n as UserProfileContext, C as ContextMenu, A as Avatar, h as MenuItems, o as UserProfile } from './index-0c67ae90.js'; + +var InputLabel = function InputLabel(_ref) { + var children = _ref.children; + return React.createElement(Label, { + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_1, + className: "sendbird-input-label" + }, children); +}; +InputLabel.propTypes = { + children: PropTypes.string.isRequired +}; // future: add validations? onChange? more props etc etc + +var Input = React.forwardRef(function (props, ref) { + var value = props.value, + placeHolder = props.placeHolder, + disabled = props.disabled, + name = props.name, + required = props.required; + + var _useState = useState(value), + _useState2 = _slicedToArray(_useState, 2), + inputValue = _useState2[0], + setInputValue = _useState2[1]; + + return React.createElement("div", { + className: "sendbird-input" + }, React.createElement("input", { + required: required, + ref: ref, + name: name, + disabled: disabled, + value: inputValue, + className: "sendbird-input--input", + onChange: function onChange(e) { + setInputValue(e.target.value); + } + }), placeHolder && !inputValue && React.createElement(Label, { + className: "sendbird-input--placeholder", + type: LabelTypography.BODY_1, + color: LabelColors.ONBACKGROUND_3 + }, placeHolder)); +}); +Input.propTypes = { + value: PropTypes.string, + placeHolder: PropTypes.string, + name: PropTypes.string.isRequired, + disabled: PropTypes.bool, + required: PropTypes.bool +}; +Input.defaultProps = { + value: '', + placeHolder: '', + disabled: false, + required: false +}; + +function MutedAvatarOverlay(props) { + var _a = props.height, + height = _a === void 0 ? 24 : _a, + _b = props.width, + width = _b === void 0 ? 24 : _b; + return React.createElement("div", { + className: "sendbird-muted-avatar", + style: { + height: height + "px", + width: width + "px" + } + }, React.createElement("div", { + className: "sendbird-muted-avatar__icon" + }, React.createElement("div", { + className: "sendbird-muted-avatar__bg", + style: { + height: height + "px", + width: width + "px" + } + }), React.createElement(Icon, { + fillColor: IconColors.WHITE, + type: IconTypes.ICON_MUTED, + width: height - 8 + "px", + height: width - 8 + "px" + }))); +} + +function Checkbox(_ref) { + var id = _ref.id, + checked = _ref.checked, + onChange = _ref.onChange; + + var _useState = useState(checked), + _useState2 = _slicedToArray(_useState, 2), + isChecked = _useState2[0], + setCheck = _useState2[1]; + + return React.createElement("label", { + className: "sendbird-checkbox", + htmlFor: id + }, React.createElement("input", { + id: id, + type: "checkbox", + checked: isChecked, + onClick: function onClick() { + return setCheck(!isChecked); + }, + onChange: onChange + }), React.createElement("span", { + className: "sendbird-checkbox--checkmark" + })); +} +Checkbox.propTypes = { + id: PropTypes.string, + checked: PropTypes.bool, + onChange: PropTypes.func +}; +Checkbox.defaultProps = { + id: 'sendbird-checkbox-input', + checked: false, + onChange: function onChange() {} +}; + +var COMPONENT_NAME = 'sendbird-user-list-item'; +function UserListItem(_ref) { + var user = _ref.user, + className = _ref.className, + checkBox = _ref.checkBox, + _ref$disableMessaging = _ref.disableMessaging, + disableMessaging = _ref$disableMessaging === void 0 ? false : _ref$disableMessaging, + currentUser = _ref.currentUser, + checked = _ref.checked, + _onChange = _ref.onChange, + action = _ref.action; + var injectingClassNames = Array.isArray(className) ? className : [className]; + var uniqueKey = user.userId; + var actionRef = React.useRef(null); + var parentRef = React.useRef(null); + var avatarRef = React.useRef(null); + + var _useContext = useContext(UserProfileContext), + disableUserProfile = _useContext.disableUserProfile, + renderUserProfile = _useContext.renderUserProfile; + + var _useContext2 = useContext(LocalizationContext), + stringSet = _useContext2.stringSet; + + return React.createElement("div", { + ref: parentRef, + className: [COMPONENT_NAME].concat(_toConsumableArray(injectingClassNames)).join(' ') + }, user.isMuted && React.createElement(MutedAvatarOverlay, { + height: 40, + width: 40 + }), React.createElement(ContextMenu, { + menuTrigger: function menuTrigger(toggleDropdown) { + return React.createElement(Avatar, { + onClick: function onClick() { + if (!disableUserProfile) { + toggleDropdown(); + } + }, + ref: avatarRef, + className: "".concat(COMPONENT_NAME, "__avatar"), + src: user.profileUrl, + width: "40px", + height: "40px" + }); + }, + menuItems: function menuItems(closeDropdown) { + return React.createElement(MenuItems, { + openLeft: true, + parentRef: avatarRef // for catching location(x, y) of MenuItems + , + parentContainRef: avatarRef // for toggling more options(menus & reactions) + , + closeDropdown: closeDropdown, + style: { + paddingTop: 0, + paddingBottom: 0 + } + }, renderUserProfile ? renderUserProfile({ + user: user, + currentUserId: currentUser, + close: closeDropdown + }) : React.createElement(UserProfile, { + disableMessaging: disableMessaging, + user: user, + currentUserId: currentUser, + onSuccess: closeDropdown + })); + } + }), React.createElement(Label, { + className: "".concat(COMPONENT_NAME, "__title"), + type: LabelTypography.SUBTITLE_1, + color: LabelColors.ONBACKGROUND_1 + }, user.nickname || stringSet.NO_NAME, currentUser === user.userId && ' (You)'), // if there is now nickname, display userId + !user.nickname && React.createElement(Label, { + className: "".concat(COMPONENT_NAME, "__subtitle"), + type: LabelTypography.CAPTION_3, + color: LabelColors.ONBACKGROUND_2 + }, user.userId), checkBox && // eslint-disable-next-line jsx-a11y/label-has-associated-control + React.createElement("label", { + className: "".concat(COMPONENT_NAME, "__checkbox"), + htmlFor: uniqueKey + }, React.createElement(Checkbox, { + id: uniqueKey, + checked: checked, + onChange: function onChange(event) { + return _onChange(event); + } + })), user.role === 'operator' && React.createElement(Label, { + className: "".concat(COMPONENT_NAME, "__operator"), + type: LabelTypography.SUBTITLE_2, + color: LabelColors.ONBACKGROUND_2 + }, "Operator"), action && React.createElement("div", { + ref: actionRef, + className: "".concat(COMPONENT_NAME, "__action") + }, action({ + actionRef: actionRef, + parentRef: parentRef + }))); +} +UserListItem.propTypes = { + user: PropTypes.shape({ + userId: PropTypes.string, + role: PropTypes.string, + isMuted: PropTypes.bool, + nickname: PropTypes.string, + profileUrl: PropTypes.string + }).isRequired, + className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + disableMessaging: PropTypes.bool, + currentUser: PropTypes.string, + action: PropTypes.element, + checkBox: PropTypes.bool, + checked: PropTypes.bool, + onChange: PropTypes.func +}; +UserListItem.defaultProps = { + className: '', + currentUser: '', + checkBox: false, + disableMessaging: false, + checked: false, + action: null, + onChange: function onChange() {} +}; + +export { InputLabel as I, MutedAvatarOverlay as M, UserListItem as U, Input as a }; +//# sourceMappingURL=index-73379213.js.map diff --git a/dist/esm/index-73379213.js.map b/dist/esm/index-73379213.js.map new file mode 100644 index 0000000..382efb2 --- /dev/null +++ b/dist/esm/index-73379213.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-73379213.js","sources":["../../../src/ui/Input/index.jsx","../../../src/ui/Avatar/MutedAvatarOverlay.tsx","../../../src/ui/Checkbox/index.jsx","../../../src/ui/UserListItem/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nexport const InputLabel = ({ children }) => (\n \n {children}\n \n);\n\nInputLabel.propTypes = {\n children: PropTypes.string.isRequired,\n};\n\n// future: add validations? onChange? more props etc etc\nconst Input = React.forwardRef((props, ref) => {\n const {\n value,\n placeHolder,\n disabled,\n name,\n required,\n } = props;\n const [inputValue, setInputValue] = useState(value);\n return (\n
\n {\n setInputValue(e.target.value);\n }}\n />\n {(placeHolder && !inputValue) && (\n \n {placeHolder}\n \n )}\n
\n );\n});\n\nInput.propTypes = {\n value: PropTypes.string,\n placeHolder: PropTypes.string,\n name: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n};\n\nInput.defaultProps = {\n value: '',\n placeHolder: '',\n disabled: false,\n required: false,\n};\n\nexport default Input;\n","import './muted-avatar-overlay.scss';\n\nimport React, { ReactElement } from 'react'\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\ninterface Props {\n height?: number;\n width?: number;\n}\n\nexport default function MutedAvatarOverlay(props: Props): ReactElement {\n const { height = 24, width = 24 } = props;\n return (\n \n
\n \n \n
\n
\n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nexport default function Checkbox({\n id,\n checked,\n onChange,\n}) {\n const [isChecked, setCheck] = useState(checked);\n return (\n \n );\n}\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nCheckbox.defaultProps = {\n id: 'sendbird-checkbox-input',\n checked: false,\n onChange: () => { },\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport MutedAvatarOverlay from '../Avatar/MutedAvatarOverlay';\nimport Checkbox from '../Checkbox';\nimport UserProfile from '../UserProfile';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item';\n\nexport default function UserListItem({\n user,\n className,\n checkBox,\n disableMessaging = false,\n currentUser,\n checked,\n onChange,\n action,\n}) {\n const injectingClassNames = Array.isArray(className) ? className : [className];\n const uniqueKey = user.userId;\n const actionRef = React.useRef(null);\n const parentRef = React.useRef(null);\n const avatarRef = React.useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width=\"40px\"\n height=\"40px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n ' (You)'\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n checkBox && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n onChange(event)}\n />\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n
\n );\n}\n\nUserListItem.propTypes = {\n user: PropTypes.shape({\n userId: PropTypes.string,\n role: PropTypes.string,\n isMuted: PropTypes.bool,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n disableMessaging: PropTypes.bool,\n currentUser: PropTypes.string,\n action: PropTypes.element,\n checkBox: PropTypes.bool,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nUserListItem.defaultProps = {\n className: '',\n currentUser: '',\n checkBox: false,\n disableMessaging: false,\n checked: false,\n action: null,\n onChange: () => { },\n};\n"],"names":["InputLabel","children","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_1","propTypes","PropTypes","string","isRequired","Input","React","forwardRef","props","ref","value","placeHolder","disabled","name","required","useState","inputValue","setInputValue","e","target","BODY_1","ONBACKGROUND_3","bool","defaultProps","MutedAvatarOverlay","_a","height","_b","width","IconColors","WHITE","IconTypes","ICON_MUTED","Checkbox","id","checked","onChange","isChecked","setCheck","func","COMPONENT_NAME","UserListItem","user","className","checkBox","disableMessaging","currentUser","action","injectingClassNames","Array","isArray","uniqueKey","userId","actionRef","useRef","parentRef","avatarRef","useContext","UserProfileContext","disableUserProfile","renderUserProfile","LocalizationContext","stringSet","join","isMuted","toggleDropdown","profileUrl","closeDropdown","paddingTop","paddingBottom","currentUserId","close","SUBTITLE_1","nickname","NO_NAME","ONBACKGROUND_2","event","role","SUBTITLE_2","shape","oneOfType","arrayOf","element"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/index-7bc4a9f7.js b/dist/esm/index-7bc4a9f7.js new file mode 100644 index 0000000..4245469 --- /dev/null +++ b/dist/esm/index-7bc4a9f7.js @@ -0,0 +1,86 @@ +import React, { useState } from 'react'; +import { I as Icon, a as IconTypes } from './index-0c67ae90.js'; +import { n as noop } from './utils-53ba1773.js'; + +var Context = React.createContext({ + opened: '', + setOpened: noop +}); +var Consumer = Context.Consumer; +var Provider = Context.Provider; + +// Wraps all the accordions in an accordion set +function AccordionGroup(_a) { + var children = _a.children, + _b = _a.className, + className = _b === void 0 ? '' : _b; + + var _c = useState(''), + opened = _c[0], + setOpened = _c[1]; + + return React.createElement(Provider, { + value: { + opened: opened, + setOpened: setOpened + } + }, React.createElement("div", { + className: className + }, children)); +} + +function Accordion(_a) { + var id = _a.id, + renderTitle = _a.renderTitle, + renderContent = _a.renderContent, + renderFooter = _a.renderFooter, + className = _a.className; + + var _b = useState(false), + showAccordion = _b[0], + setShowAccordion = _b[1]; + + return React.createElement(Consumer, null, function (value) { + var opened = value.opened, + setOpened = value.setOpened; + + if (id === opened) { + setShowAccordion(true); + } else { + setShowAccordion(false); + } + + var handleClick = function handleClick() { + if (showAccordion) { + setOpened(''); + } else { + setOpened(id); + } + }; + + return React.createElement(React.Fragment, null, React.createElement("div", { + id: id, + role: "switch", + "aria-checked": false, + tabIndex: 0, + onKeyDown: handleClick, + className: "sendbird-accordion__panel-heder " + className, + onClick: handleClick + }, renderTitle(), React.createElement(Icon, { + type: IconTypes.SHEVRON, + className: ['sendbird-accordion__panel-icon-right', 'sendbird-accordion__panel-icon--chevron', showAccordion ? 'sendbird-accordion__panel-icon--open' : ''].join(' '), + height: "24px", + width: "24px" + })), showAccordion && React.createElement("div", { + className: "sendbird-accordion" + }, React.createElement("div", { + className: "sendbird-accordion__list" + }, renderContent()), renderFooter && React.createElement("div", { + className: "sendbird-accordion__footer" + }, renderFooter()))); + }); +} +var AccordionGroup$1 = AccordionGroup; + +export { AccordionGroup$1 as A, Accordion as a }; +//# sourceMappingURL=index-7bc4a9f7.js.map diff --git a/dist/esm/index-7bc4a9f7.js.map b/dist/esm/index-7bc4a9f7.js.map new file mode 100644 index 0000000..573cd38 --- /dev/null +++ b/dist/esm/index-7bc4a9f7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-7bc4a9f7.js","sources":["../../../src/ui/Accordion/context.ts","../../../src/ui/Accordion/AccordionGroup.tsx","../../../src/ui/Accordion/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { noop } from '../../utils/utils';\n\ninterface ContextValue {\n setOpened(accordion: string): void;\n opened: string;\n}\n\nconst Context = React.createContext({\n opened: '', // mock default value\n setOpened: noop,\n});\n\nexport const Consumer = Context.Consumer;\nexport const Provider = Context.Provider;\n","// Wraps all the accordions in an accordion set\n// keep one accordion open at a time\nimport React, { ReactElement, useState } from 'react';\n\nimport { Provider } from './context';\n\ninterface Props {\n children: ReactElement[] | ReactElement;\n defaultOpened?: string;\n className?: string;\n}\n\nexport default function AccordionGroup({\n children,\n className = '',\n}: Props): ReactElement {\n const [opened, setOpened] = useState('');\n return (\n \n
{ children }
\n
\n )\n}\n","import './index.scss';\n\nimport React, { ReactElement, useState } from 'react';\n\nimport AccordionGroup_ from './AccordionGroup';\nimport { Consumer } from './context';\n\nimport Icon, {\n IconTypes,\n} from '../Icon';\n\ninterface Props {\n id: string;\n className?: string;\n renderTitle(): ReactElement;\n renderContent(): ReactElement;\n renderFooter?(): ReactElement;\n}\n\nexport default function Accordion({\n id,\n renderTitle,\n renderContent,\n renderFooter,\n className,\n}: Props): ReactElement {\n const [showAccordion, setShowAccordion] = useState(false);\n return (\n \n {\n (value) => {\n const { opened, setOpened } = value;\n if (id === opened) {\n setShowAccordion(true);\n } else {\n setShowAccordion(false);\n }\n const handleClick = () => {\n if (showAccordion) {\n setOpened('');\n } else {\n setOpened(id);\n }\n }\n return (\n <>\n \n { renderTitle() }\n \n \n {\n showAccordion && (\n
\n
\n { renderContent() }\n
\n {\n renderFooter && (\n
\n { renderFooter() }\n
\n )\n }\n
\n )\n }\n );\n }\n }\n
\n )\n}\n\nexport const AccordionGroup = AccordionGroup_;\n"],"names":["Context","React","createContext","opened","setOpened","noop","Consumer","Provider","AccordionGroup","_a","children","_b","className","_c","useState","Accordion","id","renderTitle","renderContent","renderFooter","showAccordion","setShowAccordion","value","handleClick","IconTypes","SHEVRON","join","AccordionGroup_"],"mappings":";;;;AASA,IAAMA,OAAO,GAAGC,KAAK,CAACC,aAAN,CAAkC;AAChDC,EAAAA,MAAM,EAAE,EADwC;AAEhDC,EAAAA,SAAS,EAAEC;AAFqC,CAAlC,CAAhB;AAKO,IAAMC,QAAQ,GAAGN,OAAO,CAACM,QAAzB;AACA,IAAMC,QAAQ,GAAGP,OAAO,CAACO,QAAzB;;ACfP;AACA,SAWwBC,eAAeC;MACrCC,QAAQ;MACRC;MAAAC,SAAS,mBAAG;;AAEN,MAAAC,KAAsBC,QAAQ,CAAC,EAAD,CAA9B;AAAA,MAACX,MAAM,QAAP;AAAA,MAASC,SAAS,QAAlB;;AACN,SACE,oBAAC,QAAD;AAAU,IAAA,KAAK,EAAE;AAAED,MAAAA,MAAM,QAAR;AAAUC,MAAAA,SAAS;AAAnB;AAAjB,KACE;AAAK,IAAA,SAAS,EAAEQ;AAAhB,KAA6BF,QAA7B,CADF,CADF;AAKD;;SCHuBK,UAAUN;MAChCO,EAAE;MACFC,WAAW;MACXC,aAAa;MACbC,YAAY;MACZP,SAAS;;AAEH,MAAAD,KAAoCG,QAAQ,CAAC,KAAD,CAA5C;AAAA,MAACM,aAAa,QAAd;AAAA,MAAgBC,gBAAgB,QAAhC;;AACN,SACE,oBAAC,QAAD,QAEI,UAACC,KAAD;AACU,QAAAnB,MAAM,GAAgBmB,KAAK,OAA3B;AAAA,QAAQlB,SAAS,GAAKkB,KAAK,UAA3B;;AACR,QAAIN,EAAE,KAAKb,MAAX,EAAmB;AACjBkB,MAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD,KAFD,MAEO;AACLA,MAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACD;;AACD,QAAME,WAAW,GAAG,SAAdA,WAAc;AAClB,UAAIH,aAAJ,EAAmB;AACjBhB,QAAAA,SAAS,CAAC,EAAD,CAAT;AACD,OAFD,MAEO;AACLA,QAAAA,SAAS,CAACY,EAAD,CAAT;AACD;AACF,KAND;;AAOA,WACE,0CACE;AACE,MAAA,EAAE,EAAEA,EADN;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,sBAAc,KAHhB;AAIE,MAAA,QAAQ,EAAE,CAJZ;AAKE,MAAA,SAAS,EAAEO,WALb;AAME,MAAA,SAAS,EAAE,qCAAmCX,SANhD;AAOE,MAAA,OAAO,EAAEW;AAPX,OASIN,WAAW,EATf,EAUE,oBAAC,IAAD;AACE,MAAA,IAAI,EAAEO,SAAS,CAACC,OADlB;AAEE,MAAA,SAAS,EAAE,CACT,sCADS,EAET,yCAFS,EAGRL,aAAa,GAAG,sCAAH,GAA4C,EAHjD,EAITM,IAJS,CAIJ,GAJI,CAFb;AAOE,MAAA,MAAM,EAAC,MAPT;AAQE,MAAA,KAAK,EAAC;AARR,MAVF,CADF,EAuBIN,aAAa,IACX;AAAK,MAAA,SAAS,EAAC;AAAf,OACE;AAAK,MAAA,SAAS,EAAC;AAAf,OACIF,aAAa,EADjB,CADF,EAKIC,YAAY,IACV;AAAK,MAAA,SAAS,EAAC;AAAf,OACIA,YAAY,EADhB,CANN,CAxBN,CADF;AAwCD,GAxDL,CADF;AA6DD;AAED,IAAaX,gBAAc,GAAGmB;;;;"} \ No newline at end of file diff --git a/dist/esm/index-a199094e.js b/dist/esm/index-a199094e.js new file mode 100644 index 0000000..5eaa7be --- /dev/null +++ b/dist/esm/index-a199094e.js @@ -0,0 +1,43 @@ +import React, { useMemo } from 'react'; +import { I as Icon, a as IconTypes, A as Avatar } from './index-0c67ae90.js'; +import { u as useDefaultAvatar, g as getChannelAvatarSource } from './utils-53ba1773.js'; + +function ChannelAvatar(_a) { + var channel = _a.channel, + userId = _a.userId, + theme = _a.theme, + _b = _a.height, + height = _b === void 0 ? 56 : _b, + _c = _a.width, + width = _c === void 0 ? 56 : _c; + var isBroadcast = channel.isBroadcast; + var memoizedAvatar = useMemo(function () { + return isBroadcast ? useDefaultAvatar(channel) ? theme === 'dark' ? React.createElement(Icon, { + type: IconTypes.BROADCAST_LARGE_DARK, + width: width, + height: height, + className: "sendbird-chat-header__default--broadcast-channel-dark" + }) : React.createElement(Icon, { + type: IconTypes.BROADCAST_LARGE_LIGHT, + width: width, + height: height, + className: "sendbird-chat-header__default--broadcast-channel-light" + }) : React.createElement(Avatar, { + className: "sendbird-chat-header__avatar--broadcast-channel", + src: getChannelAvatarSource(channel, userId), + width: width, + height: height, + alt: channel.name + }) : React.createElement(Avatar, { + className: "sendbird-chat-header__avatar--group-channel", + src: getChannelAvatarSource(channel, userId), + width: width + "px", + height: height + "px", + alt: channel.name + }); + }, [channel.members, channel.coverUrl, theme]); + return React.createElement(React.Fragment, null, memoizedAvatar); +} + +export { ChannelAvatar as C }; +//# sourceMappingURL=index-a199094e.js.map diff --git a/dist/esm/index-a199094e.js.map b/dist/esm/index-a199094e.js.map new file mode 100644 index 0000000..e27cee2 --- /dev/null +++ b/dist/esm/index-a199094e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-a199094e.js","sources":["../../../src/ui/ChannelAvatar/index.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes } from '../Icon';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendBird.GroupChannel;\n userId: string;\n theme: string;\n height?: number,\n width?: number,\n}\n\nfunction ChannelAvatar({\n channel,\n userId,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { isBroadcast } = channel;\n const memoizedAvatar = useMemo(() => (\n isBroadcast\n ? (\n utils.useDefaultAvatar(channel)\n ? (\n theme === 'dark'\n ? (\n \n )\n : (\n \n )\n )\n : (\n \n )\n )\n : (\n \n )\n ),[channel.members, channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n"],"names":["ChannelAvatar","_a","channel","userId","theme","_b","height","_c","width","isBroadcast","memoizedAvatar","useMemo","utils","IconTypes","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","name","members","coverUrl"],"mappings":";;;;AAeA,SAASA,aAAT,CAAuBC,EAAvB;MACEC,OAAO;MACPC,MAAM;MACNC,KAAK;MACLC;MAAAC,MAAM,mBAAG;MACTC;MAAAC,KAAK,mBAAG;AAEA,MAAAC,WAAW,GAAKP,OAAO,YAAvB;AACR,MAAMQ,cAAc,GAAGC,OAAO,CAAC;AAAM,WACnCF,WAAW,GAEPG,gBAAA,CAAuBV,OAAvB,IAEIE,KAAK,KAAK,MAAV,GAEI,oBAAC,IAAD;AACE,MAAA,IAAI,EAAES,SAAS,CAACC,oBADlB;AAEE,MAAA,KAAK,EAAEN,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAFJ,GAUI,oBAAC,IAAD;AACE,MAAA,IAAI,EAAEO,SAAS,CAACE,qBADlB;AAEE,MAAA,KAAK,EAAEP,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAZR,GAqBI,oBAAC,MAAD;AACE,MAAA,SAAS,EAAC,iDADZ;AAEE,MAAA,GAAG,EAAEM,sBAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAEK,KAHT;AAIE,MAAA,MAAM,EAAEF,MAJV;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACc;AALf,MAvBG,GAiCP,oBAAC,MAAD;AACE,MAAA,SAAS,EAAC,6CADZ;AAEE,MAAA,GAAG,EAAEJ,sBAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAKK,KAAK,OAHjB;AAIE,MAAA,MAAM,EAAKF,MAAM,OAJnB;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACc;AALf,MAlC+B;AA0CpC,GA1C6B,EA0C5B,CAACd,OAAO,CAACe,OAAT,EAAkBf,OAAO,CAACgB,QAA1B,EAAoCd,KAApC,CA1C4B,CAA9B;AA2CA,SACE,0CAAIM,cAAJ,CADF;AAGD;;;;"} \ No newline at end of file diff --git a/dist/esm/index.js b/dist/esm/index.js new file mode 100644 index 0000000..1a77450 --- /dev/null +++ b/dist/esm/index.js @@ -0,0 +1,30 @@ +export { g as getStringSet, w as withSendBird } from './LocalizationContext-619bafba.js'; +export { default as SendBirdProvider } from './SendbirdProvider.js'; +import 'react'; +import 'prop-types'; +import 'sendbird'; +import './actionTypes-a85c0eaa.js'; +import 'css-vars-ponyfill'; +export { F as sendBirdSelectors } from './index-0c67ae90.js'; +export { default as ChannelList } from './ChannelList.js'; +import './utils-53ba1773.js'; +import './index-a199094e.js'; +import './LeaveChannel-fcc0bfc3.js'; +import 'date-fns/isToday'; +import 'date-fns/format'; +import 'date-fns/isYesterday'; +import './type-0296584d.js'; +import './utils-cfdeb084.js'; +import 'react-dom'; +import './index-73379213.js'; +export { default as Channel, getAllEmojisFromEmojiContainer, getEmojiCategoriesFromEmojiContainer, getEmojisFromEmojiContainer } from './Channel.js'; +import './index-1cf7b066.js'; +import 'date-fns/isSameDay'; +import './utils-d7f59026.js'; +import 'date-fns/formatDistanceToNowStrict'; +export { default as ChannelSettings } from './ChannelSettings.js'; +import './index-7bc4a9f7.js'; +export { default as App } from './App.js'; +export { default as OpenChannel } from './OpenChannel.js'; +export { default as OpenChannelSettings } from './OpenChannelSettings.js'; +//# sourceMappingURL=index.js.map diff --git a/dist/esm/index.js.map b/dist/esm/index.js.map new file mode 100644 index 0000000..b11f5f8 --- /dev/null +++ b/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/esm/type-0296584d.js b/dist/esm/type-0296584d.js new file mode 100644 index 0000000..562eb38 --- /dev/null +++ b/dist/esm/type-0296584d.js @@ -0,0 +1,10 @@ +var MessageStatusType = { + PENDING: 'PENDING', + SENT: 'SENT', + DELIVERED: 'DELIVERED', + READ: 'READ', + FAILED: 'FAILED' +}; + +export { MessageStatusType as M }; +//# sourceMappingURL=type-0296584d.js.map diff --git a/dist/esm/type-0296584d.js.map b/dist/esm/type-0296584d.js.map new file mode 100644 index 0000000..d9292b2 --- /dev/null +++ b/dist/esm/type-0296584d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"type-0296584d.js","sources":["../../../src/ui/MessageStatus/type.js"],"sourcesContent":["const MessageStatusType = {\n PENDING: 'PENDING',\n SENT: 'SENT',\n DELIVERED: 'DELIVERED',\n READ: 'READ',\n FAILED: 'FAILED',\n};\n\nexport default MessageStatusType;\n"],"names":["MessageStatusType","PENDING","SENT","DELIVERED","READ","FAILED"],"mappings":"AAAA,IAAMA,iBAAiB,GAAG;AACxBC,EAAAA,OAAO,EAAE,SADe;AAExBC,EAAAA,IAAI,EAAE,MAFkB;AAGxBC,EAAAA,SAAS,EAAE,WAHa;AAIxBC,EAAAA,IAAI,EAAE,MAJkB;AAKxBC,EAAAA,MAAM,EAAE;AALgB,CAA1B;;;;"} \ No newline at end of file diff --git a/dist/esm/utils-53ba1773.js b/dist/esm/utils-53ba1773.js new file mode 100644 index 0000000..19a2ebd --- /dev/null +++ b/dist/esm/utils-53ba1773.js @@ -0,0 +1,47 @@ +import format from 'date-fns/format'; + +var DEFAULT_URL_PREFIX = 'https://static.sendbird.com/sample/cover/cover_'; +var getOpenChannelAvatar = function getOpenChannelAvatar(channel) { + if (channel && channel.coverUrl) { + return channel.coverUrl; + } +}; +var getChannelAvatarSource = function getChannelAvatarSource(channel, currentUserId) { + if (channel && channel.coverUrl) { + if (!new RegExp("^" + DEFAULT_URL_PREFIX).test(channel.coverUrl)) { + return channel.coverUrl; + } + } + + return channel && channel.members ? channel.members.filter(function (member) { + return member.userId !== currentUserId; + }).map(function (_a) { + var profileUrl = _a.profileUrl; + return profileUrl; + }) : []; +}; +var useDefaultAvatar = function useDefaultAvatar(channel) { + if (channel && channel.coverUrl) { + if (new RegExp("^" + DEFAULT_URL_PREFIX).test(channel.coverUrl)) { + return true; + } + + return false; + } + + return true; +}; + +var noop = function noop() {}; +var getMessageCreatedAt = function getMessageCreatedAt(message) { + return format(message.createdAt, 'p'); +}; +var getSenderName = function getSenderName(message) { + return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); +}; +var getSenderProfileUrl = function getSenderProfileUrl(message) { + return message.sender && message.sender.profileUrl; +}; + +export { getMessageCreatedAt as a, getSenderName as b, getSenderProfileUrl as c, getOpenChannelAvatar as d, getChannelAvatarSource as g, noop as n, useDefaultAvatar as u }; +//# sourceMappingURL=utils-53ba1773.js.map diff --git a/dist/esm/utils-53ba1773.js.map b/dist/esm/utils-53ba1773.js.map new file mode 100644 index 0000000..97b150b --- /dev/null +++ b/dist/esm/utils-53ba1773.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils-53ba1773.js","sources":["../../../src/ui/ChannelAvatar/utils.ts","../../../src/utils/utils.js"],"sourcesContent":["export const DEFAULT_URL_PREFIX = 'https://static.sendbird.com/sample/cover/cover_';\n\nexport const getOpenChannelAvatar = (channel: SendBird.OpenChannel): string => {\n if (channel && channel.coverUrl) {\n return channel.coverUrl;\n }\n};\n\nexport const getChannelAvatarSource = (channel: SendBird.GroupChannel, currentUserId: string): string | string[] => {\n if (channel && channel.coverUrl) {\n if (!(new RegExp(`^${DEFAULT_URL_PREFIX}`).test(channel.coverUrl))) {\n return channel.coverUrl;\n }\n }\n\n return channel && channel.members\n ? channel.members\n .filter((member) => member.userId !== currentUserId)\n .map(({ profileUrl }) => profileUrl)\n : [];\n};\n\n\nexport const useDefaultAvatar = (channel: SendBird.GroupChannel): boolean => {\n if (channel && channel.coverUrl) {\n if (new RegExp(`^${DEFAULT_URL_PREFIX}`).test(channel.coverUrl)) {\n return true;\n }\n return false;\n }\n return true;\n}\n","import format from 'date-fns/format';\n\nexport const noop = () => {};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport default {\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n};\n"],"names":["DEFAULT_URL_PREFIX","getOpenChannelAvatar","channel","coverUrl","getChannelAvatarSource","currentUserId","RegExp","test","members","filter","member","userId","map","_a","profileUrl","useDefaultAvatar","noop","getMessageCreatedAt","message","format","createdAt","getSenderName","sender","friendName","nickname","getSenderProfileUrl"],"mappings":";;AAAO,IAAMA,kBAAkB,GAAG,iDAA3B;IAEMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,OAAD;AAClC,MAAIA,OAAO,IAAIA,OAAO,CAACC,QAAvB,EAAiC;AAC/B,WAAOD,OAAO,CAACC,QAAf;AACD;AACF;IAEYC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACF,OAAD,EAAiCG,aAAjC;AACpC,MAAIH,OAAO,IAAIA,OAAO,CAACC,QAAvB,EAAiC;AAC/B,QAAI,CAAE,IAAIG,MAAJ,CAAW,MAAIN,kBAAf,EAAqCO,IAArC,CAA0CL,OAAO,CAACC,QAAlD,CAAN,EAAoE;AAClE,aAAOD,OAAO,CAACC,QAAf;AACD;AACF;;AAED,SAAOD,OAAO,IAAIA,OAAO,CAACM,OAAnB,GACHN,OAAO,CAACM,OAAR,CACCC,MADD,CACQ,UAACC,MAAD;AAAY,WAAAA,MAAM,CAACC,MAAP,KAAkBN,aAAlB;AAA+B,GADnD,EAECO,GAFD,CAEK,UAACC,EAAD;QAAGC,UAAU;AAAO,WAAAA,UAAA;AAAU,GAFnC,CADG,GAIH,EAJJ;AAKD;IAGYC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACb,OAAD;AAC9B,MAAIA,OAAO,IAAIA,OAAO,CAACC,QAAvB,EAAiC;AAC/B,QAAI,IAAIG,MAAJ,CAAW,MAAIN,kBAAf,EAAqCO,IAArC,CAA0CL,OAAO,CAACC,QAAlD,CAAJ,EAAiE;AAC/D,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD;;IC7BYa,IAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;AAEP,IAAaC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,OAAD;AAAA,SAAaC,MAAM,CAACD,OAAO,CAACE,SAAT,EAAoB,GAApB,CAAnB;AAAA,CAA5B;AAEP,IAAaC,aAAa,GAAG,SAAhBA,aAAgB,CAACH,OAAD;AAAA,SAC3BA,OAAO,CAACI,MAAR,KACEJ,OAAO,CAACI,MAAR,CAAeC,UAAf,IACGL,OAAO,CAACI,MAAR,CAAeE,QADlB,IAEGN,OAAO,CAACI,MAAR,CAAeX,MAHpB,CAD2B;AAAA,CAAtB;AAQP,IAAac,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACP,OAAD;AAAA,SAAaA,OAAO,CAACI,MAAR,IAAkBJ,OAAO,CAACI,MAAR,CAAeR,UAA9C;AAAA,CAA5B;;;;"} \ No newline at end of file diff --git a/dist/esm/utils-cfdeb084.js b/dist/esm/utils-cfdeb084.js new file mode 100644 index 0000000..f04b16a --- /dev/null +++ b/dist/esm/utils-cfdeb084.js @@ -0,0 +1,18 @@ +import { M as MessageStatusType } from './type-0296584d.js'; + +var truncate = function truncate(fullStr, strLen) { + if (fullStr === null || fullStr === undefined) return ''; + if (fullStr.length <= strLen) return fullStr; + var separator = '...'; + var sepLen = separator.length; + var charsToShow = strLen - sepLen; + var frontChars = Math.ceil(charsToShow / 2); + var backChars = Math.floor(charsToShow / 2); + return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars); +}; +var getIsSentFromStatus = function getIsSentFromStatus(status) { + return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; +}; + +export { getIsSentFromStatus as g, truncate as t }; +//# sourceMappingURL=utils-cfdeb084.js.map diff --git a/dist/esm/utils-cfdeb084.js.map b/dist/esm/utils-cfdeb084.js.map new file mode 100644 index 0000000..6e7e4a7 --- /dev/null +++ b/dist/esm/utils-cfdeb084.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils-cfdeb084.js","sources":["../../../src/ui/FileMessage/utils.js"],"sourcesContent":["import MessageStatusType from '../MessageStatus/type';\n\nexport const truncate = (fullStr, strLen) => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n truncate,\n getIsSentFromStatus,\n};\n"],"names":["truncate","fullStr","strLen","undefined","length","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","getIsSentFromStatus","status","MessageStatusType","SENT","DELIVERED","READ"],"mappings":";;IAEaA,QAAQ,GAAG,SAAXA,QAAW,CAACC,OAAD,EAAUC,MAAV,EAAqB;AAC3C,MAAID,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAKE,SAApC,EAA+C,OAAO,EAAP;AAC/C,MAAIF,OAAO,CAACG,MAAR,IAAkBF,MAAtB,EAA8B,OAAOD,OAAP;AAC9B,MAAMI,SAAS,GAAG,KAAlB;AACA,MAAMC,MAAM,GAAGD,SAAS,CAACD,MAAzB;AACA,MAAMG,WAAW,GAAGL,MAAM,GAAGI,MAA7B;AACA,MAAME,UAAU,GAAGC,IAAI,CAACC,IAAL,CAAUH,WAAW,GAAG,CAAxB,CAAnB;AACA,MAAMI,SAAS,GAAGF,IAAI,CAACG,KAAL,CAAWL,WAAW,GAAG,CAAzB,CAAlB;AACA,SAAON,OAAO,CAACY,MAAR,CAAe,CAAf,EAAkBL,UAAlB,IAAgCH,SAAhC,GAA4CJ,OAAO,CAACY,MAAR,CAAeZ,OAAO,CAACG,MAAR,GAAiBO,SAAhC,CAAnD;AACD;IAEYG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,MAAD;AAAA,SACjCA,MAAM,KAAKC,iBAAiB,CAACC,IAA7B,IACGF,MAAM,KAAKC,iBAAiB,CAACE,SADhC,IAEGH,MAAM,KAAKC,iBAAiB,CAACG,IAHC;AAAA;;;;"} \ No newline at end of file diff --git a/dist/esm/utils-d7f59026.js b/dist/esm/utils-d7f59026.js new file mode 100644 index 0000000..addc982 --- /dev/null +++ b/dist/esm/utils-d7f59026.js @@ -0,0 +1,43 @@ +import format from 'date-fns/format'; +import { M as MessageStatusType } from './type-0296584d.js'; + +var copyToClipboard = function copyToClipboard(text) { + if (window.clipboardData && window.clipboardData.setData) { + // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible. + return window.clipboardData.setData('Text', text); + } + + if (document.queryCommandSupported && document.queryCommandSupported('copy')) { + var textarea = document.createElement('textarea'); + textarea.textContent = text; + textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. + + document.body.appendChild(textarea); + textarea.select(); + + try { + return document.execCommand('copy'); // Security exception may be thrown by some browsers. + } catch (ex) { + return false; + } finally { + document.body.removeChild(textarea); + } + } + + return false; +}; +var getMessageCreatedAt = function getMessageCreatedAt(message) { + return format(message.createdAt || 0, 'p'); +}; +var getSenderName = function getSenderName(message) { + return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); +}; +var getSenderProfileUrl = function getSenderProfileUrl(message) { + return message.sender && message.sender.profileUrl; +}; +var getIsSentFromStatus = function getIsSentFromStatus(status) { + return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; +}; + +export { getSenderName as a, getMessageCreatedAt as b, copyToClipboard as c, getIsSentFromStatus as d, getSenderProfileUrl as g }; +//# sourceMappingURL=utils-d7f59026.js.map diff --git a/dist/esm/utils-d7f59026.js.map b/dist/esm/utils-d7f59026.js.map new file mode 100644 index 0000000..a658e79 --- /dev/null +++ b/dist/esm/utils-d7f59026.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils-d7f59026.js","sources":["../../../src/ui/Message/utils.js"],"sourcesContent":["import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const copyToClipboard = (text) => {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt || 0, 'p');\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport default {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n createUrlTester,\n};\n"],"names":["copyToClipboard","text","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","getMessageCreatedAt","message","format","createdAt","getSenderName","sender","friendName","nickname","userId","getSenderProfileUrl","profileUrl","getIsSentFromStatus","status","MessageStatusType","SENT","DELIVERED","READ"],"mappings":";;;IAGaA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,IAAD,EAAU;AACvC,MAAIC,MAAM,CAACC,aAAP,IAAwBD,MAAM,CAACC,aAAP,CAAqBC,OAAjD,EAA0D;AACxD;AACA,WAAOF,MAAM,CAACC,aAAP,CAAqBC,OAArB,CAA6B,MAA7B,EAAqCH,IAArC,CAAP;AACD;;AACD,MAAII,QAAQ,CAACC,qBAAT,IAAkCD,QAAQ,CAACC,qBAAT,CAA+B,MAA/B,CAAtC,EAA8E;AAC5E,QAAMC,QAAQ,GAAGF,QAAQ,CAACG,aAAT,CAAuB,UAAvB,CAAjB;AACAD,IAAAA,QAAQ,CAACE,WAAT,GAAuBR,IAAvB;AACAM,IAAAA,QAAQ,CAACG,KAAT,CAAeC,QAAf,GAA0B,OAA1B,CAH4E;;AAI5EN,IAAAA,QAAQ,CAACO,IAAT,CAAcC,WAAd,CAA0BN,QAA1B;AACAA,IAAAA,QAAQ,CAACO,MAAT;;AACA,QAAI;AACF,aAAOT,QAAQ,CAACU,WAAT,CAAqB,MAArB,CAAP,CADE;AAEH,KAFD,CAEE,OAAOC,EAAP,EAAW;AACX,aAAO,KAAP;AACD,KAJD,SAIU;AACRX,MAAAA,QAAQ,CAACO,IAAT,CAAcK,WAAd,CAA0BV,QAA1B;AACD;AACF;;AACD,SAAO,KAAP;AACD;IAEYW,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,OAAD;AAAA,SAAaC,MAAM,CAACD,OAAO,CAACE,SAAR,IAAqB,CAAtB,EAAyB,GAAzB,CAAnB;AAAA;IAEtBC,aAAa,GAAG,SAAhBA,aAAgB,CAACH,OAAD;AAAA,SAC3BA,OAAO,CAACI,MAAR,KACEJ,OAAO,CAACI,MAAR,CAAeC,UAAf,IACGL,OAAO,CAACI,MAAR,CAAeE,QADlB,IAEGN,OAAO,CAACI,MAAR,CAAeG,MAHpB,CAD2B;AAAA;IAQhBC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACR,OAAD;AAAA,SAAaA,OAAO,CAACI,MAAR,IAAkBJ,OAAO,CAACI,MAAR,CAAeK,UAA9C;AAAA;IAEtBC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,MAAD;AAAA,SACjCA,MAAM,KAAKC,iBAAiB,CAACC,IAA7B,IACGF,MAAM,KAAKC,iBAAiB,CAACE,SADhC,IAEGH,MAAM,KAAKC,iBAAiB,CAACG,IAHC;AAAA;;;;"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index d8224a4..05cbc1c 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -13,10 +13,17 @@ export const sendBirdSelectors: sendBirdSelectorsInterface; export const ChannelSettings: React.FunctionComponent export const ChannelList: React.FunctionComponent export const Channel: React.FunctionComponent +export const OpenChannel: React.FunctionComponent +export const OpenChannelSettings: React.FunctionComponent export function withSendBird ( ChildComp: React.Component | React.ElementType, mapStoreToProps?: (store: SendBirdState) => unknown -): React.ComponentType; +): (props: unknown) => React.ReactNode; + +interface ExtendedSendBirdInstance extends Sendbird.SendBirdInstance { + MessageListParams: SendBird.MessageListParams; +} + export type SendBirdState = { config: SendBirdStateConfig; stores: SendBirdStateStore; @@ -64,9 +71,44 @@ export namespace SendBirdSelectors { } export function getStringSet(lang?: string): {[label: string]: string} +export type Logger = { + info?(title?: unknown, description?: unknown): void; + error?(title?: unknown, description?: unknown): void; + warning?(title?: unknown, description?: unknown): void; +}; + +export interface RenderOpenChannelTitleProps { + channel: Sendbird.OpenChannel; + user: Sendbird.User; +} + +export interface OpenChannelProps { + channelUrl: string; + useMessageGrouping?: boolean; + queries?: { + messageListParams?: Sendbird.MessageListParams, + }; + disableUserProfile?: boolean; + renderUserProfile?(): JSX.Element; + renderChannelTitle?(renderProps: RenderOpenChannelTitleProps): JSX.Element; + renderMessageInput?(renderProps: RenderMessageInputProps): JSX.Element; + onBeforeSendUserMessage?(text: string): Sendbird.UserMessageParams; + onBeforeSendFileMessage?(file_: File): Sendbird.FileMessageParams; + onChatHeaderActionClick?(): void; +} + +interface OpenChannelSettingsProps { + channelUrl: string, + onCloseClick?(): void; + onChannelModified?(channel: Sendbird.OpenChannel): void; + renderChannelProfile?: (props: SendbirdUIKit.RenderOpenChannelProfileProps) => React.ReactNode; + renderUserProfile?: (props: SendbirdUIKit.RenderUserProfileProps) => React.ReactNode; + disableUserProfile?: boolean; +} + // to be used with Conversation.renderMessageInput -interface RenderMessageInputProps { - channel: Sendbird.GroupChannel; +export interface RenderMessageInputProps { + channel: Sendbird.GroupChannel|Sendbird.OpenChannel; user: Sendbird.User; disabled: boolean; } @@ -82,11 +124,11 @@ interface SendBirdStateConfig { setCurrenttheme: (theme: string) => void; userListQuery?(): UserListQuery; } -interface SdkStore { +export interface SdkStore { error: boolean; initialized: boolean; loading: boolean; - sdk: Sendbird.SendBirdInstance; + sdk: ExtendedSendBirdInstance; } interface UserStore { initialized: boolean; @@ -112,6 +154,10 @@ interface SendBirdProviderConfig { interface RenderChannelProfileProps { channel: Sendbird.GroupChannel; } + +interface RenderOpenChannelProfileProps { + channel: Sendbird.OpenChannel; +} interface RenderUserProfileProps { user: Sendbird.User | Sendbird.Member; currentUserId: string; @@ -289,3 +335,15 @@ interface AppProps { stringSet?: Record; colorSet?: Record; } + +export type EveryMessage = ClientUserMessage|ClientFileMessage|ClientAdminMessage; + +export interface ClientUserMessage extends Sendbird.UserMessage, ClientMessage {} +export interface ClientFileMessage extends Sendbird.FileMessage, ClientMessage {} +export interface ClientAdminMessage extends Sendbird.AdminMessage, ClientMessage {} +interface ClientMessage { + reqId: string; + file?: File; + localUrl?: string; + _sender: Sendbird.User; +} diff --git a/package-lock.json b/package-lock.json index 2996f37..23d5b51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "sendbird-uikit", - "version": "1.3.0", + "version": "2.0.0-alpha.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -24973,9 +24973,9 @@ } }, "sendbird": { - "version": "3.0.133", - "resolved": "https://registry.npmjs.org/sendbird/-/sendbird-3.0.133.tgz", - "integrity": "sha512-L/PgaqFaXowX2b2NsnM9dgiFxH50t0xySUCvlsdot77yrcyTwjz9py3qTdI+HOdFll6o7d7W67C0PsmwAtK9sw==", + "version": "3.0.140", + "resolved": "https://registry.npmjs.org/sendbird/-/sendbird-3.0.140.tgz", + "integrity": "sha512-miUEJZaZ1W0tv+iwQC/aF50sijIX5CAc1wLOLfWi8ybA6q9160g/Yvocb/BGUzbfhTAyodbYCIV5OhJPCOpQ8A==", "requires": { "agentkeepalive": "2.2.0", "axios": "^0.19.2", diff --git a/package.json b/package.json index 3655fbe..517107d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sendbird-uikit", - "version": "1.3.0", + "version": "2.0.0-alpha.0", "description": "React based UI kit for sendbird", "main": "dist/index.js", "typings": "dist/index.d.js", @@ -33,7 +33,7 @@ "date-fns": "^2.16.1", "react": "^16.8.6 | ^17.0.0", "react-dom": "^16.8.6 | ^17.0.0", - "sendbird": "^3.0.133" + "sendbird": "^3.0.140" }, "bugs": { "url": "https://github.com/sendbird/uikit-js/issues" @@ -93,6 +93,6 @@ "dependencies": { "css-vars-ponyfill": "^2.3.2", "date-fns": "^2.16.1", - "sendbird": "^3.0.133" + "sendbird": "^3.0.140" } } From 6910de1b938a813b443a3ce9146eeded0d80d4dc Mon Sep 17 00:00:00 2001 From: Sravan S Date: Fri, 11 Dec 2020 17:37:20 +0900 Subject: [PATCH 2/2] Release 2.0.0-alpha.0 Open Channels --- .DS_Store | Bin 6148 -> 6148 bytes README.md | 9 +- dist/cjs/App.js | 12 +- dist/cjs/Channel.js | 41 +- dist/cjs/Channel.js.map | 2 +- dist/cjs/ChannelList.js | 8 +- dist/cjs/ChannelSettings.js | 10 +- ...l-cb2a36b0.js => LeaveChannel-4cf3cd9c.js} | 6 +- ...b0.js.map => LeaveChannel-4cf3cd9c.js.map} | 2 +- dist/cjs/OpenChannel.js | 110 +- dist/cjs/OpenChannel.js.map | 2 +- dist/cjs/OpenChannelSettings.js | 6 +- dist/cjs/SendbirdProvider.css | 3843 ---- dist/cjs/SendbirdProvider.css.map | 1 - .../{index-6ca9e95e.js => index-21269166.js} | 4 +- ...-6ca9e95e.js.map => index-21269166.js.map} | 2 +- .../{index-710314fd.js => index-49d966e1.js} | 322 +- dist/cjs/index-49d966e1.js.map | 1 + .../{index-c4d028d8.js => index-63161cb1.js} | 4 +- ...-c4d028d8.js.map => index-63161cb1.js.map} | 2 +- .../{index-95b18747.js => index-6e58a4a2.js} | 6 +- dist/cjs/index-6e58a4a2.js.map | 1 + dist/cjs/index-710314fd.js.map | 1 - dist/cjs/index-95b18747.js.map | 1 - .../{index-64dcc5d9.js => index-994f886d.js} | 4 +- ...-64dcc5d9.js.map => index-994f886d.js.map} | 2 +- dist/cjs/index.js | 12 +- dist/esm/App.js | 12 +- dist/esm/Channel.js | 41 +- dist/esm/Channel.js.map | 2 +- dist/esm/ChannelList.js | 8 +- dist/esm/ChannelSettings.js | 10 +- ...l-fcc0bfc3.js => LeaveChannel-da8b5d0b.js} | 6 +- ...c3.js.map => LeaveChannel-da8b5d0b.js.map} | 2 +- dist/esm/OpenChannel.js | 110 +- dist/esm/OpenChannel.js.map | 2 +- dist/esm/OpenChannelSettings.js | 6 +- dist/esm/SendbirdProvider.css | 3843 ---- dist/esm/SendbirdProvider.css.map | 1 - dist/esm/index-0c67ae90.js.map | 1 - .../{index-1cf7b066.js => index-19f570c9.js} | 6 +- dist/esm/index-19f570c9.js.map | 1 + dist/esm/index-1cf7b066.js.map | 1 - .../{index-7bc4a9f7.js => index-8abf69b8.js} | 4 +- ...-7bc4a9f7.js.map => index-8abf69b8.js.map} | 2 +- .../{index-73379213.js => index-aa89d60a.js} | 4 +- ...-73379213.js.map => index-aa89d60a.js.map} | 2 +- .../{index-a199094e.js => index-aebda3d2.js} | 4 +- ...-a199094e.js.map => index-aebda3d2.js.map} | 2 +- .../{index-0c67ae90.js => index-ec3bf9fe.js} | 322 +- dist/esm/index-ec3bf9fe.js.map | 1 + dist/esm/index.js | 12 +- dist/index.css | 6210 ++++--- dist/index.css.map | 2 +- dist/index.d.ts | 9 + dist/index.es.css | 3115 ---- dist/index.es.css.map | 1 - dist/index.es.js | 14565 --------------- dist/index.es.js.map | 1 - dist/index.js | 14582 ---------------- dist/index.js.map | 1 - package.json | 4 +- 62 files changed, 4503 insertions(+), 42806 deletions(-) rename dist/cjs/{LeaveChannel-cb2a36b0.js => LeaveChannel-4cf3cd9c.js} (98%) rename dist/cjs/{LeaveChannel-cb2a36b0.js.map => LeaveChannel-4cf3cd9c.js.map} (99%) delete mode 100644 dist/cjs/SendbirdProvider.css delete mode 100644 dist/cjs/SendbirdProvider.css.map rename dist/cjs/{index-6ca9e95e.js => index-21269166.js} (98%) rename dist/cjs/{index-6ca9e95e.js.map => index-21269166.js.map} (99%) rename dist/cjs/{index-710314fd.js => index-49d966e1.js} (93%) create mode 100644 dist/cjs/index-49d966e1.js.map rename dist/cjs/{index-c4d028d8.js => index-63161cb1.js} (96%) rename dist/cjs/{index-c4d028d8.js.map => index-63161cb1.js.map} (98%) rename dist/cjs/{index-95b18747.js => index-6e58a4a2.js} (98%) create mode 100644 dist/cjs/index-6e58a4a2.js.map delete mode 100644 dist/cjs/index-710314fd.js.map delete mode 100644 dist/cjs/index-95b18747.js.map rename dist/cjs/{index-64dcc5d9.js => index-994f886d.js} (95%) rename dist/cjs/{index-64dcc5d9.js.map => index-994f886d.js.map} (98%) rename dist/esm/{LeaveChannel-fcc0bfc3.js => LeaveChannel-da8b5d0b.js} (98%) rename dist/esm/{LeaveChannel-fcc0bfc3.js.map => LeaveChannel-da8b5d0b.js.map} (99%) delete mode 100644 dist/esm/SendbirdProvider.css delete mode 100644 dist/esm/SendbirdProvider.css.map delete mode 100644 dist/esm/index-0c67ae90.js.map rename dist/esm/{index-1cf7b066.js => index-19f570c9.js} (98%) create mode 100644 dist/esm/index-19f570c9.js.map delete mode 100644 dist/esm/index-1cf7b066.js.map rename dist/esm/{index-7bc4a9f7.js => index-8abf69b8.js} (95%) rename dist/esm/{index-7bc4a9f7.js.map => index-8abf69b8.js.map} (98%) rename dist/esm/{index-73379213.js => index-aa89d60a.js} (99%) rename dist/esm/{index-73379213.js.map => index-aa89d60a.js.map} (99%) rename dist/esm/{index-a199094e.js => index-aebda3d2.js} (96%) rename dist/esm/{index-a199094e.js.map => index-aebda3d2.js.map} (98%) rename dist/esm/{index-0c67ae90.js => index-ec3bf9fe.js} (93%) create mode 100644 dist/esm/index-ec3bf9fe.js.map delete mode 100644 dist/index.es.css delete mode 100644 dist/index.es.css.map delete mode 100644 dist/index.es.js delete mode 100644 dist/index.es.js.map delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map diff --git a/.DS_Store b/.DS_Store index fd4a4d3c76b23b520626294842c8fd13790cc314..25c5734f23c83d5bbbcec42d3f2a6f0f0f5a4651 100644 GIT binary patch delta 67 zcmZoMXfc=|#>B)qu~2NHo+2ab#(>?7jI5J+Sgbc^u+C@N*r3R~nVo~51E^%PAjfy+ V$^0UY91K9f$iTp|IYML&GXOoz4^IF9 delta 356 zcmZoMXfc=|#>B!ku~2NHo+2a1#(>?7iyfGm7&#{MFj?2LFr+YKG88kEc;@6MC*|ZP zF)%O)0P#v7*7y$wKo$c7TwPLmaRF4_$)tju%;FLQgX@e;%q*;I>>M0i99+CyvB4Sn z<-sM1C8fnqiAB*MUO-|=MiP`AlAoUgW7mfyCWU3Dmd6W-IOpe;BxdHN7J+qVrlbPZ z#Dr(&rR0}8<(KBA6oU;4hDdO5aB^_Q3rJK~o0yvFD43WT*6Ju!o0}T|*~VtIwVWK{ zs)n|n3AvS3)it$sGr@jfU}S{Q4E#`^B`1*G9#EDJ8m%gN762Z}Lnc41n?w3(fQ dp92_%n+=)2Gf(ChapV9R#01j1IYML&GXN-)UHt$6 diff --git a/README.md b/README.md index 4165590..d436cfa 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,18 @@ ![Languages](https://img.shields.io/badge/language-JAVASCRIPT-orange.svg) [![npm](https://img.shields.io/npm/v/sendbird.svg?style=popout&colorB=red)](https://www.npmjs.com/package/sendbird) +## Note + +v2.0.0-alpha.x is still under QA. Please donot use it for production +Try it only if you want to test OpenChannel + ## Table of contents 1. [Introduction](#introduction) 1. [Before getting started](#before-getting-started) 1. [Getting started](#getting-started) - 1. [UIKit at a glance](#uikit-at-a-glance) - 1. [Appendix](#appendix) + 1. [UIKit at a glance](#uikit-at-a-glance) + 1. [Appendix](#appendix)
diff --git a/dist/cjs/App.js b/dist/cjs/App.js index d9507a9..29b0732 100644 --- a/dist/cjs/App.js +++ b/dist/cjs/App.js @@ -10,25 +10,25 @@ var PropTypes = _interopDefault(require('prop-types')); require('sendbird'); require('./actionTypes-920b541f.js'); require('css-vars-ponyfill'); -require('./index-710314fd.js'); +require('./index-49d966e1.js'); var ChannelList = require('./ChannelList.js'); require('./utils-6aedec02.js'); -require('./index-64dcc5d9.js'); -require('./LeaveChannel-cb2a36b0.js'); +require('./index-994f886d.js'); +require('./LeaveChannel-4cf3cd9c.js'); require('date-fns/isToday'); require('date-fns/format'); require('date-fns/isYesterday'); require('./type-c7a3bee7.js'); require('./utils-a8277ca2.js'); require('react-dom'); -require('./index-6ca9e95e.js'); +require('./index-21269166.js'); var Channel = require('./Channel.js'); -require('./index-95b18747.js'); +require('./index-6e58a4a2.js'); require('date-fns/isSameDay'); require('./utils-c8e36c68.js'); require('date-fns/formatDistanceToNowStrict'); var ChannelSettings = require('./ChannelSettings.js'); -require('./index-c4d028d8.js'); +require('./index-63161cb1.js'); function App(props) { var appId = props.appId, diff --git a/dist/cjs/Channel.js b/dist/cjs/Channel.js index bf63340..fd897b1 100644 --- a/dist/cjs/Channel.js +++ b/dist/cjs/Channel.js @@ -8,14 +8,14 @@ var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); var React = require('react'); var React__default = _interopDefault(React); var PropTypes = _interopDefault(require('prop-types')); -var index = require('./index-710314fd.js'); +var index = require('./index-49d966e1.js'); var utils = require('./utils-6aedec02.js'); -var index$1 = require('./index-64dcc5d9.js'); +var index$1 = require('./index-994f886d.js'); var format = _interopDefault(require('date-fns/format')); var type = require('./type-c7a3bee7.js'); var utils$1 = require('./utils-a8277ca2.js'); require('react-dom'); -var index$2 = require('./index-95b18747.js'); +var index$2 = require('./index-6e58a4a2.js'); var isSameDay = _interopDefault(require('date-fns/isSameDay')); var utils$2 = require('./utils-c8e36c68.js'); var formatDistanceToNowStrict = _interopDefault(require('date-fns/formatDistanceToNowStrict')); @@ -4386,7 +4386,9 @@ function MessageHoc(_ref) { emojiAllMap = _ref.emojiAllMap, membersMap = _ref.membersMap, toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems; + memoizedEmojiListItems = _ref.memoizedEmojiListItems, + renderCustomMessage = _ref.renderCustomMessage, + currentGroupChannel = _ref.currentGroupChannel; var _message$sender = message.sender, sender = _message$sender === void 0 ? {} : _message$sender; @@ -4406,8 +4408,26 @@ function MessageHoc(_ref) { setShowFileViewer = _useState6[1]; var editMessageInputRef = React.useRef(null); + var RenderedMessage = React.useMemo(function () { + if (renderCustomMessage) { + return renderCustomMessage(message, currentGroupChannel); + } + + return null; + }, [message, message.message, renderCustomMessage]); var isByMe = userId === sender.userId || message.requestState === 'pending' || message.requestState === 'failed'; + if (RenderedMessage) { + return React__default.createElement("div", { + className: "sendbird-msg-hoc sendbird-msg--scroll-ref" + }, hasSeperator && React__default.createElement(index$2.DateSeparator, null, React__default.createElement(index.Label, { + type: index.LabelTypography.CAPTION_2, + color: index.LabelColors.ONBACKGROUND_2 + }, format(message.createdAt, 'MMMM dd, yyyy'))), React__default.createElement(RenderedMessage, { + message: message + })); + } + if (showEdit) { return React__default.createElement(index$2.MessageInput, { isEdit: true, @@ -4538,6 +4558,8 @@ MessageHoc.propTypes = { }), ogMetaData: PropTypes.shape({}) }), + renderCustomMessage: PropTypes.func, + currentGroupChannel: PropTypes.shape, hasSeperator: PropTypes.bool, disabled: PropTypes.bool, editDisabled: PropTypes.bool, @@ -4556,6 +4578,8 @@ MessageHoc.propTypes = { MessageHoc.defaultProps = { userId: '', editDisabled: false, + renderCustomMessage: null, + currentGroupChannel: {}, message: {}, hasSeperator: false, disabled: false, @@ -4645,6 +4669,7 @@ function (_Component) { deleteMessage = _this$props2.deleteMessage, updateMessage = _this$props2.updateMessage, resendMessage = _this$props2.resendMessage, + renderCustomMessage = _this$props2.renderCustomMessage, renderChatItem = _this$props2.renderChatItem, emojiContainer = _this$props2.emojiContainer, toggleReaction = _this$props2.toggleReaction, @@ -4690,11 +4715,13 @@ function (_Component) { } return React__default.createElement(MessageHoc, { + renderCustomMessage: renderCustomMessage, key: m.messageId || m.reqId, userId: userId, status: readStatus[m.messageId] || getParsedStatus(m, currentGroupChannel) // show status for pending/failed messages , message: m, + currentGroupChannel: currentGroupChannel, disabled: disabled, membersMap: membersMap, chainTop: chainTop, @@ -4739,6 +4766,7 @@ ConversationScroll.propTypes = { members: PropTypes.arrayOf(PropTypes.shape({})) }).isRequired, renderChatItem: PropTypes.element, + renderCustomMessage: PropTypes.func, useReaction: PropTypes.bool, emojiContainer: PropTypes.shape({}), emojiAllMap: PropTypes.instanceOf(Map), @@ -4753,6 +4781,7 @@ ConversationScroll.defaultProps = { disabled: false, initialized: false, userId: '', + renderCustomMessage: null, renderChatItem: null, onScroll: null, useReaction: true, @@ -5129,6 +5158,7 @@ var ConversationPanel = function ConversationPanel(props) { useReaction = props.useReaction, renderChatItem = props.renderChatItem, renderChatHeader = props.renderChatHeader, + renderCustomMessage = props.renderCustomMessage, renderUserProfile = props.renderUserProfile, disableUserProfile = props.disableUserProfile, renderMessageInput = props.renderMessageInput, @@ -5392,6 +5422,7 @@ var ConversationPanel = function ConversationPanel(props) { toggleReaction: toggleReaction, emojiContainer: emojiContainer, renderChatItem: renderChatItem, + renderCustomMessage: renderCustomMessage, useMessageGrouping: useMessageGrouping, messagesDispatcher: messagesDispatcher, currentGroupChannel: currentGroupChannel, @@ -5489,6 +5520,7 @@ ConversationPanel.propTypes = { // onBeforeSendFileMessage(File) onBeforeUpdateUserMessage: PropTypes.func, renderChatItem: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + renderCustomMessage: PropTypes.func, renderMessageInput: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), renderChatHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), onChatHeaderActionClick: PropTypes.func, @@ -5504,6 +5536,7 @@ ConversationPanel.defaultProps = { onBeforeSendFileMessage: null, onBeforeUpdateUserMessage: null, renderChatItem: null, + renderCustomMessage: null, renderMessageInput: null, renderChatHeader: null, useReaction: true, diff --git a/dist/cjs/Channel.js.map b/dist/cjs/Channel.js.map index 7cf1ff3..fe857d1 100644 --- a/dist/cjs/Channel.js.map +++ b/dist/cjs/Channel.js.map @@ -1 +1 @@ -{"version":3,"file":"Channel.js","sources":["../../../src/smart-components/Conversation/dux/actionTypes.js","../../../src/smart-components/Conversation/types.js","../../../src/smart-components/Conversation/utils.js","../../../src/smart-components/Conversation/dux/initialState.js","../../../src/smart-components/Conversation/dux/reducers.js","../../../src/smart-components/Conversation/hooks/useHandleChannelEvents.js","../../../src/smart-components/Conversation/hooks/useGetChannel.js","../../../src/smart-components/Conversation/hooks/useInitialMessagesFetch.js","../../../src/smart-components/Conversation/hooks/useHandleReconnect.js","../../../src/smart-components/Conversation/hooks/useScrollCallback.js","../../../src/smart-components/Conversation/hooks/useDeleteMessageCallback.js","../../../src/smart-components/Conversation/hooks/useUpdateMessageCallback.js","../../../src/smart-components/Conversation/hooks/useResendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendFileMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSetReadStatus.js","../../../src/ui/ReactionButton/index.jsx","../../../src/smart-components/Conversation/hooks/useMemoizedEmojiListItems.jsx","../../../src/smart-components/Conversation/hooks/useToggleReactionCallback.js","../../../src/ui/MessageStatus/index.jsx","../../../src/ui/ReactionBadge/index.jsx","../../../src/ui/Tooltip/index.jsx","../../../src/ui/TooltipWrapper/index.jsx","../../../src/ui/EmojiReactions/index.jsx","../../../src/ui/Message/memoizedMessageText.jsx","../../../src/hooks/onMouseHover.jsx","../../../src/ui/Message/index.jsx","../../../src/ui/AdminMessage/index.jsx","../../../src/ui/ThumbnailMessage/util.js","../../../src/ui/ThumbnailMessage/index.jsx","../../../src/ui/FileMessage/index.jsx","../../../src/smart-components/Conversation/components/RemoveMessage.jsx","../../../src/ui/UnknownMessage/utils.js","../../../src/ui/UnknownMessage/index.jsx","../../../src/ui/OGMessage/const.js","../../../src/ui/OGMessage/utils.js","../../../src/ui/OGMessage/memoizedMessageText.jsx","../../../src/ui/OGMessage/index.jsx","../../../src/smart-components/Conversation/components/MessageHOC.jsx","../../../src/smart-components/Conversation/components/ConversationScroll.jsx","../../../src/smart-components/Conversation/components/Notification.jsx","../../../src/smart-components/Conversation/components/FrozenNotification.tsx","../../../src/smart-components/Conversation/components/TypingIndicator.jsx","../../../src/smart-components/Conversation/components/MessageInputWrapper.tsx","../../../src/ui/ConnectionStatus/index.jsx","../../../src/ui/ChatHeader/utils.js","../../../src/ui/AutoRefresh/index.jsx","../../../src/ui/ChatHeader/index.jsx","../../../src/smart-components/Conversation/index.jsx"],"sourcesContent":["export const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const RESET_STATE = 'RESET_STATE';\nexport const CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAILURE = 'GET_PREV_MESSAGES_FAILURE';\n\nexport const SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';\nexport const SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';\nexport const SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';\n\nexport const RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';\n\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\n\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const SET_READ_STATUS = 'SET_READ_STATUS';\n","import { isImage, isVideo } from '../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message) => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if ((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return '';\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../../ui/MessageStatus/type';\nimport * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nimport { SendingMessageStatus } from './types';\n\nconst UNDEFINED = 'undefined';\nconst { SUCCEEDED, FAILED, PENDING } = SendingMessageStatus;\n\nexport const scrollIntoLast = (selector, intialTry = 0) => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (channelUrl, pubSub, dispatcher) => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) return subscriber;\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return subscriber;\n};\n\nexport const getParsedStatus = (message, currentGroupChannel) => {\n if (message.requestState === FAILED) {\n return MessageStatusType.FAILED;\n }\n\n if (message.requestState === PENDING) {\n return MessageStatusType.PENDING;\n }\n\n if (message.requestState === SUCCEEDED) {\n if (!currentGroupChannel) {\n return MessageStatusType.SENT;\n }\n\n const unreadCount = currentGroupChannel.getReadReceipt(message);\n if (unreadCount === 0) {\n return MessageStatusType.READ;\n }\n\n const isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0;\n if (isDelivered) {\n return MessageStatusType.DELIVERED;\n }\n\n return MessageStatusType.SENT;\n }\n\n return null;\n};\n\nexport const isOperator = (groupChannel = {}) => {\n const { myRole } = groupChannel;\n return myRole === 'operator';\n};\n\nexport const isDisabledBecauseFrozen = (groupChannel = {}) => {\n const { isFrozen } = groupChannel;\n return isFrozen && !isOperator(groupChannel);\n};\n\nexport const isDisabledBecauseMuted = (groupChannel = {}) => {\n const { myMutedState } = groupChannel;\n return myMutedState === 'muted';\n};\n\nexport const getEmojiCategoriesFromEmojiContainer = (emojiContainer = {}) => (\n emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []\n);\n\nexport const getAllEmojisFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojis = [];\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n allEmojis.push(emojis[emojiIndex]);\n }\n }\n return allEmojis;\n};\n\nexport const getEmojisFromEmojiContainer = (emojiContainer = {}, emojiCategoryId = '') => (\n emojiContainer.emojiCategories\n ? emojiContainer.emojiCategories\n .filter((emojiCategory) => emojiCategory.id === emojiCategoryId)[0].emojis\n : []\n);\n\nexport const getAllEmojisMapFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojisMap = new Map();\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n const { key, url } = emojis[emojiIndex];\n allEmojisMap.set(key, url);\n }\n }\n return allEmojisMap;\n};\n\nexport const getNicknamesMapFromMembers = (members = []) => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const isSameGroup = (message, comparingMessage) => {\n if (\n !message\n || !comparingMessage\n || !message.sender\n || !comparingMessage.sender\n || !message.createdAt\n || !comparingMessage.createdAt\n || !message.sender.userId\n || !comparingMessage.sender.userId\n ) {\n return false;\n }\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage,\n currMessage,\n nextMessage,\n) => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const passUnsuccessfullMessages = (allMessages, newMessage) => {\n const { sendingStatus = UNDEFINED } = newMessage;\n if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) {\n const lastIndexOfSucceededMessage = allMessages\n .map((message) => (\n message.sendingStatus\n || ((message.isAdminMessage && message.isAdminMessage()) ? SUCCEEDED : UNDEFINED)\n ))\n .lastIndexOf(SUCCEEDED);\n if (lastIndexOfSucceededMessage + 1 < allMessages.length) {\n const messages = [...allMessages];\n messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);\n return messages;\n }\n }\n return [\n ...allMessages,\n newMessage,\n ];\n};\n\nexport default getParsedStatus;\n","export default {\n initialized: false,\n loading: false,\n allMessages: [],\n currentGroupChannel: { members: [] },\n hasMore: false,\n lastMessageTimeStamp: 0,\n emojiContainer: {},\n readStatus: {},\n unreadCount: 0,\n unreadSince: null,\n isInvalid: false,\n};\n","import format from 'date-fns/format';\n\nimport * as actionTypes from './actionTypes';\nimport initialState from './initialState';\n\nimport compareIds from '../../../utils/compareIds';\nimport { passUnsuccessfullMessages } from '../utils';\nimport { SendingMessageStatus } from '../types';\n\nconst {\n SUCCEEDED,\n FAILED,\n PENDING,\n} = SendingMessageStatus;\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actionTypes.RESET_STATE:\n return initialState;\n case actionTypes.RESET_MESSAGES:\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMore`\n // the onScroll gets called twice, setting hasMore false prevents this\n hasMore: false,\n allMessages: [],\n };\n case actionTypes.GET_PREV_MESSAGES_START:\n return {\n ...state,\n loading: true,\n };\n case actionTypes.CLEAR_SENT_MESSAGES:\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => (\n m.sendingStatus !== SUCCEEDED\n )),\n ],\n };\n case actionTypes.GET_PREV_MESSAGES_SUCESS: {\n const receivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...action.payload },\n ],\n };\n case actionTypes.SEND_MESSAGEGE_SUCESS: {\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId) ? action.payload : m\n ));\n [...newMessages].sort((a, b) => (\n (\n a.sendingStatus\n && b.sendingStatus\n && a.sendingStatus === SUCCEEDED\n && (\n b.sendingStatus === PENDING\n || b.sendingStatus === FAILED\n )\n ) ? -1 : 1\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SEND_MESSAGEGE_FAILURE: {\n // eslint-disable-next-line no-param-reassign\n action.payload.failed = true;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const { channel, message } = action.payload;\n const { currentGroupChannel = {}, unreadCount, unreadSince } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n if (!compareIds(channel.url, currentGroupChannelUrl)) {\n return state;\n }\n // Excluded overlapping messages\n if (!(state.allMessages.map((msg) => msg.messageId).indexOf(message.messageId) < 0)) {\n return state;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n return {\n ...state,\n unreadCount: unreadCount + 1,\n unreadSince: (unreadCount === 0)\n ? format(new Date(), 'p MMM dd')\n : unreadSince,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.messageId, action.payload.message.messageId)\n ? action.payload.message\n : m\n )),\n };\n case actionTypes.RESEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.MARK_AS_READ:\n return {\n ...state,\n unreadCount: 0,\n unreadSince: null,\n };\n case actionTypes.ON_MESSAGE_DELETED:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n case actionTypes.SET_EMOJI_CONTAINER: {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n }\n case actionTypes.SET_READ_STATUS: {\n return {\n ...state,\n readStatus: action.payload,\n };\n }\n case actionTypes.ON_REACTION_UPDATED: {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n }\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\n\nimport * as messageActions from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\nimport compareIds from '../../../utils/compareIds';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\nfunction useHandleChannelEvents({ currentGroupChannel, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (channelUrl && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n ChannelHandler.onMessageReceived = (channel, message) => {\n if (compareIds(channel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n\n ChannelHandler.onMessageDeleted = (_, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n };\n\n ChannelHandler.onReactionUpdated = (_, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n };\n\n ChannelHandler.onChannelChanged = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelFrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelUnfrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserMuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserUnmuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserBanned = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onOperatorUpdated = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n // Add this channel event handler to the SendBird object.\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [channelUrl, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.GroupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n // this order is important - this mark as read should update the event handler up above\n groupChannel.markAsRead();\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji((emojiContainer_, err) => {\n if (err) {\n logger.error('Channel: Getting emojis failed', err);\n return;\n }\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\nfunction useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams\n && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n });\n }\n }, [channelUrl, userFilledMessageListQuery]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n}) {\n useEffect(() => {\n const wasOffline = !isOnline;\n return () => {\n // state changed from offline to online\n if (wasOffline) {\n logger.info('Refreshing conversation state');\n const { appInfo = {} } = sdk;\n const useReaction = appInfo.isUsingReaction || false;\n\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = useReaction;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n sdk.GroupChannel.getChannel(currentGroupChannel.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.CLEAR_SENT_MESSAGES,\n });\n\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n });\n }\n };\n }, [isOnline]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useScrollCallback({\n currentGroupChannel,\n lastMessageTimeStamp,\n userFilledMessageListQuery,\n}, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMore) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n lastMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMoreMessages = (messages && messages.length > 0);\n const lastMessageTs = hasMoreMessages\n ? messages[0].createdAt\n : null;\n\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore: hasMoreMessages,\n lastMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, lastMessageTimeStamp]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message, cb) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);\n\n // Message is only on local\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (cb) { cb(); }\n return;\n }\n\n // Message is on server\n currentGroupChannel.deleteMessage(message, (err) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);\n if (cb) { cb(err); }\n if (!err) {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n } else {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as topics from '../../../lib/pubSub/topics';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n}, {\n logger,\n pubSub,\n sdk,\n}) {\n return useCallback((messageId, text, cb) => {\n const createParamsDefault = (txt) => {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(text)\n : createParamsDefault(text);\n\n currentGroupChannel.updateUserMessage(messageId, params, (r, e) => {\n logger.info('Channel: Updating message!', params);\n const swapParams = sdk.getErrorFirstCallback();\n let message = r;\n let err = e;\n if (swapParams) {\n message = e;\n err = r;\n }\n if (cb) {\n cb(err, message);\n }\n if (!err) {\n logger.info('Channel: Updating message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentGroupChannel,\n message,\n },\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel: currentGroupChannel,\n },\n );\n } else {\n logger.warning('Channel: Updating message failed!', err);\n }\n });\n }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function'\n && failedMessage.isResendable()\n ) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel\n .resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendMessageCallback({ currentGroupChannel, onBeforeSendUserMessage }, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n () => {\n const text = messageInputRef.current.value;\n const createParamsDefault = (txt) => {\n const message = (typeof txt === 'string') ? txt.trim() : txt;\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefault(text);\n\n logger.info('Channel: Sending message has started', params);\n const pendingMsg = currentGroupChannel.sendUserMessage(params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n if (error) {\n logger.warning('Channel: Sending message failed!', {\n message,\n });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel, onBeforeSendFileMessage,\n}, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((file) => {\n const createParamsDefault = (file_) => {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n };\n\n const createCustomPrams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefault(file);\n\n logger.info('Channel: Uploading file message start!', params);\n const pendingMsg = currentGroupChannel.sendFileMessage(params, (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = response;\n let error = err;\n if (swapParams) {\n message = err;\n error = response;\n }\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', message);\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'), 1000);\n }, [currentGroupChannel, onBeforeSendFileMessage]);\n return [sendMessage];\n}\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\n\nexport default function useSetReadStatus({ allMessages, currentGroupChannel }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (!sdk.ChannelHandler || !currentGroupChannel.url) {\n return () => {};\n }\n // todo: move to reducer?\n const setReadStatus = () => {\n const allReadStatus = allMessages.reduce((accumulator, msg) => {\n if (msg.messageId !== 0) {\n return {\n ...accumulator,\n [msg.messageId]: utils.getParsedStatus(msg, currentGroupChannel),\n };\n }\n return accumulator;\n }, {});\n messagesDispatcher({\n type: messageActionTypes.SET_READ_STATUS,\n payload: allReadStatus,\n });\n };\n if (allMessages.length > 0) {\n setReadStatus();\n }\n\n const channelUrl = currentGroupChannel.url;\n const handler = new sdk.ChannelHandler();\n const handleMessageStatus = (c) => {\n if (channelUrl === c.url) {\n setReadStatus();\n }\n };\n handler.onDeliveryReceiptUpdated = handleMessageStatus;\n handler.onReadReceiptUpdated = handleMessageStatus;\n // Add this channel event handler to the SendBird object.\n const handlerId = uuidv4();\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.addChannelHandler(handlerId, handler);\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.removeChannelHandler(handlerId);\n }\n };\n }, [allMessages, currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst ReactionButton = React.forwardRef((props, ref) => {\n const {\n children,\n width,\n height,\n onClick,\n selected,\n className,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n return (\n onClick(e)}\n role=\"button\"\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n
\n {children}\n
\n \n );\n});\n\nReactionButton.propTypes = {\n children: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n selected: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nReactionButton.defaultProps = {\n selected: false,\n width: '36px',\n height: '36px',\n onClick: () => { },\n className: '',\n};\n\nexport default ReactionButton;\n","import React, { useMemo } from 'react';\n\nimport { EmojiListItems } from '../../../ui/ContextMenu';\nimport ReactionButton from '../../../ui/ReactionButton';\nimport ImageRenderer from '../../../ui/ImageRenderer';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nexport default function useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n}, {\n useReaction,\n logger,\n userId,\n emojiAllList,\n}) {\n return useMemo(() => ({\n parentRef,\n parentContainRef,\n message,\n closeDropdown,\n spaceFromTrigger = {},\n }) => {\n if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {\n logger.warning('Channel: Invalid Params in memoizedEmojiListItems');\n return null;\n }\n\n return (\n \n {\n emojiAllList.map((emoji) => {\n const reactedReaction = message.reactions\n .filter((reaction) => reaction.key === emoji.key)[0];\n const isReacted = reactedReaction\n ? !(reactedReaction.userIds.indexOf(userId) < 0)\n : false;\n return (\n {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n \n }\n />\n \n );\n })\n }\n \n );\n }, [emojiContainer, toggleReaction]);\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Loader from '../Loader';\nimport MessageStatusType from './type';\n\nimport { getMessageCreatedAt } from '../../utils/utils';\n\nconst MessageStatusTypes = MessageStatusType;\nexport { MessageStatusTypes };\nexport default function MessageStatus({\n message,\n status,\n className,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n const label = () => {\n switch (status) {\n case MessageStatusType.FAILED:\n case MessageStatusType.PENDING: {\n return null;\n }\n case MessageStatusType.SENT:\n case MessageStatusType.DELIVERED:\n case MessageStatusType.READ: {\n return (\n \n {getMessageCreatedAt(message)}\n \n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n \n \n \n ),\n SENT: ,\n DELIVERED: ,\n READ: ,\n FAILED: ,\n };\n\n return (\n
\n {icon[status]}\n
\n {label(status)}\n
\n );\n}\n\nMessageStatus.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nMessageStatus.defaultProps = {\n message: null,\n status: '',\n className: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst ReactionBadge = React.forwardRef((props, ref) => {\n const {\n className,\n children,\n count,\n selected,\n isAdd,\n onClick,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (selected && !isAdd) {\n injectingClassName.unshift('sendbird-reaction-badge--selected');\n } else if (isAdd) {\n injectingClassName.push('sendbird-reaction-badge--is-add');\n } else {\n injectingClassName.unshift('sendbird-reaction-badge');\n }\n\n return (\n \n
\n
\n {children}\n
\n \n
\n \n );\n});\n\nReactionBadge.propTypes = {\n children: PropTypes.element.isRequired,\n count: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isAdd: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nReactionBadge.defaultProps = {\n className: '',\n count: '',\n selected: false,\n isAdd: false,\n onClick: () => { },\n};\n\nexport default ReactionBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label from '../Label';\n\nconst CLASS_NAME = 'sendbird-tooltip';\n\nexport default function Tooltip({\n className,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n
\n \n {children}\n \n
\n );\n}\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n};\n\nTooltip.defaultProps = {\n className: '',\n children: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-tooltip-wrapper';\nconst SPACE_FROM_TRIGGER = 8;\n\nexport default function TooltipWrapper({\n className,\n children,\n hoverTooltip,\n // clickTooltip can be added later\n}) {\n const injectingClassName = Array.isArray(className)\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n const [showHoverTooltip, setShowHoverTooltip] = useState(false);\n const childrenRef = useRef(null);\n\n return (\n { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n \n {children}\n \n {\n showHoverTooltip && (\n \n \n \n {hoverTooltip}\n \n \n \n )\n }\n \n );\n}\n\nTooltipWrapper.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n hoverTooltip: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n};\nTooltipWrapper.defaultProps = {\n className: '',\n};\n","import React, { useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ReactionBadge from '../ReactionBadge';\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ContextMenu from '../ContextMenu';\nimport Tooltip from '../Tooltip';\nimport TooltipWrapper from '../TooltipWrapper';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function EmojiReactions({\n className,\n userId,\n message,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-emoji-reactions');\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const imageWidth = '20px';\n const imageHeight = '20px';\n const emojiReactionAddRef = useRef(null);\n const { reactions = [] } = message;\n const messageReactions = reactions;\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n {\n messageReactions && (\n messageReactions.map((reaction) => {\n const { userIds = [] } = reaction;\n const emojiUrl = emojiAllMap.get(reaction.key) || '';\n const reactedUserCount = userIds.length;\n const reactedByMe = !(userIds.indexOf(userId) < 0);\n const nicknames = userIds\n .filter((currentUserId) => currentUserId !== userId)\n .map((currentUserId) => (\n membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER\n ));\n const stringSetForMe = (nicknames.length > 0)\n ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU;\n return (\n 0 && (\n \n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n \n \n )\n }\n >\n toggleReaction(message, reaction.key, reactedByMe)}\n >\n \n )}\n />\n \n \n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n );\n}\n\nEmojiReactions.propTypes = {\n userId: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n message: PropTypes.shape({\n reactions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\nEmojiReactions.defaultProps = {\n className: '',\n membersMap: new Map(),\n userId: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport uuidv4 from '../../utils/uuid';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(/\\r/);\n const matchedMessage = splitMessage\n .map((word) => (word !== '' ? word :
));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import { useEffect } from 'react';\n\nconst MOUSE_ENTER = 'mouseenter';\nconst MOUSE_LEAVE = 'mouseleave';\n\nconst useMouseHover = ({\n ref,\n setHover,\n}) => {\n const handleMouseOver = () => {\n if (ref.current) {\n setHover(true);\n }\n };\n const handleMouseOut = () => {\n if (ref.current) {\n setHover(false);\n }\n };\n\n useEffect(() => {\n const { current } = ref;\n current.addEventListener(MOUSE_ENTER, handleMouseOver);\n current.addEventListener(MOUSE_LEAVE, handleMouseOut);\n return () => {\n current.removeEventListener(MOUSE_ENTER, handleMouseOver);\n current.removeEventListener(MOUSE_LEAVE, handleMouseOut);\n };\n });\n};\n\nexport default useMouseHover;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport UserProfile from '../UserProfile';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport MessageStatus from '../MessageStatus';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n} from './utils';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function Message(props) {\n const {\n isByMe,\n userId,\n message,\n className,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n } = props;\n\n if (!message) return null;\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n injectingClassName.push(`sendbird-message${isByMe ? '--outgoing' : '--incoming'}`);\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-user-message-word',\n });\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nMessage.propTypes = {\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showEdit: PropTypes.func,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n userId: '',\n resendMessage: noop,\n className: '',\n showEdit: noop,\n showRemove: noop,\n status: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUserMessage({\n userId,\n message,\n showEdit,\n disabled,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n \n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n { showRemove(true); }}\n // onResend={() => resendMessage(message)}\n // duplicated and should replace to more\n />\n
\n )\n }\n
\n
\n
\n
\n \n \n \n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n \n \n );\n}\n\nfunction IncomingUserMessage({\n userId,\n message,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n // showProfile && ()\n }\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-user-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n
\n \n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n
\n
\n
\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nIncomingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingUserMessage.defaultProps = {\n message: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nOutgoingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n disabled: PropTypes.bool,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUserMessage.defaultProps = {\n message: {},\n resendMessage: noop,\n showEdit: noop,\n showRemove: noop,\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function AdminMessage({\n className,\n message,\n}) {\n if (!message.messageType || message.messageType !== 'admin') { // change to use message.isAdminMessage()\n return null;\n }\n\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n \n
\n );\n}\n\nAdminMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nAdminMessage.defaultProps = {\n message: {},\n className: '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n getMessageCreatedAt,\n getIsSentFromStatus,\n};\n","import React, { useContext, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport {\n getMessageCreatedAt,\n getIsSentFromStatus,\n} from './util';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n isImage,\n isVideo,\n unSupported,\n} from '../FileViewer/types';\nimport {\n getSenderName,\n getSenderProfileUrl,\n} from '../../utils/utils';\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst noop = () => { };\n\nconst OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message';\nconst INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function ThumbnailMessage({\n message = {},\n userId,\n disabled,\n isByMe,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n return (\n isByMe\n ? (\n \n )\n : (\n \n )\n );\n}\n\nexport function OutgoingThumbnailMessage({\n message = {},\n userId,\n disabled,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n isMessageSent && showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n )\n }\n
\n
\n \n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n role=\"button\"\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n \n \n \n );\n}\n\nexport function IncomingThumbnailMessage({\n message = {},\n userId,\n onClick,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const reactionAddRef = useRef(null);\n const avatarRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n !chainTop && (\n \n {getSenderName(message) || ''}\n \n )\n }\n
\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_THUMBNAIL_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string,\n resendMessage: PropTypes.func,\n status: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n showRemove: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\nThumbnailMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n resendMessage: noop,\n onClick: noop,\n showRemove: noop,\n status: '',\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nOutgoingThumbnailMessage.defaultProps = {\n status: '',\n};\n\nIncomingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nIncomingThumbnailMessage.defaultProps = {\n status: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\n\nimport { getSenderProfileUrl, getSenderName, getMessageCreatedAt } from '../../utils/utils';\nimport {\n truncate,\n getIsSentFromStatus,\n} from './utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst MAX_TRUNCATE_LENGTH = 40;\nconst GROUPAING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\nconst noop = () => { };\n\nfunction checkFileType(fileUrl) {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport function OutgoingFileMessage({\n message,\n userId,\n status,\n showRemove,\n disabled,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n url,\n } = message;\n const openFileUrl = () => { window.open(url); };\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n const showEmojiReactions = isMessageSent && useReaction && message.reactions\n && (message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n {\n checkFileType(url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n \n \n );\n}\n\nexport function IncomingFileMessage({\n message,\n userId,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const openFileUrl = () => { window.open(message.url); };\n const messageRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-file-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n {\n checkFileType(message.url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n \n )\n }\n
\n
\n
\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n \n \n );\n}\n\nOutgoingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingFileMessage.defaultProps = {\n status: '',\n showRemove: noop,\n resendMessage: noop,\n message: {},\n userId: '',\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nIncomingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingFileMessage.defaultProps = {\n message: {},\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nconst MessageSwitch = ({\n message,\n userId,\n disabled,\n isByMe,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) => (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n);\n\n\nMessageSwitch.propTypes = {\n message: PropTypes.shape({}),\n userId: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessageSwitch.defaultProps = {\n message: {},\n isByMe: false,\n disabled: false,\n showRemove: noop,\n resendMessage: noop,\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nexport default MessageSwitch;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nconst RemoveMessage = (props) => {\n const {\n onCloseModal,\n onDeleteMessage,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n );\n};\n\nRemoveMessage.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onDeleteMessage: PropTypes.func.isRequired,\n};\n\nexport default RemoveMessage;\n","import format from 'date-fns/format';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport default {\n getMessageCreatedAt,\n};\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst CLASS_NAME = 'sendbird-unknown-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function UnknownMessage({\n message,\n isByMe,\n status,\n className,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n injectingClassName.push(`${CLASS_NAME}${isByMe ? '--outgoing' : '--incoming'}`);\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n isByMe: PropTypes.bool,\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nUnknownMessage.defaultProps = {\n isByMe: false,\n status: '',\n className: '',\n showRemove: () => { },\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUnknownMessage({\n message,\n status,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-outgoing-unknown-message';\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { showRemove(true); closeDropdown(); }}\n >\n Delete\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n \n \n );\n}\n\nfunction IncomingUnknownMessage({\n message,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-incoming-unknown-message';\n const { sender } = message;\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${className}__left__sender-profile-image`}\n src={sender.profileUrl}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n \n {sender.nickname || stringSet.NO_NAME}\n \n )\n }\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n
\n {\n !chainBottom && (\n \n {utils.getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nOutgoingUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n status: PropTypes.string.isRequired,\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUnknownMessage.defaultProps = {\n showRemove: () => { },\n};\n\nIncomingUnknownMessage.propTypes = {\n message: PropTypes.shape({\n sender: PropTypes.shape({\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }).isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","export const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const OG_MESSAGE = 'sendbird-og-message';\nexport const OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message';\nexport const INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message';\nexport const generateMockMessage = (process) => {\n const message = {\n message: 'go to this link sendbird.com it will be usefull to you!!',\n ogMetaData: {\n title: 'This is the TITLE',\n description: 'I\\'m description I\\'m description I\\'m description I\\'m description ',\n url: 'https://sendbird.com/',\n defaultImage: {\n url: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n alt: 'test',\n },\n },\n sender: {\n profileUrl: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n nickname: 'Hoonying',\n },\n createdAt: 2000000,\n };\n if (process && typeof process === 'function') {\n return process(message);\n }\n return message;\n};\n\nexport default {\n URL_REG,\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n generateMockMessage,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const copyToClipboard = (text) => {\n try {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path\n // to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const checkOGIsEnalbed = (message) => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n\nexport default {\n getSenderName,\n createUrlTester,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { createUrlTester } from './utils';\nimport { URL_REG } from './const';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst WORD_COLOR = LabelColors.ONBACKGROUND_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\nconst isUrl = createUrlTester(URL_REG);\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n} from './const';\nimport {\n getSenderName,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n} from './utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport './index.scss';\n\nimport UserProfile from '../UserProfile';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport Avatar from '../Avatar/index';\n\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst GROUPING_PADDING = '1px';\nconst NORAML_PADDING = '8px';\n\nconst OGMessageSwitch = ({\n isByMe,\n userId,\n status,\n message,\n disabled,\n showEdit,\n chainTop,\n className,\n membersMap,\n showRemove,\n useReaction,\n emojiAllMap,\n chainBottom,\n resendMessage,\n toggleReaction,\n memoizedEmojiListItems,\n}) => {\n const { ogMetaData } = message;\n const injectingClassName = Array.isArray(className) ? className : [className];\n\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n });\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n};\n\nfunction OutgoingOGMessage(props) {\n const {\n status,\n userId,\n message,\n disabled,\n openLink,\n showEdit,\n chainTop,\n showRemove,\n membersMap,\n chainBottom,\n emojiAllMap,\n useReaction,\n resendMessage,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n \n \n );\n}\n\nfunction IncomingOGMessage(props) {\n const {\n userId,\n message,\n openLink,\n chainTop,\n membersMap,\n chainBottom,\n useReaction,\n emojiAllMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_OG_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n \n )}\n />\n
\n
\n \n \n );\n}\n\nexport default OGMessageSwitch;\n\nconst noop = () => { };\n\nOGMessageSwitch.propTypes = {\n isByMe: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n useReaction: PropTypes.bool.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n status: PropTypes.string,\n disabled: PropTypes.bool,\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n toggleReaction: PropTypes.func,\n membersMap: PropTypes.instanceOf(Map),\n emojiAllMap: PropTypes.instanceOf(Map),\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nOGMessageSwitch.defaultProps = {\n className: '',\n status: '',\n disabled: false,\n showEdit: noop,\n showRemove: noop,\n resendMessage: noop,\n toggleReaction: noop,\n membersMap: new Map(),\n emojiAllMap: new Map(),\n memoizedEmojiListItems: noop,\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingOGMessage.propTypes = {\n status: PropTypes.string,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n isResendable: PropTypes.func,\n errorCode: PropTypes.number,\n }).isRequired,\n disabled: PropTypes.bool.isRequired,\n openLink: PropTypes.func.isRequired,\n showEdit: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingOGMessage.defaultProps = {\n status: '',\n};\n\nIncomingOGMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n openLink: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport format from 'date-fns/format';\n\nimport Message from '../../../ui/Message';\nimport AdminMessage from '../../../ui/AdminMessage';\nimport ThumbnailMessage from '../../../ui/ThumbnailMessage';\nimport FileMessage from '../../../ui/FileMessage';\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\nimport RemoveMessageModal from './RemoveMessage';\nimport UnknownMessage from '../../../ui/UnknownMessage';\nimport OGMessage from '../../../ui/OGMessage';\n\nimport { MessageTypes, getMessageType } from '../types';\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n status,\n resendMessage,\n useReaction,\n chainTop,\n chainBottom,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const { sender = {} } = message;\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n const isByMe = (userId === sender.userId)\n || (message.requestState === 'pending')\n || (message.requestState === 'failed');\n\n if (showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: ,\n [MessageTypes.FILE]: (\n \n ),\n [MessageTypes.OG]: (\n \n ),\n [MessageTypes.THUMBNAIL]: (\n \n ),\n [MessageTypes.USER]: (\n \n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={() => {\n deleteMessage(message, () => {\n setShowFileViewer(false);\n });\n }}\n isByMe={isByMe}\n />\n )\n }\n {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n }\n
\n );\n}\n\nMessageHoc.propTypes = {\n userId: PropTypes.string,\n message: PropTypes.shape({\n isFileMessage: PropTypes.func,\n isAdminMessage: PropTypes.func,\n isUserMessage: PropTypes.func,\n isDateSeperator: PropTypes.func,\n // should be a number, but there's a bug in SDK shich returns string\n messageId: PropTypes.number,\n type: PropTypes.string,\n createdAt: PropTypes.number,\n message: PropTypes.string,\n requestState: PropTypes.string,\n messageType: PropTypes.string,\n sender: PropTypes.shape({ userId: PropTypes.string }),\n ogMetaData: PropTypes.shape({}),\n }),\n hasSeperator: PropTypes.bool,\n disabled: PropTypes.bool,\n editDisabled: PropTypes.bool,\n deleteMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nMessageHoc.defaultProps = {\n userId: '',\n editDisabled: false,\n message: {},\n hasSeperator: false,\n disabled: false,\n status: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport './conversation-scroll.scss';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nimport MessageHOC from './MessageHOC';\nimport {\n getParsedStatus,\n compareMessagesForGrouping,\n} from '../utils';\n\nexport default class ConversationScroll extends Component {\n onScroll = (e) => {\n const {\n scrollRef,\n hasMore,\n messagesDispatcher,\n onScroll,\n currentGroupChannel,\n } = this.props;\n\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const first = nodes[0];\n onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n first.scrollIntoView();\n }\n });\n }\n\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n }\n\n render() {\n const {\n userId,\n disabled,\n scrollRef,\n readStatus,\n membersMap,\n initialized,\n allMessages,\n useReaction,\n emojiAllMap,\n editDisabled,\n deleteMessage,\n updateMessage,\n resendMessage,\n renderChatItem,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n } = this.props;\n return (\n
\n \n
\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n initialized\n && allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n if (renderChatItem) {\n return (\n \n {\n renderChatItem({\n message: m,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n })\n }\n
\n );\n }\n\n return (\n \n );\n },\n )\n }\n
\n
\n \n );\n }\n}\n\nConversationScroll.propTypes = {\n // https://stackoverflow.com/a/52646941\n scrollRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}),\n ]),\n }).isRequired,\n hasMore: PropTypes.bool,\n messagesDispatcher: PropTypes.func.isRequired,\n onScroll: PropTypes.func,\n initialized: PropTypes.bool,\n editDisabled: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n allMessages: PropTypes.arrayOf(PropTypes.shape({\n createdAt: PropTypes.number,\n })).isRequired,\n deleteMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n readStatus: PropTypes.shape({}).isRequired,\n currentGroupChannel: PropTypes.shape({\n markAsRead: PropTypes.func,\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n renderChatItem: PropTypes.element,\n useReaction: PropTypes.bool,\n emojiContainer: PropTypes.shape({}),\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n useMessageGrouping: PropTypes.bool,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nConversationScroll.defaultProps = {\n hasMore: false,\n editDisabled: false,\n disabled: false,\n initialized: false,\n userId: '',\n renderChatItem: null,\n onScroll: null,\n useReaction: true,\n emojiContainer: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n useMessageGrouping: true,\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './notification.scss';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default function Notification({\n count,\n time,\n onClick,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const timeArray = time.split(' ');\n timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON);\n return (\n // eslint-disable-next-line\n
\n \n \n
\n );\n}\n\nNotification.propTypes = {\n count: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n time: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nNotification.defaultProps = {\n count: 0,\n time: '',\n};\n","import React, { useContext } from 'react';\n\nimport './notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\n\nconst TypingIndicatorText = ({ members }) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nfunction TypingIndicator({ channelUrl, sb, logger }) {\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState([]);\n\n useEffect(() => {\n if (sb && sb.ChannelHandler) {\n sb.removeChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new sb.ChannelHandler();\n // there is a possible warning in here - setState called after unmount\n handler.onTypingStatusUpdated = (groupChannel) => {\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n const members = groupChannel.getTypingMembers();\n if (groupChannel.url === channelUrl) {\n setTypingMembers(members);\n }\n };\n sb.addChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb && sb.removeChannelHandler) {\n sb.removeChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n \n );\n}\n\nTypingIndicator.propTypes = {\n channelUrl: PropTypes.string.isRequired,\n sb: PropTypes.shape({\n ChannelHandler: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n addChannelHandler: PropTypes.func,\n }).isRequired,\n logger: PropTypes.shape({\n info: PropTypes.func,\n }).isRequired,\n};\n\nexport default TypingIndicator;\n","// Logic required to handle message input rendering\n\nimport React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\n\nimport { RenderMessageInputProps } from '../../../index';\nimport * as utils from '../utils.js';\n\nimport MessageInput from '../../../ui/MessageInput';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: Sendbird.GroupChannel;\n user: Sendbird.User;\n isOnline: boolean;\n initialized: boolean;\n onSendMessage(): void;\n onFileUpload(): void;\n renderMessageInput(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n isOnline,\n initialized,\n}: Props, ref: React.RefObject): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // custom message\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n {\n channel.startTyping();\n }}\n onSendMessage={onSendMessage}\n onFileUpload={onFileUpload}\n />\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\nimport './index.scss';\n\nfunction ConnectionStatus() {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n );\n}\n\nexport default ConnectionStatus;\n","import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict';\nimport { LabelStringSet } from '../Label';\n\nexport const prettyDate = (date) => formatDistanceToNowStrict(date, { addSuffix: true });\n\nexport const getOthersLastSeenAt = (channel) => {\n if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) {\n return '';\n }\n const lastSeenList = [...Object.values(channel.getReadStatus())];\n const lastSeenAt = lastSeenList.length > 0\n ? lastSeenList[0].last_seen_at\n : 0;\n if (lastSeenAt === 0) {\n return '';\n }\n return prettyDate(lastSeenAt);\n};\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default function AutoRefresh({\n repeatFunc,\n}) {\n const [label, setLabel] = useState(repeatFunc());\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (label !== repeatFunc()) {\n setLabel(repeatFunc());\n }\n }, 10000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (
{label}
);\n}\n\nAutoRefresh.propTypes = {\n repeatFunc: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport AutoRefresh from '../AutoRefresh';\nimport ChannelAvatar from '../ChannelAvatar/index';\n\nexport default function ChatHeader(props) {\n const {\n currentGroupChannel,\n currentUser,\n title,\n subTitle,\n isActive,\n isMuted,\n onActionClick,\n theme,\n } = props;\n const { userId } = currentUser;\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n \n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n \n {\n (typeof isActive === 'string' && isActive === 'true') || (typeof isActive === 'boolean' && isActive)\n ?
\n : null\n }\n \n {\n subTitle\n || utils.getOthersLastSeenAt(currentGroupChannel)} />\n }\n \n
\n
\n {\n (typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted)\n ? \n : null\n }\n \n \n \n
\n
\n );\n}\n\nChatHeader.propTypes = {\n currentGroupChannel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n }),\n theme: PropTypes.string,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n title: PropTypes.string,\n subTitle: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n isActive: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isMuted: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n onActionClick: PropTypes.func,\n};\n\nChatHeader.defaultProps = {\n currentGroupChannel: {},\n title: '',\n theme: 'light',\n subTitle: '',\n isActive: false,\n isMuted: false,\n currentUser: {},\n onActionClick: () => { },\n};\n","import React, {\n useEffect,\n useRef,\n useReducer,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as messageActionTypes from './dux/actionTypes';\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useSetReadStatus from './hooks/useSetReadStatus';\nimport useMemoizedEmojiListItems from './hooks/useMemoizedEmojiListItems';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\n\nimport ConversationScroll from './components/ConversationScroll';\nimport Notification from './components/Notification';\nimport FrozenNotification from './components/FrozenNotification';\nimport TypingIndicator from './components/TypingIndicator';\nimport MessageInputWrapper from './components/MessageInputWrapper';\nimport ConnectionStatus from '../../ui/ConnectionStatus';\nimport ChatHeader from '../../ui/ChatHeader';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\n\nconst noop = () => { };\n\nexport const ConversationPanel = (props) => {\n const {\n channelUrl,\n stores: { sdkStore, userStore },\n config: {\n userId,\n logger,\n pubSub,\n isOnline,\n theme,\n },\n dispatchers: {\n reconnect,\n },\n queries = {},\n useReaction,\n renderChatItem,\n renderChatHeader,\n renderUserProfile,\n disableUserProfile,\n renderMessageInput,\n useMessageGrouping,\n onChatHeaderActionClick,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n } = props;\n const { sdk } = sdkStore;\n const { config } = props;\n const sdkError = sdkStore.error;\n const sdkInit = sdkStore.initialized;\n const { user } = userStore;\n\n if (queries.messageListQuery) {\n // eslint-disable-next-line no-console\n console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead');\n }\n\n const userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery;\n\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n loading,\n hasMore,\n initialized,\n unreadCount,\n unreadSince,\n isInvalid,\n currentGroupChannel = {},\n lastMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n const { isFrozen, isBroadcast } = currentGroupChannel;\n const { appInfo = {} } = sdk;\n const usingReaction = (\n (appInfo.isUsingReaction && !isBroadcast) || useReaction || false\n );\n\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n\n const emojiAllList = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisFromEmojiContainer(emojiContainer)\n : []\n ), [emojiContainer]);\n\n const nicknamesMap = useMemo(() => (\n usingReaction\n ? utils.getNicknamesMapFromMembers(currentGroupChannel.members)\n : new Map()\n ), [currentGroupChannel.members]);\n\n const onScrollCallback = useScrollCallback({\n currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery,\n }, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n const memoizedEmojiListItems = useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n }, {\n useReaction: usingReaction,\n logger,\n userId,\n emojiAllList,\n });\n\n // to create message-datasource\n useGetChannel(\n { channelUrl, sdkInit },\n { messagesDispatcher, sdk, logger },\n );\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n { currentGroupChannel, sdkInit, userId },\n { messagesDispatcher, sdk, logger },\n );\n\n useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subScriber = utils.pubSubHandler(channelUrl, pubSub, messagesDispatcher);\n return () => {\n utils.pubSubHandleRemover(subScriber);\n };\n }, [channelUrl, sdkInit]);\n\n // to create initial read status\n useSetReadStatus(\n { allMessages, currentGroupChannel },\n { messagesDispatcher, sdk, logger },\n );\n\n // handling connection breaks\n useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n });\n\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage },\n { logger, sdk, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, onSendMessage] = useSendMessageCallback(\n { currentGroupChannel, onBeforeSendUserMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n const [onSendFileMessage] = useSendFileMessageCallback(\n { currentGroupChannel, onBeforeSendFileMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n\n if (sdkError) {\n return (\n
\n {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n
\n );\n }\n if (!channelUrl) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n return (\n \n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n \n )\n }\n {\n isFrozen && (\n \n )\n }\n {\n unreadCount > 0 && (\n {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n // there is no scroll\n if (scrollRef.current.scrollTop === 0) {\n currentGroupChannel.markAsRead();\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n }\n }}\n time={unreadSince}\n />\n )\n }\n \n
\n \n
\n \n
\n {\n !isOnline && (\n \n )\n }\n
\n \n );\n};\n\nConversationPanel.propTypes = {\n channelUrl: PropTypes.string,\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n GroupChannel: PropTypes.any,\n ChannelHandler: PropTypes.any,\n addChannelHandler: PropTypes.func,\n UserMessageParams: PropTypes.any,\n FileMessageParams: PropTypes.any,\n getAllEmoji: PropTypes.func,\n appInfo: PropTypes.shape({}),\n }),\n error: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n reconnect: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n userId: PropTypes.string.isRequired,\n isOnline: PropTypes.bool.isRequired,\n theme: PropTypes.string,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n messageListParams: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n // deprecate in v1.3\n messageListQuery: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeSendUserMessage: PropTypes.func, // onBeforeSendUserMessage(text)\n onBeforeSendFileMessage: PropTypes.func, // onBeforeSendFileMessage(File)\n onBeforeUpdateUserMessage: PropTypes.func,\n renderChatItem: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderMessageInput: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderChatHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChatHeaderActionClick: PropTypes.func,\n useReaction: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n useMessageGrouping: PropTypes.bool,\n};\n\nConversationPanel.defaultProps = {\n channelUrl: null,\n queries: {},\n onBeforeSendUserMessage: null,\n onBeforeSendFileMessage: null,\n onBeforeUpdateUserMessage: null,\n renderChatItem: null,\n renderMessageInput: null,\n renderChatHeader: null,\n useReaction: true,\n disableUserProfile: false,\n renderUserProfile: null,\n useMessageGrouping: true,\n onChatHeaderActionClick: noop,\n};\n\nexport const {\n getEmojiCategoriesFromEmojiContainer,\n getAllEmojisFromEmojiContainer,\n getEmojisFromEmojiContainer,\n} = utils;\n\nexport default withSendbirdContext(ConversationPanel);\n"],"names":["RESET_MESSAGES","RESET_STATE","CLEAR_SENT_MESSAGES","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","SEND_MESSAGEGE_START","SEND_MESSAGEGE_SUCESS","SEND_MESSAGEGE_FAILURE","RESEND_MESSAGEGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","SET_READ_STATUS","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","getMessageType","message","isUserMessage","messageType","ogMetaData","isAdminMessage","isFileMessage","isImage","type","isVideo","UNDEFINED","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","pubSubHandleRemover","subscriber","forEach","s","remove","pubSubHandler","channelUrl","pubSub","dispatcher","Map","subscribe","set","topics","msg","channel","url","channelActions","payload","fromSelector","messageId","getParsedStatus","currentGroupChannel","requestState","MessageStatusType","SENT","unreadCount","getReadReceipt","READ","isDelivered","getDeliveryReceipt","DELIVERED","isOperator","groupChannel","myRole","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","myMutedState","getEmojiCategoriesFromEmojiContainer","emojiContainer","emojiCategories","getAllEmojisFromEmojiContainer","allEmojis","categoryIndex","emojis","emojiIndex","push","getEmojisFromEmojiContainer","emojiCategoryId","filter","emojiCategory","id","getAllEmojisMapFromEmojiContainer","allEmojisMap","key","getNicknamesMapFromMembers","members","nicknamesMap","memberIndex","userId","nickname","getMessageCreatedAt","format","createdAt","isSameGroup","comparingMessage","sender","sendingStatus","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","passUnsuccessfullMessages","allMessages","newMessage","lastIndexOfSucceededMessage","map","lastIndexOf","messages","splice","initialized","loading","hasMore","lastMessageTimeStamp","readStatus","unreadSince","isInvalid","reducer","state","action","actionTypes","initialState","m","receivedMessages","stateChannel","stateChannelUrl","actionChannelUrl","filteredAllMessages","find","compareIds","newMessages","reqId","sort","a","b","failed","currentGroupChannelUrl","indexOf","Date","applyReactionEvent","useHandleChannelEvents","sdkInit","messagesDispatcher","sdk","logger","useEffect","messageReceiverId","uuidv4","ChannelHandler","info","onMessageReceived","messageActions","onMessageUpdated","onMessageDeleted","_","onReactionUpdated","reactionEvent","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onUserMuted","onUserUnmuted","onUserBanned","onOperatorUpdated","addChannelHandler","removeChannelHandler","useSetChannel","GroupChannel","getChannel","then","messageActionTypes","markAsRead","catch","e","warning","getAllEmoji","emojiContainer_","err","useInitialMessagesFetch","userFilledMessageListQuery","MessageListParams","getMessagesByMessageId","messageListParams","prevResultSize","isInclusive","includeReplies","includeReaction","Object","keys","getMessagesByTimestamp","getTime","finally","utils","useHandleReconnect","isOnline","wasOffline","appInfo","useReaction","isUsingReaction","lastMessageTime","useScrollCallback","useCallback","cb","hasMoreMessages","lastMessageTs","useDeleteMessageCallback","deleteMessage","useUpdateMessageCallback","onBeforeUpdateUserMessage","text","createParamsDefault","txt","params","UserMessageParams","createCustomPrams","updateUserMessage","r","swapParams","getErrorFirstCallback","publish","useResendMessageCallback","failedMessage","file","isResendable","resendUserMessage","resendFileMessage","console","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","useRef","sendMessage","current","value","trim","pendingMsg","sendUserMessage","res","useSendFileMessageCallback","onBeforeSendFileMessage","file_","FileMessageParams","sendFileMessage","response","localUrl","URL","createObjectURL","useSetReadStatus","setReadStatus","allReadStatus","reduce","accumulator","handler","handleMessageStatus","c","onDeliveryReceiptUpdated","onReadReceiptUpdated","handlerId","ReactionButton","React","forwardRef","props","ref","children","width","height","onClick","selected","className","injectingClassName","Array","isArray","join","slice","propTypes","PropTypes","element","isRequired","func","bool","oneOfType","number","string","arrayOf","defaultProps","useMemoizedEmojiListItems","toggleReaction","emojiAllList","useMemo","parentRef","parentContainRef","closeDropdown","spaceFromTrigger","EmojiListItems","emoji","reactedReaction","reactions","reaction","isReacted","userIds","ImageRenderer","Icon","IconTypes","EMOJI_FAILED","useToggleReactionCallback","deleteReaction","addReaction","MessageStatus","status","label","Label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_2","icon","Loader","SPINNER","IconColors","ERROR","objectOf","array","object","ReactionBadge","count","isAdd","unshift","ONBACKGROUND_1","CLASS_NAME","Tooltip","SPACE_FROM_TRIGGER","TooltipWrapper","hoverTooltip","useState","showHoverTooltip","setShowHoverTooltip","childrenRef","bottom","left","offsetWidth","EmojiReactions","emojiAllMap","membersMap","memoizedEmojiListItems","MemoizedEmojiListItems","imageWidth","imageHeight","emojiReactionAddRef","messageReactions","useContext","LocalizationContext","stringSet","emojiUrl","get","reactedUserCount","reactedByMe","nicknames","currentUserId","TOOLTIP__UNKOWN_USER","stringSetForMe","TOOLTIP__AND_YOU","TOOLTIP__YOU","size","ContextMenu","toggleDropdown","ON_BACKGROUND_3","EMOJI_REACTIONS_ADD","y","shape","instanceOf","WORD_TYPOGRAPHY","BODY_1","EDITED_COLOR","useMemoizedMessageText","updatedAt","splitMessage","split","matchedMessage","word","MESSAGE_EDITED","MOUSE_ENTER","MOUSE_LEAVE","useMouseHover","setHover","handleMouseOver","handleMouseOut","addEventListener","removeEventListener","noop","GROUPING_PADDING","NORMAL_PADDING","Message","isByMe","resendMessage","disabled","showEdit","showRemove","chainTop","chainBottom","memoizedMessageText","OutgoingUserMessage","MemoizedMessageText","messageRef","parentRefReactions","parentRefMenus","isMessageSent","getIsSentFromStatus","mousehover","setMousehover","moreActive","setMoreActive","handleMoreIconClick","handleMoreIconBlur","paddingTop","paddingBottom","IconButton","MORE","CONTENT_INVERSE","MenuItems","MenuItem","copyToClipboard","IncomingUserMessage","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","showReactionAddButton","showEmojiReactions","Avatar","getSenderProfileUrl","user","close","UserProfile","CAPTION_2","getSenderName","AdminMessage","OUTGOING_THUMBNAIL_MESSAGE","INCOMING_THUMBNAIL_MESSAGE","ThumbnailMessage","OutgoingThumbnailMessage","menuRef","reactionAddRef","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","PLAY","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","unSupported","UNKNOWN__UNKNOWN_MESSAGE_TYPE","IncomingThumbnailMessage","MAX_TRUNCATE_LENGTH","GROUPAING_PADDING","checkFileType","fileUrl","result","imageFile","audioFile","test","FILE_DOCUMENT","FILE_AUDIO","OutgoingFileMessage","openFileUrl","window","open","reactionAddButtonRef","TextButton","truncate","IncomingFileMessage","MessageSwitch","RemoveMessage","onCloseModal","onDeleteMessage","Modal","MODAL__DELETE_MESSAGE__TITLE","UnknownMessage","OutgoingUnknownMessage","UNKNOWN__CANNOT_READ_MESSAGE","IncomingUnknownMessage","profileUrl","NO_NAME","URL_REG","OG_MESSAGE","OUTGOING_OG_MESSAGE","INCOMING_OG_MESSAGE","createUrlTester","regexp","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","friendName","checkOGIsEnalbed","WORD_COLOR","isUrl","LinkLabel","NORAML_PADDING","OGMessageSwitch","openLink","OutgoingOGMessage","defaultImage","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","alt","NO_THUMBNAIL","title","SUBTITLE_2","description","BODY_2","event","stopPropagation","IncomingOGMessage","errorCode","MessageHoc","editDisabled","hasSeperator","updateMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","editMessageInputRef","MessageInput","DateSeparator","FileMessage","OGMessage","RemoveMessageModal","FileViewer","isDateSeperator","ConversationScroll","scrollRef","onScroll","target","scrollTop","clientHeight","scrollHeight","first","renderChatItem","useMessageGrouping","idx","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","onUpdateMessage","onResendMessage","MessageHOC","Component","Notification","time","timeArray","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","ONCONTENT_1","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","SHEVRON_DOWN","CONTENT","FrozenNotification","CHANNEL_FROZEN","TypingIndicatorText","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","TypingIndicator","sb","setHandlerId","typingMembers","setTypingMembers","newHandlerId","onTypingStatusUpdated","getTypingMembers","MessageInputWrapper","_a","onSendMessage","onFileUpload","renderMessageInput","isBroadcast","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","ConnectionStatus","TRYING_TO_CONNECT","DISCONNECTED","prettyDate","date","formatDistanceToNowStrict","addSuffix","getOthersLastSeenAt","getReadStatus","lastSeenList","values","lastSeenAt","last_seen_at","getChannelTitle","LabelStringSet","name","NO_TITLE","NO_MEMBERS","AutoRefresh","repeatFunc","setLabel","interval","setInterval","clearInterval","ChatHeader","currentUser","subTitle","isActive","isMuted","onActionClick","theme","ChannelAvatar","H_2","MUTE","INFO","PRIMARY","coverUrl","ConversationPanel","stores","sdkStore","userStore","config","reconnect","dispatchers","queries","renderChatHeader","onChatHeaderActionClick","sdkError","messageListQuery","warn","useReducer","messagesReducer","messagesInitialState","messagesStore","usingReaction","userDefinedDisableUserProfile","userDefinedRenderProfile","onScrollCallback","useGetChannel","subScriber","onSendFileMessage","PlaceHolder","PlaceHolderTypes","WRONG","NO_CHANNELS","LOADING","UserProfileProvider","any","includeMetaArray","includeParentMessageText","includeThreadInfo","limit","reverse","senderUserIdsFilter","withSendbirdContext"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Channel.js","sources":["../../../src/smart-components/Conversation/dux/actionTypes.js","../../../src/smart-components/Conversation/types.js","../../../src/smart-components/Conversation/utils.js","../../../src/smart-components/Conversation/dux/initialState.js","../../../src/smart-components/Conversation/dux/reducers.js","../../../src/smart-components/Conversation/hooks/useHandleChannelEvents.js","../../../src/smart-components/Conversation/hooks/useGetChannel.js","../../../src/smart-components/Conversation/hooks/useInitialMessagesFetch.js","../../../src/smart-components/Conversation/hooks/useHandleReconnect.js","../../../src/smart-components/Conversation/hooks/useScrollCallback.js","../../../src/smart-components/Conversation/hooks/useDeleteMessageCallback.js","../../../src/smart-components/Conversation/hooks/useUpdateMessageCallback.js","../../../src/smart-components/Conversation/hooks/useResendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendFileMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSetReadStatus.js","../../../src/ui/ReactionButton/index.jsx","../../../src/smart-components/Conversation/hooks/useMemoizedEmojiListItems.jsx","../../../src/smart-components/Conversation/hooks/useToggleReactionCallback.js","../../../src/ui/MessageStatus/index.jsx","../../../src/ui/ReactionBadge/index.jsx","../../../src/ui/Tooltip/index.jsx","../../../src/ui/TooltipWrapper/index.jsx","../../../src/ui/EmojiReactions/index.jsx","../../../src/ui/Message/memoizedMessageText.jsx","../../../src/hooks/onMouseHover.jsx","../../../src/ui/Message/index.jsx","../../../src/ui/AdminMessage/index.jsx","../../../src/ui/ThumbnailMessage/util.js","../../../src/ui/ThumbnailMessage/index.jsx","../../../src/ui/FileMessage/index.jsx","../../../src/smart-components/Conversation/components/RemoveMessage.jsx","../../../src/ui/UnknownMessage/utils.js","../../../src/ui/UnknownMessage/index.jsx","../../../src/ui/OGMessage/const.js","../../../src/ui/OGMessage/utils.js","../../../src/ui/OGMessage/memoizedMessageText.jsx","../../../src/ui/OGMessage/index.jsx","../../../src/smart-components/Conversation/components/MessageHOC.jsx","../../../src/smart-components/Conversation/components/ConversationScroll.jsx","../../../src/smart-components/Conversation/components/Notification.jsx","../../../src/smart-components/Conversation/components/FrozenNotification.tsx","../../../src/smart-components/Conversation/components/TypingIndicator.jsx","../../../src/smart-components/Conversation/components/MessageInputWrapper.tsx","../../../src/ui/ConnectionStatus/index.jsx","../../../src/ui/ChatHeader/utils.js","../../../src/ui/AutoRefresh/index.jsx","../../../src/ui/ChatHeader/index.jsx","../../../src/smart-components/Conversation/index.jsx"],"sourcesContent":["export const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const RESET_STATE = 'RESET_STATE';\nexport const CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAILURE = 'GET_PREV_MESSAGES_FAILURE';\n\nexport const SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';\nexport const SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';\nexport const SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';\n\nexport const RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';\n\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\n\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const SET_READ_STATUS = 'SET_READ_STATUS';\n","import { isImage, isVideo } from '../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message) => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if ((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return '';\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../../ui/MessageStatus/type';\nimport * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nimport { SendingMessageStatus } from './types';\n\nconst UNDEFINED = 'undefined';\nconst { SUCCEEDED, FAILED, PENDING } = SendingMessageStatus;\n\nexport const scrollIntoLast = (selector, intialTry = 0) => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (channelUrl, pubSub, dispatcher) => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) return subscriber;\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return subscriber;\n};\n\nexport const getParsedStatus = (message, currentGroupChannel) => {\n if (message.requestState === FAILED) {\n return MessageStatusType.FAILED;\n }\n\n if (message.requestState === PENDING) {\n return MessageStatusType.PENDING;\n }\n\n if (message.requestState === SUCCEEDED) {\n if (!currentGroupChannel) {\n return MessageStatusType.SENT;\n }\n\n const unreadCount = currentGroupChannel.getReadReceipt(message);\n if (unreadCount === 0) {\n return MessageStatusType.READ;\n }\n\n const isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0;\n if (isDelivered) {\n return MessageStatusType.DELIVERED;\n }\n\n return MessageStatusType.SENT;\n }\n\n return null;\n};\n\nexport const isOperator = (groupChannel = {}) => {\n const { myRole } = groupChannel;\n return myRole === 'operator';\n};\n\nexport const isDisabledBecauseFrozen = (groupChannel = {}) => {\n const { isFrozen } = groupChannel;\n return isFrozen && !isOperator(groupChannel);\n};\n\nexport const isDisabledBecauseMuted = (groupChannel = {}) => {\n const { myMutedState } = groupChannel;\n return myMutedState === 'muted';\n};\n\nexport const getEmojiCategoriesFromEmojiContainer = (emojiContainer = {}) => (\n emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []\n);\n\nexport const getAllEmojisFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojis = [];\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n allEmojis.push(emojis[emojiIndex]);\n }\n }\n return allEmojis;\n};\n\nexport const getEmojisFromEmojiContainer = (emojiContainer = {}, emojiCategoryId = '') => (\n emojiContainer.emojiCategories\n ? emojiContainer.emojiCategories\n .filter((emojiCategory) => emojiCategory.id === emojiCategoryId)[0].emojis\n : []\n);\n\nexport const getAllEmojisMapFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojisMap = new Map();\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n const { key, url } = emojis[emojiIndex];\n allEmojisMap.set(key, url);\n }\n }\n return allEmojisMap;\n};\n\nexport const getNicknamesMapFromMembers = (members = []) => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const isSameGroup = (message, comparingMessage) => {\n if (\n !message\n || !comparingMessage\n || !message.sender\n || !comparingMessage.sender\n || !message.createdAt\n || !comparingMessage.createdAt\n || !message.sender.userId\n || !comparingMessage.sender.userId\n ) {\n return false;\n }\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage,\n currMessage,\n nextMessage,\n) => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const passUnsuccessfullMessages = (allMessages, newMessage) => {\n const { sendingStatus = UNDEFINED } = newMessage;\n if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) {\n const lastIndexOfSucceededMessage = allMessages\n .map((message) => (\n message.sendingStatus\n || ((message.isAdminMessage && message.isAdminMessage()) ? SUCCEEDED : UNDEFINED)\n ))\n .lastIndexOf(SUCCEEDED);\n if (lastIndexOfSucceededMessage + 1 < allMessages.length) {\n const messages = [...allMessages];\n messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);\n return messages;\n }\n }\n return [\n ...allMessages,\n newMessage,\n ];\n};\n\nexport default getParsedStatus;\n","export default {\n initialized: false,\n loading: false,\n allMessages: [],\n currentGroupChannel: { members: [] },\n hasMore: false,\n lastMessageTimeStamp: 0,\n emojiContainer: {},\n readStatus: {},\n unreadCount: 0,\n unreadSince: null,\n isInvalid: false,\n};\n","import format from 'date-fns/format';\n\nimport * as actionTypes from './actionTypes';\nimport initialState from './initialState';\n\nimport compareIds from '../../../utils/compareIds';\nimport { passUnsuccessfullMessages } from '../utils';\nimport { SendingMessageStatus } from '../types';\n\nconst {\n SUCCEEDED,\n FAILED,\n PENDING,\n} = SendingMessageStatus;\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actionTypes.RESET_STATE:\n return initialState;\n case actionTypes.RESET_MESSAGES:\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMore`\n // the onScroll gets called twice, setting hasMore false prevents this\n hasMore: false,\n allMessages: [],\n };\n case actionTypes.GET_PREV_MESSAGES_START:\n return {\n ...state,\n loading: true,\n };\n case actionTypes.CLEAR_SENT_MESSAGES:\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => (\n m.sendingStatus !== SUCCEEDED\n )),\n ],\n };\n case actionTypes.GET_PREV_MESSAGES_SUCESS: {\n const receivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...action.payload },\n ],\n };\n case actionTypes.SEND_MESSAGEGE_SUCESS: {\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId) ? action.payload : m\n ));\n [...newMessages].sort((a, b) => (\n (\n a.sendingStatus\n && b.sendingStatus\n && a.sendingStatus === SUCCEEDED\n && (\n b.sendingStatus === PENDING\n || b.sendingStatus === FAILED\n )\n ) ? -1 : 1\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SEND_MESSAGEGE_FAILURE: {\n // eslint-disable-next-line no-param-reassign\n action.payload.failed = true;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const { channel, message } = action.payload;\n const { currentGroupChannel = {}, unreadCount, unreadSince } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n if (!compareIds(channel.url, currentGroupChannelUrl)) {\n return state;\n }\n // Excluded overlapping messages\n if (!(state.allMessages.map((msg) => msg.messageId).indexOf(message.messageId) < 0)) {\n return state;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n return {\n ...state,\n unreadCount: unreadCount + 1,\n unreadSince: (unreadCount === 0)\n ? format(new Date(), 'p MMM dd')\n : unreadSince,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.messageId, action.payload.message.messageId)\n ? action.payload.message\n : m\n )),\n };\n case actionTypes.RESEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.MARK_AS_READ:\n return {\n ...state,\n unreadCount: 0,\n unreadSince: null,\n };\n case actionTypes.ON_MESSAGE_DELETED:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n case actionTypes.SET_EMOJI_CONTAINER: {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n }\n case actionTypes.SET_READ_STATUS: {\n return {\n ...state,\n readStatus: action.payload,\n };\n }\n case actionTypes.ON_REACTION_UPDATED: {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n }\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\n\nimport * as messageActions from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\nimport compareIds from '../../../utils/compareIds';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\nfunction useHandleChannelEvents({ currentGroupChannel, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (channelUrl && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n ChannelHandler.onMessageReceived = (channel, message) => {\n if (compareIds(channel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n\n ChannelHandler.onMessageDeleted = (_, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n };\n\n ChannelHandler.onReactionUpdated = (_, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n };\n\n ChannelHandler.onChannelChanged = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelFrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelUnfrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserMuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserUnmuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserBanned = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onOperatorUpdated = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n // Add this channel event handler to the SendBird object.\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [channelUrl, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.GroupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n // this order is important - this mark as read should update the event handler up above\n groupChannel.markAsRead();\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji((emojiContainer_, err) => {\n if (err) {\n logger.error('Channel: Getting emojis failed', err);\n return;\n }\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\nfunction useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams\n && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n });\n }\n }, [channelUrl, userFilledMessageListQuery]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n}) {\n useEffect(() => {\n const wasOffline = !isOnline;\n return () => {\n // state changed from offline to online\n if (wasOffline) {\n logger.info('Refreshing conversation state');\n const { appInfo = {} } = sdk;\n const useReaction = appInfo.isUsingReaction || false;\n\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = useReaction;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n sdk.GroupChannel.getChannel(currentGroupChannel.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.CLEAR_SENT_MESSAGES,\n });\n\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n });\n }\n };\n }, [isOnline]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useScrollCallback({\n currentGroupChannel,\n lastMessageTimeStamp,\n userFilledMessageListQuery,\n}, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMore) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n lastMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMoreMessages = (messages && messages.length > 0);\n const lastMessageTs = hasMoreMessages\n ? messages[0].createdAt\n : null;\n\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore: hasMoreMessages,\n lastMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, lastMessageTimeStamp]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message, cb) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);\n\n // Message is only on local\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (cb) { cb(); }\n return;\n }\n\n // Message is on server\n currentGroupChannel.deleteMessage(message, (err) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);\n if (cb) { cb(err); }\n if (!err) {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n } else {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as topics from '../../../lib/pubSub/topics';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n}, {\n logger,\n pubSub,\n sdk,\n}) {\n return useCallback((messageId, text, cb) => {\n const createParamsDefault = (txt) => {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(text)\n : createParamsDefault(text);\n\n currentGroupChannel.updateUserMessage(messageId, params, (r, e) => {\n logger.info('Channel: Updating message!', params);\n const swapParams = sdk.getErrorFirstCallback();\n let message = r;\n let err = e;\n if (swapParams) {\n message = e;\n err = r;\n }\n if (cb) {\n cb(err, message);\n }\n if (!err) {\n logger.info('Channel: Updating message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentGroupChannel,\n message,\n },\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel: currentGroupChannel,\n },\n );\n } else {\n logger.warning('Channel: Updating message failed!', err);\n }\n });\n }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function'\n && failedMessage.isResendable()\n ) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel\n .resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendMessageCallback({ currentGroupChannel, onBeforeSendUserMessage }, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n () => {\n const text = messageInputRef.current.value;\n const createParamsDefault = (txt) => {\n const message = (typeof txt === 'string') ? txt.trim() : txt;\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefault(text);\n\n logger.info('Channel: Sending message has started', params);\n const pendingMsg = currentGroupChannel.sendUserMessage(params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n if (error) {\n logger.warning('Channel: Sending message failed!', {\n message,\n });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel, onBeforeSendFileMessage,\n}, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((file) => {\n const createParamsDefault = (file_) => {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n };\n\n const createCustomPrams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefault(file);\n\n logger.info('Channel: Uploading file message start!', params);\n const pendingMsg = currentGroupChannel.sendFileMessage(params, (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = response;\n let error = err;\n if (swapParams) {\n message = err;\n error = response;\n }\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', message);\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'), 1000);\n }, [currentGroupChannel, onBeforeSendFileMessage]);\n return [sendMessage];\n}\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\n\nexport default function useSetReadStatus({ allMessages, currentGroupChannel }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (!sdk.ChannelHandler || !currentGroupChannel.url) {\n return () => {};\n }\n // todo: move to reducer?\n const setReadStatus = () => {\n const allReadStatus = allMessages.reduce((accumulator, msg) => {\n if (msg.messageId !== 0) {\n return {\n ...accumulator,\n [msg.messageId]: utils.getParsedStatus(msg, currentGroupChannel),\n };\n }\n return accumulator;\n }, {});\n messagesDispatcher({\n type: messageActionTypes.SET_READ_STATUS,\n payload: allReadStatus,\n });\n };\n if (allMessages.length > 0) {\n setReadStatus();\n }\n\n const channelUrl = currentGroupChannel.url;\n const handler = new sdk.ChannelHandler();\n const handleMessageStatus = (c) => {\n if (channelUrl === c.url) {\n setReadStatus();\n }\n };\n handler.onDeliveryReceiptUpdated = handleMessageStatus;\n handler.onReadReceiptUpdated = handleMessageStatus;\n // Add this channel event handler to the SendBird object.\n const handlerId = uuidv4();\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.addChannelHandler(handlerId, handler);\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.removeChannelHandler(handlerId);\n }\n };\n }, [allMessages, currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst ReactionButton = React.forwardRef((props, ref) => {\n const {\n children,\n width,\n height,\n onClick,\n selected,\n className,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n return (\n onClick(e)}\n role=\"button\"\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n
\n {children}\n
\n
\n );\n});\n\nReactionButton.propTypes = {\n children: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n selected: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nReactionButton.defaultProps = {\n selected: false,\n width: '36px',\n height: '36px',\n onClick: () => { },\n className: '',\n};\n\nexport default ReactionButton;\n","import React, { useMemo } from 'react';\n\nimport { EmojiListItems } from '../../../ui/ContextMenu';\nimport ReactionButton from '../../../ui/ReactionButton';\nimport ImageRenderer from '../../../ui/ImageRenderer';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nexport default function useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n}, {\n useReaction,\n logger,\n userId,\n emojiAllList,\n}) {\n return useMemo(() => ({\n parentRef,\n parentContainRef,\n message,\n closeDropdown,\n spaceFromTrigger = {},\n }) => {\n if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {\n logger.warning('Channel: Invalid Params in memoizedEmojiListItems');\n return null;\n }\n\n return (\n \n {\n emojiAllList.map((emoji) => {\n const reactedReaction = message.reactions\n .filter((reaction) => reaction.key === emoji.key)[0];\n const isReacted = reactedReaction\n ? !(reactedReaction.userIds.indexOf(userId) < 0)\n : false;\n return (\n {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n \n }\n />\n \n );\n })\n }\n \n );\n }, [emojiContainer, toggleReaction]);\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Loader from '../Loader';\nimport MessageStatusType from './type';\n\nimport { getMessageCreatedAt } from '../../utils/utils';\n\nconst MessageStatusTypes = MessageStatusType;\nexport { MessageStatusTypes };\nexport default function MessageStatus({\n message,\n status,\n className,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n const label = () => {\n switch (status) {\n case MessageStatusType.FAILED:\n case MessageStatusType.PENDING: {\n return null;\n }\n case MessageStatusType.SENT:\n case MessageStatusType.DELIVERED:\n case MessageStatusType.READ: {\n return (\n \n {getMessageCreatedAt(message)}\n \n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n \n \n \n ),\n SENT: ,\n DELIVERED: ,\n READ: ,\n FAILED: ,\n };\n\n return (\n
\n {icon[status]}\n
\n {label(status)}\n
\n );\n}\n\nMessageStatus.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nMessageStatus.defaultProps = {\n message: null,\n status: '',\n className: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst ReactionBadge = React.forwardRef((props, ref) => {\n const {\n className,\n children,\n count,\n selected,\n isAdd,\n onClick,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (selected && !isAdd) {\n injectingClassName.unshift('sendbird-reaction-badge--selected');\n } else if (isAdd) {\n injectingClassName.push('sendbird-reaction-badge--is-add');\n } else {\n injectingClassName.unshift('sendbird-reaction-badge');\n }\n\n return (\n \n
\n
\n {children}\n
\n \n
\n \n );\n});\n\nReactionBadge.propTypes = {\n children: PropTypes.element.isRequired,\n count: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isAdd: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nReactionBadge.defaultProps = {\n className: '',\n count: '',\n selected: false,\n isAdd: false,\n onClick: () => { },\n};\n\nexport default ReactionBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label from '../Label';\n\nconst CLASS_NAME = 'sendbird-tooltip';\n\nexport default function Tooltip({\n className,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n
\n \n {children}\n \n
\n );\n}\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n};\n\nTooltip.defaultProps = {\n className: '',\n children: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-tooltip-wrapper';\nconst SPACE_FROM_TRIGGER = 8;\n\nexport default function TooltipWrapper({\n className,\n children,\n hoverTooltip,\n // clickTooltip can be added later\n}) {\n const injectingClassName = Array.isArray(className)\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n const [showHoverTooltip, setShowHoverTooltip] = useState(false);\n const childrenRef = useRef(null);\n\n return (\n { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n \n {children}\n \n {\n showHoverTooltip && (\n \n \n \n {hoverTooltip}\n \n \n \n )\n }\n \n );\n}\n\nTooltipWrapper.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n hoverTooltip: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n};\nTooltipWrapper.defaultProps = {\n className: '',\n};\n","import React, { useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ReactionBadge from '../ReactionBadge';\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ContextMenu from '../ContextMenu';\nimport Tooltip from '../Tooltip';\nimport TooltipWrapper from '../TooltipWrapper';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function EmojiReactions({\n className,\n userId,\n message,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-emoji-reactions');\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const imageWidth = '20px';\n const imageHeight = '20px';\n const emojiReactionAddRef = useRef(null);\n const { reactions = [] } = message;\n const messageReactions = reactions;\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n {\n messageReactions && (\n messageReactions.map((reaction) => {\n const { userIds = [] } = reaction;\n const emojiUrl = emojiAllMap.get(reaction.key) || '';\n const reactedUserCount = userIds.length;\n const reactedByMe = !(userIds.indexOf(userId) < 0);\n const nicknames = userIds\n .filter((currentUserId) => currentUserId !== userId)\n .map((currentUserId) => (\n membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER\n ));\n const stringSetForMe = (nicknames.length > 0)\n ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU;\n return (\n 0 && (\n \n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n \n \n )\n }\n >\n toggleReaction(message, reaction.key, reactedByMe)}\n >\n \n )}\n />\n \n \n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n );\n}\n\nEmojiReactions.propTypes = {\n userId: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n message: PropTypes.shape({\n reactions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\nEmojiReactions.defaultProps = {\n className: '',\n membersMap: new Map(),\n userId: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport uuidv4 from '../../utils/uuid';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(/\\r/);\n const matchedMessage = splitMessage\n .map((word) => (word !== '' ? word :
));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import { useEffect } from 'react';\n\nconst MOUSE_ENTER = 'mouseenter';\nconst MOUSE_LEAVE = 'mouseleave';\n\nconst useMouseHover = ({\n ref,\n setHover,\n}) => {\n const handleMouseOver = () => {\n if (ref.current) {\n setHover(true);\n }\n };\n const handleMouseOut = () => {\n if (ref.current) {\n setHover(false);\n }\n };\n\n useEffect(() => {\n const { current } = ref;\n current.addEventListener(MOUSE_ENTER, handleMouseOver);\n current.addEventListener(MOUSE_LEAVE, handleMouseOut);\n return () => {\n current.removeEventListener(MOUSE_ENTER, handleMouseOver);\n current.removeEventListener(MOUSE_LEAVE, handleMouseOut);\n };\n });\n};\n\nexport default useMouseHover;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport UserProfile from '../UserProfile';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport MessageStatus from '../MessageStatus';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n} from './utils';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function Message(props) {\n const {\n isByMe,\n userId,\n message,\n className,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n } = props;\n\n if (!message) return null;\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n injectingClassName.push(`sendbird-message${isByMe ? '--outgoing' : '--incoming'}`);\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-user-message-word',\n });\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nMessage.propTypes = {\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showEdit: PropTypes.func,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n userId: '',\n resendMessage: noop,\n className: '',\n showEdit: noop,\n showRemove: noop,\n status: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUserMessage({\n userId,\n message,\n showEdit,\n disabled,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n \n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n { showRemove(true); }}\n // onResend={() => resendMessage(message)}\n // duplicated and should replace to more\n />\n
\n )\n }\n
\n
\n
\n
\n \n \n \n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n \n \n );\n}\n\nfunction IncomingUserMessage({\n userId,\n message,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n // showProfile && ()\n }\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-user-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n
\n \n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n
\n
\n
\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nIncomingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingUserMessage.defaultProps = {\n message: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nOutgoingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n disabled: PropTypes.bool,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUserMessage.defaultProps = {\n message: {},\n resendMessage: noop,\n showEdit: noop,\n showRemove: noop,\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function AdminMessage({\n className,\n message,\n}) {\n if (!message.messageType || message.messageType !== 'admin') { // change to use message.isAdminMessage()\n return null;\n }\n\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n \n
\n );\n}\n\nAdminMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nAdminMessage.defaultProps = {\n message: {},\n className: '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n getMessageCreatedAt,\n getIsSentFromStatus,\n};\n","import React, { useContext, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport {\n getMessageCreatedAt,\n getIsSentFromStatus,\n} from './util';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n isImage,\n isVideo,\n unSupported,\n} from '../FileViewer/types';\nimport {\n getSenderName,\n getSenderProfileUrl,\n} from '../../utils/utils';\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst noop = () => { };\n\nconst OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message';\nconst INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function ThumbnailMessage({\n message = {},\n userId,\n disabled,\n isByMe,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n return (\n isByMe\n ? (\n \n )\n : (\n \n )\n );\n}\n\nexport function OutgoingThumbnailMessage({\n message = {},\n userId,\n disabled,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n isMessageSent && showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n )\n }\n
\n
\n \n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n role=\"button\"\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n \n \n \n );\n}\n\nexport function IncomingThumbnailMessage({\n message = {},\n userId,\n onClick,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const reactionAddRef = useRef(null);\n const avatarRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n !chainTop && (\n \n {getSenderName(message) || ''}\n \n )\n }\n
\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_THUMBNAIL_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string,\n resendMessage: PropTypes.func,\n status: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n showRemove: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\nThumbnailMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n resendMessage: noop,\n onClick: noop,\n showRemove: noop,\n status: '',\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nOutgoingThumbnailMessage.defaultProps = {\n status: '',\n};\n\nIncomingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nIncomingThumbnailMessage.defaultProps = {\n status: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\n\nimport { getSenderProfileUrl, getSenderName, getMessageCreatedAt } from '../../utils/utils';\nimport {\n truncate,\n getIsSentFromStatus,\n} from './utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst MAX_TRUNCATE_LENGTH = 40;\nconst GROUPAING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\nconst noop = () => { };\n\nfunction checkFileType(fileUrl) {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport function OutgoingFileMessage({\n message,\n userId,\n status,\n showRemove,\n disabled,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n url,\n } = message;\n const openFileUrl = () => { window.open(url); };\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n const showEmojiReactions = isMessageSent && useReaction && message.reactions\n && (message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n {\n checkFileType(url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n \n \n );\n}\n\nexport function IncomingFileMessage({\n message,\n userId,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const openFileUrl = () => { window.open(message.url); };\n const messageRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-file-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n {\n checkFileType(message.url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n \n )\n }\n
\n
\n
\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n \n \n );\n}\n\nOutgoingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingFileMessage.defaultProps = {\n status: '',\n showRemove: noop,\n resendMessage: noop,\n message: {},\n userId: '',\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nIncomingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingFileMessage.defaultProps = {\n message: {},\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nconst MessageSwitch = ({\n message,\n userId,\n disabled,\n isByMe,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) => (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n);\n\n\nMessageSwitch.propTypes = {\n message: PropTypes.shape({}),\n userId: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessageSwitch.defaultProps = {\n message: {},\n isByMe: false,\n disabled: false,\n showRemove: noop,\n resendMessage: noop,\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nexport default MessageSwitch;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nconst RemoveMessage = (props) => {\n const {\n onCloseModal,\n onDeleteMessage,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n );\n};\n\nRemoveMessage.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onDeleteMessage: PropTypes.func.isRequired,\n};\n\nexport default RemoveMessage;\n","import format from 'date-fns/format';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport default {\n getMessageCreatedAt,\n};\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst CLASS_NAME = 'sendbird-unknown-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function UnknownMessage({\n message,\n isByMe,\n status,\n className,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n injectingClassName.push(`${CLASS_NAME}${isByMe ? '--outgoing' : '--incoming'}`);\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n isByMe: PropTypes.bool,\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nUnknownMessage.defaultProps = {\n isByMe: false,\n status: '',\n className: '',\n showRemove: () => { },\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUnknownMessage({\n message,\n status,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-outgoing-unknown-message';\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { showRemove(true); closeDropdown(); }}\n >\n Delete\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n \n \n );\n}\n\nfunction IncomingUnknownMessage({\n message,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-incoming-unknown-message';\n const { sender } = message;\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${className}__left__sender-profile-image`}\n src={sender.profileUrl}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n \n {sender.nickname || stringSet.NO_NAME}\n \n )\n }\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n
\n {\n !chainBottom && (\n \n {utils.getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nOutgoingUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n status: PropTypes.string.isRequired,\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUnknownMessage.defaultProps = {\n showRemove: () => { },\n};\n\nIncomingUnknownMessage.propTypes = {\n message: PropTypes.shape({\n sender: PropTypes.shape({\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }).isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","export const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const OG_MESSAGE = 'sendbird-og-message';\nexport const OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message';\nexport const INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message';\nexport const generateMockMessage = (process) => {\n const message = {\n message: 'go to this link sendbird.com it will be usefull to you!!',\n ogMetaData: {\n title: 'This is the TITLE',\n description: 'I\\'m description I\\'m description I\\'m description I\\'m description ',\n url: 'https://sendbird.com/',\n defaultImage: {\n url: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n alt: 'test',\n },\n },\n sender: {\n profileUrl: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n nickname: 'Hoonying',\n },\n createdAt: 2000000,\n };\n if (process && typeof process === 'function') {\n return process(message);\n }\n return message;\n};\n\nexport default {\n URL_REG,\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n generateMockMessage,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const copyToClipboard = (text) => {\n try {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path\n // to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const checkOGIsEnalbed = (message) => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n\nexport default {\n getSenderName,\n createUrlTester,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { createUrlTester } from './utils';\nimport { URL_REG } from './const';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst WORD_COLOR = LabelColors.ONBACKGROUND_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\nconst isUrl = createUrlTester(URL_REG);\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n} from './const';\nimport {\n getSenderName,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n} from './utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport './index.scss';\n\nimport UserProfile from '../UserProfile';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport Avatar from '../Avatar/index';\n\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst GROUPING_PADDING = '1px';\nconst NORAML_PADDING = '8px';\n\nconst OGMessageSwitch = ({\n isByMe,\n userId,\n status,\n message,\n disabled,\n showEdit,\n chainTop,\n className,\n membersMap,\n showRemove,\n useReaction,\n emojiAllMap,\n chainBottom,\n resendMessage,\n toggleReaction,\n memoizedEmojiListItems,\n}) => {\n const { ogMetaData } = message;\n const injectingClassName = Array.isArray(className) ? className : [className];\n\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n });\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n};\n\nfunction OutgoingOGMessage(props) {\n const {\n status,\n userId,\n message,\n disabled,\n openLink,\n showEdit,\n chainTop,\n showRemove,\n membersMap,\n chainBottom,\n emojiAllMap,\n useReaction,\n resendMessage,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n \n \n );\n}\n\nfunction IncomingOGMessage(props) {\n const {\n userId,\n message,\n openLink,\n chainTop,\n membersMap,\n chainBottom,\n useReaction,\n emojiAllMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_OG_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n \n )}\n />\n
\n
\n \n \n );\n}\n\nexport default OGMessageSwitch;\n\nconst noop = () => { };\n\nOGMessageSwitch.propTypes = {\n isByMe: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n useReaction: PropTypes.bool.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n status: PropTypes.string,\n disabled: PropTypes.bool,\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n toggleReaction: PropTypes.func,\n membersMap: PropTypes.instanceOf(Map),\n emojiAllMap: PropTypes.instanceOf(Map),\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nOGMessageSwitch.defaultProps = {\n className: '',\n status: '',\n disabled: false,\n showEdit: noop,\n showRemove: noop,\n resendMessage: noop,\n toggleReaction: noop,\n membersMap: new Map(),\n emojiAllMap: new Map(),\n memoizedEmojiListItems: noop,\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingOGMessage.propTypes = {\n status: PropTypes.string,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n isResendable: PropTypes.func,\n errorCode: PropTypes.number,\n }).isRequired,\n disabled: PropTypes.bool.isRequired,\n openLink: PropTypes.func.isRequired,\n showEdit: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingOGMessage.defaultProps = {\n status: '',\n};\n\nIncomingOGMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n openLink: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import React, { useState, useRef, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport format from 'date-fns/format';\n\nimport Message from '../../../ui/Message';\nimport AdminMessage from '../../../ui/AdminMessage';\nimport ThumbnailMessage from '../../../ui/ThumbnailMessage';\nimport FileMessage from '../../../ui/FileMessage';\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\nimport RemoveMessageModal from './RemoveMessage';\nimport UnknownMessage from '../../../ui/UnknownMessage';\nimport OGMessage from '../../../ui/OGMessage';\n\nimport { MessageTypes, getMessageType } from '../types';\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n status,\n resendMessage,\n useReaction,\n chainTop,\n chainBottom,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n renderCustomMessage,\n currentGroupChannel,\n}) {\n const { sender = {} } = message;\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n const RenderedMessage = useMemo(() => {\n if (renderCustomMessage) {\n return renderCustomMessage(message, currentGroupChannel);\n }\n return null;\n }, [message, message.message, renderCustomMessage]);\n\n const isByMe = (userId === sender.userId)\n || (message.requestState === 'pending')\n || (message.requestState === 'failed');\n\n if (RenderedMessage) {\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n \n
\n );\n }\n\n if (showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: ,\n [MessageTypes.FILE]: (\n \n ),\n [MessageTypes.OG]: (\n \n ),\n [MessageTypes.THUMBNAIL]: (\n \n ),\n [MessageTypes.USER]: (\n \n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={() => {\n deleteMessage(message, () => {\n setShowFileViewer(false);\n });\n }}\n isByMe={isByMe}\n />\n )\n }\n {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n }\n
\n );\n}\n\nMessageHoc.propTypes = {\n userId: PropTypes.string,\n message: PropTypes.shape({\n isFileMessage: PropTypes.func,\n isAdminMessage: PropTypes.func,\n isUserMessage: PropTypes.func,\n isDateSeperator: PropTypes.func,\n // should be a number, but there's a bug in SDK shich returns string\n messageId: PropTypes.number,\n type: PropTypes.string,\n createdAt: PropTypes.number,\n message: PropTypes.string,\n requestState: PropTypes.string,\n messageType: PropTypes.string,\n sender: PropTypes.shape({ userId: PropTypes.string }),\n ogMetaData: PropTypes.shape({}),\n }),\n renderCustomMessage: PropTypes.func,\n currentGroupChannel: PropTypes.shape,\n hasSeperator: PropTypes.bool,\n disabled: PropTypes.bool,\n editDisabled: PropTypes.bool,\n deleteMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nMessageHoc.defaultProps = {\n userId: '',\n editDisabled: false,\n renderCustomMessage: null,\n currentGroupChannel: {},\n message: {},\n hasSeperator: false,\n disabled: false,\n status: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport './conversation-scroll.scss';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nimport MessageHOC from './MessageHOC';\nimport {\n getParsedStatus,\n compareMessagesForGrouping,\n} from '../utils';\n\nexport default class ConversationScroll extends Component {\n onScroll = (e) => {\n const {\n scrollRef,\n hasMore,\n messagesDispatcher,\n onScroll,\n currentGroupChannel,\n } = this.props;\n\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const first = nodes[0];\n onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n first.scrollIntoView();\n }\n });\n }\n\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n }\n\n render() {\n const {\n userId,\n disabled,\n scrollRef,\n readStatus,\n membersMap,\n initialized,\n allMessages,\n useReaction,\n emojiAllMap,\n editDisabled,\n deleteMessage,\n updateMessage,\n resendMessage,\n renderCustomMessage,\n renderChatItem,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n } = this.props;\n return (\n
\n \n
\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n initialized\n && allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n if (renderChatItem) {\n return (\n \n {\n renderChatItem({\n message: m,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n })\n }\n
\n );\n }\n\n return (\n \n );\n },\n )\n }\n
\n
\n \n );\n }\n}\n\nConversationScroll.propTypes = {\n // https://stackoverflow.com/a/52646941\n scrollRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}),\n ]),\n }).isRequired,\n hasMore: PropTypes.bool,\n messagesDispatcher: PropTypes.func.isRequired,\n onScroll: PropTypes.func,\n initialized: PropTypes.bool,\n editDisabled: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n allMessages: PropTypes.arrayOf(PropTypes.shape({\n createdAt: PropTypes.number,\n })).isRequired,\n deleteMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n readStatus: PropTypes.shape({}).isRequired,\n currentGroupChannel: PropTypes.shape({\n markAsRead: PropTypes.func,\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n renderChatItem: PropTypes.element,\n renderCustomMessage: PropTypes.func,\n useReaction: PropTypes.bool,\n emojiContainer: PropTypes.shape({}),\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n useMessageGrouping: PropTypes.bool,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nConversationScroll.defaultProps = {\n hasMore: false,\n editDisabled: false,\n disabled: false,\n initialized: false,\n userId: '',\n renderCustomMessage: null,\n renderChatItem: null,\n onScroll: null,\n useReaction: true,\n emojiContainer: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n useMessageGrouping: true,\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './notification.scss';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default function Notification({\n count,\n time,\n onClick,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const timeArray = time.split(' ');\n timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON);\n return (\n // eslint-disable-next-line\n
\n \n \n
\n );\n}\n\nNotification.propTypes = {\n count: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n time: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nNotification.defaultProps = {\n count: 0,\n time: '',\n};\n","import React, { useContext } from 'react';\n\nimport './notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\n\nconst TypingIndicatorText = ({ members }) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nfunction TypingIndicator({ channelUrl, sb, logger }) {\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState([]);\n\n useEffect(() => {\n if (sb && sb.ChannelHandler) {\n sb.removeChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new sb.ChannelHandler();\n // there is a possible warning in here - setState called after unmount\n handler.onTypingStatusUpdated = (groupChannel) => {\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n const members = groupChannel.getTypingMembers();\n if (groupChannel.url === channelUrl) {\n setTypingMembers(members);\n }\n };\n sb.addChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb && sb.removeChannelHandler) {\n sb.removeChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n \n );\n}\n\nTypingIndicator.propTypes = {\n channelUrl: PropTypes.string.isRequired,\n sb: PropTypes.shape({\n ChannelHandler: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n addChannelHandler: PropTypes.func,\n }).isRequired,\n logger: PropTypes.shape({\n info: PropTypes.func,\n }).isRequired,\n};\n\nexport default TypingIndicator;\n","// Logic required to handle message input rendering\n\nimport React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\n\nimport { RenderMessageInputProps } from '../../../index';\nimport * as utils from '../utils.js';\n\nimport MessageInput from '../../../ui/MessageInput';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: Sendbird.GroupChannel;\n user: Sendbird.User;\n isOnline: boolean;\n initialized: boolean;\n onSendMessage(): void;\n onFileUpload(): void;\n renderMessageInput(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n isOnline,\n initialized,\n}: Props, ref: React.RefObject): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // custom message\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n {\n channel.startTyping();\n }}\n onSendMessage={onSendMessage}\n onFileUpload={onFileUpload}\n />\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\nimport './index.scss';\n\nfunction ConnectionStatus() {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n );\n}\n\nexport default ConnectionStatus;\n","import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict';\nimport { LabelStringSet } from '../Label';\n\nexport const prettyDate = (date) => formatDistanceToNowStrict(date, { addSuffix: true });\n\nexport const getOthersLastSeenAt = (channel) => {\n if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) {\n return '';\n }\n const lastSeenList = [...Object.values(channel.getReadStatus())];\n const lastSeenAt = lastSeenList.length > 0\n ? lastSeenList[0].last_seen_at\n : 0;\n if (lastSeenAt === 0) {\n return '';\n }\n return prettyDate(lastSeenAt);\n};\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default function AutoRefresh({\n repeatFunc,\n}) {\n const [label, setLabel] = useState(repeatFunc());\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (label !== repeatFunc()) {\n setLabel(repeatFunc());\n }\n }, 10000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (
{label}
);\n}\n\nAutoRefresh.propTypes = {\n repeatFunc: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport AutoRefresh from '../AutoRefresh';\nimport ChannelAvatar from '../ChannelAvatar/index';\n\nexport default function ChatHeader(props) {\n const {\n currentGroupChannel,\n currentUser,\n title,\n subTitle,\n isActive,\n isMuted,\n onActionClick,\n theme,\n } = props;\n const { userId } = currentUser;\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n \n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n \n {\n (typeof isActive === 'string' && isActive === 'true') || (typeof isActive === 'boolean' && isActive)\n ?
\n : null\n }\n \n {\n subTitle\n || utils.getOthersLastSeenAt(currentGroupChannel)} />\n }\n \n
\n
\n {\n (typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted)\n ? \n : null\n }\n \n \n \n
\n
\n );\n}\n\nChatHeader.propTypes = {\n currentGroupChannel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n }),\n theme: PropTypes.string,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n title: PropTypes.string,\n subTitle: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n isActive: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isMuted: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n onActionClick: PropTypes.func,\n};\n\nChatHeader.defaultProps = {\n currentGroupChannel: {},\n title: '',\n theme: 'light',\n subTitle: '',\n isActive: false,\n isMuted: false,\n currentUser: {},\n onActionClick: () => { },\n};\n","import React, {\n useEffect,\n useRef,\n useReducer,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as messageActionTypes from './dux/actionTypes';\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useSetReadStatus from './hooks/useSetReadStatus';\nimport useMemoizedEmojiListItems from './hooks/useMemoizedEmojiListItems';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\n\nimport ConversationScroll from './components/ConversationScroll';\nimport Notification from './components/Notification';\nimport FrozenNotification from './components/FrozenNotification';\nimport TypingIndicator from './components/TypingIndicator';\nimport MessageInputWrapper from './components/MessageInputWrapper';\nimport ConnectionStatus from '../../ui/ConnectionStatus';\nimport ChatHeader from '../../ui/ChatHeader';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\n\nconst noop = () => { };\n\nexport const ConversationPanel = (props) => {\n const {\n channelUrl,\n stores: { sdkStore, userStore },\n config: {\n userId,\n logger,\n pubSub,\n isOnline,\n theme,\n },\n dispatchers: {\n reconnect,\n },\n queries = {},\n useReaction,\n renderChatItem,\n renderChatHeader,\n renderCustomMessage,\n renderUserProfile,\n disableUserProfile,\n renderMessageInput,\n useMessageGrouping,\n onChatHeaderActionClick,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n } = props;\n const { sdk } = sdkStore;\n const { config } = props;\n const sdkError = sdkStore.error;\n const sdkInit = sdkStore.initialized;\n const { user } = userStore;\n\n if (queries.messageListQuery) {\n // eslint-disable-next-line no-console\n console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead');\n }\n\n const userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery;\n\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n loading,\n hasMore,\n initialized,\n unreadCount,\n unreadSince,\n isInvalid,\n currentGroupChannel = {},\n lastMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n const { isFrozen, isBroadcast } = currentGroupChannel;\n const { appInfo = {} } = sdk;\n const usingReaction = (\n (appInfo.isUsingReaction && !isBroadcast) || useReaction || false\n );\n\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n\n const emojiAllList = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisFromEmojiContainer(emojiContainer)\n : []\n ), [emojiContainer]);\n\n const nicknamesMap = useMemo(() => (\n usingReaction\n ? utils.getNicknamesMapFromMembers(currentGroupChannel.members)\n : new Map()\n ), [currentGroupChannel.members]);\n\n const onScrollCallback = useScrollCallback({\n currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery,\n }, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n const memoizedEmojiListItems = useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n }, {\n useReaction: usingReaction,\n logger,\n userId,\n emojiAllList,\n });\n\n // to create message-datasource\n useGetChannel(\n { channelUrl, sdkInit },\n { messagesDispatcher, sdk, logger },\n );\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n { currentGroupChannel, sdkInit, userId },\n { messagesDispatcher, sdk, logger },\n );\n\n useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subScriber = utils.pubSubHandler(channelUrl, pubSub, messagesDispatcher);\n return () => {\n utils.pubSubHandleRemover(subScriber);\n };\n }, [channelUrl, sdkInit]);\n\n // to create initial read status\n useSetReadStatus(\n { allMessages, currentGroupChannel },\n { messagesDispatcher, sdk, logger },\n );\n\n // handling connection breaks\n useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n });\n\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage },\n { logger, sdk, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, onSendMessage] = useSendMessageCallback(\n { currentGroupChannel, onBeforeSendUserMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n const [onSendFileMessage] = useSendFileMessageCallback(\n { currentGroupChannel, onBeforeSendFileMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n\n if (sdkError) {\n return (\n
\n {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n
\n );\n }\n if (!channelUrl) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n return (\n \n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n \n )\n }\n {\n isFrozen && (\n \n )\n }\n {\n unreadCount > 0 && (\n {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n // there is no scroll\n if (scrollRef.current.scrollTop === 0) {\n currentGroupChannel.markAsRead();\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n }\n }}\n time={unreadSince}\n />\n )\n }\n \n
\n \n
\n \n
\n {\n !isOnline && (\n \n )\n }\n
\n \n );\n};\n\nConversationPanel.propTypes = {\n channelUrl: PropTypes.string,\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n GroupChannel: PropTypes.any,\n ChannelHandler: PropTypes.any,\n addChannelHandler: PropTypes.func,\n UserMessageParams: PropTypes.any,\n FileMessageParams: PropTypes.any,\n getAllEmoji: PropTypes.func,\n appInfo: PropTypes.shape({}),\n }),\n error: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n reconnect: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n userId: PropTypes.string.isRequired,\n isOnline: PropTypes.bool.isRequired,\n theme: PropTypes.string,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n messageListParams: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n // deprecate in v1.3\n messageListQuery: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeSendUserMessage: PropTypes.func, // onBeforeSendUserMessage(text)\n onBeforeSendFileMessage: PropTypes.func, // onBeforeSendFileMessage(File)\n onBeforeUpdateUserMessage: PropTypes.func,\n renderChatItem: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderCustomMessage: PropTypes.func,\n renderMessageInput: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderChatHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChatHeaderActionClick: PropTypes.func,\n useReaction: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n useMessageGrouping: PropTypes.bool,\n};\n\nConversationPanel.defaultProps = {\n channelUrl: null,\n queries: {},\n onBeforeSendUserMessage: null,\n onBeforeSendFileMessage: null,\n onBeforeUpdateUserMessage: null,\n renderChatItem: null,\n renderCustomMessage: null,\n renderMessageInput: null,\n renderChatHeader: null,\n useReaction: true,\n disableUserProfile: false,\n renderUserProfile: null,\n useMessageGrouping: true,\n onChatHeaderActionClick: noop,\n};\n\nexport const {\n getEmojiCategoriesFromEmojiContainer,\n getAllEmojisFromEmojiContainer,\n getEmojisFromEmojiContainer,\n} = utils;\n\nexport default withSendbirdContext(ConversationPanel);\n"],"names":["RESET_MESSAGES","RESET_STATE","CLEAR_SENT_MESSAGES","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","SEND_MESSAGEGE_START","SEND_MESSAGEGE_SUCESS","SEND_MESSAGEGE_FAILURE","RESEND_MESSAGEGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","SET_READ_STATUS","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","getMessageType","message","isUserMessage","messageType","ogMetaData","isAdminMessage","isFileMessage","isImage","type","isVideo","UNDEFINED","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","pubSubHandleRemover","subscriber","forEach","s","remove","pubSubHandler","channelUrl","pubSub","dispatcher","Map","subscribe","set","topics","msg","channel","url","channelActions","payload","fromSelector","messageId","getParsedStatus","currentGroupChannel","requestState","MessageStatusType","SENT","unreadCount","getReadReceipt","READ","isDelivered","getDeliveryReceipt","DELIVERED","isOperator","groupChannel","myRole","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","myMutedState","getEmojiCategoriesFromEmojiContainer","emojiContainer","emojiCategories","getAllEmojisFromEmojiContainer","allEmojis","categoryIndex","emojis","emojiIndex","push","getEmojisFromEmojiContainer","emojiCategoryId","filter","emojiCategory","id","getAllEmojisMapFromEmojiContainer","allEmojisMap","key","getNicknamesMapFromMembers","members","nicknamesMap","memberIndex","userId","nickname","getMessageCreatedAt","format","createdAt","isSameGroup","comparingMessage","sender","sendingStatus","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","passUnsuccessfullMessages","allMessages","newMessage","lastIndexOfSucceededMessage","map","lastIndexOf","messages","splice","initialized","loading","hasMore","lastMessageTimeStamp","readStatus","unreadSince","isInvalid","reducer","state","action","actionTypes","initialState","m","receivedMessages","stateChannel","stateChannelUrl","actionChannelUrl","filteredAllMessages","find","compareIds","newMessages","reqId","sort","a","b","failed","currentGroupChannelUrl","indexOf","Date","applyReactionEvent","useHandleChannelEvents","sdkInit","messagesDispatcher","sdk","logger","useEffect","messageReceiverId","uuidv4","ChannelHandler","info","onMessageReceived","messageActions","onMessageUpdated","onMessageDeleted","_","onReactionUpdated","reactionEvent","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onUserMuted","onUserUnmuted","onUserBanned","onOperatorUpdated","addChannelHandler","removeChannelHandler","useSetChannel","GroupChannel","getChannel","then","messageActionTypes","markAsRead","catch","e","warning","getAllEmoji","emojiContainer_","err","useInitialMessagesFetch","userFilledMessageListQuery","MessageListParams","getMessagesByMessageId","messageListParams","prevResultSize","isInclusive","includeReplies","includeReaction","Object","keys","getMessagesByTimestamp","getTime","finally","utils","useHandleReconnect","isOnline","wasOffline","appInfo","useReaction","isUsingReaction","lastMessageTime","useScrollCallback","useCallback","cb","hasMoreMessages","lastMessageTs","useDeleteMessageCallback","deleteMessage","useUpdateMessageCallback","onBeforeUpdateUserMessage","text","createParamsDefault","txt","params","UserMessageParams","createCustomPrams","updateUserMessage","r","swapParams","getErrorFirstCallback","publish","useResendMessageCallback","failedMessage","file","isResendable","resendUserMessage","resendFileMessage","console","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","useRef","sendMessage","current","value","trim","pendingMsg","sendUserMessage","res","useSendFileMessageCallback","onBeforeSendFileMessage","file_","FileMessageParams","sendFileMessage","response","localUrl","URL","createObjectURL","useSetReadStatus","setReadStatus","allReadStatus","reduce","accumulator","handler","handleMessageStatus","c","onDeliveryReceiptUpdated","onReadReceiptUpdated","handlerId","ReactionButton","React","forwardRef","props","ref","children","width","height","onClick","selected","className","injectingClassName","Array","isArray","join","slice","propTypes","PropTypes","element","isRequired","func","bool","oneOfType","number","string","arrayOf","defaultProps","useMemoizedEmojiListItems","toggleReaction","emojiAllList","useMemo","parentRef","parentContainRef","closeDropdown","spaceFromTrigger","EmojiListItems","emoji","reactedReaction","reactions","reaction","isReacted","userIds","ImageRenderer","Icon","IconTypes","EMOJI_FAILED","useToggleReactionCallback","deleteReaction","addReaction","MessageStatus","status","label","Label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_2","icon","Loader","SPINNER","IconColors","ERROR","objectOf","array","object","ReactionBadge","count","isAdd","unshift","ONBACKGROUND_1","CLASS_NAME","Tooltip","SPACE_FROM_TRIGGER","TooltipWrapper","hoverTooltip","useState","showHoverTooltip","setShowHoverTooltip","childrenRef","bottom","left","offsetWidth","EmojiReactions","emojiAllMap","membersMap","memoizedEmojiListItems","MemoizedEmojiListItems","imageWidth","imageHeight","emojiReactionAddRef","messageReactions","useContext","LocalizationContext","stringSet","emojiUrl","get","reactedUserCount","reactedByMe","nicknames","currentUserId","TOOLTIP__UNKOWN_USER","stringSetForMe","TOOLTIP__AND_YOU","TOOLTIP__YOU","size","ContextMenu","toggleDropdown","ON_BACKGROUND_3","EMOJI_REACTIONS_ADD","y","shape","instanceOf","WORD_TYPOGRAPHY","BODY_1","EDITED_COLOR","useMemoizedMessageText","updatedAt","splitMessage","split","matchedMessage","word","MESSAGE_EDITED","MOUSE_ENTER","MOUSE_LEAVE","useMouseHover","setHover","handleMouseOver","handleMouseOut","addEventListener","removeEventListener","noop","GROUPING_PADDING","NORMAL_PADDING","Message","isByMe","resendMessage","disabled","showEdit","showRemove","chainTop","chainBottom","memoizedMessageText","OutgoingUserMessage","MemoizedMessageText","messageRef","parentRefReactions","parentRefMenus","isMessageSent","getIsSentFromStatus","mousehover","setMousehover","moreActive","setMoreActive","handleMoreIconClick","handleMoreIconBlur","paddingTop","paddingBottom","IconButton","MORE","CONTENT_INVERSE","MenuItems","MenuItem","copyToClipboard","IncomingUserMessage","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","showReactionAddButton","showEmojiReactions","Avatar","getSenderProfileUrl","user","close","UserProfile","CAPTION_2","getSenderName","AdminMessage","OUTGOING_THUMBNAIL_MESSAGE","INCOMING_THUMBNAIL_MESSAGE","ThumbnailMessage","OutgoingThumbnailMessage","menuRef","reactionAddRef","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","PLAY","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","unSupported","UNKNOWN__UNKNOWN_MESSAGE_TYPE","IncomingThumbnailMessage","MAX_TRUNCATE_LENGTH","GROUPAING_PADDING","checkFileType","fileUrl","result","imageFile","audioFile","test","FILE_DOCUMENT","FILE_AUDIO","OutgoingFileMessage","openFileUrl","window","open","reactionAddButtonRef","TextButton","truncate","IncomingFileMessage","MessageSwitch","RemoveMessage","onCloseModal","onDeleteMessage","Modal","MODAL__DELETE_MESSAGE__TITLE","UnknownMessage","OutgoingUnknownMessage","UNKNOWN__CANNOT_READ_MESSAGE","IncomingUnknownMessage","profileUrl","NO_NAME","URL_REG","OG_MESSAGE","OUTGOING_OG_MESSAGE","INCOMING_OG_MESSAGE","createUrlTester","regexp","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","friendName","checkOGIsEnalbed","WORD_COLOR","isUrl","LinkLabel","NORAML_PADDING","OGMessageSwitch","openLink","OutgoingOGMessage","defaultImage","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","alt","NO_THUMBNAIL","title","SUBTITLE_2","description","BODY_2","event","stopPropagation","IncomingOGMessage","errorCode","MessageHoc","editDisabled","hasSeperator","updateMessage","renderCustomMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","editMessageInputRef","RenderedMessage","DateSeparator","MessageInput","FileMessage","OGMessage","RemoveMessageModal","FileViewer","isDateSeperator","ConversationScroll","scrollRef","onScroll","target","scrollTop","clientHeight","scrollHeight","first","renderChatItem","useMessageGrouping","idx","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","onUpdateMessage","onResendMessage","MessageHOC","Component","Notification","time","timeArray","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","ONCONTENT_1","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","SHEVRON_DOWN","CONTENT","FrozenNotification","CHANNEL_FROZEN","TypingIndicatorText","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","TypingIndicator","sb","setHandlerId","typingMembers","setTypingMembers","newHandlerId","onTypingStatusUpdated","getTypingMembers","MessageInputWrapper","_a","onSendMessage","onFileUpload","renderMessageInput","isBroadcast","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","ConnectionStatus","TRYING_TO_CONNECT","DISCONNECTED","prettyDate","date","formatDistanceToNowStrict","addSuffix","getOthersLastSeenAt","getReadStatus","lastSeenList","values","lastSeenAt","last_seen_at","getChannelTitle","LabelStringSet","name","NO_TITLE","NO_MEMBERS","AutoRefresh","repeatFunc","setLabel","interval","setInterval","clearInterval","ChatHeader","currentUser","subTitle","isActive","isMuted","onActionClick","theme","ChannelAvatar","H_2","MUTE","INFO","PRIMARY","coverUrl","ConversationPanel","stores","sdkStore","userStore","config","reconnect","dispatchers","queries","renderChatHeader","onChatHeaderActionClick","sdkError","messageListQuery","warn","useReducer","messagesReducer","messagesInitialState","messagesStore","usingReaction","userDefinedDisableUserProfile","userDefinedRenderProfile","onScrollCallback","useGetChannel","subScriber","onSendFileMessage","PlaceHolder","PlaceHolderTypes","WRONG","NO_CHANNELS","LOADING","UserProfileProvider","any","includeMetaArray","includeParentMessageText","includeThreadInfo","limit","reverse","senderUserIdsFilter","withSendbirdContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/ChannelList.js b/dist/cjs/ChannelList.js index 9e89f52..97faa86 100644 --- a/dist/cjs/ChannelList.js +++ b/dist/cjs/ChannelList.js @@ -7,17 +7,17 @@ var React = require('react'); var React__default = _interopDefault(React); var PropTypes = _interopDefault(require('prop-types')); var actionTypes = require('./actionTypes-920b541f.js'); -var index = require('./index-710314fd.js'); +var index = require('./index-49d966e1.js'); var utils = require('./utils-6aedec02.js'); -var index$1 = require('./index-64dcc5d9.js'); -var LeaveChannel = require('./LeaveChannel-cb2a36b0.js'); +var index$1 = require('./index-994f886d.js'); +var LeaveChannel = require('./LeaveChannel-4cf3cd9c.js'); var isToday = _interopDefault(require('date-fns/isToday')); var format = _interopDefault(require('date-fns/format')); var isYesterday = _interopDefault(require('date-fns/isYesterday')); require('./type-c7a3bee7.js'); var utils$1 = require('./utils-a8277ca2.js'); require('react-dom'); -var index$2 = require('./index-6ca9e95e.js'); +var index$2 = require('./index-21269166.js'); var RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST'; var CREATE_CHANNEL = 'CREATE_CHANNEL'; diff --git a/dist/cjs/ChannelSettings.js b/dist/cjs/ChannelSettings.js index e08e3b8..d40ac86 100644 --- a/dist/cjs/ChannelSettings.js +++ b/dist/cjs/ChannelSettings.js @@ -6,14 +6,14 @@ var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); var React = require('react'); var React__default = _interopDefault(React); var PropTypes = _interopDefault(require('prop-types')); -var index$1 = require('./index-710314fd.js'); +var index$1 = require('./index-49d966e1.js'); var utils = require('./utils-6aedec02.js'); -var index$1$1 = require('./index-64dcc5d9.js'); -var LeaveChannel = require('./LeaveChannel-cb2a36b0.js'); +var index$1$1 = require('./index-994f886d.js'); +var LeaveChannel = require('./LeaveChannel-4cf3cd9c.js'); require('date-fns/format'); require('react-dom'); -var index$2 = require('./index-6ca9e95e.js'); -var index$3 = require('./index-c4d028d8.js'); +var index$2 = require('./index-21269166.js'); +var index$3 = require('./index-63161cb1.js'); var EditDetails = function EditDetails(props) { var _onSubmit = props.onSubmit, diff --git a/dist/cjs/LeaveChannel-cb2a36b0.js b/dist/cjs/LeaveChannel-4cf3cd9c.js similarity index 98% rename from dist/cjs/LeaveChannel-cb2a36b0.js rename to dist/cjs/LeaveChannel-4cf3cd9c.js index 5441902..da731e6 100644 --- a/dist/cjs/LeaveChannel-cb2a36b0.js +++ b/dist/cjs/LeaveChannel-4cf3cd9c.js @@ -6,8 +6,8 @@ var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); var React = require('react'); var React__default = _interopDefault(React); var PropTypes = _interopDefault(require('prop-types')); -var index = require('./index-710314fd.js'); -var index$2 = require('./index-6ca9e95e.js'); +var index = require('./index-49d966e1.js'); +var index$2 = require('./index-21269166.js'); function Badge(_ref) { var count = _ref.count, @@ -298,4 +298,4 @@ exports.createChannel = createChannel; exports.createDefaultUserListQuery = createDefaultUserListQuery; exports.isBroadcastChannelEnabled = isBroadcastChannelEnabled; exports.isSuperGroupChannelEnabled = isSuperGroupChannelEnabled; -//# sourceMappingURL=LeaveChannel-cb2a36b0.js.map +//# sourceMappingURL=LeaveChannel-4cf3cd9c.js.map diff --git a/dist/cjs/LeaveChannel-cb2a36b0.js.map b/dist/cjs/LeaveChannel-4cf3cd9c.js.map similarity index 99% rename from dist/cjs/LeaveChannel-cb2a36b0.js.map rename to dist/cjs/LeaveChannel-4cf3cd9c.js.map index 2bc6b63..2a43e0c 100644 --- a/dist/cjs/LeaveChannel-cb2a36b0.js.map +++ b/dist/cjs/LeaveChannel-4cf3cd9c.js.map @@ -1 +1 @@ -{"version":3,"file":"LeaveChannel-fcc0bfc3.js","sources":["../../../src/ui/Badge/index.jsx","../../../src/smart-components/InviteMembers/index.jsx","../../../src/smart-components/ChannelList/components/utils.js","../../../src/smart-components/ChannelSettings/components/LeaveChannel.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function Badge({\n count,\n maxLevel,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const maximumNumber = parseInt('9'.repeat((maxLevel > 6) ? 6 : maxLevel), 10);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n
\n \n
\n
\n );\n}\n\nBadge.propTypes = {\n count: PropTypes.number.isRequired,\n maxLevel: PropTypes.number,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nBadge.defaultProps = {\n maxLevel: 2,\n className: [],\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Modal from '../../ui/Modal';\nimport { Type as ButtonTypes } from '../../ui/Button/type';\nimport UserListItem from '../../ui/UserListItem';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst filterUser = (idsToFilter) => (currentId) => idsToFilter.includes(currentId);\n\nconst InviteMembers = (props) => {\n const {\n userQueryCreator,\n closeModal,\n onSubmit,\n submitText,\n titleText,\n idsToFilter,\n swapParams,\n } = props;\n\n const [users, setUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState({});\n const { stringSet } = useContext(LocalizationContext);\n const [usersDataSource, setUsersDataSource] = useState({});\n const selectedCount = Object.keys(selectedUsers).length;\n\n useEffect(() => {\n const applicationUserListQuery = userQueryCreator();\n setUsersDataSource(applicationUserListQuery);\n applicationUserListQuery.next((res, err) => {\n // eslint-disable-next-line no-underscore-dangle\n let users_ = res;\n let error = err;\n if (swapParams) {\n users_ = err;\n error = users_;\n }\n if (error) {\n return;\n }\n setUsers(users_);\n });\n }, []);\n\n return (\n {\n const selectedUserList = Object.keys(selectedUsers);\n if (selectedUserList.length > 0) {\n onSubmit(selectedUserList);\n closeModal();\n }\n }}\n submitText={submitText}\n titleText={titleText}\n type={ButtonTypes.PRIMARY}\n >\n
\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = usersDataSource;\n const fetchMore = (\n e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n usersDataSource.next((usersBatch, error) => {\n if (error) {\n return;\n }\n setUsers([\n ...users,\n ...usersBatch,\n ]);\n });\n }\n }}\n >\n {\n users.map((user) => (!filterUser(idsToFilter)(user.userId)) && (\n {\n const modifiedSelectedUsers = {\n ...selectedUsers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedUsers[event.target.id];\n }\n setSelectedUsers(modifiedSelectedUsers);\n }\n }\n />\n ))\n }\n
\n
\n \n );\n};\n\nInviteMembers.propTypes = {\n idsToFilter: PropTypes.arrayOf(PropTypes.string),\n swapParams: PropTypes.bool,\n userQueryCreator: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string,\n titleText: PropTypes.string,\n};\nInviteMembers.defaultProps = {\n swapParams: false,\n submitText: 'create',\n titleText: 'Create new channel',\n idsToFilter: [],\n};\n\nexport default InviteMembers;\n","export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n const params = sdk.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.GroupChannel.createChannel(params, (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.GroupChannel.createChannel(\n params,\n (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n },\n );\n});\n\nexport default createChannel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\n\nconst LeaveChannel = (props) => {\n const {\n onCloseModal,\n onLeaveChannel,\n } = props;\n return (\n \n );\n};\n\nLeaveChannel.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nexport default LeaveChannel;\n"],"names":["Badge","count","maxLevel","className","useContext","LocalizationContext","stringSet","maximumNumber","parseInt","repeat","injectingClassName","Array","isArray","React","join","Label","LabelTypography","CAPTION_2","LabelColors","ONCONTENT_1","BADGE__OVER","propTypes","PropTypes","number","isRequired","oneOfType","string","arrayOf","defaultProps","filterUser","idsToFilter","currentId","includes","InviteMembers","props","userQueryCreator","closeModal","onSubmit","submitText","titleText","swapParams","useState","users","setUsers","selectedUsers","setSelectedUsers","usersDataSource","setUsersDataSource","selectedCount","Object","keys","length","useEffect","applicationUserListQuery","next","res","err","users_","error","Modal","selectedUserList","ButtonTypes","PRIMARY","ONBACKGROUND_3","CAPTION_1","MODAL__INVITE_MEMBER__SELECTEC","e","hasNext","fetchMore","target","clientHeight","scrollTop","scrollHeight","usersBatch","map","user","userId","UserListItem","event","modifiedSelectedUsers","id","checked","bool","func","createDefaultUserListQuery","sdk","userFilledApplicationUserListQuery","params","createApplicationUserListQuery","forEach","key","getApplicationAttributes","appInfo","applicationAttributes","isBroadcastChannelEnabled","ALLOW_BROADCAST_CHANNEL","isSuperGroupChannelEnabled","ALLOW_SUPER_GROUP_CHANNEL","setChannelType","type","isBroadcast","isSuper","createChannel","onBeforeCreateChannel","Promise","resolve","reject","GroupChannel","response","getErrorFirstCallback","groupChannel","GroupChannelParams","addUserIds","isDistinct","operatorUserIds","LeaveChannel","onCloseModal","onLeaveChannel"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LeaveChannel-da8b5d0b.js","sources":["../../../src/ui/Badge/index.jsx","../../../src/smart-components/InviteMembers/index.jsx","../../../src/smart-components/ChannelList/components/utils.js","../../../src/smart-components/ChannelSettings/components/LeaveChannel.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function Badge({\n count,\n maxLevel,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const maximumNumber = parseInt('9'.repeat((maxLevel > 6) ? 6 : maxLevel), 10);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n
\n \n
\n
\n );\n}\n\nBadge.propTypes = {\n count: PropTypes.number.isRequired,\n maxLevel: PropTypes.number,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nBadge.defaultProps = {\n maxLevel: 2,\n className: [],\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Modal from '../../ui/Modal';\nimport { Type as ButtonTypes } from '../../ui/Button/type';\nimport UserListItem from '../../ui/UserListItem';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst filterUser = (idsToFilter) => (currentId) => idsToFilter.includes(currentId);\n\nconst InviteMembers = (props) => {\n const {\n userQueryCreator,\n closeModal,\n onSubmit,\n submitText,\n titleText,\n idsToFilter,\n swapParams,\n } = props;\n\n const [users, setUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState({});\n const { stringSet } = useContext(LocalizationContext);\n const [usersDataSource, setUsersDataSource] = useState({});\n const selectedCount = Object.keys(selectedUsers).length;\n\n useEffect(() => {\n const applicationUserListQuery = userQueryCreator();\n setUsersDataSource(applicationUserListQuery);\n applicationUserListQuery.next((res, err) => {\n // eslint-disable-next-line no-underscore-dangle\n let users_ = res;\n let error = err;\n if (swapParams) {\n users_ = err;\n error = users_;\n }\n if (error) {\n return;\n }\n setUsers(users_);\n });\n }, []);\n\n return (\n {\n const selectedUserList = Object.keys(selectedUsers);\n if (selectedUserList.length > 0) {\n onSubmit(selectedUserList);\n closeModal();\n }\n }}\n submitText={submitText}\n titleText={titleText}\n type={ButtonTypes.PRIMARY}\n >\n
\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = usersDataSource;\n const fetchMore = (\n e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n usersDataSource.next((usersBatch, error) => {\n if (error) {\n return;\n }\n setUsers([\n ...users,\n ...usersBatch,\n ]);\n });\n }\n }}\n >\n {\n users.map((user) => (!filterUser(idsToFilter)(user.userId)) && (\n {\n const modifiedSelectedUsers = {\n ...selectedUsers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedUsers[event.target.id];\n }\n setSelectedUsers(modifiedSelectedUsers);\n }\n }\n />\n ))\n }\n
\n \n \n );\n};\n\nInviteMembers.propTypes = {\n idsToFilter: PropTypes.arrayOf(PropTypes.string),\n swapParams: PropTypes.bool,\n userQueryCreator: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string,\n titleText: PropTypes.string,\n};\nInviteMembers.defaultProps = {\n swapParams: false,\n submitText: 'create',\n titleText: 'Create new channel',\n idsToFilter: [],\n};\n\nexport default InviteMembers;\n","export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n const params = sdk.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.GroupChannel.createChannel(params, (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.GroupChannel.createChannel(\n params,\n (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n },\n );\n});\n\nexport default createChannel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\n\nconst LeaveChannel = (props) => {\n const {\n onCloseModal,\n onLeaveChannel,\n } = props;\n return (\n \n );\n};\n\nLeaveChannel.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nexport default LeaveChannel;\n"],"names":["Badge","count","maxLevel","className","useContext","LocalizationContext","stringSet","maximumNumber","parseInt","repeat","injectingClassName","Array","isArray","React","join","Label","LabelTypography","CAPTION_2","LabelColors","ONCONTENT_1","BADGE__OVER","propTypes","PropTypes","number","isRequired","oneOfType","string","arrayOf","defaultProps","filterUser","idsToFilter","currentId","includes","InviteMembers","props","userQueryCreator","closeModal","onSubmit","submitText","titleText","swapParams","useState","users","setUsers","selectedUsers","setSelectedUsers","usersDataSource","setUsersDataSource","selectedCount","Object","keys","length","useEffect","applicationUserListQuery","next","res","err","users_","error","Modal","selectedUserList","ButtonTypes","PRIMARY","ONBACKGROUND_3","CAPTION_1","MODAL__INVITE_MEMBER__SELECTEC","e","hasNext","fetchMore","target","clientHeight","scrollTop","scrollHeight","usersBatch","map","user","userId","UserListItem","event","modifiedSelectedUsers","id","checked","bool","func","createDefaultUserListQuery","sdk","userFilledApplicationUserListQuery","params","createApplicationUserListQuery","forEach","key","getApplicationAttributes","appInfo","applicationAttributes","isBroadcastChannelEnabled","ALLOW_BROADCAST_CHANNEL","isSuperGroupChannelEnabled","ALLOW_SUPER_GROUP_CHANNEL","setChannelType","type","isBroadcast","isSuper","createChannel","onBeforeCreateChannel","Promise","resolve","reject","GroupChannel","response","getErrorFirstCallback","groupChannel","GroupChannelParams","addUserIds","isDistinct","operatorUserIds","LeaveChannel","onCloseModal","onLeaveChannel"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/OpenChannel.js b/dist/cjs/OpenChannel.js index 01b32a7..080430f 100644 --- a/dist/cjs/OpenChannel.js +++ b/dist/cjs/OpenChannel.js @@ -8,10 +8,10 @@ var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); var React = require('react'); var React__default = _interopDefault(React); require('prop-types'); -var index$1 = require('./index-710314fd.js'); +var index$1 = require('./index-49d966e1.js'); var format = _interopDefault(require('date-fns/format')); require('react-dom'); -var index$2$1 = require('./index-95b18747.js'); +var index$2$1 = require('./index-6e58a4a2.js'); var isSameDay = _interopDefault(require('date-fns/isSameDay')); var getMessageCreatedAt = function getMessageCreatedAt(message) { @@ -1198,6 +1198,8 @@ function MessageHoc(_a) { disabled = _a.disabled, editDisabled = _a.editDisabled, hasSeperator = _a.hasSeperator, + channel = _a.channel, + renderCustomMessage = _a.renderCustomMessage, deleteMessage = _a.deleteMessage, updateMessage = _a.updateMessage, resendMessage = _a.resendMessage, @@ -1210,6 +1212,14 @@ function MessageHoc(_a) { sender = message.sender; } + var RenderedMessage = React.useMemo(function () { + if (renderCustomMessage) { + return renderCustomMessage(message, channel); + } + + return null; + }, [message, renderCustomMessage]); + var _c = React.useState(false), showEdit = _c[0], setShowEdit = _c[1]; @@ -1230,6 +1240,14 @@ function MessageHoc(_a) { isByMe = userId === sender.userId || message.requestState === SendingMessageStatus.PENDING || message.requestState === SendingMessageStatus.FAILED; } + if (RenderedMessage) { + return React__default.createElement("div", { + className: "sendbird-msg-hoc sendbird-msg--scroll-ref" + }, React__default.createElement(RenderedMessage, { + message: message + })); + } + if (message.messageType === 'user' && showEdit) { return React__default.createElement(index$2$1.MessageInput, { isEdit: true, @@ -1352,6 +1370,7 @@ function OpenchannelConversationScroll(_a) { hasMore = _a.hasMore, onScroll = _a.onScroll, scrollDownPromise = _a.scrollDownPromise, + renderCustomMessage = _a.renderCustomMessage, showScrollDownButton = _a.showScrollDownButton, updateMessage = _a.updateMessage, deleteMessage = _a.deleteMessage, @@ -1429,6 +1448,8 @@ function OpenchannelConversationScroll(_a) { chainBottom = _a[1]; return React__default.createElement(MessageHoc, { + renderCustomMessage: renderCustomMessage, + channel: openchannel, key: message.messageId, message: message, status: status, @@ -1892,6 +1913,7 @@ var OpenchannelConversation = function OpenchannelConversation(props) { _a = props.queries, queries = _a === void 0 ? {} : _a, disableUserProfile = props.disableUserProfile, + renderCustomMessage = props.renderCustomMessage, renderUserProfile = props.renderUserProfile, renderChannelTitle = props.renderChannelTitle, renderMessageInput = props.renderMessageInput, @@ -1902,7 +1924,8 @@ var OpenchannelConversation = function OpenchannelConversation(props) { userStore = stores.userStore; var userId = config.userId, isOnline = config.isOnline, - logger = config.logger; + logger = config.logger, + pubSub = config.pubSub; var sdk = sdkStore.sdk; var user = userStore.user; // hook variables @@ -1982,6 +2005,86 @@ var OpenchannelConversation = function OpenchannelConversation(props) { // }); // }); } + }, [channelUrl, sdkInit]); // handles API calls from withSendbird + + React.useEffect(function () { + var subscriber = new Map(); + + if (!pubSub || !pubSub.subscribe) { + return; + } + + subscriber.set(index$1.SEND_USER_MESSAGE, pubSub.subscribe(index$1.SEND_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + scrollIntoLast('.sendbird-msg--scroll-ref'); + + if (channel && channelUrl === channel.url) { + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + } + })); + subscriber.set(index$1.SEND_MESSAGE_START, pubSub.subscribe(index$1.SEND_MESSAGE_START, function (msg) { + var channel = msg.channel, + message = msg.message; + + if (channel && channelUrl === channel.url) { + messagesDispatcher({ + type: SENDING_MESSAGE_START, + payload: message + }); + } + })); + subscriber.set(index$1.SEND_FILE_MESSAGE, pubSub.subscribe(index$1.SEND_FILE_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + scrollIntoLast('.sendbird-msg--scroll-ref'); + + if (channel && channelUrl === channel.url) { + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + } + })); + subscriber.set(index$1.UPDATE_USER_MESSAGE, pubSub.subscribe(index$1.UPDATE_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message, + fromSelector = msg.fromSelector; + + if (fromSelector && channel && channelUrl === channel.url) { + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: channel, + message: message + } + }); + } + })); + subscriber.set(index$1.DELETE_MESSAGE, pubSub.subscribe(index$1.DELETE_MESSAGE, function (msg) { + var channel = msg.channel, + messageId = msg.messageId; + + if (channel && channelUrl === channel.url) { + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: messageId + }); + } + })); + return function () { + if (subscriber) { + subscriber.forEach(function (s) { + try { + s.remove(); + } catch (_a) {// + } + }); + } + }; }, [channelUrl, sdkInit]); // useHandleChannelEvents React.useEffect(function () { @@ -2711,6 +2814,7 @@ var OpenchannelConversation = function OpenchannelConversation(props) { coverImage: currentOpenChannel.coverUrl, onActionClick: onChatHeaderActionClick }), currentOpenChannel.isFrozen && React__default.createElement(FrozenNotification, null), React__default.createElement(OpenchannelConversationScroll, { + renderCustomMessage: renderCustomMessage, openchannel: currentOpenChannel, user: user, useMessageGrouping: useMessageGrouping, diff --git a/dist/cjs/OpenChannel.js.map b/dist/cjs/OpenChannel.js.map index 8adbbac..65cbc4b 100644 --- a/dist/cjs/OpenChannel.js.map +++ b/dist/cjs/OpenChannel.js.map @@ -1 +1 @@ -{"version":3,"file":"OpenChannel.js","sources":["../../../src/smart-components/OpenchannelConversation/utils.ts","../../../src/smart-components/OpenchannelConversation/components/MessageInpuetWrapper.tsx","../../../src/smart-components/OpenchannelConversation/components/FrozenNotification.tsx","../../../src/ui/OpenchannelConversationHeader/index.tsx","../../../src/ui/OpenchannelUserMessage/utils.ts","../../../src/utils/openChannelUtils.ts","../../../src/ui/OpenchannelUserMessage/index.tsx","../../../src/ui/OpenChannelAdminMessage/index.tsx","../../../src/ui/OpenchannelOGMessage/utils.ts","../../../src/ui/OpenchannelOGMessage/index.tsx","../../../src/ui/OpenchannelThumbnailMessage/utils.ts","../../../src/ui/OpenchannelThumbnailMessage/index.tsx","../../../src/ui/OpenchannelFileMessage/utils.ts","../../../src/ui/OpenchannelFileMessage/index.tsx","../../../src/smart-components/OpenchannelConversation/components/RemoveMessageModal.tsx","../../../src/smart-components/OpenchannelConversation/components/types.ts","../../../src/smart-components/OpenchannelConversation/components/MessageHOC.tsx","../../../src/smart-components/OpenchannelConversation/components/OpenchannelConversationScroll.tsx","../../../src/smart-components/OpenchannelConversation/dux/actionTypes.ts","../../../src/smart-components/OpenchannelConversation/dux/reducers.ts","../../../src/smart-components/OpenchannelConversation/dux/initialState.ts","../../../src/smart-components/OpenchannelConversation/index.tsx"],"sourcesContent":["import format from 'date-fns/format';\nimport Sendbird from 'sendbird';\nimport SendbirdUIKit from '../../index';\n\nexport const getMessageCreatedAt = (message: SendbirdUIKit.EveryMessage): string => format(message.createdAt, 'p');\n\nexport const scrollIntoLast = (selector: string, intialTry = 0): void => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\n\nexport const isSameGroup = (\n message: SendbirdUIKit.EveryMessage,\n comparingMessage: SendbirdUIKit.EveryMessage,\n): boolean => {\n if (\n !message\n || !comparingMessage\n || message.messageType === 'admin'\n || comparingMessage.messageType === 'admin'\n ) {\n return false\n }\n\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: SendbirdUIKit.EveryMessage,\n currMessage: SendbirdUIKit.EveryMessage,\n nextMessage: SendbirdUIKit.EveryMessage,\n): [boolean, boolean] => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n );\n\nexport const kFormatter = (num: number): string => {\n if (Math.abs(num) > 999999) {\n return `${(Math.abs(num) / 1000000).toFixed(1)}M`;\n }\n\n if (Math.abs(num) > 999) {\n return `${(Math.abs(num) / 1000).toFixed(1)}K`;\n }\n\n return `${num}`;\n};\n\nexport const isOperator = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { operators } = openChannel;\n if (operators.map(operator => operator.userId).indexOf(userId) < 0) {\n return false;\n }\n return true;\n};\n\nexport const isDisabledBecauseFrozen = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { isFrozen } = openChannel;\n return isFrozen && !isOperator(openChannel, userId);\n};\n\nexport const isDisabledBecauseMuted = (mutedParticipantIds: string[], userId: string): boolean => {\n return mutedParticipantIds.indexOf(userId) < 0;\n};\n","import React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\nimport { RenderMessageInputProps } from '../../../index';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport MessageInput from '../../../ui/MessageInput';\n\ninterface Props {\n channel: Sendbird.OpenChannel;\n user: Sendbird.User;\n disabled: boolean;\n onSendMessage(): void;\n onFileUpload(file_: File): void;\n renderMessageInput?(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n disabled,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n}: Props, ref: React.RefObject): JSX.Element => {\n if (!channel) {\n return;\n }\n\n const { stringSet } = useContext(LocalizationContext);\n\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport './frozen-notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { ReactElement } from 'react';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, {\n LabelTypography,\n LabelColors,\n LabelStringSet,\n} from '../Label';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation-header';\n\ninterface Props {\n coverImage?: string;\n title?: string;\n subTitle?: string;\n onActionClick?(): void;\n}\n\nexport default function OpenchannelConversationHeader({\n coverImage,\n title = LabelStringSet.NO_TITLE,\n subTitle = LabelStringSet.NO_TITLE,\n onActionClick,\n}: Props): ReactElement {\n return (\n\n
\n
\n {\n coverImage ? (\n \n ) : (\n \n )\n }\n \n {title}\n \n \n {subTitle}\n \n
\n
\n \n \n \n
\n
\n );\n}\n","export const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport default { copyToClipboard };\n","import Sendbird from 'sendbird';\nimport { ClientUserMessage, ClientFileMessage } from '../index';\n\nconst OpenChannelMessageStatusTypes = {\n NONE: 'none',\n PENDING: 'pending',\n FAILED: 'failed',\n CANCELED: 'canceled',\n SUCCEEDED: 'succeeded'\n};\n\nexport const getSenderFromMessage = (message: ClientUserMessage | ClientFileMessage): Sendbird.User => {\n return message.sender || message._sender;\n};\n\nexport const checkIsSent = (status: string): boolean => (status === OpenChannelMessageStatusTypes.SUCCEEDED);\n\nexport const checkIsByMe = (message: ClientFileMessage | ClientUserMessage, userId: string): boolean => (getSenderFromMessage(message).userId === userId);\n\ninterface isFineCopyParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineCopy = ({ message }: isFineCopyParams): boolean => {\n return (message.messageType === 'user' && message.message.length > 0);\n};\n\ninterface isFineResendParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineResend = ({ message, status, userId }: isFineResendParams): boolean => {\n return checkIsByMe(message, userId)\n && !checkIsSent(status)\n && message.isResendable\n && message.isResendable();\n};\n\ninterface isFineEditParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineEdit = ({ message, status, userId }: isFineEditParams): boolean => {\n return checkIsByMe(message, userId) && checkIsSent(status);\n};\n\ninterface isFineDeleteParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineDelete = ({ message, userId }: isFineDeleteParams): boolean => {\n return checkIsByMe(message, userId);\n};\n\ninterface showMenuTriggerParams {\n message: ClientUserMessage | ClientFileMessage;\n status: string;\n userId: string;\n}\nexport const showMenuTrigger = (props: showMenuTriggerParams): boolean => {\n const { message, status, userId } = props;\n if (message.messageType === 'user') {\n return (\n isFineDelete({ message, status, userId })\n || isFineEdit({ message, status, userId })\n || isFineCopy({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n } else {\n return (\n isFineDelete({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n }\n};\n","import React, {\n useMemo,\n useContext,\n useRef,\n useState,\n ReactElement,\n useEffect,\n} from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { copyToClipboard } from './utils';\nimport uuidv4 from '../../utils/uuid';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n userId: string;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n}\n\nexport default function OpenchannelUserMessage({\n message,\n className,\n userId,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n chainTop,\n status,\n}: Props): ReactElement {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n // hooks\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const contextMenuRef = useRef(null);\n const [contextStyle, setContextStyle] = useState({});\n\n // consts\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push(`sendbird-openchannel-user-message`);\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const splitMessage = message.message.split(/\\r/);\n const matchedMessage = splitMessage.map((word) => (word !== '' ? word :
));\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n // place context menu top depending clientHeight of message component\n useEffect(() => {\n if (messageRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status}) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message: message, userId: userId, status: status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message: message, userId: userId, status: status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n );\n}\n","import React, { ReactElement } from 'react';\nimport { ClientAdminMessage } from '../../index';\nimport './index.scss';\n\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\ninterface Props {\n message: ClientAdminMessage;\n className?: string | string[];\n}\n\nexport default function OpenChannelAdminMessage({\n message,\n className,\n}: Props): ReactElement {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-admin-message');\n\n return (\n
\n \n {message.message || ''}\n \n
\n );\n}\n","import Sendbird from 'sendbird';\n\nexport const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const createUrlTester = (regexp: RegExp) => (text: string): boolean => regexp.test(text);\nexport const checkOGIsEnalbed = (message: Sendbird.UserMessage): boolean => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n","import React, { useState, useContext, useMemo, useRef, useEffect } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport LinkLabel from '../LinkLabel';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport uuidv4 from '../../utils/uuid';\nimport { copyToClipboard } from '../OpenchannelUserMessage/utils';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkOGIsEnalbed, createUrlTester, URL_REG } from './utils';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n userId: string;\n}\n\nexport default function OpenchannelOGMessage({\n message,\n className,\n disabled,\n showEdit,\n showRemove,\n resendMessage,\n chainTop,\n status,\n userId,\n}: Props): JSX.Element {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n const { ogMetaData } = message;\n const { defaultImage } = ogMetaData;\n\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const [contextStyle, setContextStyle] = useState({});\n const messageComponentRef = useRef(null);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const isUrl = createUrlTester(URL_REG);\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-og-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const wordClassName = 'sendbird-openchannel-og-message--word';\n const splitMessage = message.message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n // place conxt menu top depending clientHeight of message component\n useEffect(() => {\n if (messageComponentRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status }) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message, userId, status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n
\n
\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n ogMetaData.title && (\n \n {\n ogMetaData.title\n }\n \n )\n }\n {\n ogMetaData.description && (\n \n {ogMetaData.description}\n \n )\n }\n {\n ogMetaData.url && (\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n )\n }\n \n \n \n );\n}\n","export const SUPPORTING_TYPES = {\n IMAGE: 'IMAGE',\n VIDEO: 'VIDEO',\n UNSUPPORTED: 'UNSUPPORTED',\n};\n\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const getSupportingFileType = (type: string): string => {\n if (SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.IMAGE;\n }\n if (SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.VIDEO;\n }\n return SUPPORTING_TYPES.UNSUPPORTED;\n}\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\nimport { SUPPORTING_TYPES, getSupportingFileType } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport {\n checkIsByMe,\n checkIsSent,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n disabled: boolean;\n userId: string;\n status: string;\n chainTop: boolean;\n chainBottom: boolean;\n onClick(bool: boolean): void,\n showRemove(bool: boolean): void,\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelThumbnailMessage({\n message,\n className,\n disabled,\n userId,\n status,\n chainTop,\n onClick,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-thumbnail-message');\n const isByMe = checkIsByMe(message, userId);\n const isMessageSent = checkIsSent(status);\n const sender = getSenderFromMessage(message);\n\n return (\n
\n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n onKeyDown={() => {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n tabIndex={0}\n role=\"button\"\n >\n
\n {\n {\n [SUPPORTING_TYPES.VIDEO]: (\n (url || localUrl)\n ? (\n
\n \n \n \n \n
\n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.IMAGE]: (\n (url || localUrl)\n ? (\n \n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.UNSUPPORTED]: (\n \n ),\n }[getSupportingFileType(type)]\n }\n
\n
\n
\n \n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n
\n \n );\n}\n","import { IconTypes } from '../Icon';\n\nexport const checkFileType = (fileUrl: string): string => {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport const truncate = (fullStr:string, strLen: number): string => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkFileType, truncate } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineDelete,\n isFineResend,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n userId: string;\n disabled?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n\n showRemove(bool: boolean): void;\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelFileMessage({\n message,\n className,\n userId,\n disabled,\n chainTop,\n status,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n\n const openFileUrl = () => { window.open(message.url); };\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-file-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n checkFileType(message.url) && (\n \n )\n }\n \n \n {truncate(message.url, 40)}\n \n \n
\n
\n \n {\n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n if (disabled) { return; }\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n }\n \n \n );\n}\n","import React, { useContext } from 'react'\nimport { ClientFileMessage, ClientUserMessage } from '../../..'\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n onCloseModal(): void;\n onDeleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n}\n\nexport default function RemoveMessageModal({\n onCloseModal,\n onDeleteMessage,\n}: Props): JSX.Element {\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n \n );\n}\n","import { EveryMessage } from '../../..';\nimport { isImage, isVideo } from '../../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message: EveryMessage): string => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if (message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return MessageTypes.UNKNOWN;\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import React, { useState, useRef, ReactElement } from 'react';\n\nimport format from 'date-fns/format';\nimport { ClientFileMessage, ClientUserMessage, EveryMessage } from '../../../index';\n\nimport OpenChannelUserMessage from '../../../ui/OpenchannelUserMessage';\nimport OpenChannelAdminMessage from '../../../ui/OpenChannelAdminMessage';\nimport OpenChannelOGMessage from '../../../ui/OpenchannelOGMessage';\nimport OpenChannelThumbnailMessage from '../../../ui/OpenchannelThumbnailMessage';\nimport OpenChannelFileMessage from '../../../ui/OpenchannelFileMessage';\n// import UnknownMessage from '../../../ui/UnknownMessage';\n\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\n\nimport RemoveMessageModal from './RemoveMessageModal';\nimport {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n} from './types';\n\ninterface Props {\n message: EveryMessage;\n userId: string;\n disabled: boolean;\n editDisabled: boolean;\n hasSeperator: boolean;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n updateMessage(messageId: number, text: string, callback?: () => void): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n status?: string;\n chainTop: boolean;\n chainBottom: boolean;\n}\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n resendMessage,\n status,\n chainTop,\n chainBottom,\n}: Props): ReactElement {\n let sender: SendBird.User = null;\n if (message.messageType !== 'admin') {\n sender = message.sender;\n }\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n let isByMe = false;\n\n if (sender && message.messageType !== 'admin') {\n // pending and failed messages are by me\n isByMe = (userId === sender.userId)\n || (message.requestState === SendingMessageStatus.PENDING)\n || (message.requestState === SendingMessageStatus.FAILED);\n }\n\n if (message.messageType === 'user' && showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: (() => {\n if (message.messageType === 'admin') {\n return (\n \n )\n }\n })(),\n [MessageTypes.FILE]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.OG]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.THUMBNAIL]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.USER]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.UNKNOWN]: (() => {\n return;\n // return (\n // \n // );\n })(),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n if (message.messageType !== 'admin') {\n deleteMessage(message);\n }\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={deleteMessage}\n isByMe={isByMe}\n />\n )\n }\n {/* {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n } */}\n
\n );\n}\n","import React, { ReactElement, useRef, useEffect } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\nimport { ClientFileMessage, ClientUserMessage, EveryMessage } from '../../../index';\nimport MessageHoc from './MessageHOC';\n\nimport './openchannel-conversation-scroll.scss';\nimport { compareMessagesForGrouping } from '../utils';\n\ninterface Props {\n openchannel: SendBird.OpenChannel;\n user: SendBird.User;\n allMessages: EveryMessage[];\n useMessageGrouping: boolean;\n isOnline: boolean;\n hasMore: boolean;\n onScroll(callback?: () => void): void;\n scrollDownPromise: PromiseLike;\n showScrollDownButton?(bool: boolean): void;\n updateMessage(messageId: number, text: string, callback?: () => void ): void;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void ): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n}\n\nexport default function OpenchannelConversationScroll(\n {\n useMessageGrouping = true,\n openchannel,\n user,\n allMessages,\n isOnline = true,\n hasMore,\n onScroll,\n scrollDownPromise,\n showScrollDownButton,\n updateMessage,\n deleteMessage,\n resendMessage,\n }: Props\n): ReactElement {\n const scrollRef = useRef(null);\n\n const handleOnScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n } = element;\n if (showScrollDownButton) {\n if (scrollHeight > scrollTop + clientHeight) {\n showScrollDownButton(true);\n } else {\n showScrollDownButton(false);\n }\n }\n\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n onScroll(() => {\n const first = nodes[0];\n first.scrollIntoView();\n });\n }\n };\n\n useEffect(() => {\n // This promise is created in everytime when user click the scroll to bottom button\n // This scope waits when user click the button and scrolls to the bottom of conversation\n if (scrollDownPromise && scrollRef && scrollRef.current) {\n scrollDownPromise.then(() => {\n scrollRef.current.scrollTo(0, scrollRef.current.scrollHeight);\n if (showScrollDownButton) {\n showScrollDownButton(false);\n }\n });\n }\n return;\n }, [scrollDownPromise]);\n\n return (\n \n
\n
\n
\n {\n allMessages.map((message, index) => {\n let status: string;\n\n if (message.messageType !== 'admin') {\n status = message.sendingStatus;\n }\n\n const previousMessage = allMessages[index - 1];\n const nextMessage = allMessages[index - 1];\n\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = message.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, message, nextMessage)\n : [false, false];\n return (\n \n )\n })\n }\n
\n
\n
\n );\n}\n","export const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';\nexport const SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';\nexport const SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';\nexport const SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';\nexport const RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';\n\n// event handlers\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';\nexport const ON_USER_ENTERED = 'ON_USER_ENTERED';\nexport const ON_USER_EXITED = 'ON_USER_EXITED';\nexport const ON_USER_MUTED = 'ON_USER_MUTED';\nexport const ON_USER_UNMUTED = 'ON_USER_UNMUTED';\nexport const ON_USER_BANNED = 'ON_USER_BANNED';\nexport const ON_USER_UNBANNED = 'ON_USER_UNBANNED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';\nexport const ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';\nexport const ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';\nexport const ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';\nexport const ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';\nexport const ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';\nexport const ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';\n","import { State as initialStateInterface } from './initialState';\nimport * as actionTypes from './actionTypes';\n\nimport compareIds from '../../../utils/compareIds.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore: Unreachable code error\ninterface ActionInterface {\n type: string;\n payload?: any;\n}\n\nexport default function reducer(\n state: initialStateInterface,\n action: ActionInterface,\n): initialStateInterface {\n switch (action.type) {\n case actionTypes.RESET_MESSAGES: {\n return {\n ...state,\n allMessages: [],\n };\n }\n\n case actionTypes.SET_CURRENT_CHANNEL: {\n const currentChannel = action.payload;\n const operators = currentChannel.operators;\n if (\n !state.isInvalid\n && state.currentOpenChannel\n && state.currentOpenChannel.url\n && (state.currentOpenChannel.url === currentChannel.url)\n ) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: currentChannel,\n isInvalid: false,\n operators: operators,\n participants: operators,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_SUCESS:\n case actionTypes.GET_PREV_MESSAGES_FAIL: {\n const isFailed = (action.type === actionTypes.GET_PREV_MESSAGES_FAIL);\n const {\n currentOpenChannel = {},\n messages = [],\n hasMore,\n lastMessageTimestamp,\n } = action.payload;\n const actionChannelUrl = currentOpenChannel.url;\n const receivedMessages = isFailed ? [] : messages;\n const _hasMore = isFailed ? false : hasMore;\n const _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;\n\n const stateChannel = state.currentOpenChannel;\n const stateChannelUrl = stateChannel.url;\n\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n const filteredAllMessages = state.allMessages.filter((message) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, message.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: _hasMore,\n lastMessageTimestamp: _lastMessageTimestamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_START: {\n const {\n message,\n channel,\n } = action.payload;\n if (channel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...message },\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_SUCCEEDED: {\n const sentMessage = action.payload;\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SENDING_MESSAGE_FAILED: {\n const sentMessage = action.payload;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n )),\n };\n }\n case actionTypes.RESENDING_MESSAGE_START: {\n const eventedChannel = action.payload.channel;\n const resentMessage = action.payload.message;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, resentMessage.reqId) ? resentMessage : m\n )),\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const eventedChannel = action.payload.channel;\n const receivedMessage = action.payload.message;\n const {\n currentOpenChannel\n } = state;\n\n if (\n !compareIds(eventedChannel.url, currentOpenChannel.url)\n || (\n !(state.allMessages.map(\n (message) => message.messageId).indexOf(receivedMessage.messageId) < 0\n ))\n ) {\n return state;\n }\n\n return {\n ...state,\n allMessages: [...state.allMessages, receivedMessage],\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedMessage = action.payload.message;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((message) => (\n message.isIdentical(updatedMessage)\n ? updatedMessage\n : message\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED: {\n const eventedChannel = action.payload.channel;\n const deletedMessageId = action.payload.messageId;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.filter((message) => (\n !compareIds(message.messageId, deletedMessageId)\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID: {\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n }\n case actionTypes.ON_OPERATOR_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedOperators = action.payload.operators;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: {\n ...state.currentOpenChannel,\n operators: updatedOperators,\n },\n operators: updatedOperators,\n };\n }\n case actionTypes.ON_USER_ENTERED: {\n const eventedChannel = action.payload.channel;\n const enteredUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, enteredUser],\n };\n }\n case actionTypes.ON_USER_EXITED: {\n const eventedChannel = action.payload.channel;\n const exitedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: state.participants.filter((participant) => (\n !compareIds(participant.userId, exitedUser.userId)\n )),\n };\n }\n case actionTypes.ON_USER_MUTED: {\n // const eventedChannel = action.payload.channel;\n // const mutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNMUTED: {\n // const eventedChannel = action.payload.channel;\n // const unmutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_BANNED: {\n // const eventedChannel = action.payload.channel;\n // const bannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNBANNED: {\n // const eventedChannel = action.payload.channel;\n // const unbannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_CHANNEL_FROZEN: {\n const frozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== frozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: true,\n };\n }\n case actionTypes.ON_CHANNEL_UNFROZEN: {\n const unfrozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== unfrozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: false,\n };\n }\n case actionTypes.ON_CHANNEL_CHANGED: {\n const changedChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== changedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: changedChannel,\n };\n }\n case actionTypes.ON_META_DATA_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaDataKeys = action.payload.metaDataKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaCounterKeys = action.payload.metaCounterKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_MENTION_RECEIVED: {\n // const eventedChannel = action.payload.channel;\n // const mentionedMessage = action.payload.message;\n // return {\n // ...state\n // };\n return state;\n }\n default:\n return state;\n }\n}\n","import Sendbird from 'sendbird';\nimport { EveryMessage } from '../../../index';\n\nexport interface State {\n allMessages: EveryMessage[];\n loading: boolean;\n initialized: boolean;\n currentOpenChannel: Sendbird.OpenChannel;\n isInvalid: boolean;\n hasMore: boolean;\n lastMessageTimestamp: number;\n frozen: boolean;\n operators: Sendbird.User[];\n participants: Sendbird.User[];\n // add banned participant ids\n // add muted participant ids\n}\n\nconst initialState: State = {\n allMessages: [],\n loading: false,\n initialized: false,\n currentOpenChannel: null,\n isInvalid: false,\n hasMore: false,\n lastMessageTimestamp: 0,\n frozen: false,\n operators: [],\n participants: [],\n // bannedParticipantIds\n // mutedParticipantIds\n};\n\nexport default initialState;\n","import React, {\n useRef,\n useCallback,\n useEffect,\n useReducer,\n useContext,\n useState,\n} from 'react';\nimport Sendbird from 'sendbird';\nimport * as utils from './utils';\nimport './index.scss';\n\nimport MessageInputWrapper from './components/MessageInpuetWrapper';\nimport FrozenChannelNotification from './components/FrozenNotification';\nimport OpenchannelConversationHeader from '../../ui/OpenchannelConversationHeader';\nimport OpenchannelConversationScroll from './components/OpenchannelConversationScroll';\nimport Icon, { IconColors, IconTypes } from '../../ui/Icon';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport {\n EveryMessage,\n ClientUserMessage,\n ClientFileMessage,\n OpenChannelProps,\n} from '../../index';\nimport messagesReducer from './dux/reducers';\nimport messagesInitialState from './dux/initialState';\nimport * as messageActionTypes from './dux/actionTypes';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext.jsx';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport uuidv4 from '../../utils/uuid';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation';\n\ninterface Props extends OpenChannelProps {\n stores: {\n sdkStore?: SendbirdUIKit.SdkStore,\n userStore?: {\n user: Sendbird.User,\n },\n };\n config: {\n userId: string,\n isOnline: boolean,\n logger?: SendbirdUIKit.Logger,\n theme?: string,\n disableUserProfile?: boolean;\n renderUserProfile?(): JSX.Element;\n };\n}\n\nexport const OpenchannelConversation = (props: Props): JSX.Element => {\n // props\n const {\n useMessageGrouping,\n channelUrl,\n stores,\n config,\n queries = {},\n disableUserProfile,\n renderUserProfile,\n renderChannelTitle,\n renderMessageInput,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onChatHeaderActionClick\n } = props;\n\n const {\n sdkStore,\n userStore,\n } = stores;\n const {\n userId,\n isOnline,\n logger,\n } = config;\n\n const {\n sdk\n } = sdkStore;\n const {\n user\n } = userStore;\n\n // hook variables\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const {\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n } = messagesStore;\n // ref\n const messageInputRef = useRef(null); // useSendMessageCallback\n const { stringSet } = useContext(LocalizationContext);\n const [scrollDownPromise, setScrollDownPromise] = useState(null);\n const [showScrollDownButton, setShowScrollDownButton] = useState(false);\n\n // const\n const sdkInit = sdkStore.initialized;\n const userFilledMessageListParams = queries ? queries.messageListParams: null;\n const disabled = !initialized\n || !isOnline\n || utils.isDisabledBecauseFrozen(currentOpenChannel, userId);\n // || utils.isDisabledBecauseMuted(mutedParticipantIds, userId)\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n // useSetChannel\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.OpenChannel) {\n logger.info('OpenChannel | useSetChannel fetching channel', channelUrl);\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (!error) {\n logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: openChannel,\n });\n openChannel.enter((error) => {\n if (error) {\n logger.warning('OpenChannel | useSetChannel enter channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n } else {\n logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n // .then((openChannel) => {\n // logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n // messagesDispatcher({\n // type: messageActionTypes.SET_CURRENT_CHANNEL,\n // payload: openChannel,\n // });\n // })\n // .catch((error) => {\n // logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n // messagesDispatcher({\n // type: messageActionTypes.SET_CHANNEL_INVALID,\n // });\n // });\n }\n }, [channelUrl, sdkInit]);\n\n // useHandleChannelEvents\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (currentOpenChannel && currentOpenChannel.url && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('OpenChannel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n\n ChannelHandler.onMessageReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageUpdated = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageDeleted = (channel, messageId) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { channelUrl, messageId });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: { channel, messageId },\n });\n };\n ChannelHandler.onOperatorUpdated = (channel, operators) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { channelUrl, operators });\n messagesDispatcher({\n type: messageActionTypes.ON_OPERATOR_UPDATED,\n payload: { channel, operators },\n });\n };\n ChannelHandler.onUserEntered = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_ENTERED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserExited = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_EXITED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserMuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnmuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNMUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_BANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnbanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNBANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onMetaDataCreated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_CREATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataUpdated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_UPDATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataDeleted = (channel, metaDataKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { channelUrl, metaDataKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_DELETED,\n payload: { channel, metaDataKeys },\n });\n };\n ChannelHandler.onMetaCountersCreated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_CREATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersUpdated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_UPDATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersDeleted = (channel, metaCounterKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { channelUrl, metaCounterKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_DELETED,\n payload: { channel, metaCounterKeys },\n });\n };\n ChannelHandler.onMentionReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MENTION_RECEIVED,\n payload: { channel, message },\n });\n };\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [currentOpenChannel]);\n\n // useInitialMessagesFetch\n useEffect(() => {\n logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams && currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | Used customizedMessageListParams');\n }\n\n logger.info('OpenChannel | Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n },\n );\n // todo: use promise after CoreSDK adds required TS methods\n // .then((messages) => {\n // console.log('get messages via getMessagesByTimestamp', messages);\n // const hasMore = (messages && messages.length > 0);\n // const lastMessageTimestamp = hasMore\n // ? messages[0].createdAt\n // : null;\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n // payload: {\n // currentOpenChannel,\n // messages,\n // hasMore,\n // lastMessageTimestamp,\n // },\n // });\n // })\n // .catch((error: Error): void => {\n // logger.error('OpenChannel | Fetching messages failed', error);\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n // payload: {\n // currentOpenChannel,\n // messages: [],\n // hasMore: false,\n // lastMessageTimestamp: 0,\n // }\n // });\n // });\n }\n }, [currentOpenChannel]);\n\n // useScrollCallback\n const onScroll = useCallback((callback) => {\n if (!hasMore) {\n return;\n }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel: Used userFilledMessageListParams');\n }\n\n logger.info('OpenChannel: Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n lastMessageTimestamp || new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n callback();\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n }\n );\n }, [currentOpenChannel, lastMessageTimestamp]);\n\n // useSendMessageCallback\n const handleSendMessage = useCallback(() => {\n const text = messageInputRef.current.value;\n\n function createParamsDefualt(txt: string | number): Sendbird.UserMessageParams {\n const message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim();\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n }\n\n const createCustomParams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n logger.info('OpenChannel | Sending message has started', params);\n\n const pendingMessage = currentOpenChannel.sendUserMessage(params, (message, error) => {\n if (error) {\n logger.warning('OpenChannel | Sending message failed', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: pendingMessage,\n channel: currentOpenChannel,\n },\n });\n }, [currentOpenChannel, onBeforeSendUserMessage]);\n\n // useFileUploadCallback\n const handleFileUpload = useCallback((file) => {\n function createParamsDefualt(file_: File): Sendbird.FileMessageParams {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n }\n\n const createCustomParams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefualt(file);\n\n logger.info('OpenChannel | Uploading file message start', params);\n\n const pendingMessage = currentOpenChannel.sendFileMessage(\n params,\n (message: EveryMessage, error: Sendbird.SendBirdError) => {\n if (error) {\n logger.error('OpenChannel | Sending file message failed', { message, error });\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n );\n\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n }\n });\n }, [currentOpenChannel, onBeforeSendFileMessage]);\n\n // useUpdateMessageCallback\n const updateMessage = useCallback((messageId: number, text: string, callback?: () => void): void => {\n\n function createParamsDefualt(txt: string): SendBird.UserMessageParams {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n }\n\n if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {\n logger.info('OpenChannel | Creating params using onBeforeUpdateUserMessage');\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n currentOpenChannel.updateUserMessage(messageId, params, (message, error) => {\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | Updating message succeeded', { message, params });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentOpenChannel,\n message,\n },\n });\n } else {\n logger.warning('OpenChannel | Updating message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher, onBeforeSendUserMessage]);\n\n // useDeleteMessageCallback\n const deleteMessage = useCallback((message: ClientUserMessage | ClientFileMessage, callback?: () => void): void => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState: ', requestState);\n\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local: ', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (callback) {\n callback();\n }\n return;\n }\n\n currentOpenChannel.deleteMessage(message, (error) => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message from remote: ', requestState);\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: {\n channel: currentOpenChannel,\n messageId: message.messageId,\n },\n });\n } else {\n logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher]);\n\n // useResendMessageCallback\n const resendMessage = useCallback((failedMessage: ClientUserMessage | ClientFileMessage) => {\n logger.info('OpenChannel | Reseding message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESENDING_MESSAGE_START,\n payload: {\n channel: currentOpenChannel,\n message: failedMessage,\n },\n });\n\n // userMessage\n if (messageType === 'user' && failedMessage.messageType === 'user') {\n currentOpenChannel.resendUserMessage(failedMessage, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Reseding message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n return;\n }\n\n // fileMessage\n if (messageType === 'file' && failedMessage.messageType === 'file') {\n currentOpenChannel.resendFileMessage(failedMessage, file, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Resending file message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending file message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('OpenChannel | Message is not resendable');\n logger.warning('OpenChannel | Message is not resendable', failedMessage);\n }\n }, [currentOpenChannel, messagesDispatcher]);\n\n const handleClickScrollDownButton = () => {\n const promise = new Promise((resolve) => {\n resolve();\n });\n setScrollDownPromise(promise);\n };\n\n if (!currentOpenChannel || !currentOpenChannel.url) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n\n return (\n \n {\n showScrollDownButton && (\n \n \n \n )\n }\n {\n renderChannelTitle\n ? renderChannelTitle({\n channel: currentOpenChannel,\n user: user,\n })\n : (\n \n )\n }\n {\n currentOpenChannel.isFrozen && (\n \n )\n }\n \n {\n renderMessageInput\n ? (\n renderMessageInput({\n channel: currentOpenChannel,\n user: user,\n disabled: disabled,\n })\n )\n : (\n \n )\n }\n \n );\n};\n\nexport default withSendbirdContext(OpenchannelConversation);\n"],"names":["getMessageCreatedAt","message","format","createdAt","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","isSameGroup","comparingMessage","messageType","sendingStatus","sender","userId","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","kFormatter","num","Math","abs","toFixed","isOperator","openChannel","operators","map","operator","indexOf","isDisabledBecauseFrozen","isFrozen","MessageInputWrapper","_a","ref","channel","user","disabled","onSendMessage","onFileUpload","renderMessageInput","stringSet","useContext","LocalizationContext","React","MessageInput","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","forwardRef","FrozenNotification","Label","LabelTypography","CAPTION_2","CHANNEL_FROZEN","COMPONENT_CLASS_NAME","OpenchannelConversationHeader","coverImage","_b","title","LabelStringSet","NO_TITLE","_c","subTitle","onActionClick","Avatar","Icon","IconTypes","AVATAR_NO_IMAGE","IconColors","BACKGROUND_3","H_2","LabelColors","ONBACKGROUND_1","BODY_2","ONBACKGROUND_2","IconButton","INFO","PRIMARY","copyToClipboard","text","window","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","OpenChannelMessageStatusTypes","NONE","PENDING","FAILED","CANCELED","SUCCEEDED","getSenderFromMessage","_sender","checkIsSent","status","checkIsByMe","isFineCopy","isFineResend","isResendable","isFineEdit","isFineDelete","showMenuTrigger","props","OpenchannelUserMessage","className","resendMessage","showEdit","showRemove","chainTop","UserProfileContext","disableUserProfile","renderUserProfile","messageRef","useRef","avatarRef","contextMenuRef","useState","contextStyle","setContextStyle","injectingClassName","Array","isArray","push","isByMe","MemoizedMessageText","useMemo","splitMessage","split","matchedMessage","word","updatedAt","uuidv4","BODY_1","MESSAGE_EDITED","useEffect","current","clientHeight","top","innerWidth","join","ContextMenu","toggleDropdown","profileUrl","closeDropdown","MenuItems","paddingTop","paddingBottom","close","UserProfile","SECONDARY_3","friendName","nickname","CAPTION_3","ONBACKGROUND_3","MORE","CONTENT_INVERSE","MenuItem","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","OpenChannelAdminMessage","__spreadArrays","URL_REG","createUrlTester","regexp","test","checkOGIsEnalbed","ogMetaData","url","OpenchannelOGMessage","defaultImage","messageComponentRef","isUrl","wordClassName","LinkLabel","openLink","open","SUBTITLE_2","description","ImageRenderer","alt","NO_THUMBNAIL","SUPPORTING_TYPES","IMAGE","VIDEO","UNSUPPORTED","SUPPORTED_MIMES","getSupportingFileType","type","OpenchannelThumbnailMessage","onClick","localUrl","isMessageSent","PLAY","PHOTO","ON_BACKGROUND_2","checkFileType","fileUrl","result","imageFile","audioFile","FILE_DOCUMENT","FILE_AUDIO","truncate","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","ceil","backChars","floor","substr","OpenchannelFileMessage","openFileUrl","TextButton","RemoveMessageModal","onCloseModal","onDeleteMessage","Modal","MODAL__DELETE_MESSAGE__TITLE","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","UNKNOWN","SendingMessageStatus","getMessageType","isUserMessage","isAdminMessage","isImage","isVideo","MessageHoc","editDisabled","hasSeperator","deleteMessage","updateMessage","chainBottom","setShowEdit","_d","setShowRemove","_e","showFileViewer","setShowFileViewer","editMessageInputRef","requestState","messageId","DateSeparator","OpenChannelFileMessage","OpenChannelOGMessage","OpenChannelThumbnailMessage","OpenChannelUserMessage","FileViewer","OpenchannelConversationScroll","useMessageGrouping","openchannel","allMessages","isOnline","hasMore","onScroll","scrollDownPromise","showScrollDownButton","scrollRef","handleOnScroll","e","element","target","scrollTop","scrollHeight","nodes_1","first","then","scrollTo","index","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","RESET_MESSAGES","GET_PREV_MESSAGES_SUCESS","GET_PREV_MESSAGES_FAIL","SENDING_MESSAGE_FAILED","SENDING_MESSAGE_SUCCEEDED","SENDING_MESSAGE_START","RESENDING_MESSAGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","ON_OPERATOR_UPDATED","ON_USER_ENTERED","ON_USER_EXITED","ON_USER_MUTED","ON_USER_UNMUTED","ON_USER_BANNED","ON_USER_UNBANNED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_CHANNEL_CHANGED","ON_META_DATA_CREATED","ON_META_DATA_UPDATED","ON_META_DATA_DELETED","ON_META_COUNTERS_CREATED","ON_META_COUNTERS_UPDATED","ON_META_COUNTERS_DELETED","ON_MENTION_RECEIVED","reducer","state","action","actionTypes","currentChannel","payload","isInvalid","currentOpenChannel","participants","isFailed","messages","lastMessageTimestamp","actionChannelUrl","receivedMessages_1","_hasMore","_lastMessageTimestamp","stateChannel","stateChannelUrl","filteredAllMessages","filter","find","compareIds","loading","initialized","sentMessage_1","newMessages","m","reqId","sentMessage_2","eventedChannel","resentMessage_1","receivedMessage","updatedMessage_1","isIdentical","deletedMessageId_1","updatedOperators","enteredUser","exitedUser_1","participant","frozenChannel","frozen","unfrozenChannel","changedChannel","initialState","OpenchannelConversation","channelUrl","stores","config","queries","renderChannelTitle","onBeforeSendUserMessage","onBeforeSendFileMessage","onChatHeaderActionClick","sdkStore","userStore","logger","sdk","useReducer","messagesReducer","messagesInitialState","messagesStore","messagesDispatcher","messageInputRef","setScrollDownPromise","setShowScrollDownButton","sdkInit","userFilledMessageListParams","messageListParams","utils","userDefinedDisableUserProfile","userDefinedRenderProfile","OpenChannel","info","getChannel","messageActionTypes","enter","warning","messageReceiverId","ChannelHandler","onMessageReceived","onMessageUpdated","onMessageDeleted","onOperatorUpdated","onUserEntered","onUserExited","onUserMuted","onUserUnmuted","onUserBanned","onUserUnbanned","onChannelFrozen","onChannelUnfrozen","onChannelChanged","onMetaDataCreated","metaData","onMetaDataUpdated","onMetaDataDeleted","metaDataKeys","onMetaCountersCreated","metaCounter","onMetaCountersUpdated","onMetaCountersDeleted","metaCounterKeys","onMentionReceived","addChannelHandler","removeChannelHandler","MessageListParams","getMessagesByTimestamp","messageListParams_1","prevResultSize","isInclusive","includeReplies","includeReactions","Object","keys","forEach","key","Date","getTime","hasMore_1","lastMessageTimestamp_1","useCallback","callback","hasMore_2","lastMessageTimestamp_2","handleSendMessage","value","createParamsDefualt","txt","trim","toString","params","UserMessageParams","createCustomParams","pendingMessage","sendUserMessage","handleFileUpload","file","file_","FileMessageParams","sendFileMessage","URL","createObjectURL","updateUserMessage","failedMessage","resendUserMessage","resendFileMessage","console","handleClickScrollDownButton","promise","Promise","resolve","PlaceHolder","PlaceHolderTypes","NO_CHANNELS","LOADING","WRONG","UserProfileProvider","SHEVRON_DOWN","CONTENT","name","participantCount","OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS","coverUrl","FrozenChannelNotification","withSendbirdContext"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"OpenChannel.js","sources":["../../../src/smart-components/OpenchannelConversation/utils.ts","../../../src/smart-components/OpenchannelConversation/components/MessageInpuetWrapper.tsx","../../../src/smart-components/OpenchannelConversation/components/FrozenNotification.tsx","../../../src/ui/OpenchannelConversationHeader/index.tsx","../../../src/ui/OpenchannelUserMessage/utils.ts","../../../src/utils/openChannelUtils.ts","../../../src/ui/OpenchannelUserMessage/index.tsx","../../../src/ui/OpenChannelAdminMessage/index.tsx","../../../src/ui/OpenchannelOGMessage/utils.ts","../../../src/ui/OpenchannelOGMessage/index.tsx","../../../src/ui/OpenchannelThumbnailMessage/utils.ts","../../../src/ui/OpenchannelThumbnailMessage/index.tsx","../../../src/ui/OpenchannelFileMessage/utils.ts","../../../src/ui/OpenchannelFileMessage/index.tsx","../../../src/smart-components/OpenchannelConversation/components/RemoveMessageModal.tsx","../../../src/smart-components/OpenchannelConversation/components/types.ts","../../../src/smart-components/OpenchannelConversation/components/MessageHOC.tsx","../../../src/smart-components/OpenchannelConversation/components/OpenchannelConversationScroll.tsx","../../../src/smart-components/OpenchannelConversation/dux/actionTypes.ts","../../../src/smart-components/OpenchannelConversation/dux/reducers.ts","../../../src/smart-components/OpenchannelConversation/dux/initialState.ts","../../../src/smart-components/OpenchannelConversation/index.tsx"],"sourcesContent":["import format from 'date-fns/format';\nimport Sendbird from 'sendbird';\nimport SendbirdUIKit from '../../index';\n\nexport const getMessageCreatedAt = (message: SendbirdUIKit.EveryMessage): string => format(message.createdAt, 'p');\n\nexport const scrollIntoLast = (selector: string, intialTry = 0): void => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\n\nexport const isSameGroup = (\n message: SendbirdUIKit.EveryMessage,\n comparingMessage: SendbirdUIKit.EveryMessage,\n): boolean => {\n if (\n !message\n || !comparingMessage\n || message.messageType === 'admin'\n || comparingMessage.messageType === 'admin'\n ) {\n return false\n }\n\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: SendbirdUIKit.EveryMessage,\n currMessage: SendbirdUIKit.EveryMessage,\n nextMessage: SendbirdUIKit.EveryMessage,\n): [boolean, boolean] => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n );\n\nexport const kFormatter = (num: number): string => {\n if (Math.abs(num) > 999999) {\n return `${(Math.abs(num) / 1000000).toFixed(1)}M`;\n }\n\n if (Math.abs(num) > 999) {\n return `${(Math.abs(num) / 1000).toFixed(1)}K`;\n }\n\n return `${num}`;\n};\n\nexport const isOperator = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { operators } = openChannel;\n if (operators.map(operator => operator.userId).indexOf(userId) < 0) {\n return false;\n }\n return true;\n};\n\nexport const isDisabledBecauseFrozen = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { isFrozen } = openChannel;\n return isFrozen && !isOperator(openChannel, userId);\n};\n\nexport const isDisabledBecauseMuted = (mutedParticipantIds: string[], userId: string): boolean => {\n return mutedParticipantIds.indexOf(userId) < 0;\n};\n","import React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\nimport { RenderMessageInputProps } from '../../../index';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport MessageInput from '../../../ui/MessageInput';\n\ninterface Props {\n channel: Sendbird.OpenChannel;\n user: Sendbird.User;\n disabled: boolean;\n onSendMessage(): void;\n onFileUpload(file_: File): void;\n renderMessageInput?(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n disabled,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n}: Props, ref: React.RefObject): JSX.Element => {\n if (!channel) {\n return;\n }\n\n const { stringSet } = useContext(LocalizationContext);\n\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport './frozen-notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { ReactElement } from 'react';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, {\n LabelTypography,\n LabelColors,\n LabelStringSet,\n} from '../Label';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation-header';\n\ninterface Props {\n coverImage?: string;\n title?: string;\n subTitle?: string;\n onActionClick?(): void;\n}\n\nexport default function OpenchannelConversationHeader({\n coverImage,\n title = LabelStringSet.NO_TITLE,\n subTitle = LabelStringSet.NO_TITLE,\n onActionClick,\n}: Props): ReactElement {\n return (\n\n
\n
\n {\n coverImage ? (\n \n ) : (\n \n )\n }\n \n {title}\n \n \n {subTitle}\n \n
\n
\n \n \n \n
\n
\n );\n}\n","export const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport default { copyToClipboard };\n","import Sendbird from 'sendbird';\nimport { ClientUserMessage, ClientFileMessage } from '../index';\n\nconst OpenChannelMessageStatusTypes = {\n NONE: 'none',\n PENDING: 'pending',\n FAILED: 'failed',\n CANCELED: 'canceled',\n SUCCEEDED: 'succeeded'\n};\n\nexport const getSenderFromMessage = (message: ClientUserMessage | ClientFileMessage): Sendbird.User => {\n return message.sender || message._sender;\n};\n\nexport const checkIsSent = (status: string): boolean => (status === OpenChannelMessageStatusTypes.SUCCEEDED);\n\nexport const checkIsByMe = (message: ClientFileMessage | ClientUserMessage, userId: string): boolean => (getSenderFromMessage(message).userId === userId);\n\ninterface isFineCopyParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineCopy = ({ message }: isFineCopyParams): boolean => {\n return (message.messageType === 'user' && message.message.length > 0);\n};\n\ninterface isFineResendParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineResend = ({ message, status, userId }: isFineResendParams): boolean => {\n return checkIsByMe(message, userId)\n && !checkIsSent(status)\n && message.isResendable\n && message.isResendable();\n};\n\ninterface isFineEditParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineEdit = ({ message, status, userId }: isFineEditParams): boolean => {\n return checkIsByMe(message, userId) && checkIsSent(status);\n};\n\ninterface isFineDeleteParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineDelete = ({ message, userId }: isFineDeleteParams): boolean => {\n return checkIsByMe(message, userId);\n};\n\ninterface showMenuTriggerParams {\n message: ClientUserMessage | ClientFileMessage;\n status: string;\n userId: string;\n}\nexport const showMenuTrigger = (props: showMenuTriggerParams): boolean => {\n const { message, status, userId } = props;\n if (message.messageType === 'user') {\n return (\n isFineDelete({ message, status, userId })\n || isFineEdit({ message, status, userId })\n || isFineCopy({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n } else {\n return (\n isFineDelete({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n }\n};\n","import React, {\n useMemo,\n useContext,\n useRef,\n useState,\n ReactElement,\n useEffect,\n} from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { copyToClipboard } from './utils';\nimport uuidv4 from '../../utils/uuid';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n userId: string;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n}\n\nexport default function OpenchannelUserMessage({\n message,\n className,\n userId,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n chainTop,\n status,\n}: Props): ReactElement {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n // hooks\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const contextMenuRef = useRef(null);\n const [contextStyle, setContextStyle] = useState({});\n\n // consts\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push(`sendbird-openchannel-user-message`);\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const splitMessage = message.message.split(/\\r/);\n const matchedMessage = splitMessage.map((word) => (word !== '' ? word :
));\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n // place context menu top depending clientHeight of message component\n useEffect(() => {\n if (messageRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status}) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message: message, userId: userId, status: status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message: message, userId: userId, status: status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n );\n}\n","import React, { ReactElement } from 'react';\nimport { ClientAdminMessage } from '../../index';\nimport './index.scss';\n\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\ninterface Props {\n message: ClientAdminMessage;\n className?: string | string[];\n}\n\nexport default function OpenChannelAdminMessage({\n message,\n className,\n}: Props): ReactElement {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-admin-message');\n\n return (\n
\n \n {message.message || ''}\n \n
\n );\n}\n","import Sendbird from 'sendbird';\n\nexport const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const createUrlTester = (regexp: RegExp) => (text: string): boolean => regexp.test(text);\nexport const checkOGIsEnalbed = (message: Sendbird.UserMessage): boolean => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n","import React, { useState, useContext, useMemo, useRef, useEffect } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport LinkLabel from '../LinkLabel';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport uuidv4 from '../../utils/uuid';\nimport { copyToClipboard } from '../OpenchannelUserMessage/utils';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkOGIsEnalbed, createUrlTester, URL_REG } from './utils';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n userId: string;\n}\n\nexport default function OpenchannelOGMessage({\n message,\n className,\n disabled,\n showEdit,\n showRemove,\n resendMessage,\n chainTop,\n status,\n userId,\n}: Props): JSX.Element {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n const { ogMetaData } = message;\n const { defaultImage } = ogMetaData;\n\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const [contextStyle, setContextStyle] = useState({});\n const messageComponentRef = useRef(null);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const isUrl = createUrlTester(URL_REG);\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-og-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const wordClassName = 'sendbird-openchannel-og-message--word';\n const splitMessage = message.message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n // place conxt menu top depending clientHeight of message component\n useEffect(() => {\n if (messageComponentRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status }) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message, userId, status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n
\n
\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n ogMetaData.title && (\n \n {\n ogMetaData.title\n }\n \n )\n }\n {\n ogMetaData.description && (\n \n {ogMetaData.description}\n \n )\n }\n {\n ogMetaData.url && (\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n )\n }\n \n \n \n );\n}\n","export const SUPPORTING_TYPES = {\n IMAGE: 'IMAGE',\n VIDEO: 'VIDEO',\n UNSUPPORTED: 'UNSUPPORTED',\n};\n\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const getSupportingFileType = (type: string): string => {\n if (SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.IMAGE;\n }\n if (SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.VIDEO;\n }\n return SUPPORTING_TYPES.UNSUPPORTED;\n}\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\nimport { SUPPORTING_TYPES, getSupportingFileType } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport {\n checkIsByMe,\n checkIsSent,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n disabled: boolean;\n userId: string;\n status: string;\n chainTop: boolean;\n chainBottom: boolean;\n onClick(bool: boolean): void,\n showRemove(bool: boolean): void,\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelThumbnailMessage({\n message,\n className,\n disabled,\n userId,\n status,\n chainTop,\n onClick,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-thumbnail-message');\n const isByMe = checkIsByMe(message, userId);\n const isMessageSent = checkIsSent(status);\n const sender = getSenderFromMessage(message);\n\n return (\n
\n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n onKeyDown={() => {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n tabIndex={0}\n role=\"button\"\n >\n
\n {\n {\n [SUPPORTING_TYPES.VIDEO]: (\n (url || localUrl)\n ? (\n
\n \n \n \n \n
\n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.IMAGE]: (\n (url || localUrl)\n ? (\n \n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.UNSUPPORTED]: (\n \n ),\n }[getSupportingFileType(type)]\n }\n
\n
\n
\n \n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n
\n \n );\n}\n","import { IconTypes } from '../Icon';\n\nexport const checkFileType = (fileUrl: string): string => {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport const truncate = (fullStr:string, strLen: number): string => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkFileType, truncate } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineDelete,\n isFineResend,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n userId: string;\n disabled?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n\n showRemove(bool: boolean): void;\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelFileMessage({\n message,\n className,\n userId,\n disabled,\n chainTop,\n status,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n\n const openFileUrl = () => { window.open(message.url); };\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-file-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n checkFileType(message.url) && (\n \n )\n }\n \n \n {truncate(message.url, 40)}\n \n \n
\n
\n \n {\n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n if (disabled) { return; }\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n }\n \n \n );\n}\n","import React, { useContext } from 'react'\nimport { ClientFileMessage, ClientUserMessage } from '../../..'\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n onCloseModal(): void;\n onDeleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n}\n\nexport default function RemoveMessageModal({\n onCloseModal,\n onDeleteMessage,\n}: Props): JSX.Element {\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n \n );\n}\n","import { EveryMessage } from '../../..';\nimport { isImage, isVideo } from '../../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message: EveryMessage): string => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if (message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return MessageTypes.UNKNOWN;\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import React, {\n useState,\n useRef,\n ReactElement,\n useMemo,\n} from 'react';\n\nimport format from 'date-fns/format';\nimport {\n ClientFileMessage,\n ClientUserMessage,\n EveryMessage,\n RenderCustomMessage,\n} from '../../../index';\n\nimport OpenChannelUserMessage from '../../../ui/OpenchannelUserMessage';\nimport OpenChannelAdminMessage from '../../../ui/OpenChannelAdminMessage';\nimport OpenChannelOGMessage from '../../../ui/OpenchannelOGMessage';\nimport OpenChannelThumbnailMessage from '../../../ui/OpenchannelThumbnailMessage';\nimport OpenChannelFileMessage from '../../../ui/OpenchannelFileMessage';\n// import UnknownMessage from '../../../ui/UnknownMessage';\n\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\n\nimport RemoveMessageModal from './RemoveMessageModal';\nimport {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n} from './types';\nimport { OpenChannel } from 'sendbird';\n\ninterface Props {\n message: EveryMessage;\n userId: string;\n disabled: boolean;\n editDisabled: boolean;\n hasSeperator: boolean;\n channel: OpenChannel;\n renderCustomMessage?: RenderCustomMessage,\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n updateMessage(messageId: number, text: string, callback?: () => void): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n status?: string;\n chainTop: boolean;\n chainBottom: boolean;\n}\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n channel,\n renderCustomMessage,\n deleteMessage,\n updateMessage,\n resendMessage,\n status,\n chainTop,\n chainBottom,\n}: Props): ReactElement {\n let sender: SendBird.User = null;\n if (message.messageType !== 'admin') {\n sender = message.sender;\n }\n\n const RenderedMessage = useMemo(() => {\n if (renderCustomMessage) {\n return renderCustomMessage(message, channel);\n }\n return null;\n }, [message, renderCustomMessage]);\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n let isByMe = false;\n\n if (sender && message.messageType !== 'admin') {\n // pending and failed messages are by me\n isByMe = (userId === sender.userId)\n || (message.requestState === SendingMessageStatus.PENDING)\n || (message.requestState === SendingMessageStatus.FAILED);\n }\n\n if(RenderedMessage) {\n return (\n
\n \n
\n );\n }\n\n if (message.messageType === 'user' && showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: (() => {\n if (message.messageType === 'admin') {\n return (\n \n )\n }\n })(),\n [MessageTypes.FILE]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.OG]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.THUMBNAIL]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.USER]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.UNKNOWN]: (() => {\n return;\n // return (\n // \n // );\n })(),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n if (message.messageType !== 'admin') {\n deleteMessage(message);\n }\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={deleteMessage}\n isByMe={isByMe}\n />\n )\n }\n {/* {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n } */}\n
\n );\n}\n","import React, { ReactElement, useRef, useEffect } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\nimport {\n ClientFileMessage,\n ClientUserMessage,\n EveryMessage,\n RenderCustomMessage,\n} from '../../../index';\nimport MessageHoc from './MessageHOC';\n\nimport './openchannel-conversation-scroll.scss';\nimport { compareMessagesForGrouping } from '../utils';\n\ninterface Props {\n openchannel: SendBird.OpenChannel;\n user: SendBird.User;\n allMessages: EveryMessage[];\n useMessageGrouping: boolean;\n isOnline: boolean;\n hasMore: boolean;\n renderCustomMessage?: RenderCustomMessage;\n onScroll(callback?: () => void): void;\n scrollDownPromise: PromiseLike;\n showScrollDownButton?(bool: boolean): void;\n updateMessage(messageId: number, text: string, callback?: () => void ): void;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void ): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n}\n\nexport default function OpenchannelConversationScroll(\n {\n useMessageGrouping = true,\n openchannel,\n user,\n allMessages,\n isOnline = true,\n hasMore,\n onScroll,\n scrollDownPromise,\n renderCustomMessage,\n showScrollDownButton,\n updateMessage,\n deleteMessage,\n resendMessage,\n }: Props\n): ReactElement {\n const scrollRef = useRef(null);\n\n const handleOnScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n } = element;\n if (showScrollDownButton) {\n if (scrollHeight > scrollTop + clientHeight) {\n showScrollDownButton(true);\n } else {\n showScrollDownButton(false);\n }\n }\n\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n onScroll(() => {\n const first = nodes[0];\n first.scrollIntoView();\n });\n }\n };\n\n useEffect(() => {\n // This promise is created in everytime when user click the scroll to bottom button\n // This scope waits when user click the button and scrolls to the bottom of conversation\n if (scrollDownPromise && scrollRef && scrollRef.current) {\n scrollDownPromise.then(() => {\n scrollRef.current.scrollTo(0, scrollRef.current.scrollHeight);\n if (showScrollDownButton) {\n showScrollDownButton(false);\n }\n });\n }\n return;\n }, [scrollDownPromise]);\n\n return (\n \n
\n
\n
\n {\n allMessages.map((message, index) => {\n let status: string;\n\n if (message.messageType !== 'admin') {\n status = message.sendingStatus;\n }\n\n const previousMessage = allMessages[index - 1];\n const nextMessage = allMessages[index - 1];\n\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = message.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, message, nextMessage)\n : [false, false];\n return (\n \n )\n })\n }\n
\n
\n
\n );\n}\n","export const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';\nexport const SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';\nexport const SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';\nexport const SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';\nexport const RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';\n\n// event handlers\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';\nexport const ON_USER_ENTERED = 'ON_USER_ENTERED';\nexport const ON_USER_EXITED = 'ON_USER_EXITED';\nexport const ON_USER_MUTED = 'ON_USER_MUTED';\nexport const ON_USER_UNMUTED = 'ON_USER_UNMUTED';\nexport const ON_USER_BANNED = 'ON_USER_BANNED';\nexport const ON_USER_UNBANNED = 'ON_USER_UNBANNED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';\nexport const ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';\nexport const ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';\nexport const ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';\nexport const ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';\nexport const ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';\nexport const ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';\n","import { State as initialStateInterface } from './initialState';\nimport * as actionTypes from './actionTypes';\n\nimport compareIds from '../../../utils/compareIds.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore: Unreachable code error\ninterface ActionInterface {\n type: string;\n payload?: any;\n}\n\nexport default function reducer(\n state: initialStateInterface,\n action: ActionInterface,\n): initialStateInterface {\n switch (action.type) {\n case actionTypes.RESET_MESSAGES: {\n return {\n ...state,\n allMessages: [],\n };\n }\n\n case actionTypes.SET_CURRENT_CHANNEL: {\n const currentChannel = action.payload;\n const operators = currentChannel.operators;\n if (\n !state.isInvalid\n && state.currentOpenChannel\n && state.currentOpenChannel.url\n && (state.currentOpenChannel.url === currentChannel.url)\n ) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: currentChannel,\n isInvalid: false,\n operators: operators,\n participants: operators,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_SUCESS:\n case actionTypes.GET_PREV_MESSAGES_FAIL: {\n const isFailed = (action.type === actionTypes.GET_PREV_MESSAGES_FAIL);\n const {\n currentOpenChannel = {},\n messages = [],\n hasMore,\n lastMessageTimestamp,\n } = action.payload;\n const actionChannelUrl = currentOpenChannel.url;\n const receivedMessages = isFailed ? [] : messages;\n const _hasMore = isFailed ? false : hasMore;\n const _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;\n\n const stateChannel = state.currentOpenChannel;\n const stateChannelUrl = stateChannel.url;\n\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n const filteredAllMessages = state.allMessages.filter((message) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, message.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: _hasMore,\n lastMessageTimestamp: _lastMessageTimestamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_START: {\n const {\n message,\n channel,\n } = action.payload;\n if (channel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...message },\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_SUCCEEDED: {\n const sentMessage = action.payload;\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SENDING_MESSAGE_FAILED: {\n const sentMessage = action.payload;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n )),\n };\n }\n case actionTypes.RESENDING_MESSAGE_START: {\n const eventedChannel = action.payload.channel;\n const resentMessage = action.payload.message;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, resentMessage.reqId) ? resentMessage : m\n )),\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const eventedChannel = action.payload.channel;\n const receivedMessage = action.payload.message;\n const {\n currentOpenChannel\n } = state;\n\n if (\n !compareIds(eventedChannel.url, currentOpenChannel.url)\n || (\n !(state.allMessages.map(\n (message) => message.messageId).indexOf(receivedMessage.messageId) < 0\n ))\n ) {\n return state;\n }\n\n return {\n ...state,\n allMessages: [...state.allMessages, receivedMessage],\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedMessage = action.payload.message;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((message) => (\n message.isIdentical(updatedMessage)\n ? updatedMessage\n : message\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED: {\n const eventedChannel = action.payload.channel;\n const deletedMessageId = action.payload.messageId;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.filter((message) => (\n !compareIds(message.messageId, deletedMessageId)\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID: {\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n }\n case actionTypes.ON_OPERATOR_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedOperators = action.payload.operators;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: {\n ...state.currentOpenChannel,\n operators: updatedOperators,\n },\n operators: updatedOperators,\n };\n }\n case actionTypes.ON_USER_ENTERED: {\n const eventedChannel = action.payload.channel;\n const enteredUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, enteredUser],\n };\n }\n case actionTypes.ON_USER_EXITED: {\n const eventedChannel = action.payload.channel;\n const exitedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: state.participants.filter((participant) => (\n !compareIds(participant.userId, exitedUser.userId)\n )),\n };\n }\n case actionTypes.ON_USER_MUTED: {\n // const eventedChannel = action.payload.channel;\n // const mutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNMUTED: {\n // const eventedChannel = action.payload.channel;\n // const unmutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_BANNED: {\n // const eventedChannel = action.payload.channel;\n // const bannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNBANNED: {\n // const eventedChannel = action.payload.channel;\n // const unbannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_CHANNEL_FROZEN: {\n const frozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== frozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: true,\n };\n }\n case actionTypes.ON_CHANNEL_UNFROZEN: {\n const unfrozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== unfrozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: false,\n };\n }\n case actionTypes.ON_CHANNEL_CHANGED: {\n const changedChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== changedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: changedChannel,\n };\n }\n case actionTypes.ON_META_DATA_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaDataKeys = action.payload.metaDataKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaCounterKeys = action.payload.metaCounterKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_MENTION_RECEIVED: {\n // const eventedChannel = action.payload.channel;\n // const mentionedMessage = action.payload.message;\n // return {\n // ...state\n // };\n return state;\n }\n default:\n return state;\n }\n}\n","import Sendbird from 'sendbird';\nimport { EveryMessage } from '../../../index';\n\nexport interface State {\n allMessages: EveryMessage[];\n loading: boolean;\n initialized: boolean;\n currentOpenChannel: Sendbird.OpenChannel;\n isInvalid: boolean;\n hasMore: boolean;\n lastMessageTimestamp: number;\n frozen: boolean;\n operators: Sendbird.User[];\n participants: Sendbird.User[];\n // add banned participant ids\n // add muted participant ids\n}\n\nconst initialState: State = {\n allMessages: [],\n loading: false,\n initialized: false,\n currentOpenChannel: null,\n isInvalid: false,\n hasMore: false,\n lastMessageTimestamp: 0,\n frozen: false,\n operators: [],\n participants: [],\n // bannedParticipantIds\n // mutedParticipantIds\n};\n\nexport default initialState;\n","import React, {\n useRef,\n useCallback,\n useEffect,\n useReducer,\n useContext,\n useState,\n ReactElement,\n} from 'react';\nimport Sendbird from 'sendbird';\nimport * as utils from './utils';\nimport './index.scss';\n\nimport MessageInputWrapper from './components/MessageInpuetWrapper';\nimport FrozenChannelNotification from './components/FrozenNotification';\nimport OpenchannelConversationHeader from '../../ui/OpenchannelConversationHeader';\nimport OpenchannelConversationScroll from './components/OpenchannelConversationScroll';\nimport Icon, { IconColors, IconTypes } from '../../ui/Icon';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport {\n EveryMessage,\n ClientUserMessage,\n ClientFileMessage,\n OpenChannelProps,\n} from '../../index';\nimport messagesReducer from './dux/reducers';\nimport messagesInitialState from './dux/initialState';\nimport * as messageActionTypes from './dux/actionTypes';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext.jsx';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { scrollIntoLast } from './utils';\nimport * as topics from '../../lib/pubSub/topics';\nimport uuidv4 from '../../utils/uuid';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation';\n\ninterface Props extends OpenChannelProps {\n stores: {\n sdkStore?: SendbirdUIKit.SdkStore,\n userStore?: {\n user: Sendbird.User,\n },\n };\n config: {\n userId: string,\n isOnline: boolean,\n logger?: SendbirdUIKit.Logger,\n theme?: string,\n // @ts-ignore: Unreachable code error\n pubSub: any;\n disableUserProfile?: boolean;\n renderUserProfile?(): JSX.Element;\n };\n}\n\nexport const OpenchannelConversation = (props: Props): JSX.Element => {\n // props\n const {\n useMessageGrouping,\n channelUrl,\n stores,\n config,\n queries = {},\n disableUserProfile,\n renderCustomMessage,\n renderUserProfile,\n renderChannelTitle,\n renderMessageInput,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onChatHeaderActionClick\n } = props;\n\n const {\n sdkStore,\n userStore,\n } = stores;\n const {\n userId,\n isOnline,\n logger,\n pubSub,\n } = config;\n\n const {\n sdk\n } = sdkStore;\n const {\n user\n } = userStore;\n\n // hook variables\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const {\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n } = messagesStore;\n // ref\n const messageInputRef = useRef(null); // useSendMessageCallback\n const { stringSet } = useContext(LocalizationContext);\n const [scrollDownPromise, setScrollDownPromise] = useState(null);\n const [showScrollDownButton, setShowScrollDownButton] = useState(false);\n\n // const\n const sdkInit = sdkStore.initialized;\n const userFilledMessageListParams = queries ? queries.messageListParams: null;\n const disabled = !initialized\n || !isOnline\n || utils.isDisabledBecauseFrozen(currentOpenChannel, userId);\n // || utils.isDisabledBecauseMuted(mutedParticipantIds, userId)\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n // useSetChannel\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.OpenChannel) {\n logger.info('OpenChannel | useSetChannel fetching channel', channelUrl);\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (!error) {\n logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: openChannel,\n });\n openChannel.enter((error) => {\n if (error) {\n logger.warning('OpenChannel | useSetChannel enter channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n } else {\n logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n // .then((openChannel) => {\n // logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n // messagesDispatcher({\n // type: messageActionTypes.SET_CURRENT_CHANNEL,\n // payload: openChannel,\n // });\n // })\n // .catch((error) => {\n // logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n // messagesDispatcher({\n // type: messageActionTypes.SET_CHANNEL_INVALID,\n // });\n // });\n }\n }, [channelUrl, sdkInit]);\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) {\n return;\n }\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return () => {\n if (subscriber) {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n }\n };\n }, [channelUrl, sdkInit]);\n\n // useHandleChannelEvents\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (currentOpenChannel && currentOpenChannel.url && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('OpenChannel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n\n ChannelHandler.onMessageReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageUpdated = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageDeleted = (channel, messageId) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { channelUrl, messageId });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: { channel, messageId },\n });\n };\n ChannelHandler.onOperatorUpdated = (channel, operators) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { channelUrl, operators });\n messagesDispatcher({\n type: messageActionTypes.ON_OPERATOR_UPDATED,\n payload: { channel, operators },\n });\n };\n ChannelHandler.onUserEntered = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_ENTERED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserExited = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_EXITED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserMuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnmuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNMUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_BANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnbanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNBANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onMetaDataCreated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_CREATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataUpdated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_UPDATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataDeleted = (channel, metaDataKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { channelUrl, metaDataKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_DELETED,\n payload: { channel, metaDataKeys },\n });\n };\n ChannelHandler.onMetaCountersCreated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_CREATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersUpdated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_UPDATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersDeleted = (channel, metaCounterKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { channelUrl, metaCounterKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_DELETED,\n payload: { channel, metaCounterKeys },\n });\n };\n ChannelHandler.onMentionReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MENTION_RECEIVED,\n payload: { channel, message },\n });\n };\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [currentOpenChannel]);\n\n // useInitialMessagesFetch\n useEffect(() => {\n logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams && currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | Used customizedMessageListParams');\n }\n\n logger.info('OpenChannel | Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n },\n );\n // todo: use promise after CoreSDK adds required TS methods\n // .then((messages) => {\n // console.log('get messages via getMessagesByTimestamp', messages);\n // const hasMore = (messages && messages.length > 0);\n // const lastMessageTimestamp = hasMore\n // ? messages[0].createdAt\n // : null;\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n // payload: {\n // currentOpenChannel,\n // messages,\n // hasMore,\n // lastMessageTimestamp,\n // },\n // });\n // })\n // .catch((error: Error): void => {\n // logger.error('OpenChannel | Fetching messages failed', error);\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n // payload: {\n // currentOpenChannel,\n // messages: [],\n // hasMore: false,\n // lastMessageTimestamp: 0,\n // }\n // });\n // });\n }\n }, [currentOpenChannel]);\n\n // useScrollCallback\n const onScroll = useCallback((callback) => {\n if (!hasMore) {\n return;\n }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel: Used userFilledMessageListParams');\n }\n\n logger.info('OpenChannel: Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n lastMessageTimestamp || new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n callback();\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n }\n );\n }, [currentOpenChannel, lastMessageTimestamp]);\n\n // useSendMessageCallback\n const handleSendMessage = useCallback(() => {\n const text = messageInputRef.current.value;\n\n function createParamsDefualt(txt: string | number): Sendbird.UserMessageParams {\n const message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim();\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n }\n\n const createCustomParams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n logger.info('OpenChannel | Sending message has started', params);\n\n const pendingMessage = currentOpenChannel.sendUserMessage(params, (message, error) => {\n if (error) {\n logger.warning('OpenChannel | Sending message failed', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: pendingMessage,\n channel: currentOpenChannel,\n },\n });\n }, [currentOpenChannel, onBeforeSendUserMessage]);\n\n // useFileUploadCallback\n const handleFileUpload = useCallback((file) => {\n function createParamsDefualt(file_: File): Sendbird.FileMessageParams {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n }\n\n const createCustomParams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefualt(file);\n\n logger.info('OpenChannel | Uploading file message start', params);\n\n const pendingMessage = currentOpenChannel.sendFileMessage(\n params,\n (message: EveryMessage, error: Sendbird.SendBirdError) => {\n if (error) {\n logger.error('OpenChannel | Sending file message failed', { message, error });\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n );\n\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n }\n });\n }, [currentOpenChannel, onBeforeSendFileMessage]);\n\n // useUpdateMessageCallback\n const updateMessage = useCallback((messageId: number, text: string, callback?: () => void): void => {\n\n function createParamsDefualt(txt: string): SendBird.UserMessageParams {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n }\n\n if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {\n logger.info('OpenChannel | Creating params using onBeforeUpdateUserMessage');\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n currentOpenChannel.updateUserMessage(messageId, params, (message, error) => {\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | Updating message succeeded', { message, params });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentOpenChannel,\n message,\n },\n });\n } else {\n logger.warning('OpenChannel | Updating message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher, onBeforeSendUserMessage]);\n\n // useDeleteMessageCallback\n const deleteMessage = useCallback((message: ClientUserMessage | ClientFileMessage, callback?: () => void): void => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState: ', requestState);\n\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local: ', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (callback) {\n callback();\n }\n return;\n }\n\n currentOpenChannel.deleteMessage(message, (error) => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message from remote: ', requestState);\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: {\n channel: currentOpenChannel,\n messageId: message.messageId,\n },\n });\n } else {\n logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher]);\n\n // useResendMessageCallback\n const resendMessage = useCallback((failedMessage: ClientUserMessage | ClientFileMessage) => {\n logger.info('OpenChannel | Reseding message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESENDING_MESSAGE_START,\n payload: {\n channel: currentOpenChannel,\n message: failedMessage,\n },\n });\n\n // userMessage\n if (messageType === 'user' && failedMessage.messageType === 'user') {\n currentOpenChannel.resendUserMessage(failedMessage, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Reseding message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n return;\n }\n\n // fileMessage\n if (messageType === 'file' && failedMessage.messageType === 'file') {\n currentOpenChannel.resendFileMessage(failedMessage, file, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Resending file message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending file message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('OpenChannel | Message is not resendable');\n logger.warning('OpenChannel | Message is not resendable', failedMessage);\n }\n }, [currentOpenChannel, messagesDispatcher]);\n\n const handleClickScrollDownButton = () => {\n const promise = new Promise((resolve) => {\n resolve();\n });\n setScrollDownPromise(promise);\n };\n\n if (!currentOpenChannel || !currentOpenChannel.url) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n\n return (\n \n {\n showScrollDownButton && (\n \n \n \n )\n }\n {\n renderChannelTitle\n ? renderChannelTitle({\n channel: currentOpenChannel,\n user: user,\n })\n : (\n \n )\n }\n {\n currentOpenChannel.isFrozen && (\n \n )\n }\n \n {\n renderMessageInput\n ? (\n renderMessageInput({\n channel: currentOpenChannel,\n user: user,\n disabled: disabled,\n })\n )\n : (\n \n )\n }\n \n );\n};\n\nexport default withSendbirdContext(OpenchannelConversation);\n"],"names":["getMessageCreatedAt","message","format","createdAt","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","isSameGroup","comparingMessage","messageType","sendingStatus","sender","userId","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","kFormatter","num","Math","abs","toFixed","isOperator","openChannel","operators","map","operator","indexOf","isDisabledBecauseFrozen","isFrozen","MessageInputWrapper","_a","ref","channel","user","disabled","onSendMessage","onFileUpload","renderMessageInput","stringSet","useContext","LocalizationContext","React","MessageInput","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","forwardRef","FrozenNotification","Label","LabelTypography","CAPTION_2","CHANNEL_FROZEN","COMPONENT_CLASS_NAME","OpenchannelConversationHeader","coverImage","_b","title","LabelStringSet","NO_TITLE","_c","subTitle","onActionClick","Avatar","Icon","IconTypes","AVATAR_NO_IMAGE","IconColors","BACKGROUND_3","H_2","LabelColors","ONBACKGROUND_1","BODY_2","ONBACKGROUND_2","IconButton","INFO","PRIMARY","copyToClipboard","text","window","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","OpenChannelMessageStatusTypes","NONE","PENDING","FAILED","CANCELED","SUCCEEDED","getSenderFromMessage","_sender","checkIsSent","status","checkIsByMe","isFineCopy","isFineResend","isResendable","isFineEdit","isFineDelete","showMenuTrigger","props","OpenchannelUserMessage","className","resendMessage","showEdit","showRemove","chainTop","UserProfileContext","disableUserProfile","renderUserProfile","messageRef","useRef","avatarRef","contextMenuRef","useState","contextStyle","setContextStyle","injectingClassName","Array","isArray","push","isByMe","MemoizedMessageText","useMemo","splitMessage","split","matchedMessage","word","updatedAt","uuidv4","BODY_1","MESSAGE_EDITED","useEffect","current","clientHeight","top","innerWidth","join","ContextMenu","toggleDropdown","profileUrl","closeDropdown","MenuItems","paddingTop","paddingBottom","close","UserProfile","SECONDARY_3","friendName","nickname","CAPTION_3","ONBACKGROUND_3","MORE","CONTENT_INVERSE","MenuItem","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","OpenChannelAdminMessage","__spreadArrays","URL_REG","createUrlTester","regexp","test","checkOGIsEnalbed","ogMetaData","url","OpenchannelOGMessage","defaultImage","messageComponentRef","isUrl","wordClassName","LinkLabel","openLink","open","SUBTITLE_2","description","ImageRenderer","alt","NO_THUMBNAIL","SUPPORTING_TYPES","IMAGE","VIDEO","UNSUPPORTED","SUPPORTED_MIMES","getSupportingFileType","type","OpenchannelThumbnailMessage","onClick","localUrl","isMessageSent","PLAY","PHOTO","ON_BACKGROUND_2","checkFileType","fileUrl","result","imageFile","audioFile","FILE_DOCUMENT","FILE_AUDIO","truncate","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","ceil","backChars","floor","substr","OpenchannelFileMessage","openFileUrl","TextButton","RemoveMessageModal","onCloseModal","onDeleteMessage","Modal","MODAL__DELETE_MESSAGE__TITLE","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","UNKNOWN","SendingMessageStatus","getMessageType","isUserMessage","isAdminMessage","isImage","isVideo","MessageHoc","editDisabled","hasSeperator","renderCustomMessage","deleteMessage","updateMessage","chainBottom","RenderedMessage","setShowEdit","_d","setShowRemove","_e","showFileViewer","setShowFileViewer","editMessageInputRef","requestState","messageId","DateSeparator","OpenChannelFileMessage","OpenChannelOGMessage","OpenChannelThumbnailMessage","OpenChannelUserMessage","FileViewer","OpenchannelConversationScroll","useMessageGrouping","openchannel","allMessages","isOnline","hasMore","onScroll","scrollDownPromise","showScrollDownButton","scrollRef","handleOnScroll","e","element","target","scrollTop","scrollHeight","nodes_1","first","then","scrollTo","index","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","RESET_MESSAGES","GET_PREV_MESSAGES_SUCESS","GET_PREV_MESSAGES_FAIL","SENDING_MESSAGE_FAILED","SENDING_MESSAGE_SUCCEEDED","SENDING_MESSAGE_START","RESENDING_MESSAGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","ON_OPERATOR_UPDATED","ON_USER_ENTERED","ON_USER_EXITED","ON_USER_MUTED","ON_USER_UNMUTED","ON_USER_BANNED","ON_USER_UNBANNED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_CHANNEL_CHANGED","ON_META_DATA_CREATED","ON_META_DATA_UPDATED","ON_META_DATA_DELETED","ON_META_COUNTERS_CREATED","ON_META_COUNTERS_UPDATED","ON_META_COUNTERS_DELETED","ON_MENTION_RECEIVED","reducer","state","action","actionTypes","currentChannel","payload","isInvalid","currentOpenChannel","participants","isFailed","messages","lastMessageTimestamp","actionChannelUrl","receivedMessages_1","_hasMore","_lastMessageTimestamp","stateChannel","stateChannelUrl","filteredAllMessages","filter","find","compareIds","loading","initialized","sentMessage_1","newMessages","m","reqId","sentMessage_2","eventedChannel","resentMessage_1","receivedMessage","updatedMessage_1","isIdentical","deletedMessageId_1","updatedOperators","enteredUser","exitedUser_1","participant","frozenChannel","frozen","unfrozenChannel","changedChannel","initialState","OpenchannelConversation","channelUrl","stores","config","queries","renderChannelTitle","onBeforeSendUserMessage","onBeforeSendFileMessage","onChatHeaderActionClick","sdkStore","userStore","logger","pubSub","sdk","useReducer","messagesReducer","messagesInitialState","messagesStore","messagesDispatcher","messageInputRef","setScrollDownPromise","setShowScrollDownButton","sdkInit","userFilledMessageListParams","messageListParams","utils","userDefinedDisableUserProfile","userDefinedRenderProfile","OpenChannel","info","getChannel","messageActionTypes","enter","warning","subscriber","Map","subscribe","set","topics","msg","fromSelector","forEach","s","remove","messageReceiverId","ChannelHandler","onMessageReceived","onMessageUpdated","onMessageDeleted","onOperatorUpdated","onUserEntered","onUserExited","onUserMuted","onUserUnmuted","onUserBanned","onUserUnbanned","onChannelFrozen","onChannelUnfrozen","onChannelChanged","onMetaDataCreated","metaData","onMetaDataUpdated","onMetaDataDeleted","metaDataKeys","onMetaCountersCreated","metaCounter","onMetaCountersUpdated","onMetaCountersDeleted","metaCounterKeys","onMentionReceived","addChannelHandler","removeChannelHandler","MessageListParams","getMessagesByTimestamp","messageListParams_1","prevResultSize","isInclusive","includeReplies","includeReactions","Object","keys","key","Date","getTime","hasMore_1","lastMessageTimestamp_1","useCallback","callback","hasMore_2","lastMessageTimestamp_2","handleSendMessage","value","createParamsDefualt","txt","trim","toString","params","UserMessageParams","createCustomParams","pendingMessage","sendUserMessage","handleFileUpload","file","file_","FileMessageParams","sendFileMessage","URL","createObjectURL","updateUserMessage","failedMessage","resendUserMessage","resendFileMessage","console","handleClickScrollDownButton","promise","Promise","resolve","PlaceHolder","PlaceHolderTypes","NO_CHANNELS","LOADING","WRONG","UserProfileProvider","SHEVRON_DOWN","CONTENT","name","participantCount","OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS","coverUrl","FrozenChannelNotification","withSendbirdContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/OpenChannelSettings.js b/dist/cjs/OpenChannelSettings.js index e3af30f..3571526 100644 --- a/dist/cjs/OpenChannelSettings.js +++ b/dist/cjs/OpenChannelSettings.js @@ -6,14 +6,14 @@ var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); var React = require('react'); var React__default = _interopDefault(React); require('prop-types'); -var index$1 = require('./index-710314fd.js'); +var index$1 = require('./index-49d966e1.js'); var utils = require('./utils-6aedec02.js'); require('date-fns/format'); require('./type-c7a3bee7.js'); require('react-dom'); -var index$2 = require('./index-6ca9e95e.js'); +var index$2 = require('./index-21269166.js'); var utils$2 = require('./utils-c8e36c68.js'); -var index$3 = require('./index-c4d028d8.js'); +var index$3 = require('./index-63161cb1.js'); function ChannelAvatar(_a) { var channel = _a.channel, diff --git a/dist/cjs/SendbirdProvider.css b/dist/cjs/SendbirdProvider.css deleted file mode 100644 index 585ef25..0000000 --- a/dist/cjs/SendbirdProvider.css +++ /dev/null @@ -1,3843 +0,0 @@ -.sendbird-openchannel-conversation { - position: relative; - display: flex; - flex-direction: column; - height: 100%; - width: 100%; } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { - position: absolute; - display: flex; - align-items: center; - justify-content: center; - bottom: 96px; - left: calc(50% - 20px); - width: 40px; - height: 40px; - border-radius: 24px; - z-index: 1; } - .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { - background-color: var(--sendbird-light-primary-500); } - .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll { - overflow-y: auto; - flex: 1 1 0; - order: 2; - width: 100%; } - .sendbird-openchannel-conversation .sendbird-openchannel-footer { - order: 3; - padding: 12px 24px 24px 24px; } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container { - display: flex; - height: 100%; - overflow-y: auto; - overflow-x: hidden; - flex-direction: column; } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container .sendbird-openchannel-conversation-scroll-padding { - flex: 1 1 0; } - -.sendbird-openchannel-settings { - height: 100%; - width: 320px; - display: inline-block; - overflow-y: scroll; - position: relative; } - .sendbird-theme--light .sendbird-openchannel-settings { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-settings { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-settings .sendbird-participants-accordion__footer { - text-align: left; - padding-top: 16px; - padding-left: 16px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__accordion-icon, - .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-icon__delete { - position: absolute; - left: 16px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__participant { - height: 100%; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__participants-list { - padding-top: 64px; - height: calc(100% - 64px); - overflow-y: scroll; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { - display: block; - width: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 1; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { - background-color: var(--sendbird-dark-background-600); } - .sendbird-openchannel-settings .sendbird-participants-accordion, - .sendbird-openchannel-settings .sendbird-openchannel-settings__delete-channel { - text-align: left; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__members .sendbird-badge__text { - margin-top: -2px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__header { - height: 64px; - min-height: 64px; - position: relative; - padding: 20px 24px; - box-sizing: border-box; - text-align: left; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__header { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__header { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon { - cursor: pointer; - position: absolute; - top: 20px; - right: 16px; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-openchannel-settings .sendbird-openchannel-settings__placeholder { - margin-top: 40%; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url { - padding: 16px; - box-sizing: border-box; - position: relative; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url:hover .sendbird-openchannel-settings__copy-icon { - display: inline-block; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__copy-icon { - cursor: pointer; - position: absolute; - display: none; - top: 10px; - right: 18px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value { - margin-top: 8px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value, - .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-label { - text-align: left; - display: block; - word-wrap: break-word; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__url { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__url { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { - display: block; - cursor: pointer; - box-sizing: border-box; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item:focus { - outline: none; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { - cursor: not-allowed; } - .sendbird-openchannel-settings .sendbird-participants-accordion__member { - position: relative; - padding: 12px 0px 12px 56px; - height: 40px; - box-sizing: border-box; - text-align: left; } - .sendbird-openchannel-settings .sendbird-participants-accordion__member .sendbird-label { - max-width: 240px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-openchannel-settings .sendbird-participants-accordion__member-avatar { - position: absolute; - left: 16px; - top: 10px; - cursor: pointer; } - -.sendbird-openchannel-conversation-header { - position: relative; - min-height: 64px; } - .sendbird-theme--light .sendbird-openchannel-conversation-header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-conversation-header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-conversation-header .sendbird-openchannel-conversation-header__left__title { - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; - max-width: calc(100% - 120px); } - .sendbird-openchannel-conversation-header__left [class*=sendbird-openchannel-conversation-header__left__cover-image] { - position: absolute; - left: 20px; - top: 16px; } - .sendbird-openchannel-conversation-header__left__title { - position: absolute; - left: 60px; - top: 12px; } - .sendbird-openchannel-conversation-header__left__sub-title { - position: absolute; - left: 60px; - top: 36px; } - .sendbird-openchannel-conversation-header__right { - position: absolute; - top: 0px; - right: 0px; - width: 64px; - height: 64px; } - .sendbird-openchannel-conversation-header__right__trigger { - position: absolute; - top: 16px; - right: 16px; - display: flex; - align-items: center; - justify-content: center; } - -.sendbird-frozen-channel-notification { - position: relative; - margin-top: 8px; - margin-right: 24px; - margin-left: 24px; - height: 32px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 4px; } - .sendbird-theme--light .sendbird-frozen-channel-notification { - background-color: var(--sendbird-light-information-100); } - .sendbird-theme--dark .sendbird-frozen-channel-notification { - background-color: var(--sendbird-dark-information-100); } - -.sendbird-avatar { - display: inline-block; - overflow: hidden; - border-radius: 50%; - position: relative; } - .sendbird-avatar:focus { - outline: none; } - .sendbird-avatar .sendbird-avatar-img { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); } - .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:first-child { - transform: translate(2%, -50%); } - .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:last-child { - transform: translate(-102%, -50%); } - .sendbird-avatar .sendbird-avatar--inner__three-child--upper .sendbird-avatar-img:first-child { - transform: translate(-50%, -102%); } - .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:first-child { - transform: translate(-77%, -23%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:last-child { - transform: translate(-23%, -23%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:first-child { - transform: translate(-77%, -77%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(2) { - transform: translate(-23%, -77%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(3) { - transform: translate(-77%, -23%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:last-child { - transform: translate(-23%, -23%) scale(0.5); } - -.sendbird-accordion { - padding: 8px 0px 16px 0px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-accordion { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-accordion { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-accordion .sendbird-accordion__member { - position: relative; - padding: 12px 0px 12px 44px; - height: 40px; - box-sizing: border-box; } - .sendbird-accordion .sendbird-accordion__footer { - display: flex; - justify-content: flex-start; - margin-top: 8px; } - -.sendbird-accordion__panel-heder { - cursor: pointer; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-accordion__panel-heder { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-accordion__panel-heder { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-accordion__panel-heder:focus { - outline: none; } - .sendbird-accordion__panel-heder.sendbird-accordion__panel-item__disabled { - cursor: not-allowed; } - -.sendbird-accordion__panel-icon-left, -.sendbird-accordion__panel-icon-right { - position: absolute; - top: 10px; } - -.sendbird-accordion__panel-icon-left { - left: 16px; } - -.sendbird-accordion__panel-icon-right { - right: 16px; } - -.sendbird-accordion__panel-icon--open { - transform: rotate(90deg); } - -.sendbird-theme--light .sendbird-accordion__panel-icon--chevron path { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-accordion__panel-icon--chevron path { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-accordion__panel-icon__leave path { - fill: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-accordion__panel-icon__leave path { - fill: var(--sendbird-dark-error-300); } - -.sendbird__user-profile { - width: 320px; - border-radius: 4px; - padding: 24px; - box-sizing: border-box; - text-align: center; } - .sendbird-theme--light .sendbird__user-profile { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird__user-profile { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird__user-profile .sendbird__user-profile-avatar { - margin: 8px 0px; } - .sendbird__user-profile .sendbird__user-profile-name { - max-width: 270px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; } - .sendbird__user-profile .sendbird__user-profile-message { - margin-top: 20px; } - .sendbird__user-profile .sendbird__user-profile-message button { - width: 272px; } - .sendbird__user-profile .sendbird__user-profile-seperator { - margin: 24px 0px; - height: 1px; } - .sendbird-theme--light .sendbird__user-profile .sendbird__user-profile-seperator { - background-color: var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird__user-profile .sendbird__user-profile-seperator { - background-color: var(--sendbird-dark-ondark-04); } - .sendbird__user-profile .sendbird__user-profile-userId--label, - .sendbird__user-profile .sendbird__user-profile-userId--value { - display: block; - text-align: left; } - .sendbird__user-profile .sendbird__user-profile-userId--label { - margin-bottom: 8px; } - -.sendbird-openchannel-profile { - position: relative; - text-align: center; - padding: 32px 40px 27px 40px; } - .sendbird-theme--light .sendbird-openchannel-profile { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-openchannel-profile { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-openchannel-profile .sendbird-openchannel-profile--inner { - height: 116px; } - .sendbird-openchannel-profile .sendbird-openchannel-profile__avatar { - margin-bottom: 16px; - text-align: center; } - .sendbird-openchannel-profile .sendbird-openchannel-profile__title { - max-width: 240px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; - height: 18px; } - .sendbird-openchannel-profile .sendbird-openchannel-profile__edit { - position: absolute; - top: 10px; - right: 16px; } - -.sendbird-openchannel-conversation-scroll { - position: relative; - width: 100%; } - .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container { - position: absolute; - width: 100%; } - .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding { - height: 8px; } - -.sendbird-openchannel-admin-message { - position: relative; - margin: 16px 24px; - padding: 12px 16px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-openchannel-admin-message { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-admin-message { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-admin-message .sendbird-openchannel-admin-message__text { - word-wrap: break-word; } - -.sendbird-openchannel-user-message { - position: relative; - display: flex; - flex-direction: row; - width: 100%; } - .sendbird-theme--light .sendbird-openchannel-user-message:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-user-message:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-user-message:hover .sendbird-openchannel-user-message__context-menu { - display: block; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left { - position: relative; - display: flex; - width: 52px; - min-width: 52px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left .sendbird-openchannel-user-message__left__avatar { - position: relative; - display: flex; - margin-top: 8px; - margin-left: 24px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - margin: 8px 24px 8px 12px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top { - position: relative; - display: flex; - margin-bottom: 2px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sender-name { - position: relative; - display: flex; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sent-at { - position: relative; - display: flex; - margin-left: 4px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom { - position: relative; - display: flex; - width: 100%; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom .sendbird-openchannel-user-message__right__bottom__message { - position: relative; - word-break: break-all; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu { - position: absolute; - right: 16px; - display: none; } - .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { - background-color: var(--sendbird-light-background-300); } - .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-openchannel-og-message { - position: relative; - display: flex; - flex-direction: column; - width: 100%; } - .sendbird-theme--light .sendbird-openchannel-og-message:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-og-message:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-og-message:hover .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { - display: block; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top { - box-sizing: border-box; - position: relative; - display: flex; - flex-direction: row; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left { - position: relative; - display: flex; - width: 52px; - min-width: 52px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left .sendbird-openchannel-og-message__top__left__avatar { - position: absolute; - display: flex; - top: 8px; - left: 24px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right { - position: relative; - display: flex; - box-sizing: border-box; - flex-direction: column; - margin: 8px 24px 8px 12px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title { - position: relative; - display: flex; - margin-bottom: 2px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sender-name { - position: relative; - display: flex; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sent-at { - position: relative; - display: flex; - margin-left: 4px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__description .sendbird-openchannel-og-message__top__right__description__message { - position: relative; - display: inline; - white-space: pre-wrap; - word-break: break-all; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { - position: absolute; - right: 16px; - display: none; } - .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { - background-color: var(--sendbird-light-background-300); } - .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom { - position: relative; - display: inline; - margin-bottom: 8px; - width: 100%; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { - position: relative; - display: inline-block; - box-sizing: border-box; - width: calc(100% - 64px); - max-width: 360px; - left: 64px; - padding: 12px 12px 4px 12px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { - border: solid 1px var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { - border: solid 1px var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__url { - position: relative; - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - margin-bottom: 8px; - max-width: 336px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title { - position: relative; - display: inline-block; - white-space: pre-wrap; - overflow-wrap: normal; - margin-bottom: 8px; - max-width: 336px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { - color: var(--sendbird-dark-primary-200); } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__description { - position: relative; - display: block; - white-space: pre-wrap; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - max-height: 32px; - margin-bottom: 8px; - width: 100%; - max-width: 336px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail { - box-sizing: border-box; - position: relative; - display: block; - margin-top: 4px; - margin-bottom: 8px; - width: 100%; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail:hover { - cursor: pointer; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image { - border-radius: 8px; - width: 100%; - min-width: 200px; - max-width: 336px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image--placeholder { - border-radius: 8px; - width: 100%; - min-width: 200px; - max-width: 336px; } - -.sendbird-openchannel-og-message--word { - display: inline; - margin: 0px 2px; - word-break: break-all; } - -.sendbird-theme--light .sendbird-openchannel-og-message--word--link { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-openchannel-og-message--word--link { - color: var(--sendbird-dark-primary-200); } - -.sendbird-app__wrap { - width: 100%; - height: 100%; - display: flex; } - .sendbird-app__wrap .sendbird-app__conversation-wrap { - flex: 1; - position: relative; } - .sendbird-app__wrap .sendbird-app__channellist-wrap { - max-width: 320px; } - .sendbird-theme--light .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { - background-color: var(--sendbird-dark-background-700); } - .sendbird-app__wrap .sendbird-channel-settings { - border-left: none; } - .sendbird-app__wrap .sendbird-channel-settings .sendbird-channel-settings__header { - height: 65px; } - -.sendbird-openchannel-file-message { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-openchannel-file-message:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-file-message:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-file-message:hover .sendbird-openchannel-file-message__context-menu { - display: block; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left { - position: relative; - display: flex; - width: 52px; - min-width: 52px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left .sendbird-openchannel-file-message__left__avatar { - position: absolute; - display: block; - margin-top: 8px; - margin-left: 24px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right { - position: relative; - display: flex; - flex-direction: column; - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title { - position: relative; - display: flex; - margin-top: 8px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sender-name { - position: relative; - display: flex; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sent-at { - position: relative; - display: flex; - margin-left: 4px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { - position: relative; - display: flex; - margin-top: 4px; - margin-bottom: 4px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { - position: relative; - display: inline-block; - margin: 8px; - border-radius: 8.6px; } - .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { - background-color: var(--sendbird-dark-background-600); } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__file-name { - position: relative; - display: flex; - margin-top: 22px; - margin-right: 16px; - margin-left: 4px; - overflow: hidden; - height: 20px; - max-height: 20px; - text-overflow: ellipsis; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu { - position: absolute; - display: none; - top: 8px; - right: 16px; } - .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { - background-color: var(--sendbird-light-background-300); } - .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-openchannel-thumbnail-message { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu { - display: block; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { - background-color: var(--sendbird-light-background-300); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left { - position: relative; - display: flex; - width: 52px; - min-width: 52px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left .sendbird-openchannel-thumbnail-message__left__avatar { - position: absolute; - display: inline; - margin-top: 8px; - margin-left: 28px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right { - position: relative; - display: flex; - flex-direction: column; - margin-top: 8px; - margin-bottom: 8px; - margin-left: 12px; - width: calc(100% - 64px); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title { - position: relative; - display: inline; - margin-bottom: 4px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sender-name { - position: relative; - display: inline; - margin-right: 4px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sent-at { - position: relative; - display: inline; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body { - position: relative; - display: inline; - border-radius: 8px; - width: 100%; - max-width: 360px; - height: 100%; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body:hover .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { - opacity: 1; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap { - position: relative; - width: 100%; - height: 100%; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - max-width: 360px; - top: 0px; - left: 0px; - border-radius: 8px; - cursor: pointer; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video { - max-width: 360px; - height: 270px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video:hover { - cursor: pointer; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__video { - max-width: 360px; - height: 270px; - border-radius: 8px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { - padding: 107px 152px 107px 152px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image { - border-radius: 8px; - max-width: 360px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { - padding: 107px 152px 107px 152px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { - padding: 107px 152px 107px 152px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__context-menu { - position: absolute; - display: none; - top: 8px; - right: 16px; } - -.sendbird__edit-user-profile section { - margin-top: 16px; } - .sendbird__edit-user-profile section .sendbird-input-label { - display: block; - margin-bottom: 12px; } - -.sendbird__edit-user-profile .sendbird__edit-user-profile__img .sendbird-input-label { - margin-bottom: 12px; } - -.sendbird__edit-user-profile__img { - position: relative; } - -.sendbird__edit-user__avatar-button { - position: absolute; - top: 50px; - left: 96px; } - -.sendbird__edit-user__theme-icon .sendbird-icon { - cursor: pointer; } - -.sendbird-channel-list { - width: 320px; - height: 100%; - display: flex; - flex-direction: column; } - .sendbird-theme--light .sendbird-channel-list { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-list { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-channel-list__header { - height: 64px; - min-height: 64px; } - -.sendbird-channel-list__body { - flex: 1 1 0; - -ms-flex: 1; - overflow-y: auto; - overflow-x: hidden; } - -.sendbird-conversation { - display: flex; - flex-direction: column; - height: 100%; } - .sendbird-theme--light .sendbird-conversation { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-conversation { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-conversation__messages { - overflow-y: auto; - flex: 1 1 0; - order: 2; } - -.sendbird-conversation__messages-list { - display: flex; - flex-direction: column; - height: 100%; - justify-content: flex-end; } - -.sendbird-conversation__footer { - order: 3; - padding: 0px 24px 24px 24px; } - -.sendbird-conversation__scroll-container { - display: flex; - height: 100%; - overflow-y: auto; - overflow-x: hidden; - flex-direction: column; } - .sendbird-conversation__scroll-container .sendbird-conversation__padding { - flex: 1 1 0; } - -.sendbird-conversation__footer { - position: relative; } - .sendbird-conversation__footer .sendbird-conversation__typing-indicator { - position: absolute; - bottom: 8px; } - -.sendbird-channel-settings { - height: 100%; - width: 320px; - display: inline-block; } - .sendbird-theme--light .sendbird-channel-settings { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__header-icon { - cursor: pointer; - position: absolute; - top: 18px; - right: 21px; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-channel-settings .sendbird-channel-settings__members .sendbird-badge__text { - margin-top: -2px; } - .sendbird-channel-settings .sendbird-channel-settings__header { - height: 64px; - min-height: 64px; - position: relative; - padding: 20px 24px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__scroll-area { - display: flex; - flex-grow: 1; - flex-direction: column; - height: calc(100% - 64px); - overflow-y: auto; } - .sendbird-channel-settings .sendbird-channel-settings__panel-item { - cursor: pointer; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-item { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-item { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__panel-item:focus { - outline: none; } - .sendbird-channel-settings .sendbird-channel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { - cursor: not-allowed; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left, - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { - position: absolute; - top: 10px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left { - left: 16px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { - right: 16px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon--open { - transform: rotate(90deg); } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { - fill: var(--sendbird-light-error-300); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { - fill: var(--sendbird-dark-error-300); } - -.sendbird-notification { - margin-top: 8px; - margin-left: 24px; - margin-right: 24px; - border-radius: 4px; - padding: 0px 2px; - height: 32px; - display: flex; - align-items: center; - justify-content: center; } - .sendbird-theme--light .sendbird-notification { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-notification { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-notification:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-notification:hover { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-notification:hover { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen { - background-color: var(--sendbird-light-information-100); } - .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen { - background-color: var(--sendbird-dark-information-100); } - .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { - color: var(--sendbird-dark-onlight-01); } - .sendbird-notification .sendbird-notification__text { - display: flex; - align-items: center; - justify-content: center; - margin-right: 8px; } - -.sendbird-muted-avatar { - border-radius: 50%; - display: inline-block; } - .sendbird-muted-avatar .sendbird-muted-avatar__icon { - position: relative; } - .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon { - position: absolute; - top: 4px; - left: 4px; } - .sendbird-muted-avatar .sendbird-muted-avatar__bg { - opacity: .5; - position: absolute; - border-radius: 50%; - top: 0; - left: 0; } - .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg { - background-color: var(--sendbird-dark-primary-300); } - -.sendbird-place-holder { - display: flex; - justify-content: center; - align-items: center; - height: 100%; } - .sendbird-place-holder .sendbird-place-holder__body { - display: flex; - flex-direction: column; - height: 104px; - align-items: center; } - .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__icon { - margin-bottom: 10px; } - .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__text { - margin-top: 10px; } - .sendbird-place-holder .sendbird-place-holder__body__reconnect { - margin-top: 18px; - display: flex; - flex-direction: row; - cursor: pointer; } - .sendbird-place-holder .sendbird-place-holder__body__reconnect .sendbird-place-holder__body__reconnect__icon { - margin-right: 4px; } - -.sendbird-channel-settings__operator .sendbird-channel-settings__accordion-icon { - position: absolute; - left: 14px; } - -.sendbird-channel-settings__operator .sendbird-accordion__panel-heder { - position: relative; } - -.sendbird-channel-settings__empty-list { - text-align: center; - margin-top: 12px; - margin-bottom: 4px; - display: block; } - -.sendbird-channel-settings-accordion__footer { - padding-top: 16px; - display: flex; - justify-content: left; - padding-left: 12px; } - .sendbird-channel-settings-accordion__footer .sendbird-button:nth-child(2) { - margin-left: 8px; } - -.sendbird-channel-settings__freeze { - max-width: 320px; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-channel-settings__freeze { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings__freeze { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-channel-settings__frozen-icon { - position: absolute; - right: 20px; - top: 12px; } - .sendbird-channel-settings__frozen-icon .sendbird-icon { - cursor: pointer; } - -.sendbird-channel-settings__members-list .sendbird-badge, -.sendbird-channel-settings__members .sendbird-badge { - position: absolute; - right: 44px; - top: 12px; } - .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--light - .sendbird-channel-settings__members .sendbird-badge { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--dark - .sendbird-channel-settings__members .sendbird-badge { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--light - .sendbird-channel-settings__members .sendbird-badge .sendbird-label { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--dark - .sendbird-channel-settings__members .sendbird-badge .sendbird-label { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-user-list-item--small { - display: block; - position: relative; - box-sizing: border-box; - height: 40px; } - .sendbird-user-list-item--small__avatar { - cursor: pointer; - position: absolute; - top: 10px; - left: 12px; } - .sendbird-user-list-item--small .sendbird-muted-avatar { - position: absolute; - top: 10px; - left: 12px; - z-index: 2; - pointer-events: none; } - .sendbird-user-list-item--small__title { - position: absolute; - top: 10px; - left: 54px; - width: 160px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item--small__subtitle { - position: absolute; - top: 23px; - left: 140px; - max-width: 237px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item--small__checkbox { - position: absolute; - top: 16px; - right: 16px; } - .sendbird-user-list-item--small__action { - display: none; - position: absolute; - right: 10px; - top: 4px; } - .sendbird-user-list-item--small__operator { - position: absolute; - right: 24px; - top: 10px; } - .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed { - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action { - display: block; } - .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator { - display: none; } - .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { - background-color: var(--sendbird-dark-background-700); } - -.sendbird-iconbutton { - color: var(--sendbird-iconbutton-color); - display: inline-block; - padding: 3px; - background-color: transparent; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid transparent; - border-radius: 4px; - outline: 0px; } - .sendbird-theme--light .sendbird-iconbutton .sendbird-iconbutton__inner svg { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-iconbutton .sendbird-iconbutton__inner svg { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-iconbutton:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-iconbutton:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-theme--light .sendbird-iconbutton:focus { - box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } - .sendbird-theme--dark .sendbird-iconbutton:focus { - box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } - .sendbird-theme--light .sendbird-iconbutton:active { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-iconbutton:active { - background-color: var(--sendbird-dark-background-400); } - .sendbird-iconbutton:disabled { - cursor: not-allowed !important; } - .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { - fill: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { - fill: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-iconbutton--pressed { - background-color: var(--sendbird-light-primary-100); } - -.sendbird-theme--dark .sendbird-iconbutton--pressed { - background-color: var(--sendbird-dark-background-700); } - -[class*=sendbird-label] { - font-family: var(--sendbird-font-family-default); } - -.sendbird-label--h-1 { - font-size: 20px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.4; - letter-spacing: -0.2px; } - -.sendbird-label--h-2 { - font-size: 18px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: normal; - letter-spacing: -0.2px; } - -.sendbird-label--subtitle-1 { - font-size: 16px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.38; - letter-spacing: -0.2px; } - -.sendbird-label--subtitle-2 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.14; - letter-spacing: -0.2px; } - -.sendbird-label--body-1 { - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--body-2 { - font-size: 12px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.33; - letter-spacing: normal; } - -.sendbird-label--button-1 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--button-2 { - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--caption-1 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--caption-2 { - font-size: 12px; - font-weight: bold; - font-style: normal; - line-height: 1; - letter-spacing: normal; } - -.sendbird-label--caption-3 { - font-size: 12px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1; - letter-spacing: normal; } - -.sendbird-theme--light .sendbird-label--color-onbackground-1 { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-1 { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-label--color-onbackground-2 { - color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-2 { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-label--color-onbackground-3 { - color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-3 { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-label--color-oncontent-1 { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-1 { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-label--color-oncontent-2 { - color: var(--sendbird-light-ondark-02); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-2 { - color: var(--sendbird-dark-onlight-02); } - -.sendbird-theme--light .sendbird-label--color-primary { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-label--color-primary { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-label--color-error { - color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-label--color-error { - color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-label--color-secondary-3 { - color: var(--sendbird-light-secondary-300); } - -.sendbird-theme--dark .sendbird-label--color-secondary-3 { - color: var(--sendbird-dark-secondary-200); } - -.sendbird-icon { - display: inline-block; } - .sendbird-icon:focus { - outline: none; } - -.sendbird-theme--light .sendbird-color--primary [class*='fill'] { - fill: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary [class*='fill'] { - fill: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--primary [class*='stroke'] { - stroke: var(--sendbird-light-primary-300); - stroke-width: 2px; - stroke-linejoin: round; } - -.sendbird-theme--dark .sendbird-color--primary [class*='stroke'] { - stroke: var(--sendbird-dark-primary-200); - stroke-width: 2px; - stroke-linejoin: round; } - -.sendbird-theme--light .sendbird-color--secondary [class*='fill'] { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--secondary [class*='fill'] { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--content [class*='fill'] { - fill: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--content [class*='fill'] { - fill: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--content-inverse [class*='fill'] { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--content-inverse [class*='fill'] { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-color--white [class*='fill'] { - fill: #ffffff; } - -.sendbird-theme--light .sendbird-color--sent [class*='fill'] { - fill: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--sent [class*='fill'] { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--read [class*='fill'] { - fill: var(--sendbird-light-secondary-300); } - -.sendbird-theme--dark .sendbird-color--read [class*='fill'] { - fill: var(--sendbird-dark-secondary-200); } - -.sendbird-theme--light .sendbird-color--on-background-2 [class*='fill'] { - fill: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-color--on-background-2 [class*='fill'] { - fill: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-color--on-background-3 [class*='fill'] { - fill: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--on-background-3 [class*='fill'] { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--background-3 [class*='fill'] { - fill: var(--sendbird-light-background-300); } - -.sendbird-theme--dark .sendbird-color--background-3 [class*='fill'] { - fill: var(--sendbird-dark-background-400); } - -.sendbird-textbutton { - text-decoration: underline; - cursor: pointer; } - -.sendbird-textbutton--not-underline { - text-decoration: none; - cursor: pointer; } - -.sendbird-textbutton--disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-textbutton--disabled { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-textbutton--disabled { - color: var(--sendbird-dark-ondark-03); } - -.sendbird__offline .sendbird-dropdown__menu .sendbird-dropdown__menu-item { - cursor: not-allowed; } - -.sendbird-dropdown__menu { - z-index: 99999; - position: absolute; - top: 100%; - left: 0; - min-width: 140px; - margin: 0px; - padding: 8px 0px; - border-radius: 4px; - list-style: none; } - .sendbird-theme--light .sendbird-dropdown__menu { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-dropdown__menu { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird-dropdown__menu .sendbird-dropdown__menu-item { - cursor: pointer; - white-space: nowrap; - padding: 8px 16px; } - .sendbird-theme--light .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-dropdown__reaction-bar { - position: absolute; - top: 100%; - left: 0; - min-width: 44px; - max-width: 352px; - max-height: 208px; - overflow-y: scroll; - margin: 0px; - padding: 8px; - border-radius: 8px; - list-style: none; } - .sendbird-theme--light .sendbird-dropdown__reaction-bar { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-dropdown__reaction-bar { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button, .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button--selected { - margin: 4px; } - -.sendbird-dropdown__menu-backdrop { - background-color: transparent; - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; } - -.sendbird-reactions--pressed { - display: block !important; } - -.sendbird-icon--pressed { - display: block !important; } - -.sendbird-message-input { - display: inline-block; - width: 100%; - position: relative; } - .sendbird-message-input .sendbird-message-input--textarea { - width: 100%; - border-radius: 4px; - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - height: 56px; - overflow-y: hidden; - letter-spacing: normal; - padding: 18px 64px 18px 16px; - box-sizing: border-box; - resize: none; - font-family: var(--sendbird-font-family-default); - background-color: inherit; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea { - color: var(--sendbird-light-onlight-01); - caret-color: var(--sendbird-light-primary-300); - border: solid 1px var(--sendbird-light-onlight-03); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea { - color: var(--sendbird-dark-ondark-01); - caret-color: var(--sendbird-dark-primary-200); - border: solid 1px var(--sendbird-dark-ondark-03); - background-color: var(--sendbird-dark-background-500); } - .sendbird-message-input .sendbird-message-input--textarea:focus { - outline: none; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:focus { - color: var(--sendbird-light-onlight-01); - border: solid 1px var(--sendbird-light-primary-300); - box-shadow: var(--sendbird-light-shadow-message-input); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:focus { - color: var(--sendbird-dark-ondark-01); - border: solid 1px var(--sendbird-dark-primary-200); - box-shadow: var(--sendbird-dark-shadow-message-input); } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:active { - border: solid 1px var(--sendbird-message-input-border-active); - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:active { - border: solid 1px var(--sendbird-message-input-border-active); - color: var(--sendbird-dark-ondark-01); } - .sendbird-message-input .sendbird-message-input--placeholder { - position: absolute; - pointer-events: none; - top: 18px; - left: 16px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - line-height: 1.43; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--placeholder { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--placeholder { - color: var(--sendbird-dark-ondark-03); } - .sendbird-message-input .sendbird-message-input--attach { - position: absolute; - right: 12px; - bottom: 18px; - padding: 6px; } - .sendbird-message-input .sendbird-message-input--send { - position: absolute; - padding: 6px; - right: 16px; - bottom: 16px; } - .sendbird-message-input .sendbird-message-input--attach-input { - display: none; } - -.sendbird-message-input__edit { - padding: 16px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-message-input__edit { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-message-input__edit { - background-color: var(--sendbird-dark-background-700); } - -.sendbird-message-input--edit-action { - text-align: right; - margin-top: 4px; } - .sendbird-message-input--edit-action button:last-child { - margin-left: 8px; } - .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - width: 80px; } - .sendbird-theme--light .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - border: solid 1px var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - border: solid 1px var(--sendbird-dark-ondark-03); } - .sendbird-message-input--edit-action .sendbird-message-input--edit-action__save { - width: 80px; } - -.sendbird-message-input-form__disabled { - cursor: not-allowed; } - -.sendbird-message-input__disabled { - pointer-events: none; - cursor: disabled; } - .sendbird-theme--light .sendbird-message-input__disabled .sendbird-message-input--textarea { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-message-input__disabled .sendbird-message-input--textarea { - background-color: var(--sendbird-dark-background-500); } - .sendbird-theme--light .sendbird-message-input__disabled svg { - fill: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input__disabled svg { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-image-renderer--hidden-placeholder { - display: none; } - -.sendbird-separator { - width: 100%; - display: flex; - align-items: center; } - .sendbird-separator .sendbird-separator__left { - border: none; - height: 1px; - display: inline-block; - width: 100%; } - .sendbird-separator .sendbird-separator__right { - border: none; - height: 1px; - display: inline-block; - width: 100%; } - .sendbird-separator .sendbird-separator__text { - margin: 0px 16px; - display: flex; - white-space: nowrap; } - -.sendbird-modal { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; } - -.sendbird-modal-content { - width: 480px; - border-radius: 4px; - z-index: 10001; - padding: 18px 24px 24px 24px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-modal-content { - background-color: var(--sendbird-light-background-50); - box-shadow: var(--sendbird-light-shadow-04); } - .sendbird-theme--dark .sendbird-modal-content { - background-color: var(--sendbird-dark-background-500); - box-shadow: var(--sendbird-dark-shadow-04); } - .sendbird-modal-content .sendbird-modal-close { - position: absolute; - top: 16px; - right: 16px; - cursor: pointer; } - .sendbird-theme--light .sendbird-modal-content .sendbird-modal-close path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-modal-content .sendbird-modal-close path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-modal-content .sendbird-modal-header { - margin-bottom: 16px; } - .sendbird-modal-content .sendbird-modal-footer { - margin-top: 32px; - text-align: right; } - .sendbird-modal-content .sendbird-modal-footer .sendbird-button:last-child { - margin-left: 8px; - width: 80px; - height: 40px; } - -.sendbird-modal-backdrop { - position: fixed; - z-index: 10000; - height: 100%; - width: 100%; - top: 0; - left: 0; } - .sendbird-theme--light .sendbird-modal-backdrop { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-modal-backdrop { - background-color: var(--sendbird-dark-overlay); } - -.sendbird-fileviewer { - width: 100%; - height: 100%; - position: fixed; - top: 0; - left: 0; - z-index: 100000; } - .sendbird-theme--light .sendbird-fileviewer { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-fileviewer { - background-color: var(--sendbird-dark-background-600); } - -.sendbird-fileviewer__header { - height: 64px; - min-height: 64px; - box-sizing: border-box; - display: flex; - justify-content: space-between; } - .sendbird-theme--light .sendbird-fileviewer__header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-fileviewer__header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-fileviewer__header .sendbird-fileviewer__header-left { - padding: 16px 0px 16px 20px; - display: flex; - flex: 1; } - .sendbird-fileviewer__header .sendbird-fileviewer__header-right { - display: flex; - width: 160px; - justify-content: flex-end; } - .sendbird-fileviewer__header .sendbird-fileviewer__header-download, - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete, - .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - width: 64px; - padding: 21px; - box-sizing: border-box; - cursor: pointer; } - .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--light - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--light - .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--dark - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--dark - .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - border-left: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - border-left: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-fileviewer__header-avatar { - margin-right: 8px; } - -.sendbird-fileviewer__header-actions { - right: 0; - display: flex; - flex-direction: row; } - -.sendbird-fileviewer__header-filename { - max-width: 500px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - padding-top: 2px; } - -.sendbird-fileviewer__header-sendername { - max-width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - margin-left: 8px; - padding-top: 5px; } - -.sendbird-fileviewer__content { - height: calc(100% - 72px); - margin-top: 8px; - overflow-y: auto; - display: flex; - align-items: center; - justify-content: center; } - .sendbird-fileviewer__content .sendbird-fileviewer__video { - max-width: 100%; - max-height: 100%; } - .sendbird-fileviewer__content .sendbird-fileviewer__img { - max-width: 90%; - max-height: 90%; } - .sendbird-fileviewer__content .sendbird-fileviewer__unsupported { - max-width: 100%; - max-height: 100%; - display: flex; - justify-content: center; - align-items: center; } - -.sendbird-input { - display: inline-block; - width: 100%; - height: 40px; - position: relative; } - .sendbird-input .sendbird-input--input { - width: 100%; - height: 100%; - border-radius: 4px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; - padding: 10px 16px; - box-sizing: border-box; - background-color: inherit; } - .sendbird-theme--light .sendbird-input .sendbird-input--input { - color: var(--sendbird-light-onlight-01); - caret-color: var(--sendbird-light-primary-300); - border: solid 1px var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input { - color: var(--sendbird-dark-ondark-01); - caret-color: var(--sendbird-dark-primary-200); - border: solid 1px var(--sendbird-dark-ondark-03); } - .sendbird-input .sendbird-input--input:focus { - outline: none; } - .sendbird-theme--light .sendbird-input .sendbird-input--input:focus { - box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-light-onlight-01); - border: solid 2px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:focus { - box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-dark-ondark-01); - border: solid 2px var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-input .sendbird-input--input:active { - box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-light-onlight-01); - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:active { - box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-dark-ondark-01); - border: solid 1px var(--sendbird-dark-primary-200); } - .sendbird-input .sendbird-input--input:disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-input .sendbird-input--input:disabled { - background-color: var(--sendbird-light-background-100); - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:disabled { - background-color: var(--sendbird-dark-background-500); - color: var(--sendbird-dark-ondark-03); } - .sendbird-input .sendbird-input--placeholder { - position: absolute; - pointer-events: none; - top: 10px; - left: 16px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - line-height: 1.43; } - .sendbird-theme--light .sendbird-input .sendbird-input--placeholder { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--placeholder { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-input-label { - margin: 4px 0; } - -.sendbird-user-list-item { - display: block; - position: relative; - box-sizing: border-box; - width: 432px; - height: 56px; } - .sendbird-theme--light .sendbird-user-list-item { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-user-list-item { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-list-item__avatar { - position: absolute; - top: 8px; - left: 0px; - z-index: 1; - cursor: pointer; } - .sendbird-user-list-item .sendbird-muted-avatar { - position: absolute; - top: 8px; - left: 0px; - z-index: 2; - pointer-events: none; } - .sendbird-user-list-item__title { - position: absolute; - top: 17px; - left: 56px; - max-width: 280px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item__subtitle { - position: absolute; - top: 23px; - left: 140px; - max-width: 237px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item__checkbox { - position: absolute; - top: 16px; - right: 16px; } - .sendbird-user-list-item__action { - position: absolute; - right: 0; - top: 10px; } - .sendbird-user-list-item__operator { - position: absolute; - right: 40px; - top: 22px; } - -.sendbird__offline .sendbird-channel-preview { - cursor: not-allowed; } - -.sendbird-channel-preview { - position: relative; - cursor: pointer; - box-sizing: border-box; - width: 320px; - height: 80px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - padding: 12px 16px 12px 16px; } - .sendbird-theme--light .sendbird-channel-preview { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-preview { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-channel-preview .sendbird-channel-preview__frozen-icon { - padding-left: 4px; } - .sendbird-channel-preview .sendbird-channel-preview__broadcast-icon { - padding-right: 4px; } - .sendbird-channel-preview:focus { - outline: none; } - .sendbird-channel-preview .sendbird-channel-preview__avatar { - width: 56px; - height: 56px; } - .sendbird-channel-preview .sendbird-channel-preview__content { - width: 100%; - height: 100%; - margin-left: 16px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper { - display: flex; - justify-content: space-between; - width: 216px; - height: 16px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header { - display: flex; - justify-content: flex-start; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__channel-name { - overflow: hidden; - text-overflow: ellipsis; - max-width: 128px; - word-break: break-all; - white-space: nowrap; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__total-members { - margin-top: 2px; - margin-left: 4px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__last-message-at { - margin-left: 4px; - margin-bottom: 4px; - white-space: nowrap; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower { - margin-top: 8px; - width: 216px; - height: 32px; - display: flex; - justify-content: space-between; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__last-message { - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__unread-message-count { - margin-left: 8px; - margin-bottom: 12px; } - .sendbird-channel-preview .sendbird-channel-preview__action { - position: absolute; - top: 12px; - right: 12px; - display: inline-block; } - .sendbird-channel-preview .sendbird-channel-preview__action .sendbird-iconbutton { - display: none; } - .sendbird-theme--light .sendbird-channel-preview:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-channel-preview:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-channel-preview:hover .sendbird-channel-preview__action .sendbird-iconbutton { - display: inline-block; } - .sendbird-channel-preview:hover .sendbird-channel-preview__content__upper__last-message-at { - display: none; } - .sendbird-channel-preview:hover .sendbird-channel-preview__content__lower__unread-message-count { - display: none; } - -.sendbird-channel-preview--active { - padding: 12px 16px 12px 12px; } - .sendbird-theme--light .sendbird-channel-preview--active { - border-left: solid 4px var(--sendbird-light-primary-300); - border-bottom: solid 1px var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-channel-preview--active { - border-left: solid 4px var(--sendbird-dark-primary-200); - border-bottom: solid 1px var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-700); } - .sendbird-theme--light .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { - color: var(--sendbird-dark-primary-200); } - -.sendbird-link-label { - text-decoration: unset; } - .sendbird-link-label:hover { - cursor: pointer; - text-decoration: underline; } - .sendbird-link-label:focus { - outline: none; } - .sendbird-link-label__label { - display: inline; } - -.sendbird-theme--light .sendbird-label--color-onbackground-1 { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-1 { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-label--color-onbackground-2 { - color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-2 { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-label--color-onbackground-3 { - color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-3 { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-label--color-oncontent-1 { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-1 { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-label--color-oncontent-2 { - color: var(--sendbird-light-ondark-02); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-2 { - color: var(--sendbird-dark-onlight-02); } - -.sendbird-theme--light .sendbird-label--color-primary { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-label--color-primary { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-label--color-error { - color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-label--color-error { - color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-label--color-secondary-3 { - color: var(--sendbird-light-secondary-300); } - -.sendbird-theme--dark .sendbird-label--color-secondary-3 { - color: var(--sendbird-dark-secondary-200); } - -.sendbird-add-channel__rectangle-wrap { - margin-top: 26px; } - -.sendbird-add-channel__rectangle-footer { - text-align: right; - margin-top: 32px; } - -.sendbird-add-channel__rectangle { - width: 432px; - height: 72px; - border-radius: 4px; - margin-bottom: 8px; - padding: 25px 72px; - position: relative; - box-sizing: border-box; - cursor: pointer; } - .sendbird-theme--light .sendbird-add-channel__rectangle { - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-add-channel__rectangle { - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-add-channel__rectangle .sendbird-icon { - position: absolute; - left: 22px; - top: 24px; } - -.sendbird-channel-header { - position: relative; - height: 64px; - min-height: 64px; - width: 320px; - padding: 8px 64px 8px 8px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-channel-header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-channel-header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-channel-header.sendbird-channel-header--allow-edit .sendbird-channel-header__title { - cursor: pointer; } - .sendbird-channel-header .sendbird-channel-header__title { - display: flex; - flex-direction: row; - width: 260px; - height: 48px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:hover { - background: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:hover { - background: var(--sendbird-dark-background-500); } - .sendbird-channel-header .sendbird-channel-header__title:focus { - outline: none; } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:focus { - background: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:focus { - background: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:active { - border: solid 2px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:active { - border: solid 2px var(--sendbird-dark-primary-200); } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--left { - width: 48px; - padding: 8px; - box-sizing: border-box; } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--right { - margin-left: 4px; - padding-top: 8px; } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--name, - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--user-id { - display: block; - max-width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-header .sendbird-channel-header__right-icon { - position: absolute; - right: 16px; - top: 16px; } - -.sendbird-conversation__messages .sendbird-conversation__messages-padding { - padding-left: 24px; - padding-right: 24px; } - -.sendbird-conversation__messages .sendbird-separator, -.sendbird-conversation__messages .sendbird-admin-message { - padding-top: 8px; - padding-bottom: 8px; } - -.sendbird-conversation__connection-status { - display: flex; - align-items: center; - padding-top: 5px; } - -.sendbird-badge { - height: 20px; - min-width: 20px; - border-radius: 10px; - display: inline-block; } - .sendbird-theme--light .sendbird-badge { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-badge { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-badge .sendbird-badge__text { - margin: 0px 6px; } - -.sendbird-chat-header { - position: relative; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - height: 64px; - min-height: 64px; - padding-left: 20px; - padding-right: 16px; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-theme--light .sendbird-chat-header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-chat-header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-chat-header__left { - margin-right: 24px; } - .sendbird-chat-header__left, .sendbird-chat-header__right { - overflow: hidden; - display: flex; - flex-direction: row; - align-items: center; } - .sendbird-chat-header .sendbird-chat-header__title { - margin-left: 8px; - margin-right: 16px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - max-width: 780px; } - .sendbird-chat-header .sendbird-chat-header__subtitle { - max-width: 240px; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-chat-header .sendbird-chat-header__active { - margin-right: 4px; - width: 8px; - height: 8px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-chat-header .sendbird-chat-header__active { - background-color: var(--sendbird-light-secondary-300); } - .sendbird-theme--dark .sendbird-chat-header .sendbird-chat-header__active { - background-color: var(--sendbird-dark-secondary-200); } - .sendbird-chat-header .sendbird-chat-header__mute { - margin-right: 26px; } - .sendbird-chat-header .sendbird-iconbutton--pressed { - background-color: inherit; } - -.sendbird-channel-profile { - position: relative; - text-align: center; - padding: 32px 40px 27px 40px; } - .sendbird-theme--light .sendbird-channel-profile { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-channel-profile { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-channel-profile .sendbird-channel-profile--inner { - height: 92px; } - .sendbird-channel-profile .sendbird-channel-profile__avatar { - margin-bottom: 16px; - text-align: center; } - .sendbird-channel-profile .sendbird-channel-profile__title { - max-width: 240px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; - height: 18px; } - .sendbird-channel-profile .sendbird-channel-profile__edit { - position: absolute; - top: 10px; - right: 16px; } - -.channel-profile-form .channel-profile-form__img-section { - position: relative; } - -.channel-profile-form .channel-profile-form__avatar-button { - position: absolute; - top: 54px; - left: 96px; } - -.channel-profile-form .channel-profile-form__avatar { - margin-top: 16px; } - -.channel-profile-form .channel-profile-form__name-section { - margin-top: 12px; } - .channel-profile-form .channel-profile-form__name-section .sendbird-input { - height: 40px; } - -.sendbird-loader { - display: inline-block; - -webkit-animation: 1s infinite linear; - animation: 1s infinite linear; - -webkit-animation-name: rotate; - animation-name: rotate; } - -@-webkit-keyframes rotate { - from { - transform: rotate(0); } - to { - transform: rotate(360deg); } } - -@keyframes rotate { - from { - transform: rotate(0); } - to { - transform: rotate(360deg); } } - -.sendbird-button { - display: inline-block; - box-shadow: none; - border-radius: 4px; - padding: 0px; - font-family: var(--sendbird-font-family-default); - cursor: pointer; } - .sendbird-button:hover { - box-shadow: none; } - .sendbird-button:focus { - outline: none; } - .sendbird-button:active { - box-shadow: none; } - .sendbird-button.sendbird-button__disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-button.sendbird-button__disabled { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button.sendbird-button__disabled { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button.sendbird-button__disabled:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button.sendbird-button__disabled:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-button--big { - height: 40px; } - .sendbird-button--big .sendbird-button__text { - margin: 10px 16px; } - -.sendbird-button--small { - height: 32px; } - .sendbird-button--small .sendbird-button__text { - margin: 6px 16px; } - -.sendbird-theme--light .sendbird-button--primary { - border: 1px solid var(--sendbird-light-primary-300); - background-color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-button--primary { - border: 1px solid var(--sendbird-dark-primary-200); - background-color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-button--primary .sendbird-button__text { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-button--primary .sendbird-button__text { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-button--primary:hover { - background-color: var(--sendbird-light-primary-400); - border-color: var(--sendbird-light-primary-400); } - -.sendbird-theme--dark .sendbird-button--primary:hover { - background-color: var(--sendbird-dark-primary-300); - border-color: var(--sendbird-dark-primary-300); } - -.sendbird-theme--light .sendbird-button--primary:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); - border: 1px solid var(--sendbird-button-border-focus); } - -.sendbird-theme--dark .sendbird-button--primary:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); - border: 1px solid var(--sendbird-button-border-focus); } - -.sendbird-theme--light .sendbird-button--primary:active { - background-color: var(--sendbird-light-primary-500); } - -.sendbird-theme--dark .sendbird-button--primary:active { - background-color: var(--sendbird-dark-primary-400); } - -.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:hover { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-400); } - -.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:hover { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-300); } - -.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:active { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-500); } - -.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:active { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-400); } - -.sendbird-button--secondary { - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary { - border: 1px solid var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-button--secondary { - border: 1px solid var(--sendbird-dark-ondark-03); } - .sendbird-theme--light .sendbird-button--secondary .sendbird-button__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-button--secondary .sendbird-button__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-button--secondary:hover { - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary:hover { - border: 1px solid var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover { - border: 1px solid var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - .sendbird-button--secondary.sendbird-button__disabled { - cursor: not-allowed; - border: none; } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { - color: var(--sendbird-dark-ondark-02); } - .sendbird-button--secondary.sendbird-button__disabled:hover { - border: none; } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { - color: var(--sendbird-dark-ondark-02); } - .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - .sendbird-button--secondary:focus { - border: 1px solid transparent; - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary:focus { - box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } - .sendbird-theme--dark .sendbird-button--secondary:focus { - box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } - .sendbird-theme--light .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-button--secondary:active { - box-shadow: none; } - .sendbird-theme--light .sendbird-button--secondary:active { - border: 1px solid var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:active { - border: 1px solid var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-button--secondary:active .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:active .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-button--danger { - border: 1px solid var(--sendbird-light-error-300); - background-color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-button--danger { - border: 1px solid var(--sendbird-dark-error-300); - background-color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-button--danger .sendbird-button__text { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-button--danger .sendbird-button__text { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-button--danger:hover { - background-color: var(--sendbird-light-error-400); - border-color: var(--sendbird-light-error-400); } - -.sendbird-theme--dark .sendbird-button--danger:hover { - background-color: var(--sendbird-dark-error-400); - border-color: var(--sendbird-dark-error-400); } - -.sendbird-theme--light .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-300); - border-color: var(--sendbird-button-border-focus); } - -.sendbird-theme--dark .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-300); - border-color: var(--sendbird-button-border-focus); } - -.sendbird-button--danger:active { - box-shadow: none; } - .sendbird-theme--light .sendbird-button--danger:active { - background-color: var(--sendbird-light-error-500); } - .sendbird-theme--dark .sendbird-button--danger:active { - background-color: var(--sendbird-dark-error-500); } - -.sendbird-theme--light .sendbird-button--danger:hover .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-400); } - -.sendbird-theme--dark .sendbird-button--danger:hover .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-400); } - -.sendbird-theme--light .sendbird-button--danger:active .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-500); } - -.sendbird-theme--dark .sendbird-button--danger:active .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-500); } - -.sendbird-button--disabled { - border: 1px solid transparent; - cursor: not-allowed; } - .sendbird-theme--light .sendbird-button--disabled { - background-color: var(--sendbird-light-background-200); - color: var(--sendbird-light-ondark-01); } - .sendbird-theme--dark .sendbird-button--disabled { - background-color: var(--sendbird-dark-background-400); - color: var(--sendbird-dark-onlight-01); } - -.sendbird-members-accordion { - padding: 8px 16px 16px 16px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-members-accordion { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-members-accordion { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-members-accordion .sendbird-members-accordion__member { - position: relative; - padding: 12px 0px 12px 44px; - height: 40px; - box-sizing: border-box; } - .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label { - max-width: 240px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-members-accordion .sendbird-members-accordion__member-avatar { - position: absolute; - left: 0; - top: 10px; - cursor: pointer; } - .sendbird-members-accordion .sendbird-members-accordion__footer { - display: flex; - justify-content: flex-start; - margin-top: 8px; } - .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members { - margin-right: 16px; } - -.sendbird-more-members__popup-scroll { - max-height: 420px; - overflow-y: auto; } - -.sendbird-create-channel--content { - width: 480px; - max-height: 552px; } - -.sendbird-create-channel--scroll { - height: 360px; - overflow-y: auto; } - -.sendbird-reaction-button { - border-radius: 8px; - display: inline-block; - border: solid 1px transparent; - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-button:hover { - border: solid 1px var(--sendbird-light-background-100); - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-button:hover { - border: solid 1px var(--sendbird-dark-background-400); - background-color: var(--sendbird-dark-background-400); } - .sendbird-reaction-button__inner { - margin: 3px; } - -.sendbird-reaction-button--selected { - cursor: pointer; - border-radius: 8px; - display: inline-block; } - .sendbird-theme--light .sendbird-reaction-button--selected { - border: solid 1px var(--sendbird-light-primary-100); - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-reaction-button--selected { - border: solid 1px var(--sendbird-dark-primary-400); - background-color: var(--sendbird-dark-primary-400); } - .sendbird-reaction-button--selected:hover { - border: solid 1px var(--sendbird-selected-reaction-button-border-hover); } - .sendbird-reaction-button--selected__inner { - margin: 3px; } - .sendbird-reaction-button--selected.sendbird-reactions--pressed { - display: block !important; } - -.sendbird-sort-by-row { - display: flex; - justify-content: flex-start; - align-items: center; } - -.sendbird-checkbox { - display: block; - position: relative; - padding-left: 35px; - margin-bottom: 12px; - cursor: pointer; - font-size: 22px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.sendbird-checkbox input { - position: absolute; - opacity: 0; - cursor: pointer; - height: 0; - width: 0; } - -.sendbird-checkbox--checkmark { - position: absolute; - top: 0; - left: 0; - height: 18px; - width: 18px; - border-radius: 2px; - background-color: inherit; } - .sendbird-theme--light .sendbird-checkbox--checkmark { - border: 2px solid var(--sendbird-light-background-400); } - .sendbird-theme--dark .sendbird-checkbox--checkmark { - border: 2px solid var(--sendbird-dark-background-300); } - -.sendbird-theme--light .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { - background-color: var(--sendbird-light-primary-300); - border: 2px solid var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { - background-color: var(--sendbird-dark-primary-200); - border: 2px solid var(--sendbird-dark-primary-200); } - -.sendbird-checkbox--checkmark:after { - content: ""; - position: absolute; - display: none; } - -.sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark:after { - display: block; } - -.sendbird-theme--light .sendbird-checkbox .sendbird-checkbox--checkmark:after { - left: 5px; - top: -0.5px; - width: 7px; - height: 12px; - border: solid var(--sendbird-light-background-50); - border-width: 0 2px 2px 0; - transform: rotate(45deg); } - -.sendbird-theme--dark .sendbird-checkbox .sendbird-checkbox--checkmark:after { - left: 5px; - top: -0.5px; - width: 7px; - height: 12px; - border: solid var(--sendbird-dark-background-600); - border-width: 0 2px 2px 0; - transform: rotate(45deg); } - -.sendbird-theme--light .sendbird-color--onbackground-1 { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--onbackground-1 { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--onbackground-1--background-color { - background-color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--onbackground-1--background-color { - background-color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--onbackground-2 { - color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-color--onbackground-2 { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-color--onbackground-2--background-color { - background-color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-color--onbackground-2--background-color { - background-color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-color--onbackground-3 { - color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--onbackground-3 { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--onbackground-3--background-color { - background-color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--onbackground-3--background-color { - background-color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--onbackground-4 { - color: var(--sendbird-light-onlight-04); } - -.sendbird-theme--dark .sendbird-color--onbackground-4 { - color: var(--sendbird-dark-ondark-04); } - -.sendbird-theme--light .sendbird-color--onbackground-4--background-color { - background-color: var(--sendbird-light-onlight-04); } - -.sendbird-theme--dark .sendbird-color--onbackground-4--background-color { - background-color: var(--sendbird-dark-ondark-04); } - -.sendbird-theme--light .sendbird-color--oncontent-1 { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--oncontent-1 { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--oncontent-1--background-color { - background-color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--oncontent-1--background-color { - background-color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--primary { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--primary--background-color { - background-color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary--background-color { - background-color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--error { - color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-color--error { - color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-color--error--background-color { - background-color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-color--error--background-color { - background-color: var(--sendbird-dark-error-300); } - -.sendbird-message { - position: relative; - line-height: 0; } - .sendbird-message--outgoing { - text-align: right; } - .sendbird-message--incoming { - text-align: left; } - -.sendbird-user-message--copy { - cursor: pointer !important; } - -.sendbird-user-message--outgoing { - position: relative; - right: 0px; - display: inline-block; - max-width: 496px; - text-align: right; } - .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-user-message--outgoing:hover .sendbird-user-message__left-padding .sendbird-user-message__more { - display: block; } - .sendbird-user-message--outgoing .sendbird-user-message--inner { - display: flex; - flex-direction: row; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding { - position: relative; - width: 68px; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more { - display: none; - position: absolute; - right: 4px; - top: 2px; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more[class*='--pressed'] { - display: block !important; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__status { - position: absolute; - bottom: 2px; - right: 4px; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; - text-align: left; } - .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { - display: flex; - flex-direction: column; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { - padding: 8px 12px; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - display: inline; - white-space: pre-wrap; - overflow-wrap: normal; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - position: relative; - bottom: 0px; } - .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-300); } - -.sendbird-user-message--incoming { - position: relative; - left: 0px; - display: inline-block; - padding-left: 40px; - max-width: 536px; - text-align: left; } - .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__more { - display: block; } - .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__sent-at { - display: none; } - .sendbird-user-message--incoming .sendbird-user-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-user-message--incoming .sendbird-user-message--body { - display: flex; - flex-direction: column; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding { - position: relative; - width: 68px; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__sent-at { - position: absolute; - left: 4px; - bottom: 2px; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__more { - position: absolute; - display: none; - top: 18px; - left: 4px; } - .sendbird-user-message--incoming .sendbird-user-message__avatar { - position: absolute; - bottom: 4px; - left: -40px; - cursor: pointer; } - .sendbird-user-message--incoming .sendbird-user-message__sender-name { - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - margin-top: 4px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { - display: flex; - flex-direction: column; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { - padding: 8px 12px; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - display: inline; - white-space: pre-wrap; - overflow-wrap: normal; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - position: relative; - bottom: 0px; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - -.sendbird-user-message__text-balloon__inner__text-place__text { - word-break: break-word; - display: flex; - flex-direction: row; - flex-wrap: wrap; } - -.sendbird-user-message__text-balloon { - display: inline-block; } - -.sendbird-user-message-word { - display: inline; - margin: 0px 2px; } - -.sendbird-admin-message { - display: flex; - justify-content: center; - align-items: center; } - .sendbird-admin-message .sendbird-admin-message__text { - display: flex; } - -.sendbird-file-message--outgoing { - text-align: right; } - -.sendbird-file-message--incoming { - text-align: left; } - -.sendbird-file-message__outgoing { - position: relative; - right: 0px; - display: inline-block; - max-width: 496px; - text-align: right; - line-height: 0px; } - .sendbird-file-message__outgoing .sendbird-file-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__more { - display: block; } - .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__status { - display: none; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding { - position: relative; - width: 68px; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__more { - display: none; - position: absolute; - right: 4px; - top: 2px; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__status { - position: absolute; - text-align: right; - right: 4px; - bottom: 4px; } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - display: flex; - flex-direction: column; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { - display: flex; - flex: row; - padding: 8px 12px; - text-align: left; } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - border-radius: 10px; - margin-right: 8px; - background-color: var(--sendbird-file-message-icon-background); } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { - white-space: nowrap; - overflow-wrap: break-word; - margin: 4px 0px; - cursor: pointer; } - .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-300); } - -.sendbird-file-message__incoming { - position: relative; - left: 0px; - display: inline-block; - padding-left: 40px; - max-width: 536px; - text-align: left; - line-height: 0px; } - .sendbird-file-message__incoming .sendbird-file-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding { - position: relative; - width: 68px; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__more { - position: absolute; - display: none; - left: 4px; - top: 18px; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - .sendbird-file-message__incoming:hover .sendbird-file-message__right-padding .sendbird-file-message__more { - display: block; } - .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-file-message__incoming .sendbird-file-message__avatar { - position: absolute; - bottom: 2px; - left: -40px; - cursor: pointer; } - .sendbird-file-message__incoming .sendbird-file-message__sender-name { - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-file-message__incoming .sendbird-file-message__tooltip { - display: flex; - flex-direction: column; - margin-top: 4px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-background-500); } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { - display: flex; - flex-direction: row; - padding: 8px 12px; } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - border-radius: 10px; - margin-right: 8px; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - background-color: var(--sendbird-dark-background-600); } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { - white-space: nowrap; - overflow-wrap: normal; - margin: 4px 0px; - cursor: pointer; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - -.sendbird-unknown-message { - position: relative; - line-height: 0px; } - .sendbird-unknown-message--outgoing { - text-align: right; } - .sendbird-unknown-message--incoming { - text-align: left; } - -.sendbird-outgoing-unknown-message { - position: relative; - right: 0px; - display: inline-block; - text-align: right; - padding-left: 36px; - box-sizing: border-box; } - .sendbird-outgoing-unknown-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__more { - display: block; } - .sendbird-outgoing-unknown-message--left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__more { - display: none; - position: absolute; - top: 4px; - right: 4px; } - .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__message-status { - position: absolute; - text-align: right; - right: 4px; - bottom: 4px; } - .sendbird-outgoing-unknown-message__body { - display: flex; - flex-direction: column; } - .sendbird-outgoing-unknown-message__body__text-balloon { - box-sizing: border-box; - text-align: left; - border-radius: 16px; - padding: 8px 12px; - width: 198px; - height: 56px; } - .sendbird-theme--light .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - -.sendbird-incoming-unknown-message { - position: relative; - left: 0px; - display: flex; - flex-direction: row; - text-align: left; } - .sendbird-incoming-unknown-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-incoming-unknown-message__left { - width: 38px; } - .sendbird-incoming-unknown-message__left__sender-profile-image { - position: absolute; - bottom: 4px; } - .sendbird-incoming-unknown-message__body { - width: 198px; - display: flex; - flex-direction: column; } - .sendbird-incoming-unknown-message__body__sender-name { - margin-left: 10px; - margin-bottom: 4px; } - .sendbird-incoming-unknown-message__body__text-balloon { - width: 198px; - height: 56px; - border-radius: 16px; - text-align: left; - padding: 8px 12px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-unknown-message--right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-unknown-message--right-padding .sendbird-incoming-unknown-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - -.sendbird-message-status { - display: inline; - text-align: right; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again { - text-decoration: underline; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again:hover { - cursor: pointer; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete { - text-decoration: underline; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete:hover { - cursor: pointer; } - -.sendbird-emoji-reactions { - display: inline-block; - border-radius: 16px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - min-height: 24px; - padding: 7px 5px 3px 5px; } - .sendbird-theme--light .sendbird-emoji-reactions { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-emoji-reactions { - background-color: var(--sendbird-dark-background-600); } - .sendbird-emoji-reactions .sendbird-emoji-reactions--inner { - display: flex; - flex-wrap: wrap; } - .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction { - margin-left: 2px; - margin-right: 2px; - margin-bottom: 4px; } - .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction-add { - width: 36px; - height: 24px; } - .sendbird-emoji-reactions:focus { - outline: none; } - -.sendbird-tooltip { - position: relative; - display: inline-flex; - justify-content: center; - max-width: 200px; - border-radius: 8px; - padding: 8px 16px; - background-color: var(--sendbird-tooltip-background); } - .sendbird-tooltip::after { - content: ''; - position: absolute; - bottom: -4px; - width: 8px; - height: 8px; - transform: rotate(45deg); - background-color: var(--sendbird-tooltip-background); } - .sendbird-tooltip__text { - font-family: var(--sendbird-font-family-default); - font-size: 12px; - font-weight: bold; - font-stretch: normal; - font-style: normal; - line-height: 1.33; - letter-spacing: normal; - color: var(--sendbird-tooltip-text-color); } - -.sendbird-tooltip-wrapper { - position: relative; - display: inline-flex; } - .sendbird-tooltip-wrapper__hover-tooltip { - position: absolute; - display: inline-flex; - width: 200px; } - .sendbird-tooltip-wrapper__hover-tooltip__inner__tooltip-container { - position: relative; - display: inline-flex; } - -.sendbird-reaction-badge { - display: inline-block; - border-radius: 15px; - width: 50px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-badge { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-reaction-badge:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-badge:hover { - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-reaction-badge:hover { - border: solid 1px var(--sendbird-dark-primary-200); } - -.sendbird-reaction-badge--is-add { - display: inline-block; - border-radius: 15px; - width: 36px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge--is-add { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-badge--is-add { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-reaction-badge--is-add:hover { - cursor: pointer; - border: solid 1px var(--sendbird-add-reaction-button-border-hover); } - .sendbird-reaction-badge--is-add .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { - left: 8px; } - -.sendbird-reaction-badge--selected { - display: inline-block; - border-radius: 15px; - width: 50px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge--selected { - background-color: var(--sendbird-light-primary-100); - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-reaction-badge--selected { - background-color: var(--sendbird-dark-primary-400); - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-reaction-badge--selected:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-badge--selected:hover { - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-reaction-badge--selected:hover { - border: solid 1px var(--sendbird-dark-primary-200); } - -.sendbird-reaction-badge__inner { - position: relative; - display: flex; - height: 24px; - flex-direction: row; - align-items: center; - justify-content: center; - padding-left: 20px; - padding-right: 4px; } - .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { - position: absolute; - top: 2px; - left: 4px; } - .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__count { - margin-left: 4px; } - -.sendbird-thumbnail { - text-align: right; - position: relative; } - .sendbird-thumbnail .sendbird-thumbnail__body { - position: relative; - display: inline-block; } - .sendbird-thumbnail .sendbird-thumbnail__more { - display: none; - position: absolute; - top: 10px; } - .sendbird-thumbnail:hover .sendbird-thumbnail__more { - display: block; } - .sendbird-thumbnail .sendbird-thumbnail__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; - margin: 8px 0px; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-thumbnail .sendbird-thumbnail__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner { - cursor: pointer; } - .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0; - left: 0; - border-radius: 16px; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-thumbnail .sendbird-thumbnail__avatar { - position: absolute; - bottom: 30px; - left: 0px; } - .sendbird-thumbnail .sendbird-thumbnail__sender-name { - margin-left: 12px; } - .sendbird-thumbnail.sendbird-thumbnail--incoming { - text-align: left; - padding-left: 40px; - box-sizing: border-box; } - .sendbird-thumbnail .sendbird-thumbnail__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-thumbnail .sendbird-thumbnail__video, - .sendbird-thumbnail .sendbird-thumbnail__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - -.sendbird-outgoing-thumbnail-message { - position: relative; - text-align: right; - line-height: 0px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message--inner { - display: inline-flex; - flex-direction: row; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { - display: none; - position: absolute; - top: 4px; - right: 4px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__status { - position: absolute; - right: 4px; - bottom: 4px; } - .sendbird-outgoing-thumbnail-message:hover .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { - display: block; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body { - position: relative; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner { - cursor: pointer; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0; - left: 0; - border-radius: 16px; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video, - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - -.sendbird-incoming-thumbnail-message { - position: relative; - text-align: left; - padding-left: 40px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__sender-name { - position: relative; - box-sizing: border-box; - left: 12px; - height: 12px; - margin-bottom: 4px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__avatar { - position: absolute; - left: -40px; - bottom: 4px; - cursor: pointer; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message--inner { - display: flex; - flex-direction: row; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body { - position: relative; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner { - cursor: pointer; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0px; - left: 0px; - border-radius: 16px; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video, - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { - position: absolute; - left: 4px; - top: 4px; - display: none; } - .sendbird-incoming-thumbnail-message:hover .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { - display: block; } - -.sendbird-og-message { - position: relative; } - .sendbird-og-message--outgoing { - text-align: right; - line-height: 0px; } - .sendbird-og-message--incoming { - text-align: left; } - -.sendbird-outgoing-og-message { - position: relative; - right: 0px; - display: inline-block; - box-sizing: border-box; - text-align: right; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message__og-tag__url { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - display: inline-block; - width: 296px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-400); } - .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { - display: block; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { - display: none; - position: absolute; - top: 2px; - right: 4px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more[class*='--pressed'] { - display: block !important; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__message-status { - position: absolute; - right: 4px; - bottom: 4px; - text-align: right; } - .sendbird-outgoing-og-message__text-balloon { - box-sizing: border-box; - width: 320px; - padding: 8px 12px; - border-radius: 16px 16px 0px 0px; - word-break: break-all; - text-align: left; } - .sendbird-theme--light .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-outgoing-og-message__thumbnail--disabled:hover { - cursor: not-allowed !important; } - .sendbird-outgoing-og-message__thumbnail { - width: 320px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-outgoing-og-message__thumbnail { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__thumbnail { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__thumbnail__image__placeholder { - width: 320px; - height: 160px; - display: flex; - justify-content: center; - align-items: center; } - .sendbird-outgoing-og-message__thumbnail:hover { - cursor: pointer; } - .sendbird-outgoing-og-message__thumbnail:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag--disabled:hover { - cursor: not-allowed !important; } - .sendbird-outgoing-og-message__og-tag { - padding: 8px 12px 12px 12px; - border-radius: 0px 0px 16px 16px; - text-align: left; - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__og-tag__title { - max-height: 150px; - overflow-y: hidden; - margin-bottom: 4px; } - .sendbird-outgoing-og-message__og-tag__description { - margin-bottom: 8px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-outgoing-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions--wrapper:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions { - margin: 8px -12px -12px -12px; - width: 320px; } - .sendbird-theme--light .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__og-tag__emoji-reactions:hover { - cursor: default; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag:hover { - cursor: pointer; } - .sendbird-outgoing-og-message__og-tag:focus { - outline: none; } - -.sendbird-og-message-word { - display: inline; - margin: 0px 2px; } - -.sendbird-incoming-og-message { - position: relative; - left: 0px; - display: inline-block; - box-sizing: border-box; - text-align: left; - padding-left: 40px; } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-400); } - .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { - display: block; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body { - position: relative; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__avatar { - position: absolute; - bottom: 4px; - left: -40px; - cursor: pointer; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__sender-name { - margin-left: 12px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - box-sizing: border-box; - max-width: 320px; - padding: 8px 12px; - border-radius: 16px 16px 0px 0px; - word-break: break-all; - text-align: left; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail--disabled:hover { - cursor: not-allowed !important; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail .sendbird-incoming-og-message__thumbnail__image__placeholder { - width: 320px; - height: 160px; - display: flex; - justify-content: center; - align-items: center; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:hover { - cursor: pointer; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag--disabled:hover { - cursor: not-allowed !important; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - padding: 8px 12px 12px 12px; - border-radius: 0px 0px 16px 16px; - text-align: left; - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__title { - max-height: 150px; - overflow-y: hidden; - margin-bottom: 4px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__description { - margin-bottom: 8px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__url .sendbird-incoming-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - display: inline-block; - width: 296px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - margin: 8px -12px -12px -12px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:hover { - cursor: default; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__sent-at { - position: absolute; - bottom: 4px; - left: 4px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { - position: absolute; - top: 18px; - left: 4px; - display: none; } - -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap"); -:root { - --sendbird-light-primary-500: #4d2aa6; - --sendbird-light-primary-400: #6440C4; - --sendbird-light-primary-300: #7B53EF; - --sendbird-light-primary-200: #9E8CF5; - --sendbird-light-primary-100: #E2DFFF; - --sendbird-light-secondary-500: #007A7A; - --sendbird-light-secondary-400: #189A8D; - --sendbird-light-secondary-300: #2EBA9F; - --sendbird-light-secondary-200: #6FD6BE; - --sendbird-light-secondary-100: #AEF2DC; - --sendbird-light-information-100: #b2d9ff; - --sendbird-light-error-500: #A30E2D; - --sendbird-light-error-400: #C11F41; - --sendbird-light-error-300: #E53157; - --sendbird-light-error-200: #FF6183; - --sendbird-light-error-100: #FFABBD; - --sendbird-light-background-700: #000000; - --sendbird-light-background-600: #161616; - --sendbird-light-background-500: #2C2C2C; - --sendbird-light-background-400: #393939; - --sendbird-light-background-300: #A8A8A8; - --sendbird-light-background-200: #D9D9D9; - --sendbird-light-background-100: #F0F0F0; - --sendbird-light-background-50: #FFFFFF; - --sendbird-light-overlay: rgba(0, 0, 0, 0.32); - --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88); - --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50); - --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38); - --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12); - --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88); - --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50); - --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38); - --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12); - --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - --sendbird-light-theme-surface-2: #EAEAEA; } - -:root { - --sendbird-dark-primary-500: #4d2aa6; - --sendbird-dark-primary-400: #6440C4; - --sendbird-dark-primary-300: #7B53EF; - --sendbird-dark-primary-200: #9E8CF5; - --sendbird-dark-primary-100: #E2DFFF; - --sendbird-dark-secondary-500: #007A7A; - --sendbird-dark-secondary-400: #189A8D; - --sendbird-dark-secondary-300: #2EBA9F; - --sendbird-dark-secondary-200: #6FD6BE; - --sendbird-dark-secondary-100: #AEF2DC; - --sendbird-dark-information-100: #b2d9ff; - --sendbird-dark-error-500: #A30E2D; - --sendbird-dark-error-400: #C11F41; - --sendbird-dark-error-300: #E53157; - --sendbird-dark-error-200: #FF6183; - --sendbird-dark-error-100: #FFABBD; - --sendbird-dark-background-700: #000000; - --sendbird-dark-background-600: #161616; - --sendbird-dark-background-500: #2C2C2C; - --sendbird-dark-background-400: #393939; - --sendbird-dark-background-300: #A8A8A8; - --sendbird-dark-background-200: #D9D9D9; - --sendbird-dark-background-100: #F0F0F0; - --sendbird-dark-background-50: #FFFFFF; - --sendbird-dark-overlay: rgba(0, 0, 0, 0.32); - --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88); - --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50); - --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38); - --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12); - --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88); - --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50); - --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38); - --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12); - --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } - -:root { - --sendbird-iconbutton-color: #825eeb; - --sendbird-message-input-border-active: #7B53EF; - --sendbird-selected-reaction-button-border-hover: #9E8CF5; - --sendbird-add-reaction-button-border-hover: #9E8CF5; - --sendbird-tooltip-background: #000000; - --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88); - --sendbird-button-border-focus: #FFFFFF; - --sendbird-file-message-icon-background: #FFFFFF; - --sendbird-font-family-default: 'Open Sans', sans-serif; - --sendbird-message-balloon-width: 404px; } - -/*# sourceMappingURL=SendbirdProvider.css.map */ \ No newline at end of file diff --git a/dist/cjs/SendbirdProvider.css.map b/dist/cjs/SendbirdProvider.css.map deleted file mode 100644 index ead2079..0000000 --- a/dist/cjs/SendbirdProvider.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.scss","frozen-notification.scss","channel-profile.scss","openchannel-conversation-scroll.scss","notification.scss","muted-avatar-overlay.scss","user-list-item.scss","add-channel.scss","conversation-scroll.scss","members-accordion.scss","color.scss"],"names":[],"mappings":"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","file":"SendbirdProvider.css","sourcesContent":["@import url(\"https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap\");\n:root {\n --sendbird-light-primary-500: #4d2aa6;\n --sendbird-light-primary-400: #6440C4;\n --sendbird-light-primary-300: #7B53EF;\n --sendbird-light-primary-200: #9E8CF5;\n --sendbird-light-primary-100: #E2DFFF;\n --sendbird-light-secondary-500: #007A7A;\n --sendbird-light-secondary-400: #189A8D;\n --sendbird-light-secondary-300: #2EBA9F;\n --sendbird-light-secondary-200: #6FD6BE;\n --sendbird-light-secondary-100: #AEF2DC;\n --sendbird-light-information-100: #b2d9ff;\n --sendbird-light-error-500: #A30E2D;\n --sendbird-light-error-400: #C11F41;\n --sendbird-light-error-300: #E53157;\n --sendbird-light-error-200: #FF6183;\n --sendbird-light-error-100: #FFABBD;\n --sendbird-light-background-700: #000000;\n --sendbird-light-background-600: #161616;\n --sendbird-light-background-500: #2C2C2C;\n --sendbird-light-background-400: #393939;\n --sendbird-light-background-300: #A8A8A8;\n --sendbird-light-background-200: #D9D9D9;\n --sendbird-light-background-100: #F0F0F0;\n --sendbird-light-background-50: #FFFFFF;\n --sendbird-light-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-theme-surface-2: #EAEAEA; }\n\n:root {\n --sendbird-dark-primary-500: #4d2aa6;\n --sendbird-dark-primary-400: #6440C4;\n --sendbird-dark-primary-300: #7B53EF;\n --sendbird-dark-primary-200: #9E8CF5;\n --sendbird-dark-primary-100: #E2DFFF;\n --sendbird-dark-secondary-500: #007A7A;\n --sendbird-dark-secondary-400: #189A8D;\n --sendbird-dark-secondary-300: #2EBA9F;\n --sendbird-dark-secondary-200: #6FD6BE;\n --sendbird-dark-secondary-100: #AEF2DC;\n --sendbird-dark-information-100: #b2d9ff;\n --sendbird-dark-error-500: #A30E2D;\n --sendbird-dark-error-400: #C11F41;\n --sendbird-dark-error-300: #E53157;\n --sendbird-dark-error-200: #FF6183;\n --sendbird-dark-error-100: #FFABBD;\n --sendbird-dark-background-700: #000000;\n --sendbird-dark-background-600: #161616;\n --sendbird-dark-background-500: #2C2C2C;\n --sendbird-dark-background-400: #393939;\n --sendbird-dark-background-300: #A8A8A8;\n --sendbird-dark-background-200: #D9D9D9;\n --sendbird-dark-background-100: #F0F0F0;\n --sendbird-dark-background-50: #FFFFFF;\n --sendbird-dark-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }\n\n:root {\n --sendbird-iconbutton-color: #825eeb;\n --sendbird-message-input-border-active: #7B53EF;\n --sendbird-selected-reaction-button-border-hover: #9E8CF5;\n --sendbird-add-reaction-button-border-hover: #9E8CF5;\n --sendbird-tooltip-background: #000000;\n --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88);\n --sendbird-button-border-focus: #FFFFFF;\n --sendbird-file-message-icon-background: #FFFFFF;\n --sendbird-font-family-default: 'Open Sans', sans-serif;\n --sendbird-message-balloon-width: 404px; }\n",".sendbird-frozen-channel-notification {\n position: relative;\n margin-top: 8px;\n margin-right: 24px;\n margin-left: 24px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px; }\n .sendbird-theme--light .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-dark-information-100); }\n",".sendbird-channel-profile {\n position: relative;\n text-align: center;\n padding: 32px 40px 27px 40px; }\n .sendbird-theme--light .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-channel-profile .sendbird-channel-profile--inner {\n height: 92px; }\n .sendbird-channel-profile .sendbird-channel-profile__avatar {\n margin-bottom: 16px;\n text-align: center; }\n .sendbird-channel-profile .sendbird-channel-profile__title {\n max-width: 240px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 18px; }\n .sendbird-channel-profile .sendbird-channel-profile__edit {\n position: absolute;\n top: 10px;\n right: 16px; }\n\n.channel-profile-form .channel-profile-form__img-section {\n position: relative; }\n\n.channel-profile-form .channel-profile-form__avatar-button {\n position: absolute;\n top: 54px;\n left: 96px; }\n\n.channel-profile-form .channel-profile-form__avatar {\n margin-top: 16px; }\n\n.channel-profile-form .channel-profile-form__name-section {\n margin-top: 12px; }\n .channel-profile-form .channel-profile-form__name-section .sendbird-input {\n height: 40px; }\n",".sendbird-openchannel-conversation-scroll {\n position: relative;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container {\n position: absolute;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding {\n height: 8px; }\n",".sendbird-notification {\n margin-top: 8px;\n margin-left: 24px;\n margin-right: 24px;\n border-radius: 4px;\n padding: 0px 2px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center; }\n .sendbird-theme--light .sendbird-notification {\n background-color: var(--sendbird-light-primary-300); }\n .sendbird-theme--dark .sendbird-notification {\n background-color: var(--sendbird-dark-primary-200); }\n .sendbird-notification:hover {\n cursor: pointer; }\n .sendbird-theme--light .sendbird-notification:hover {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-notification:hover {\n background-color: var(--sendbird-dark-primary-300); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-dark-information-100); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-light-onlight-01); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-dark-onlight-01); }\n .sendbird-notification .sendbird-notification__text {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 8px; }\n",".sendbird-muted-avatar {\n border-radius: 50%;\n display: inline-block; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon {\n position: relative; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon {\n position: absolute;\n top: 4px;\n left: 4px; }\n .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n opacity: .5;\n position: absolute;\n border-radius: 50%;\n top: 0;\n left: 0; }\n .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-dark-primary-300); }\n",".sendbird-user-list-item--small {\n display: block;\n position: relative;\n box-sizing: border-box;\n height: 40px; }\n .sendbird-user-list-item--small__avatar {\n cursor: pointer;\n position: absolute;\n top: 10px;\n left: 12px; }\n .sendbird-user-list-item--small .sendbird-muted-avatar {\n position: absolute;\n top: 10px;\n left: 12px;\n z-index: 2;\n pointer-events: none; }\n .sendbird-user-list-item--small__title {\n position: absolute;\n top: 10px;\n left: 54px;\n width: 160px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__subtitle {\n position: absolute;\n top: 23px;\n left: 140px;\n max-width: 237px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__checkbox {\n position: absolute;\n top: 16px;\n right: 16px; }\n .sendbird-user-list-item--small__action {\n display: none;\n position: absolute;\n right: 10px;\n top: 4px; }\n .sendbird-user-list-item--small__operator {\n position: absolute;\n right: 24px;\n top: 10px; }\n .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-light-background-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-dark-background-500); }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action {\n display: block; }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator {\n display: none; }\n .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-light-primary-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-dark-background-700); }\n",".sendbird-add-channel__rectangle-wrap {\n margin-top: 26px; }\n\n.sendbird-add-channel__rectangle-footer {\n text-align: right;\n margin-top: 32px; }\n\n.sendbird-add-channel__rectangle {\n width: 432px;\n height: 72px;\n border-radius: 4px;\n margin-bottom: 8px;\n padding: 25px 72px;\n position: relative;\n box-sizing: border-box;\n cursor: pointer; }\n .sendbird-theme--light .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-light-onlight-04); }\n .sendbird-theme--dark .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-dark-ondark-04); }\n .sendbird-add-channel__rectangle .sendbird-icon {\n position: absolute;\n left: 22px;\n top: 24px; }\n",".sendbird-conversation__messages .sendbird-conversation__messages-padding {\n padding-left: 24px;\n padding-right: 24px; }\n\n.sendbird-conversation__messages .sendbird-separator,\n.sendbird-conversation__messages .sendbird-admin-message {\n padding-top: 8px;\n padding-bottom: 8px; }\n",".sendbird-members-accordion {\n padding: 8px 16px 16px 16px;\n position: relative;\n box-sizing: border-box; }\n .sendbird-theme--light .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-members-accordion .sendbird-members-accordion__member {\n position: relative;\n padding: 12px 0px 12px 44px;\n height: 40px;\n box-sizing: border-box; }\n .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label {\n max-width: 240px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-members-accordion .sendbird-members-accordion__member-avatar {\n position: absolute;\n left: 0;\n top: 10px;\n cursor: pointer; }\n .sendbird-members-accordion .sendbird-members-accordion__footer {\n display: flex;\n justify-content: flex-start;\n margin-top: 8px; }\n .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members {\n margin-right: 16px; }\n\n.sendbird-more-members__popup-scroll {\n max-height: 420px;\n overflow-y: auto; }\n",".sendbird-theme--light .sendbird-color--onbackground-1 {\n color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1 {\n color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2 {\n color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2 {\n color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3 {\n color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3 {\n color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4 {\n color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4 {\n color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1 {\n color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1 {\n color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--primary {\n color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary {\n color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--primary--background-color {\n background-color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary--background-color {\n background-color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--error {\n color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error {\n color: var(--sendbird-dark-error-300); }\n\n.sendbird-theme--light .sendbird-color--error--background-color {\n background-color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error--background-color {\n background-color: var(--sendbird-dark-error-300); }\n"]} \ No newline at end of file diff --git a/dist/cjs/index-6ca9e95e.js b/dist/cjs/index-21269166.js similarity index 98% rename from dist/cjs/index-6ca9e95e.js rename to dist/cjs/index-21269166.js index afc1966..d9d187d 100644 --- a/dist/cjs/index-6ca9e95e.js +++ b/dist/cjs/index-21269166.js @@ -6,7 +6,7 @@ var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); var React = require('react'); var React__default = _interopDefault(React); var PropTypes = _interopDefault(require('prop-types')); -var index = require('./index-710314fd.js'); +var index = require('./index-49d966e1.js'); var InputLabel = function InputLabel(_ref) { var children = _ref.children; @@ -256,4 +256,4 @@ exports.Input = Input; exports.InputLabel = InputLabel; exports.MutedAvatarOverlay = MutedAvatarOverlay; exports.UserListItem = UserListItem; -//# sourceMappingURL=index-6ca9e95e.js.map +//# sourceMappingURL=index-21269166.js.map diff --git a/dist/cjs/index-6ca9e95e.js.map b/dist/cjs/index-21269166.js.map similarity index 99% rename from dist/cjs/index-6ca9e95e.js.map rename to dist/cjs/index-21269166.js.map index 6b7181b..b36deae 100644 --- a/dist/cjs/index-6ca9e95e.js.map +++ b/dist/cjs/index-21269166.js.map @@ -1 +1 @@ -{"version":3,"file":"index-73379213.js","sources":["../../../src/ui/Input/index.jsx","../../../src/ui/Avatar/MutedAvatarOverlay.tsx","../../../src/ui/Checkbox/index.jsx","../../../src/ui/UserListItem/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nexport const InputLabel = ({ children }) => (\n \n {children}\n \n);\n\nInputLabel.propTypes = {\n children: PropTypes.string.isRequired,\n};\n\n// future: add validations? onChange? more props etc etc\nconst Input = React.forwardRef((props, ref) => {\n const {\n value,\n placeHolder,\n disabled,\n name,\n required,\n } = props;\n const [inputValue, setInputValue] = useState(value);\n return (\n
\n {\n setInputValue(e.target.value);\n }}\n />\n {(placeHolder && !inputValue) && (\n \n {placeHolder}\n \n )}\n
\n );\n});\n\nInput.propTypes = {\n value: PropTypes.string,\n placeHolder: PropTypes.string,\n name: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n};\n\nInput.defaultProps = {\n value: '',\n placeHolder: '',\n disabled: false,\n required: false,\n};\n\nexport default Input;\n","import './muted-avatar-overlay.scss';\n\nimport React, { ReactElement } from 'react'\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\ninterface Props {\n height?: number;\n width?: number;\n}\n\nexport default function MutedAvatarOverlay(props: Props): ReactElement {\n const { height = 24, width = 24 } = props;\n return (\n \n
\n \n \n
\n \n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nexport default function Checkbox({\n id,\n checked,\n onChange,\n}) {\n const [isChecked, setCheck] = useState(checked);\n return (\n \n );\n}\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nCheckbox.defaultProps = {\n id: 'sendbird-checkbox-input',\n checked: false,\n onChange: () => { },\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport MutedAvatarOverlay from '../Avatar/MutedAvatarOverlay';\nimport Checkbox from '../Checkbox';\nimport UserProfile from '../UserProfile';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item';\n\nexport default function UserListItem({\n user,\n className,\n checkBox,\n disableMessaging = false,\n currentUser,\n checked,\n onChange,\n action,\n}) {\n const injectingClassNames = Array.isArray(className) ? className : [className];\n const uniqueKey = user.userId;\n const actionRef = React.useRef(null);\n const parentRef = React.useRef(null);\n const avatarRef = React.useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width=\"40px\"\n height=\"40px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n ' (You)'\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n checkBox && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n onChange(event)}\n />\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n \n );\n}\n\nUserListItem.propTypes = {\n user: PropTypes.shape({\n userId: PropTypes.string,\n role: PropTypes.string,\n isMuted: PropTypes.bool,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n disableMessaging: PropTypes.bool,\n currentUser: PropTypes.string,\n action: PropTypes.element,\n checkBox: PropTypes.bool,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nUserListItem.defaultProps = {\n className: '',\n currentUser: '',\n checkBox: false,\n disableMessaging: false,\n checked: false,\n action: null,\n onChange: () => { },\n};\n"],"names":["InputLabel","children","React","Label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_1","propTypes","PropTypes","string","isRequired","Input","forwardRef","props","ref","value","placeHolder","disabled","name","required","useState","inputValue","setInputValue","e","target","BODY_1","ONBACKGROUND_3","bool","defaultProps","MutedAvatarOverlay","_a","height","_b","width","Icon","IconColors","WHITE","IconTypes","ICON_MUTED","Checkbox","id","checked","onChange","isChecked","setCheck","func","COMPONENT_NAME","UserListItem","user","className","checkBox","disableMessaging","currentUser","action","injectingClassNames","Array","isArray","uniqueKey","userId","actionRef","useRef","parentRef","avatarRef","useContext","UserProfileContext","disableUserProfile","renderUserProfile","LocalizationContext","stringSet","join","isMuted","ContextMenu","toggleDropdown","Avatar","profileUrl","closeDropdown","MenuItems","paddingTop","paddingBottom","currentUserId","close","UserProfile","SUBTITLE_1","nickname","NO_NAME","ONBACKGROUND_2","event","role","SUBTITLE_2","shape","oneOfType","arrayOf","element"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-aa89d60a.js","sources":["../../../src/ui/Input/index.jsx","../../../src/ui/Avatar/MutedAvatarOverlay.tsx","../../../src/ui/Checkbox/index.jsx","../../../src/ui/UserListItem/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nexport const InputLabel = ({ children }) => (\n \n {children}\n \n);\n\nInputLabel.propTypes = {\n children: PropTypes.string.isRequired,\n};\n\n// future: add validations? onChange? more props etc etc\nconst Input = React.forwardRef((props, ref) => {\n const {\n value,\n placeHolder,\n disabled,\n name,\n required,\n } = props;\n const [inputValue, setInputValue] = useState(value);\n return (\n
\n {\n setInputValue(e.target.value);\n }}\n />\n {(placeHolder && !inputValue) && (\n \n {placeHolder}\n \n )}\n
\n );\n});\n\nInput.propTypes = {\n value: PropTypes.string,\n placeHolder: PropTypes.string,\n name: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n};\n\nInput.defaultProps = {\n value: '',\n placeHolder: '',\n disabled: false,\n required: false,\n};\n\nexport default Input;\n","import './muted-avatar-overlay.scss';\n\nimport React, { ReactElement } from 'react'\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\ninterface Props {\n height?: number;\n width?: number;\n}\n\nexport default function MutedAvatarOverlay(props: Props): ReactElement {\n const { height = 24, width = 24 } = props;\n return (\n \n
\n \n \n
\n \n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nexport default function Checkbox({\n id,\n checked,\n onChange,\n}) {\n const [isChecked, setCheck] = useState(checked);\n return (\n \n );\n}\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nCheckbox.defaultProps = {\n id: 'sendbird-checkbox-input',\n checked: false,\n onChange: () => { },\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport MutedAvatarOverlay from '../Avatar/MutedAvatarOverlay';\nimport Checkbox from '../Checkbox';\nimport UserProfile from '../UserProfile';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item';\n\nexport default function UserListItem({\n user,\n className,\n checkBox,\n disableMessaging = false,\n currentUser,\n checked,\n onChange,\n action,\n}) {\n const injectingClassNames = Array.isArray(className) ? className : [className];\n const uniqueKey = user.userId;\n const actionRef = React.useRef(null);\n const parentRef = React.useRef(null);\n const avatarRef = React.useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width=\"40px\"\n height=\"40px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n ' (You)'\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n checkBox && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n onChange(event)}\n />\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n \n );\n}\n\nUserListItem.propTypes = {\n user: PropTypes.shape({\n userId: PropTypes.string,\n role: PropTypes.string,\n isMuted: PropTypes.bool,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n disableMessaging: PropTypes.bool,\n currentUser: PropTypes.string,\n action: PropTypes.element,\n checkBox: PropTypes.bool,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nUserListItem.defaultProps = {\n className: '',\n currentUser: '',\n checkBox: false,\n disableMessaging: false,\n checked: false,\n action: null,\n onChange: () => { },\n};\n"],"names":["InputLabel","children","React","Label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_1","propTypes","PropTypes","string","isRequired","Input","forwardRef","props","ref","value","placeHolder","disabled","name","required","useState","inputValue","setInputValue","e","target","BODY_1","ONBACKGROUND_3","bool","defaultProps","MutedAvatarOverlay","_a","height","_b","width","Icon","IconColors","WHITE","IconTypes","ICON_MUTED","Checkbox","id","checked","onChange","isChecked","setCheck","func","COMPONENT_NAME","UserListItem","user","className","checkBox","disableMessaging","currentUser","action","injectingClassNames","Array","isArray","uniqueKey","userId","actionRef","useRef","parentRef","avatarRef","useContext","UserProfileContext","disableUserProfile","renderUserProfile","LocalizationContext","stringSet","join","isMuted","ContextMenu","toggleDropdown","Avatar","profileUrl","closeDropdown","MenuItems","paddingTop","paddingBottom","currentUserId","close","UserProfile","SUBTITLE_1","nickname","NO_NAME","ONBACKGROUND_2","event","role","SUBTITLE_2","shape","oneOfType","arrayOf","element"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/index-710314fd.js b/dist/cjs/index-49d966e1.js similarity index 93% rename from dist/cjs/index-710314fd.js rename to dist/cjs/index-49d966e1.js index 77a90e0..6a93ba2 100644 --- a/dist/cjs/index-710314fd.js +++ b/dist/cjs/index-49d966e1.js @@ -2691,6 +2691,315 @@ var getUnFreezeChannel = function getUnFreezeChannel(store) { }); }; }; + +var getCreateOpenChannel = function getCreateOpenChannel(store) { + return function (params) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.createChannel(params).then(function (channel) { + resolve(channel); + }).catch(reject); + }); + }; +}; + +var enterOpenChannel = function enterOpenChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl, function (openChannel, error) { + if (error) { + reject(new Error(error)); + return; + } + + openChannel.enter(function (response, enterError) { + if (error) { + reject(new Error(enterError)); + return; + } + + resolve(response); + }); + }); + }); + }; +}; + +var exitOpenChannel = function exitOpenChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl, function (openChannel, error) { + if (error) { + reject(new Error(error)); + return; + } + + openChannel.exit(function (response, exitError) { + if (error) { + reject(new Error(exitError)); + return; + } + + resolve(response); + }); + }); + }); + }; +}; + +var getOpenChannelSendUserMessage = function getOpenChannelSendUserMessage(store) { + return function (channelUrl, userMessageParams) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + var promisify = function promisify() { + var pendingMsg = null; + var pendingPromise = new Promise(function (resolve_, reject_) { + pendingMsg = channel.sendUserMessage(userMessageParams, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject_(error); + return; + } + + resolve_(message); + pubsub.publish(SEND_USER_MESSAGE, { + message: message, + channel: channel + }); + }); + pubsub.publish(SEND_MESSAGE_START, { + message: pendingMsg, + channel: channel + }); + }); + + pendingPromise.get = function () { + return pendingMsg; + }; + + return pendingPromise; + }; + + resolve(promisify()); + }).catch(reject); + }); + }; +}; + +var getOpenChannelSendFileMessage = function getOpenChannelSendFileMessage(store) { + return function (channelUrl, fileMessageParams) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + var promisify = function promisify() { + var pendingMsg = null; + var pendingPromise = new Promise(function (resolve_, reject_) { + pendingMsg = channel.sendFileMessage(fileMessageParams, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject_(error); + return; + } + + resolve_(message); + pubsub.publish(SEND_FILE_MESSAGE, { + message: message, + channel: channel + }); + }); + }); + + if (fileMessageParams.file) { + // keep the file's local version in pendingMsg.localUrl + // because promise doesnt allow overriding of pendingMsg.url + // eslint-disable-next-line no-param-reassign + pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file); + } + + if (fileMessageParams.fileUrl) { + // eslint-disable-next-line no-param-reassign + pendingMsg.localUrl = fileMessageParams.fileUrl; + } // eslint-disable-next-line no-param-reassign + + + pendingMsg.requestState = 'pending'; + pubsub.publish(SEND_MESSAGE_START, { + message: pendingMsg, + channel: channel + }); + + pendingPromise.get = function () { + return pendingMsg; + }; + + return pendingPromise; + }; + + resolve(promisify()); + }).catch(reject); + }); + }; +}; + +var getOpenChannelUpdateUserMessage = function getOpenChannelUpdateUserMessage(store) { + return function (channelUrl, messageId, params) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + channel.updateUserMessage(messageId, params, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject(error); + return; + } + + resolve(message); + pubsub.publish(UPDATE_USER_MESSAGE, { + message: message, + channel: channel, + // workaround for updating channelPreview on message-edit + // https://sendbird.atlassian.net/browse/UIKIT-268 + fromSelector: true + }); + }); + }).catch(reject); + }); + }; +}; + +var getOpenChannelDeleteMessage = function getOpenChannelDeleteMessage(store) { + return function (channelUrl, message) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + var messageId = message.messageId; + channel.deleteMessage(message, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var error = err; + + if (swapParams) { + error = res; + } + + if (error) { + reject(error); + return; + } + + resolve(message); + pubsub.publish(DELETE_MESSAGE, { + messageId: messageId, + channel: channel + }); + }); + }).catch(reject); + }); + }; +}; + +var getOpenChannelResendUserMessage = function getOpenChannelResendUserMessage(store) { + return function (channelUrl, failedMessage) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + channel.resendUserMessage(failedMessage).then(function (message) { + resolve(message); + pubsub.publish(SEND_USER_MESSAGE, { + message: message, + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; + +var getOpenChannelResendFileMessage = function getOpenChannelResendFileMessage(store) { + return function (channelUrl, failedMessage) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + channel.resendFileMessage(failedMessage).then(function (message) { + resolve(message); + pubsub.publish(SEND_FILE_MESSAGE, { + message: message, + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; + var selectors = { getSdk: getSdk, getConnect: getConnect, @@ -2705,7 +3014,16 @@ var selectors = { getFreezeChannel: getFreezeChannel, getUnFreezeChannel: getUnFreezeChannel, getCreateChannel: getCreateChannel, - getLeaveChannel: getLeaveChannel + getLeaveChannel: getLeaveChannel, + getCreateOpenChannel: getCreateOpenChannel, + enterOpenChannel: enterOpenChannel, + exitOpenChannel: exitOpenChannel, + getOpenChannelSendUserMessage: getOpenChannelSendUserMessage, + getOpenChannelSendFileMessage: getOpenChannelSendFileMessage, + getOpenChannelUpdateUserMessage: getOpenChannelUpdateUserMessage, + getOpenChannelDeleteMessage: getOpenChannelDeleteMessage, + getOpenChannelResendUserMessage: getOpenChannelResendUserMessage, + getOpenChannelResendFileMessage: getOpenChannelResendFileMessage }; function UserProfile(_a) { @@ -3340,4 +3658,4 @@ exports.changeColorToClassName = changeColorToClassName$2; exports.changeColorToClassName$1 = changeColorToClassName$1; exports.getSdk = getSdk; exports.selectors = selectors; -//# sourceMappingURL=index-710314fd.js.map +//# sourceMappingURL=index-49d966e1.js.map diff --git a/dist/cjs/index-49d966e1.js.map b/dist/cjs/index-49d966e1.js.map new file mode 100644 index 0000000..be4ebe7 --- /dev/null +++ b/dist/cjs/index-49d966e1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-ec3bf9fe.js","sources":["../../../src/lib/UserProfileContext.jsx","../../../src/ui/ImageRenderer/index.jsx","../../../src/ui/Icon/type.js","../../../src/ui/Icon/index.jsx","../../../src/ui/Avatar/index.tsx","../../../src/ui/Label/types.js","../../../src/ui/Label/utils.js","../../../src/ui/Label/index.jsx","../../../src/ui/IconButton/index.jsx","../../../src/hooks/useModal/ModalRoot/index.jsx","../../../src/ui/Button/type.js","../../../src/ui/Button/utils.js","../../../src/ui/Button/index.jsx","../../../src/ui/Modal/index.jsx","../../../src/utils/color.js","../../../src/ui/TextButton/index.jsx","../../../src/ui/PlaceHolder/type.js","../../../src/lib/pubSub/topics.js","../../../src/lib/selectors.js","../../../src/ui/UserProfile/index.tsx","../../../src/ui/ContextMenu/items/MenuItems.jsx","../../../src/ui/SortByRow/index.jsx","../../../src/ui/ContextMenu/items/EmojiListItems.jsx","../../../src/ui/ContextMenu/index.jsx","../../../src/ui/Loader/index.jsx","../../../src/ui/PlaceHolder/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst UserProfileContext = React.createContext({\n disableUserProfile: true,\n isOpenChannel: false,\n renderUserProfile: null,\n});\n\nconst UserProfileProvider = (props) => {\n const { children, className } = props;\n return (\n \n
\n {children}\n
\n
\n );\n};\n\nUserProfileProvider.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n isOpenChannel: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n disableUserProfile: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n renderUserProfile: PropTypes.func,\n className: PropTypes.string,\n};\n\nUserProfileProvider.defaultProps = {\n className: null,\n isOpenChannel: false,\n disableUserProfile: false,\n renderUserProfile: null,\n};\n\nexport { UserProfileContext, UserProfileProvider };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\n/*\n ImageRenderer displays image with url or source\n it checks if the source exist with img tag first\n if it exists onLoad is called, if not onError is called\n and those properties switch img tag to real purposing element\n*/\n\nexport default function ImageRenderer({\n alt,\n url,\n width,\n height,\n className,\n defaultComponent,\n circle,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-image-renderer');\n const [realElement, setRealElement] = useState(null);\n useEffect(() => {\n setRealElement(null);\n }, [url]);\n return (\n realElement || (\n {\n setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent);\n }}\n onLoad={() => {\n setRealElement((\n \n ));\n }}\n />\n )\n );\n}\n\nImageRenderer.propTypes = {\n alt: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n defaultComponent: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n circle: PropTypes.bool,\n};\nImageRenderer.defaultProps = {\n alt: '',\n className: '',\n circle: false,\n defaultComponent: null,\n width: null,\n height: null,\n};\n","export default {\n ADD: 'ADD',\n ATTACH: 'ATTACH',\n ARROW_LEFT: 'ARROW_LEFT',\n AVATAR_DARK: 'AVATAR_DARK',\n AVATAR_LIGHT: 'AVATAR_LIGHT',\n AVATAR_NO_IMAGE: 'AVATAR_NO_IMAGE',\n BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK',\n BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT',\n BROADCAST_DARK: 'BROADCAST_DARK',\n BROADCAST_LIGHT: 'BROADCAST_LIGHT',\n BROADCAST: 'BROADCAST',\n FROZEN_DARK: 'FROZEN_DARK',\n FROZEN_LIGHT: 'FROZEN_LIGHT',\n CAMERA: 'CAMERA',\n MORE: 'MORE',\n MUTE: 'MUTE',\n NO_THUMBNAIL: 'NO_THUMBNAIL',\n CHECKBOX: 'CHECKBOX',\n CHECKBOX_OFF: 'CHECKBOX_OFF',\n CLOSE: 'CLOSE',\n COPY: 'COPY',\n CHAT: 'CHAT',\n CREATE: 'CREATE',\n DELETE: 'DELETE',\n DISCONNECTED: 'DISCONNECTED',\n DUMMY: 'DUMMY',\n EDIT: 'EDIT',\n ERROR: 'ERROR',\n ERROR_FILLED: 'ERROR_FILLED',\n EMOJI_FAILED: 'EMOJI_FAILED',\n EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD',\n EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY',\n DELIVERED: 'DELIVERED',\n DOCUMENT: 'DOCUMENT',\n DOWNLOAD: 'DOWNLOAD',\n FILE_AUDIO: 'FILE_AUDIO',\n FILE_DOCUMENT: 'FILE_DOCUMENT',\n GIF: 'GIF',\n INFO: 'INFO',\n LEAVE: 'LEAVE',\n MEMBERS: 'MEMBERS',\n NOTIFICATIONS: 'NOTIFICATIONS',\n PHOTO: 'PHOTO',\n PLAY: 'PLAY',\n PLUS: 'PLUS',\n READ: 'READ',\n REFRESH: 'REFRESH',\n SEND: 'SEND',\n SENT: 'SENT',\n SUPER_GROUP: 'SUPER_GROUP',\n SHEVRON: 'SHEVRON',\n SHEVRON_DOWN: 'SHEVRON_DOWN',\n SPINNER: 'SPINNER',\n SPINNER_LARGE: 'SPINNER_LARGE',\n USER: 'USER',\n ICON_OPERATOR: 'ICON_OPERATOR',\n ICON_BANNED: 'ICON_BANNED',\n ICON_FREEZE: 'ICON_FREEZE',\n ICON_MUTED: 'ICON_MUTED',\n ICON_MUTED_FG: 'ICON_MUTED_FG',\n TOGGLE_ON: 'TOGGLE_ON',\n TOGGLE_OFF: 'TOGGLE_OFF',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Type from './type';\n\nimport IconAdd from '../../svgs/icon-add.svg';\nimport IconAttach from '../../svgs/icon-attach.svg';\nimport IconArrowLeft from '../../svgs/icon-arrow-left.svg';\nimport IconAvatarDark from '../../svgs/icon-avatar-dark.svg';\nimport IconAvatarLight from '../../svgs/icon-avatar-light.svg';\nimport IconAvatarNoImage from '../../svgs/avatar-no-image-light.svg';\nimport BroadcastLargeDark from '../../svgs/icon-broadcast-lrg-dark.svg';\nimport BroadcastLargeLight from '../../svgs/icon-broadcast-lrg-light.svg';\nimport BroadcastDark from '../../svgs/icon-broadcast-dark.svg';\nimport BroadcastLight from '../../svgs/icon-broadcast-light.svg';\nimport Broadcast from '../../svgs/icon-broadcast.svg';\nimport FrozenDark from '../../svgs/frozen-dark.svg';\nimport FrozenLight from '../../svgs/frozen-light.svg';\nimport IconCamera from '../../svgs/icon-camera.svg';\nimport IconMore from '../../svgs/icon-more.svg';\nimport IconMute from '../../svgs/icon-mute.svg';\nimport IconNoThumbnail from '../../svgs/icon-no-thumbnail.svg';\nimport IconCheckbox from '../../svgs/icon-checkbox.svg';\nimport IconCheckboxOff from '../../svgs/icon-checkbox-off.svg';\nimport IconClose from '../../svgs/icon-close.svg';\nimport IconCopy from '../../svgs/icon-copy.svg';\nimport IconChat from '../../svgs/icon-chat.svg';\nimport IconSupergroup from '../../svgs/icon-supergroup.svg';\nimport IconCreate from '../../svgs/icon-create.svg';\nimport IconDelete from '../../svgs/icon-delete.svg';\nimport IconDummy from '../../svgs/icon-dummy.svg';\nimport IconEdit from '../../svgs/icon-edit.svg';\nimport IconError from '../../svgs/icon-error.svg';\nimport IconErrorFilled from '../../svgs/icon-error-filled.svg';\nimport IconEmojiFailed from '../../svgs/emoji-fail.svg';\nimport IconEmojiReactionsAdd from '../../svgs/icon-reactions-add.svg';\nimport IconEmojiReactionsAddGray from '../../svgs/icon-emoji-reactions-add.svg';\nimport IconDelivered from '../../svgs/icon-delivered.svg';\nimport IconDisconnected from '../../svgs/icon-disconnected.svg';\nimport IconDocument from '../../svgs/icon-document.svg';\nimport IconDownload from '../../svgs/icon-download.svg';\nimport IconFileAudio from '../../svgs/icon-file-audio.svg';\nimport IconFileDocument from '../../svgs/icon-file-document.svg';\nimport IconGif from '../../svgs/icon-gif.svg';\nimport IconInfo from '../../svgs/icon-info.svg';\nimport IconLeave from '../../svgs/icon-leave.svg';\nimport IconMembers from '../../svgs/icon-members.svg';\nimport IconNotifications from '../../svgs/icon-notifications.svg';\nimport IconPhoto from '../../svgs/icon-photo.svg';\nimport IconPlay from '../../svgs/icon-play.svg';\nimport IconPlus from '../../svgs/icon-plus.svg';\nimport IconRead from '../../svgs/icon-read.svg';\nimport IconRefresh from '../../svgs/icon-refresh.svg';\nimport IconSend from '../../svgs/icon-send.svg';\nimport IconSent from '../../svgs/icon-sent.svg';\nimport IconShevron from '../../svgs/icon-shevron.svg';\nimport IconShevronDown from '../../svgs/icon-shevron-down.svg';\nimport IconSpinner from '../../svgs/icon-spinner-small.svg';\nimport IconSpinnerLarge from '../../svgs/icon-spinner-large.svg';\nimport IconUser from '../../svgs/icon-user.svg';\nimport IconOperator from '../../svgs/icon-operator.svg';\nimport IconBanned from '../../svgs/icon-banned.svg';\nimport IconMuted from '../../svgs/icon-muted.svg';\nimport IconMutedFg from '../../svgs/icon-muted-foreground.svg';\nimport IconFreeze from '../../svgs/icon-freeze.svg';\nimport ToggleOn from '../../svgs/icon-toggleon.svg';\nimport ToggleOff from '../../svgs/icon-toggleoff.svg';\n\nconst Colors = {\n DEFAULT: 'DEFAULT',\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n CONTENT: 'CONTENT',\n CONTENT_INVERSE: 'CONTENT_INVERSE',\n WHITE: 'WHITE',\n SENT: 'SENT',\n READ: 'READ',\n ON_BACKGROUND_2: 'ON_BACKGROUND_2',\n ON_BACKGROUND_3: 'ON_BACKGROUND_3',\n BACKGROUND_3: 'BACKGROUND_3',\n};\n\nfunction changeColorToClassName(color) {\n switch (color) {\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.SECONDARY: return 'sendbird-color--secondary';\n case Colors.CONTENT: return 'sendbird-color--content';\n case Colors.CONTENT_INVERSE: return 'sendbird-color--content-inverse';\n case Colors.WHITE: return 'sendbird-color--white';\n case Colors.SENT: return 'sendbird-color--sent';\n case Colors.READ: return 'sendbird-color--read';\n case Colors.ON_BACKGROUND_2: return 'sendbird-color--on-background-2';\n case Colors.ON_BACKGROUND_3: return 'sendbird-color--on-background-3';\n case Colors.BACKGROUND_3: return 'sendbird-color--background-3';\n default: return '';\n }\n}\n\nfunction changeTypeToIconComponent(type) {\n switch (type) {\n case Type.ADD: return ;\n case Type.ARROW_LEFT: return ;\n case Type.CAMERA: return ;\n case Type.ATTACH: return ;\n case Type.AVATAR_DARK: return ;\n case Type.AVATAR_LIGHT: return ;\n case Type.AVATAR_NO_IMAGE: return ;\n case Type.BROADCAST_LARGE_DARK: return ;\n case Type.BROADCAST_LARGE_LIGHT: return ;\n case Type.BROADCAST_DARK: return ;\n case Type.BROADCAST_LIGHT: return ;\n case Type.BROADCAST: return ;\n case Type.FROZEN_DARK: return ;\n case Type.FROZEN_LIGHT: return ;\n case Type.MORE: return ;\n case Type.MUTE: return ;\n case Type.NO_THUMBNAIL: return ;\n case Type.CHECKBOX: return ;\n case Type.CHECKBOX_OFF: return ;\n case Type.CLOSE: return ;\n case Type.COPY: return ;\n case Type.CHAT: return ;\n case Type.SUPER_GROUP: return ;\n case Type.CREATE: return ;\n case Type.DELETE: return ;\n case Type.DISCONNECTED: return ;\n case Type.DUMMY: return ;\n case Type.EDIT: return ;\n case Type.ERROR: return ;\n case Type.ERROR_FILLED: return ;\n case Type.EMOJI_FAILED: return ;\n case Type.EMOJI_REACTIONS_ADD: return ;\n case Type.EMOJI_REACTIONS_ADD_GRAY: return ;\n case Type.DELIVERED: return ;\n case Type.DOCUMENT: return ;\n case Type.DOWNLOAD: return ;\n case Type.FILE_AUDIO: return ;\n case Type.FILE_DOCUMENT: return ;\n case Type.GIF: return ;\n case Type.INFO: return ;\n case Type.LEAVE: return ;\n case Type.MEMBERS: return ;\n case Type.NOTIFICATIONS: return ;\n case Type.PHOTO: return ;\n case Type.PLAY: return ;\n case Type.PLUS: return ;\n case Type.READ: return ;\n case Type.REFRESH: return ;\n case Type.SEND: return ;\n case Type.SENT: return ;\n case Type.SHEVRON: return ;\n case Type.SHEVRON_DOWN: return ;\n case Type.SPINNER: return ;\n case Type.SPINNER_LARGE: return ;\n case Type.USER: return ;\n case Type.ICON_OPERATOR: return ;\n case Type.ICON_BANNED: return ;\n case Type.ICON_MUTED: return ;\n case Type.ICON_MUTED_FG: return ;\n case Type.ICON_FREEZE: return ;\n case Type.TOGGLE_ON: return ;\n case Type.TOGGLE_OFF: return ;\n default: return null;\n }\n}\n\nexport default function Icon({\n type,\n width,\n height,\n children,\n className,\n onClick,\n fillColor,\n}) {\n const iconStyle = {\n width: typeof width === 'string' ? width : `${width}px`,\n minWidth: typeof width === 'string' ? width : `${width}px`,\n height: typeof height === 'string' ? height : `${height}px`,\n minHeight: typeof height === 'string' ? height : `${height}px`,\n };\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {\n children || changeTypeToIconComponent(type)\n }\n \n );\n}\n\nIcon.propTypes = {\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(Type)),\n PropTypes.string,\n ]).isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n onClick: PropTypes.func,\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n fillColor: PropTypes.oneOf(Object.keys(Colors)),\n};\n\nIcon.defaultProps = {\n onClick: () => { },\n width: 26,\n height: 26,\n children: null,\n className: '',\n fillColor: Colors.DEFAULT,\n};\n\nexport const IconTypes = Type;\nexport const IconColors = Colors;\n","import React, { ReactElement } from 'react';\n\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes } from '../Icon';\n\nimport './index.scss';\nimport { uuidv4 } from '../../utils/uuid';\n\nconst imageRendererClassName = 'sendbird-avatar-img';\n\ninterface DefaultComponentProps {\n width: string | number,\n height: string | number,\n}\n\nconst defaultComponent = (\n {\n width,\n height,\n }: DefaultComponentProps\n) => (): ReactElement => (\n document.querySelector('.sendbird-theme--dark')\n ? \n : \n);\n\ninterface AvatarInnerProps {\n height: string | number,\n width: string | number,\n src?: string | string[],\n alt?: string,\n}\n\nexport const AvatarInner = ({\n src = '',\n alt = '',\n height,\n width,\n}: AvatarInnerProps): ReactElement => {\n if (typeof src === 'string') {\n return (\n \n );\n }\n\n if (src && src.length) {\n if (src.length === 1) {\n return (\n \n );\n }\n\n if (src.length === 2) {\n return (\n
\n \n \n
\n );\n }\n\n if (src.length === 3) {\n return (\n <>\n
\n \n
\n
\n \n \n
\n \n );\n }\n\n return (\n
\n {\n src.slice(0, 4)\n .map((i) => (\n \n ))\n }\n
\n );\n }\n // default img\n return (\n \n );\n};\n\ninterface AvatarProps {\n height?: string | number,\n width?: string | number,\n src?: string | string[],\n alt?: string,\n onClick?(): void,\n className?: string | string[],\n}\n\nfunction Avatar(\n {\n src = '',\n alt = '',\n width = '56px',\n height = '56px',\n onClick,\n className = '',\n }: AvatarProps,\n ref: React.Ref,\n): ReactElement {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n \n \n );\n}\n\nexport default React.forwardRef(Avatar);\n","export const Typography = {\n H_1: 'H_1',\n H_2: 'H_2',\n SUBTITLE_1: 'SUBTITLE_1',\n SUBTITLE_2: 'SUBTITLE_2',\n BODY_1: 'BODY_1',\n BODY_2: 'BODY_2',\n BUTTON_1: 'BUTTON_1',\n BUTTON_2: 'BUTTON_2',\n CAPTION_1: 'CAPTION_1',\n CAPTION_2: 'CAPTION_2',\n CAPTION_3: 'CAPTION_3',\n};\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONCONTENT_1: 'ONCONTENT_1',\n ONCONTENT_2: 'ONCONTENT_2',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n SECONDARY_3: 'SECONDARY_3',\n};\n","import { Typography, Colors } from './types';\n\nexport function changeTypographyToClassName(type) {\n switch (type) {\n case Typography.H_1: return 'sendbird-label--h-1';\n case Typography.H_2: return 'sendbird-label--h-2';\n case Typography.SUBTITLE_1: return 'sendbird-label--subtitle-1';\n case Typography.SUBTITLE_2: return 'sendbird-label--subtitle-2';\n case Typography.BODY_1: return 'sendbird-label--body-1';\n case Typography.BODY_2: return 'sendbird-label--body-2';\n case Typography.BUTTON_1: return 'sendbird-label--button-1';\n case Typography.BUTTON_2: return 'sendbird-label--button-2';\n case Typography.CAPTION_1: return 'sendbird-label--caption-1';\n case Typography.CAPTION_2: return 'sendbird-label--caption-2';\n case Typography.CAPTION_3: return 'sendbird-label--caption-3';\n default: return null;\n }\n}\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-label--color-onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-label--color-onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-label--color-onbackground-3';\n case Colors.ONCONTENT_1: return 'sendbird-label--color-oncontent-1';\n case Colors.ONCONTENT_2: return 'sendbird-label--color-oncontent-2';\n case Colors.PRIMARY: return 'sendbird-label--color-primary'; // should be Primary-3 fix me\n case Colors.ERROR: return 'sendbird-label--color-error';\n case Colors.SECONDARY_3: return 'sendbird-label--color-secondary-3';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { Typography, Colors } from './types';\nimport { changeTypographyToClassName, changeColorToClassName } from './utils';\nimport getStringSet from './stringSet';\n\nconst CLASS_NAME = 'sendbird-label';\n\nexport default function Label({\n type,\n color,\n children,\n className,\n}) {\n const injectingClassName = (Array.isArray(className))\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n if (type) {\n injectingClassName.push(changeTypographyToClassName(type));\n }\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n\n return (\n \n {children}\n \n );\n}\n\nLabel.propTypes = {\n type: PropTypes.oneOf([...Object.keys(Typography), '']),\n color: PropTypes.oneOf([...Object.keys(Colors), '']),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.element,\n PropTypes.any,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nLabel.defaultProps = {\n type: '',\n color: '',\n className: [],\n children: null,\n};\n\nconst LabelTypography = Typography;\nconst LabelColors = Colors;\nconst LabelStringSet = getStringSet('en');\nexport { LabelTypography, LabelColors, LabelStringSet };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-iconbutton';\n\nconst IconButton = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n disabled = false,\n type,\n height,\n width,\n onClick,\n onBlur,\n style,\n } = props;\n\n const [pressed, setPressed] = useState('');\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n // eslint-disable-next-line react/button-has-type\n {\n if (disabled) { return; }\n setPressed('sendbird-iconbutton--pressed');\n onClick(e);\n }}\n onBlur={(e) => {\n setPressed('');\n onBlur(e);\n }}\n >\n \n {children}\n \n \n );\n});\n\nIconButton.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nIconButton.defaultProps = {\n height: '56px',\n width: '56px',\n className: '',\n type: 'button',\n disabled: false,\n onClick: () => { },\n onBlur: () => { },\n style: {},\n};\n\nexport default IconButton;\n","// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n
\n);\n","export const Type = {\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n DANGER: 'DANGER',\n DISABLED: 'DISABLED',\n};\n\nexport const Size = {\n BIG: 'BIG',\n SMALL: 'SMALL',\n};\n","import { Type, Size } from './type';\n\nexport function changeTypeToClassName(type) {\n switch (type) {\n case Type.PRIMARY: return 'sendbird-button--primary';\n case Type.SECONDARY: return 'sendbird-button--secondary';\n case Type.DANGER: return 'sendbird-button--danger';\n case Type.DISABLED: return 'sendbird-button--disabled';\n default: return null;\n }\n}\n\nexport function changeSizeToClassName(size) {\n switch (size) {\n case Size.BIG: return 'sendbird-button--big';\n case Size.SMALL: return 'sendbird-button--small';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { Type, Size } from './type';\nimport { changeTypeToClassName, changeSizeToClassName } from './utils';\n\nexport default function Button({\n type,\n size,\n children,\n disabled,\n onClick,\n className,\n}) {\n const injectingClassNames = [\n 'sendbird-button',\n (disabled ? 'sendbird-button__disabled' : ''),\n changeTypeToClassName(type),\n changeSizeToClassName(size),\n ...((Array.isArray(className)) ? className : [className]),\n ].join(' ');\n\n return (\n \n );\n}\n\nButton.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n disabled: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(Type)),\n size: PropTypes.oneOf(Object.keys(Size)),\n onClick: PropTypes.func,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nButton.defaultProps = {\n children: 'Button',\n type: Type.PRIMARY,\n disabled: false,\n size: Size.BIG,\n onClick: () => { },\n className: '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport const ModalHeader = ({ titleText }) => (\n
\n \n
\n);\nModalHeader.propTypes = {\n titleText: PropTypes.string.isRequired,\n};\n\nexport const ModalBody = ({ children }) => (\n
{children}
\n);\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element.isRequired,\n PropTypes.arrayOf(PropTypes.element.isRequired),\n ]),\n};\nModalBody.defaultProps = {\n children: null,\n};\n\nexport const ModalFooter = ({\n onSubmit,\n onCancel,\n disabled = false,\n submitText,\n type,\n}) => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n \n
\n );\n};\n\nModalFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModalFooter.defaultProps = {\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nfunction Modal(props) {\n const {\n children,\n onCancel,\n onSubmit,\n disabled,\n submitText,\n titleText,\n hideFooter,\n type,\n } = props;\n return createPortal((\n
\n
\n \n {children}\n {\n !hideFooter && (\n \n )\n }\n
\n \n \n \n
\n
\n
\n
\n ), document.getElementById(MODAL_ROOT));\n}\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n hideFooter: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModal.defaultProps = {\n children: null,\n hideFooter: false,\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nexport default Modal;\n","import './color.scss';\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONBACKGROUND_4: 'ONBACKGROUND_4',\n ONCONTENT_1: 'ONCONTENT_1',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-color--onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-color--onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-color--onbackground-3';\n case Colors.ONBACKGROUND_4: return 'sendbird-color--onbackground-4';\n case Colors.ONCONTENT_1: return 'sendbird-color--oncontent-1';\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.ERROR: return 'sendbird-color--error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\n\nexport default function TextButton({\n color,\n children,\n disabled,\n className,\n onClick,\n notUnderline,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nTextButton.propTypes = {\n color: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClick: PropTypes.func,\n notUnderline: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nTextButton.defaultProps = {\n color: Colors.ONBACKGROUND_1,\n className: '',\n onClick: () => { },\n notUnderline: false,\n disabled: false,\n};\n","export function Types() {\n return {\n LOADING: 'LOADING',\n NO_CHANNELS: 'NO_CHANNELS',\n WRONG: 'WRONG',\n };\n}\n\nexport default Types();\n","export const USER_UPDATED = 'USER_UPDATED';\nexport const SEND_MESSAGE_START = 'SEND_MESSAGE_START';\nexport const SEND_USER_MESSAGE = 'SEND_USER_MESSAGE';\nexport const SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE';\nexport const UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE';\nexport const DELETE_MESSAGE = 'DELETE_MESSAGE';\nexport const LEAVE_CHANNEL = 'LEAVE_CHANNEL';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\n","import * as topics from './pubSub/topics';\n\nexport const getSdk = (store) => {\n const { stores = {} } = store;\n const { sdkStore = {} } = stores;\n const { sdk } = sdkStore;\n return sdk;\n};\n\nexport const getPubSub = (store) => {\n const { config = {} } = store;\n const { pubSub } = config;\n return pubSub;\n};\n\n// SendBird disconnect. Invalidates currentUser\n// eslint-disable-next-line max-len\nexport const getConnect = (store) => (userId, accessToken) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n if (!accessToken) {\n sdk.connect(userId)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n } else {\n sdk.connect(userId, accessToken)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n }\n});\n\n// SendBird disconnect. Invalidates currentUser\nexport const getDisconnect = (store) => () => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.disconnect()\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\n// Using the updateCurrentUserInfo() method\n// you can update a user's nickname and profile image with a URL\n// eslint-disable-next-line max-len\nexport const getUpdateUserInfo = (store) => (nickName, profileUrl) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.updateCurrentUserInfo(nickName, profileUrl)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\nexport const getSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\nexport const getDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nexport const getResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getCreateChannel = (store) => (params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n pubsub.publish(\n topics.CREATE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n });\n};\n\nexport const getLeaveChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.leave()\n .then(() => {\n resolve(channel);\n pubsub.publish(\n topics.LEAVE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.freeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getUnFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.unfreeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nconst getCreateOpenChannel = (store) => (params) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n })\n .catch(reject);\n });\n};\nconst enterOpenChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (error) {\n reject(new Error(error));\n return;\n }\n\n openChannel.enter((response, enterError) => {\n if (error) {\n reject(new Error(enterError));\n return;\n }\n resolve(response);\n });\n });\n });\n};\n\nconst exitOpenChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (error) {\n reject(new Error(error));\n return;\n }\n\n openChannel.exit((response, exitError) => {\n if (error) {\n reject(new Error(exitError));\n return;\n }\n resolve(response);\n });\n });\n });\n};\n\nconst getOpenChannelSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport default {\n getSdk,\n getConnect,\n getDisconnect,\n getUpdateUserInfo,\n getSendUserMessage,\n getSendFileMessage,\n getUpdateUserMessage,\n getDeleteMessage,\n getResendUserMessage,\n getResendFileMessage,\n getFreezeChannel,\n getUnFreezeChannel,\n getCreateChannel,\n getLeaveChannel,\n getCreateOpenChannel,\n enterOpenChannel,\n exitOpenChannel,\n getOpenChannelSendUserMessage,\n getOpenChannelSendFileMessage,\n getOpenChannelUpdateUserMessage,\n getOpenChannelDeleteMessage,\n getOpenChannelResendUserMessage,\n getOpenChannelResendFileMessage,\n};\n","import React, { ReactElement, useContext } from 'react';\nimport { SendbirdTypes } from '../../types';\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { getSdk, getCreateChannel } from '../../lib/selectors';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\n\ninterface Logger {\n info?(message: string, channel: SendbirdTypes['GroupChannel']): void;\n}\n\ninterface Props {\n user: SendbirdTypes['User'];\n currentUserId?: string;\n sdk?: SendbirdTypes['SendBirdInstance'];\n logger?: Logger;\n disableMessaging?: boolean;\n createChannel?(params: SendbirdTypes['GroupChannelParams']): Promise;\n onSuccess?(): void;\n}\n\nfunction UserProfile({\n user,\n currentUserId,\n sdk,\n logger,\n disableMessaging = false,\n createChannel,\n onSuccess,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n
\n
\n \n
\n {\n (user.userId !== currentUserId) && !disableMessaging && (\n
\n {\n const params = new sdk.GroupChannelParams();\n params.isDistinct = true;\n params.addUserIds([user.userId]);\n onSuccess();\n createChannel(params)\n .then((groupChannel) => {\n logger.info('UserProfile, channel create', groupChannel);\n });\n }}\n >\n {stringSet.USER_PROFILE__MESSAGE}\n \n
\n )\n }\n
\n
\n \n {stringSet.USER_PROFILE__USER_ID}\n \n \n {user.userId}\n \n
\n
\n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n createChannel: getCreateChannel(store),\n logger: store.config.logger,\n pubsub: store.config.pubSub,\n});\n\nconst ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps);\n\nexport default ConnectedUserProfile;\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class MenuItems extends Component {\n constructor(props) {\n super(props);\n this.menuRef = React.createRef();\n this.state = {\n menuStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getMenuPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-icon--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-icon--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { menuRef } = this;\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getMenuPosition = () => {\n const { parentRef, openLeft } = this.props;\n const parentRect = parentRef.current.getBoundingClientRect();\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n const menuStyle = {\n top: y,\n left: x,\n };\n\n if (!this.menuRef.current) return menuStyle;\n\n const { innerWidth, innerHeight } = window;\n const rect = this.menuRef.current.getBoundingClientRect();\n if (y + rect.height > innerHeight) {\n menuStyle.top -= rect.height;\n }\n\n if (x + rect.width > innerWidth && !openLeft) {\n menuStyle.left -= rect.width;\n }\n\n if (menuStyle.top < 0) {\n menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;\n }\n\n if (menuStyle.left < 0) {\n menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;\n }\n\n menuStyle.top += 32;\n if (openLeft) {\n const padding = Number.isNaN(rect.width - 30)\n ? 108 // default\n : rect.width - 30;\n menuStyle.left -= padding;\n }\n\n return this.setState({ menuStyle });\n }\n\n render() {\n const { menuStyle } = this.state;\n const { children, style } = this.props;\n return (\n createPortal(\n (\n <>\n
\n \n {children}\n \n \n ),\n document.getElementById('sendbird-dropdown-portal'),\n )\n );\n }\n}\nMenuItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n style: PropTypes.shape({}),\n // https://stackoverflow.com/a/51127130\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n openLeft: PropTypes.bool,\n};\nMenuItems.defaultProps = {\n style: {},\n openLeft: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst componentClassName = 'sendbird-sort-by-row';\nexport default function SortByRow({\n className,\n maxItemCount,\n itemWidth,\n itemHeight,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(componentClassName);\n\n if (children.length > maxItemCount) {\n const result = [];\n for (let i = 0; i < children.length; i += maxItemCount) {\n result.push(\n \n {\n children.slice(i, i + maxItemCount)\n }\n
,\n );\n }\n\n return result;\n }\n return (\n \n {children}\n
\n );\n}\n\nSortByRow.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n maxItemCount: PropTypes.number.isRequired,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]).isRequired,\n};\n\nSortByRow.defaultProps = {\n className: '',\n};\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport SortByRow from '../../SortByRow';\n\nexport default class EmojiListItems extends Component {\n constructor(props) {\n super(props);\n this.reactionRef = React.createRef();\n this.state = {\n reactionStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getBarPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-reactions--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-reactions--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { reactionRef } = this;\n const handleClickOutside = (event) => {\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getBarPosition = () => {\n const {\n parentRef,\n spaceFromTrigger,\n } = this.props;\n const spaceFromTriggerX = spaceFromTrigger.x || 0;\n const spaceFromTriggerY = spaceFromTrigger.y || 0;\n\n const parentRect = parentRef.current.getBoundingClientRect();\n\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n\n const reactionStyle = {\n top: y,\n left: x,\n };\n\n if (!this.reactionRef.current) return reactionStyle;\n const rect = this.reactionRef.current.getBoundingClientRect();\n // const childRect = this.reactionRef.current.children[0].getBoundingClientRect();\n\n if (reactionStyle.top < rect.height) {\n reactionStyle.top += parentRect.height;\n reactionStyle.top += spaceFromTriggerY;\n } else {\n reactionStyle.top -= rect.height;\n reactionStyle.top -= spaceFromTriggerY;\n }\n\n reactionStyle.left -= (rect.width / 2);\n reactionStyle.left += (parentRect.height / 2) - 2;\n reactionStyle.left += spaceFromTriggerX;\n\n const maximumLeft = (window.innerWidth - rect.width);\n if (maximumLeft < reactionStyle.left) {\n reactionStyle.left = maximumLeft;\n }\n if (reactionStyle.left < 0) {\n reactionStyle.left = 0;\n }\n\n return this.setState({ reactionStyle });\n }\n\n render() {\n const { reactionStyle } = this.state;\n const { children } = this.props;\n return (\n createPortal(\n <>\n
\n \n \n {children}\n \n \n ,\n document.getElementById('sendbird-emoji-list-portal'),\n )\n );\n }\n}\nEmojiListItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n spaceFromTrigger: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n};\nEmojiListItems.defaultProps = {\n spaceFromTrigger: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport MenuItems_ from './items/MenuItems';\nimport EmojiListItems_ from './items/EmojiListItems';\n\nconst ENTER = 13;\n\nexport const MenuItems = MenuItems_;\nexport const EmojiListItems = EmojiListItems_;\n\nexport const MenuItem = ({ children, onClick, className }) => {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n {\n if (e.keyCode === ENTER) {\n onClick(e);\n }\n }}\n role=\"menuitem\"\n >\n \n {children}\n \n \n );\n};\n\nMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n};\n\nMenuItem.defaultProps = {\n className: '',\n};\n\nexport const MenuRoot = () => (\n
\n);\n\nexport const EmojiReactionListRoot = () => (\n
\n);\n\nexport default function ContextMenu({ menuTrigger, menuItems }) {\n const [showMenu, setShowMenu] = useState(false);\n\n return (\n
\n {menuTrigger(() => setShowMenu(!showMenu))}\n {showMenu && menuItems(() => setShowMenu(false))}\n
\n );\n}\n\nContextMenu.propTypes = {\n menuTrigger: PropTypes.func.isRequired,\n menuItems: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes } from '../Icon';\n\nexport default function Loader({\n children,\n className,\n width,\n height,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nLoader.propTypes = {\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nLoader.defaultProps = {\n children: ,\n className: '',\n width: '26px',\n height: '26px',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Loader from '../Loader';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport _PlaceHolderTypes from './type';\n\nexport const PlaceHolderTypes = _PlaceHolderTypes;\n\nexport default function PlaceHolder({\n className,\n type,\n retryToConnect,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n {\n type === PlaceHolderTypes.LOADING\n ? (\n \n \n \n )\n : null\n }\n {\n type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG\n ? (\n
\n {\n type === PlaceHolderTypes.NO_CHANNELS && (\n \n )\n }\n {\n type === PlaceHolderTypes.WRONG && (\n \n )\n }\n \n {\n retryToConnect\n ? (\n \n \n \n
\n )\n : null\n }\n
\n )\n : null\n }\n
\n );\n}\n\nPlaceHolder.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(PlaceHolderTypes)),\n PropTypes.string,\n ]).isRequired,\n retryToConnect: PropTypes.func,\n};\n\nPlaceHolder.defaultProps = {\n className: '',\n retryToConnect: null,\n};\n"],"names":["UserProfileContext","React","createContext","disableUserProfile","isOpenChannel","renderUserProfile","UserProfileProvider","props","children","className","propTypes","PropTypes","oneOfType","element","arrayOf","any","isRequired","bool","func","string","defaultProps","ImageRenderer","alt","url","width","height","defaultComponent","circle","injectingClassName","Array","isArray","unshift","useState","realElement","setRealElement","useEffect","join","backgroundRepeat","backgroundPosition","backgroundSize","backgroundImage","borderRadius","number","ADD","ATTACH","ARROW_LEFT","AVATAR_DARK","AVATAR_LIGHT","AVATAR_NO_IMAGE","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","BROADCAST_DARK","BROADCAST_LIGHT","BROADCAST","FROZEN_DARK","FROZEN_LIGHT","CAMERA","MORE","MUTE","NO_THUMBNAIL","CHECKBOX","CHECKBOX_OFF","CLOSE","COPY","CHAT","CREATE","DELETE","DISCONNECTED","DUMMY","EDIT","ERROR","ERROR_FILLED","EMOJI_FAILED","EMOJI_REACTIONS_ADD","EMOJI_REACTIONS_ADD_GRAY","DELIVERED","DOCUMENT","DOWNLOAD","FILE_AUDIO","FILE_DOCUMENT","GIF","INFO","LEAVE","MEMBERS","NOTIFICATIONS","PHOTO","PLAY","PLUS","READ","REFRESH","SEND","SENT","SUPER_GROUP","SHEVRON","SHEVRON_DOWN","SPINNER","SPINNER_LARGE","USER","ICON_OPERATOR","ICON_BANNED","ICON_FREEZE","ICON_MUTED","ICON_MUTED_FG","TOGGLE_ON","TOGGLE_OFF","Colors","DEFAULT","PRIMARY","SECONDARY","CONTENT","CONTENT_INVERSE","WHITE","ON_BACKGROUND_2","ON_BACKGROUND_3","BACKGROUND_3","changeColorToClassName","color","changeTypeToIconComponent","type","Type","IconAdd","IconArrowLeft","IconCamera","IconAttach","IconAvatarDark","IconAvatarLight","IconAvatarNoImage","BroadcastLargeDark","BroadcastLargeLight","BroadcastDark","BroadcastLight","Broadcast","FrozenDark","FrozenLight","IconMore","IconMute","IconNoThumbnail","IconCheckbox","IconCheckboxOff","IconClose","IconCopy","IconChat","IconSupergroup","IconCreate","IconDelete","IconDisconnected","IconDummy","IconEdit","IconError","IconErrorFilled","IconEmojiFailed","IconEmojiReactionsAdd","IconEmojiReactionsAddGray","IconDelivered","IconDocument","IconDownload","IconFileAudio","IconFileDocument","IconGif","IconInfo","IconLeave","IconMembers","IconNotifications","IconPhoto","IconPlay","IconPlus","IconRead","IconRefresh","IconSend","IconSent","IconShevron","IconShevronDown","IconSpinner","IconSpinnerLarge","IconUser","IconOperator","IconBanned","IconMuted","IconMutedFg","IconFreeze","ToggleOn","ToggleOff","Icon","onClick","fillColor","iconStyle","minWidth","minHeight","oneOf","Object","keys","IconTypes","IconColors","imageRendererClassName","_a","document","querySelector","AvatarInner","_b","src","_c","length","slice","map","i","uuidv4","Avatar","ref","_d","_e","_f","__spreadArrays","forwardRef","Typography","H_1","H_2","SUBTITLE_1","SUBTITLE_2","BODY_1","BODY_2","BUTTON_1","BUTTON_2","CAPTION_1","CAPTION_2","CAPTION_3","ONBACKGROUND_1","ONBACKGROUND_2","ONBACKGROUND_3","ONCONTENT_1","ONCONTENT_2","SECONDARY_3","changeTypographyToClassName","CLASS_NAME","Label","push","LabelTypography","LabelColors","LabelStringSet","getStringSet","IconButton","disabled","onBlur","style","pressed","setPressed","e","shape","MODAL_ROOT","DANGER","DISABLED","Size","BIG","SMALL","changeTypeToClassName","changeSizeToClassName","size","Button","injectingClassNames","ModalHeader","titleText","ModalBody","ModalFooter","onSubmit","onCancel","submitText","useContext","LocalizationContext","stringSet","ButtonTypes","BUTTON__CANCEL","Modal","hideFooter","createPortal","getElementById","ONBACKGROUND_4","TextButton","notUnderline","Types","LOADING","NO_CHANNELS","WRONG","SEND_MESSAGE_START","SEND_USER_MESSAGE","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","DELETE_MESSAGE","LEAVE_CHANNEL","CREATE_CHANNEL","getSdk","store","stores","sdkStore","sdk","getPubSub","config","pubSub","getConnect","userId","accessToken","Promise","resolve","reject","Error","connect","then","res","catch","err","getDisconnect","disconnect","getUpdateUserInfo","nickName","profileUrl","updateCurrentUserInfo","getSendUserMessage","channelUrl","userMessageParams","pubsub","GroupChannel","getChannel","channel","promisify","pendingMsg","pendingPromise","resolve_","reject_","sendUserMessage","swapParams","getErrorFirstCallback","message","error","publish","topics","get","getSendFileMessage","fileMessageParams","sendFileMessage","file","localUrl","URL","createObjectURL","fileUrl","requestState","getUpdateUserMessage","messageId","params","updateUserMessage","fromSelector","getDeleteMessage","deleteMessage","getResendUserMessage","failedMessage","resendUserMessage","getResendFileMessage","resendFileMessage","getCreateChannel","createChannel","getLeaveChannel","leave","getFreezeChannel","freeze","getUnFreezeChannel","unfreeze","getCreateOpenChannel","OpenChannel","enterOpenChannel","openChannel","enter","response","enterError","exitOpenChannel","exit","exitError","getOpenChannelSendUserMessage","getOpenChannelSendFileMessage","getOpenChannelUpdateUserMessage","getOpenChannelDeleteMessage","getOpenChannelResendUserMessage","getOpenChannelResendFileMessage","UserProfile","user","currentUserId","logger","disableMessaging","onSuccess","nickname","NO_NAME","GroupChannelParams","isDistinct","addUserIds","groupChannel","info","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","mapStoreToProps","ConnectedUserProfile","withSendbirdContext","MenuItems","parentContainRef","current","classList","add","remove","closeDropdown","menuRef","handleClickOutside","event","contains","target","setState","addEventListener","state","removeEventListener","parentRef","openLeft","parentRect","getBoundingClientRect","x","left","y","top","menuStyle","window","innerWidth","innerHeight","rect","padding","Number","isNaN","createRef","setupEvents","getMenuPosition","showParent","cleanUpEvents","hideParent","display","position","Math","round","Component","instanceOf","Element","componentClassName","SortByRow","maxItemCount","itemWidth","itemHeight","result","EmojiListItems","reactionRef","spaceFromTrigger","spaceFromTriggerX","spaceFromTriggerY","reactionStyle","maximumLeft","getBarPosition","ENTER","MenuItems_","EmojiListItems_","MenuItem","keyCode","ContextMenu","menuTrigger","menuItems","showMenu","setShowMenu","Loader","PlaceHolderTypes","_PlaceHolderTypes","PlaceHolder","retryToConnect","PLACE_HOLDER__NO_CHANNEL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqEA,IAAMC,MAAM,GAAG;AACbC,EAAAA,OAAO,EAAE,SADI;AAEbC,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"} \ No newline at end of file diff --git a/dist/cjs/index-c4d028d8.js b/dist/cjs/index-63161cb1.js similarity index 96% rename from dist/cjs/index-c4d028d8.js rename to dist/cjs/index-63161cb1.js index 71b4fa3..f19d64c 100644 --- a/dist/cjs/index-c4d028d8.js +++ b/dist/cjs/index-63161cb1.js @@ -4,7 +4,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau var React = require('react'); var React__default = _interopDefault(React); -var index$1 = require('./index-710314fd.js'); +var index$1 = require('./index-49d966e1.js'); var utils = require('./utils-6aedec02.js'); var Context = React__default.createContext({ @@ -89,4 +89,4 @@ var AccordionGroup$1 = AccordionGroup; exports.Accordion = Accordion; exports.AccordionGroup = AccordionGroup$1; -//# sourceMappingURL=index-c4d028d8.js.map +//# sourceMappingURL=index-63161cb1.js.map diff --git a/dist/cjs/index-c4d028d8.js.map b/dist/cjs/index-63161cb1.js.map similarity index 98% rename from dist/cjs/index-c4d028d8.js.map rename to dist/cjs/index-63161cb1.js.map index dc1bcee..87c22a6 100644 --- a/dist/cjs/index-c4d028d8.js.map +++ b/dist/cjs/index-63161cb1.js.map @@ -1 +1 @@ -{"version":3,"file":"index-7bc4a9f7.js","sources":["../../../src/ui/Accordion/context.ts","../../../src/ui/Accordion/AccordionGroup.tsx","../../../src/ui/Accordion/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { noop } from '../../utils/utils';\n\ninterface ContextValue {\n setOpened(accordion: string): void;\n opened: string;\n}\n\nconst Context = React.createContext({\n opened: '', // mock default value\n setOpened: noop,\n});\n\nexport const Consumer = Context.Consumer;\nexport const Provider = Context.Provider;\n","// Wraps all the accordions in an accordion set\n// keep one accordion open at a time\nimport React, { ReactElement, useState } from 'react';\n\nimport { Provider } from './context';\n\ninterface Props {\n children: ReactElement[] | ReactElement;\n defaultOpened?: string;\n className?: string;\n}\n\nexport default function AccordionGroup({\n children,\n className = '',\n}: Props): ReactElement {\n const [opened, setOpened] = useState('');\n return (\n \n
{ children }
\n
\n )\n}\n","import './index.scss';\n\nimport React, { ReactElement, useState } from 'react';\n\nimport AccordionGroup_ from './AccordionGroup';\nimport { Consumer } from './context';\n\nimport Icon, {\n IconTypes,\n} from '../Icon';\n\ninterface Props {\n id: string;\n className?: string;\n renderTitle(): ReactElement;\n renderContent(): ReactElement;\n renderFooter?(): ReactElement;\n}\n\nexport default function Accordion({\n id,\n renderTitle,\n renderContent,\n renderFooter,\n className,\n}: Props): ReactElement {\n const [showAccordion, setShowAccordion] = useState(false);\n return (\n \n {\n (value) => {\n const { opened, setOpened } = value;\n if (id === opened) {\n setShowAccordion(true);\n } else {\n setShowAccordion(false);\n }\n const handleClick = () => {\n if (showAccordion) {\n setOpened('');\n } else {\n setOpened(id);\n }\n }\n return (\n <>\n \n { renderTitle() }\n \n
\n {\n showAccordion && (\n
\n
\n { renderContent() }\n
\n {\n renderFooter && (\n
\n { renderFooter() }\n
\n )\n }\n
\n )\n }\n );\n }\n }\n \n )\n}\n\nexport const AccordionGroup = AccordionGroup_;\n"],"names":["Context","React","createContext","opened","setOpened","noop","Consumer","Provider","AccordionGroup","_a","children","_b","className","_c","useState","Accordion","id","renderTitle","renderContent","renderFooter","showAccordion","setShowAccordion","value","handleClick","Icon","IconTypes","SHEVRON","join","AccordionGroup_"],"mappings":";;;;;;;;;AASA,IAAMA,OAAO,GAAGC,cAAK,CAACC,aAAN,CAAkC;AAChDC,EAAAA,MAAM,EAAE,EADwC;AAEhDC,EAAAA,SAAS,EAAEC;AAFqC,CAAlC,CAAhB;AAKO,IAAMC,QAAQ,GAAGN,OAAO,CAACM,QAAzB;AACA,IAAMC,QAAQ,GAAGP,OAAO,CAACO,QAAzB;;ACfP;AACA,SAWwBC,eAAeC;MACrCC,QAAQ;MACRC;MAAAC,SAAS,mBAAG;;AAEN,MAAAC,KAAsBC,cAAQ,CAAC,EAAD,CAA9B;AAAA,MAACX,MAAM,QAAP;AAAA,MAASC,SAAS,QAAlB;;AACN,SACEH,6BAAC,QAAD;AAAU,IAAA,KAAK,EAAE;AAAEE,MAAAA,MAAM,QAAR;AAAUC,MAAAA,SAAS;AAAnB;AAAjB,KACEH;AAAK,IAAA,SAAS,EAAEW;AAAhB,KAA6BF,QAA7B,CADF,CADF;AAKD;;SCHuBK,UAAUN;MAChCO,EAAE;MACFC,WAAW;MACXC,aAAa;MACbC,YAAY;MACZP,SAAS;;AAEH,MAAAD,KAAoCG,cAAQ,CAAC,KAAD,CAA5C;AAAA,MAACM,aAAa,QAAd;AAAA,MAAgBC,gBAAgB,QAAhC;;AACN,SACEpB,6BAAC,QAAD,QAEI,UAACqB,KAAD;AACU,QAAAnB,MAAM,GAAgBmB,KAAK,OAA3B;AAAA,QAAQlB,SAAS,GAAKkB,KAAK,UAA3B;;AACR,QAAIN,EAAE,KAAKb,MAAX,EAAmB;AACjBkB,MAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD,KAFD,MAEO;AACLA,MAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACD;;AACD,QAAME,WAAW,GAAG,SAAdA,WAAc;AAClB,UAAIH,aAAJ,EAAmB;AACjBhB,QAAAA,SAAS,CAAC,EAAD,CAAT;AACD,OAFD,MAEO;AACLA,QAAAA,SAAS,CAACY,EAAD,CAAT;AACD;AACF,KAND;;AAOA,WACEf,4DACEA;AACE,MAAA,EAAE,EAAEe,EADN;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,sBAAc,KAHhB;AAIE,MAAA,QAAQ,EAAE,CAJZ;AAKE,MAAA,SAAS,EAAEO,WALb;AAME,MAAA,SAAS,EAAE,qCAAmCX,SANhD;AAOE,MAAA,OAAO,EAAEW;AAPX,OASIN,WAAW,EATf,EAUEhB,6BAACuB,YAAD;AACE,MAAA,IAAI,EAAEC,iBAAS,CAACC,OADlB;AAEE,MAAA,SAAS,EAAE,CACT,sCADS,EAET,yCAFS,EAGRN,aAAa,GAAG,sCAAH,GAA4C,EAHjD,EAITO,IAJS,CAIJ,GAJI,CAFb;AAOE,MAAA,MAAM,EAAC,MAPT;AAQE,MAAA,KAAK,EAAC;AARR,MAVF,CADF,EAuBIP,aAAa,IACXnB;AAAK,MAAA,SAAS,EAAC;AAAf,OACEA;AAAK,MAAA,SAAS,EAAC;AAAf,OACIiB,aAAa,EADjB,CADF,EAKIC,YAAY,IACVlB;AAAK,MAAA,SAAS,EAAC;AAAf,OACIkB,YAAY,EADhB,CANN,CAxBN,CADF;AAwCD,GAxDL,CADF;AA6DD;AAED,IAAaX,gBAAc,GAAGoB;;;;;"} \ No newline at end of file +{"version":3,"file":"index-8abf69b8.js","sources":["../../../src/ui/Accordion/context.ts","../../../src/ui/Accordion/AccordionGroup.tsx","../../../src/ui/Accordion/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { noop } from '../../utils/utils';\n\ninterface ContextValue {\n setOpened(accordion: string): void;\n opened: string;\n}\n\nconst Context = React.createContext({\n opened: '', // mock default value\n setOpened: noop,\n});\n\nexport const Consumer = Context.Consumer;\nexport const Provider = Context.Provider;\n","// Wraps all the accordions in an accordion set\n// keep one accordion open at a time\nimport React, { ReactElement, useState } from 'react';\n\nimport { Provider } from './context';\n\ninterface Props {\n children: ReactElement[] | ReactElement;\n defaultOpened?: string;\n className?: string;\n}\n\nexport default function AccordionGroup({\n children,\n className = '',\n}: Props): ReactElement {\n const [opened, setOpened] = useState('');\n return (\n \n
{ children }
\n
\n )\n}\n","import './index.scss';\n\nimport React, { ReactElement, useState } from 'react';\n\nimport AccordionGroup_ from './AccordionGroup';\nimport { Consumer } from './context';\n\nimport Icon, {\n IconTypes,\n} from '../Icon';\n\ninterface Props {\n id: string;\n className?: string;\n renderTitle(): ReactElement;\n renderContent(): ReactElement;\n renderFooter?(): ReactElement;\n}\n\nexport default function Accordion({\n id,\n renderTitle,\n renderContent,\n renderFooter,\n className,\n}: Props): ReactElement {\n const [showAccordion, setShowAccordion] = useState(false);\n return (\n \n {\n (value) => {\n const { opened, setOpened } = value;\n if (id === opened) {\n setShowAccordion(true);\n } else {\n setShowAccordion(false);\n }\n const handleClick = () => {\n if (showAccordion) {\n setOpened('');\n } else {\n setOpened(id);\n }\n }\n return (\n <>\n \n { renderTitle() }\n \n
\n {\n showAccordion && (\n
\n
\n { renderContent() }\n
\n {\n renderFooter && (\n
\n { renderFooter() }\n
\n )\n }\n
\n )\n }\n );\n }\n }\n \n )\n}\n\nexport const AccordionGroup = AccordionGroup_;\n"],"names":["Context","React","createContext","opened","setOpened","noop","Consumer","Provider","AccordionGroup","_a","children","_b","className","_c","useState","Accordion","id","renderTitle","renderContent","renderFooter","showAccordion","setShowAccordion","value","handleClick","Icon","IconTypes","SHEVRON","join","AccordionGroup_"],"mappings":";;;;;;;;;AASA,IAAMA,OAAO,GAAGC,cAAK,CAACC,aAAN,CAAkC;AAChDC,EAAAA,MAAM,EAAE,EADwC;AAEhDC,EAAAA,SAAS,EAAEC;AAFqC,CAAlC,CAAhB;AAKO,IAAMC,QAAQ,GAAGN,OAAO,CAACM,QAAzB;AACA,IAAMC,QAAQ,GAAGP,OAAO,CAACO,QAAzB;;ACfP;AACA,SAWwBC,eAAeC;MACrCC,QAAQ;MACRC;MAAAC,SAAS,mBAAG;;AAEN,MAAAC,KAAsBC,cAAQ,CAAC,EAAD,CAA9B;AAAA,MAACX,MAAM,QAAP;AAAA,MAASC,SAAS,QAAlB;;AACN,SACEH,6BAAC,QAAD;AAAU,IAAA,KAAK,EAAE;AAAEE,MAAAA,MAAM,QAAR;AAAUC,MAAAA,SAAS;AAAnB;AAAjB,KACEH;AAAK,IAAA,SAAS,EAAEW;AAAhB,KAA6BF,QAA7B,CADF,CADF;AAKD;;SCHuBK,UAAUN;MAChCO,EAAE;MACFC,WAAW;MACXC,aAAa;MACbC,YAAY;MACZP,SAAS;;AAEH,MAAAD,KAAoCG,cAAQ,CAAC,KAAD,CAA5C;AAAA,MAACM,aAAa,QAAd;AAAA,MAAgBC,gBAAgB,QAAhC;;AACN,SACEpB,6BAAC,QAAD,QAEI,UAACqB,KAAD;AACU,QAAAnB,MAAM,GAAgBmB,KAAK,OAA3B;AAAA,QAAQlB,SAAS,GAAKkB,KAAK,UAA3B;;AACR,QAAIN,EAAE,KAAKb,MAAX,EAAmB;AACjBkB,MAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD,KAFD,MAEO;AACLA,MAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACD;;AACD,QAAME,WAAW,GAAG,SAAdA,WAAc;AAClB,UAAIH,aAAJ,EAAmB;AACjBhB,QAAAA,SAAS,CAAC,EAAD,CAAT;AACD,OAFD,MAEO;AACLA,QAAAA,SAAS,CAACY,EAAD,CAAT;AACD;AACF,KAND;;AAOA,WACEf,4DACEA;AACE,MAAA,EAAE,EAAEe,EADN;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,sBAAc,KAHhB;AAIE,MAAA,QAAQ,EAAE,CAJZ;AAKE,MAAA,SAAS,EAAEO,WALb;AAME,MAAA,SAAS,EAAE,qCAAmCX,SANhD;AAOE,MAAA,OAAO,EAAEW;AAPX,OASIN,WAAW,EATf,EAUEhB,6BAACuB,YAAD;AACE,MAAA,IAAI,EAAEC,iBAAS,CAACC,OADlB;AAEE,MAAA,SAAS,EAAE,CACT,sCADS,EAET,yCAFS,EAGRN,aAAa,GAAG,sCAAH,GAA4C,EAHjD,EAITO,IAJS,CAIJ,GAJI,CAFb;AAOE,MAAA,MAAM,EAAC,MAPT;AAQE,MAAA,KAAK,EAAC;AARR,MAVF,CADF,EAuBIP,aAAa,IACXnB;AAAK,MAAA,SAAS,EAAC;AAAf,OACEA;AAAK,MAAA,SAAS,EAAC;AAAf,OACIiB,aAAa,EADjB,CADF,EAKIC,YAAY,IACVlB;AAAK,MAAA,SAAS,EAAC;AAAf,OACIkB,YAAY,EADhB,CANN,CAxBN,CADF;AAwCD,GAxDL,CADF;AA6DD;AAED,IAAaX,gBAAc,GAAGoB;;;;;"} \ No newline at end of file diff --git a/dist/cjs/index-95b18747.js b/dist/cjs/index-6e58a4a2.js similarity index 98% rename from dist/cjs/index-95b18747.js rename to dist/cjs/index-6e58a4a2.js index 6831ea8..e1f3e6a 100644 --- a/dist/cjs/index-95b18747.js +++ b/dist/cjs/index-6e58a4a2.js @@ -6,7 +6,7 @@ var LocalizationContext = require('./LocalizationContext-7c9df62c.js'); var React = require('react'); var React__default = _interopDefault(React); var PropTypes = _interopDefault(require('prop-types')); -var index = require('./index-710314fd.js'); +var index = require('./index-49d966e1.js'); var reactDom = require('react-dom'); // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types @@ -201,7 +201,7 @@ var MessageInput = React__default.forwardRef(function (props, ref) { fillColor: index.IconColors.PRIMARY, width: "20px", height: "20px" - })), !isEdit && !inputValue && !(inputValue.trim().length > 0) && React__default.createElement(index.IconButton, { + })), !isEdit && (!inputValue || !(inputValue.trim().length > 0)) && React__default.createElement(index.IconButton, { className: "sendbird-message-input--attach", height: "32px", width: "32px", @@ -440,4 +440,4 @@ exports.compareIds = compareIds; exports.isImage = isImage; exports.isVideo = isVideo; exports.unSupported = unSupported; -//# sourceMappingURL=index-95b18747.js.map +//# sourceMappingURL=index-6e58a4a2.js.map diff --git a/dist/cjs/index-6e58a4a2.js.map b/dist/cjs/index-6e58a4a2.js.map new file mode 100644 index 0000000..3c113be --- /dev/null +++ b/dist/cjs/index-6e58a4a2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-19f570c9.js","sources":["../../../src/ui/FileViewer/types.js","../../../src/utils/compareIds.js","../../../src/ui/DateSeparator/index.jsx","../../../src/ui/MessageInput/index.jsx","../../../src/ui/FileViewer/index.jsx","../../../src/ui/LinkLabel/index.jsx"],"sourcesContent":["// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const isImage = (type) => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type) => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const unSupported = (type) => !(isImage(type) || isVideo(type));\n\nexport default SUPPORTED_MIMES;\n","const isEmpty = (val) => (val === null || val === undefined);\n\n// Some Ids return string and number inconsistently\n// only use to comapre IDs\nexport default function (a, b) {\n if (isEmpty(a) || isEmpty(b)) {\n return false;\n }\n const aString = a.toString();\n const bString = b.toString();\n return aString === bString;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport default function DateSeparator({\n className,\n children,\n separatorColor,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n
\n
{children}
\n
\n
\n );\n}\n\nDateSeparator.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.element,\n ]),\n separatorColor: PropTypes.string,\n};\n\nDateSeparator.defaultProps = {\n className: '',\n children: (\n \n ),\n separatorColor: Colors.ONBACKGROUND_4,\n};\n","import React, {\n useState,\n useRef,\n useEffect,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport IconButton from '../IconButton';\nimport Button from '../Button';\nimport { Type, Size } from '../Button/type';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n// import IconSend from '../../svgs/icon-send.svg';\n// import IconAttach from '../../svgs/icon-attach.svg';\n\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst KeyCode = {\n SHIFT: 16,\n ENTER: 13,\n};\n\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n isEdit,\n disabled,\n value,\n name,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onCancelEdit,\n onStartTyping,\n } = props;\n\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [inputValue, setInputValue] = useState(value);\n const [isShiftPressed, setIsShiftPressed] = useState(false);\n\n const setHeight = () => {\n const elem = ref.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n };\n\n // after setHeight called twice, the textarea goes to the initialized\n useEffect(() => {\n setHeight();\n return setHeight;\n }, [inputValue]);\n\n const sendMessage = () => {\n if (inputValue && inputValue.trim().length > 0) {\n const trimmedInputValue = inputValue.trim();\n if (isEdit) {\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n } else {\n onSendMessage(trimmedInputValue);\n setInputValue('');\n }\n }\n };\n\n return (\n \n \n {\n setInputValue(e.target.value);\n onStartTyping();\n }}\n onKeyDown={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(true);\n }\n if (!isShiftPressed && e.keyCode === KeyCode.ENTER) {\n e.preventDefault();\n sendMessage();\n }\n }}\n onKeyUp={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(false);\n }\n }}\n />\n {/* placeholder */}\n {!inputValue && (\n \n {placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER}\n \n )}\n {/* send icon */}\n {\n (!isEdit && inputValue && inputValue.trim().length > 0) && (\n \n \n \n )\n }\n {/* upload icon */}\n {\n (!isEdit && (!inputValue || !(inputValue.trim().length > 0))) && (\n {\n // todo: clear previous input\n fileInputRef.current.click();\n }}\n >\n \n \n \n )\n }\n
\n {/* Edit */}\n {\n isEdit && (\n
\n \n {stringSet.BUTTON__CANCEL}\n \n {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n }\n }}\n >\n {stringSet.BUTTON__SAVE}\n \n
\n )\n }\n \n );\n});\n\nMessageInput.propTypes = {\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isEdit: PropTypes.bool,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n value: PropTypes.string,\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n value: '',\n onSendMessage: noop,\n name: 'sendbird-message-input',\n isEdit: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n};\n\nexport default MessageInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes } from '../Icon';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, unSupported } from './types';\n\nexport const FileViewerComponent = ({\n profileUrl,\n nickname,\n type,\n url,\n name,\n onClose,\n onDelete,\n isByMe,\n}) => (\n
\n
\n
\n
\n \n
\n \n {name}\n \n \n {nickname}\n \n
\n
\n {\n !unSupported(type) && (\n
\n \n \n \n {\n onDelete && isByMe && (\n
\n \n
\n )\n }\n
\n )\n }\n
\n \n
\n
\n
\n
\n {isVideo(type) && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n \n )}\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n \n
\n )\n }\n
\n
\n);\n\nFileViewerComponent.propTypes = {\n profileUrl: PropTypes.string.isRequired,\n nickname: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewerComponent.defaultProps = {\n isByMe: true,\n};\n\nexport default function FileViewer(props) {\n const {\n onClose,\n message,\n onDelete,\n isByMe,\n } = props;\n const {\n sender,\n type,\n url,\n name = '',\n } = message;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n \n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nFileViewer.propTypes = {\n onClose: PropTypes.func.isRequired,\n message: PropTypes.shape({\n sender: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }),\n type: PropTypes.string,\n url: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewer.defaultProps = {\n isByMe: true,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { changeColorToClassName } from '../Label/utils';\nimport './index.scss';\n\nconst LINK_LABEL = 'sendbird-link-label';\nconst http = /https?:\\/\\//;\n\nexport default function LinkLabel({\n className,\n src,\n type,\n color,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n const url = (http.test(src)) ? src : `http://${src}`;\n\n return (\n \n \n \n );\n}\n\nLinkLabel.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n src: PropTypes.string.isRequired,\n type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired,\n color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired,\n};\n\nLinkLabel.defaultProps = {\n className: '',\n};\n\nexport const LinkLabelTypography = LabelTypography;\nexport const LinkLabelColors = LabelColors;\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","isImage","type","indexOf","isVideo","unSupported","isEmpty","val","undefined","a","b","aString","toString","bString","DateSeparator","className","children","separatorColor","injectingClassName","Array","isArray","React","join","changeColorToClassName","propTypes","PropTypes","oneOfType","string","arrayOf","element","defaultProps","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","Colors","ONBACKGROUND_4","LINE_HEIGHT","noop","KeyCode","SHIFT","ENTER","handleUploadFile","callback","event","target","files","value","MessageInput","forwardRef","props","ref","isEdit","disabled","name","placeholder","maxLength","onFileUpload","onSendMessage","onCancelEdit","onStartTyping","useContext","LocalizationContext","stringSet","fileInputRef","useRef","useState","inputValue","setInputValue","isShiftPressed","setIsShiftPressed","setHeight","elem","current","MAX_HEIGHT","window","document","body","offsetHeight","scrollHeight","style","height","useEffect","sendMessage","trim","length","trimmedInputValue","e","keyCode","preventDefault","BODY_1","ONBACKGROUND_3","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","IconButton","Icon","IconTypes","SEND","IconColors","PRIMARY","click","ATTACH","Button","Type","SECONDARY","Size","SMALL","BUTTON__CANCEL","BUTTON__SAVE","bool","number","func","FileViewerComponent","profileUrl","nickname","url","onClose","onDelete","isByMe","Avatar","H_2","ONBACKGROUND_1","DOWNLOAD","DELETE","CLOSE","H_1","isRequired","FileViewer","message","sender","createPortal","getElementById","MODAL_ROOT","shape","LINK_LABEL","http","LinkLabel","src","color","push","test","oneOf","Object","keys"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/index-710314fd.js.map b/dist/cjs/index-710314fd.js.map deleted file mode 100644 index c6fc1ad..0000000 --- a/dist/cjs/index-710314fd.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-0c67ae90.js","sources":["../../../src/lib/UserProfileContext.jsx","../../../src/ui/ImageRenderer/index.jsx","../../../src/ui/Icon/type.js","../../../src/ui/Icon/index.jsx","../../../src/ui/Avatar/index.tsx","../../../src/ui/Label/types.js","../../../src/ui/Label/utils.js","../../../src/ui/Label/index.jsx","../../../src/ui/IconButton/index.jsx","../../../src/hooks/useModal/ModalRoot/index.jsx","../../../src/ui/Button/type.js","../../../src/ui/Button/utils.js","../../../src/ui/Button/index.jsx","../../../src/ui/Modal/index.jsx","../../../src/utils/color.js","../../../src/ui/TextButton/index.jsx","../../../src/ui/PlaceHolder/type.js","../../../src/lib/pubSub/topics.js","../../../src/lib/selectors.js","../../../src/ui/UserProfile/index.tsx","../../../src/ui/ContextMenu/items/MenuItems.jsx","../../../src/ui/SortByRow/index.jsx","../../../src/ui/ContextMenu/items/EmojiListItems.jsx","../../../src/ui/ContextMenu/index.jsx","../../../src/ui/Loader/index.jsx","../../../src/ui/PlaceHolder/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst UserProfileContext = React.createContext({\n disableUserProfile: true,\n isOpenChannel: false,\n renderUserProfile: null,\n});\n\nconst UserProfileProvider = (props) => {\n const { children, className } = props;\n return (\n \n
\n {children}\n
\n
\n );\n};\n\nUserProfileProvider.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n isOpenChannel: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n disableUserProfile: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n renderUserProfile: PropTypes.func,\n className: PropTypes.string,\n};\n\nUserProfileProvider.defaultProps = {\n className: null,\n isOpenChannel: false,\n disableUserProfile: false,\n renderUserProfile: null,\n};\n\nexport { UserProfileContext, UserProfileProvider };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\n/*\n ImageRenderer displays image with url or source\n it checks if the source exist with img tag first\n if it exists onLoad is called, if not onError is called\n and those properties switch img tag to real purposing element\n*/\n\nexport default function ImageRenderer({\n alt,\n url,\n width,\n height,\n className,\n defaultComponent,\n circle,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-image-renderer');\n const [realElement, setRealElement] = useState(null);\n useEffect(() => {\n setRealElement(null);\n }, [url]);\n return (\n realElement || (\n {\n setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent);\n }}\n onLoad={() => {\n setRealElement((\n \n ));\n }}\n />\n )\n );\n}\n\nImageRenderer.propTypes = {\n alt: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n defaultComponent: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n circle: PropTypes.bool,\n};\nImageRenderer.defaultProps = {\n alt: '',\n className: '',\n circle: false,\n defaultComponent: null,\n width: null,\n height: null,\n};\n","export default {\n ADD: 'ADD',\n ATTACH: 'ATTACH',\n ARROW_LEFT: 'ARROW_LEFT',\n AVATAR_DARK: 'AVATAR_DARK',\n AVATAR_LIGHT: 'AVATAR_LIGHT',\n AVATAR_NO_IMAGE: 'AVATAR_NO_IMAGE',\n BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK',\n BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT',\n BROADCAST_DARK: 'BROADCAST_DARK',\n BROADCAST_LIGHT: 'BROADCAST_LIGHT',\n BROADCAST: 'BROADCAST',\n FROZEN_DARK: 'FROZEN_DARK',\n FROZEN_LIGHT: 'FROZEN_LIGHT',\n CAMERA: 'CAMERA',\n MORE: 'MORE',\n MUTE: 'MUTE',\n NO_THUMBNAIL: 'NO_THUMBNAIL',\n CHECKBOX: 'CHECKBOX',\n CHECKBOX_OFF: 'CHECKBOX_OFF',\n CLOSE: 'CLOSE',\n COPY: 'COPY',\n CHAT: 'CHAT',\n CREATE: 'CREATE',\n DELETE: 'DELETE',\n DISCONNECTED: 'DISCONNECTED',\n DUMMY: 'DUMMY',\n EDIT: 'EDIT',\n ERROR: 'ERROR',\n ERROR_FILLED: 'ERROR_FILLED',\n EMOJI_FAILED: 'EMOJI_FAILED',\n EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD',\n EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY',\n DELIVERED: 'DELIVERED',\n DOCUMENT: 'DOCUMENT',\n DOWNLOAD: 'DOWNLOAD',\n FILE_AUDIO: 'FILE_AUDIO',\n FILE_DOCUMENT: 'FILE_DOCUMENT',\n GIF: 'GIF',\n INFO: 'INFO',\n LEAVE: 'LEAVE',\n MEMBERS: 'MEMBERS',\n NOTIFICATIONS: 'NOTIFICATIONS',\n PHOTO: 'PHOTO',\n PLAY: 'PLAY',\n PLUS: 'PLUS',\n READ: 'READ',\n REFRESH: 'REFRESH',\n SEND: 'SEND',\n SENT: 'SENT',\n SUPER_GROUP: 'SUPER_GROUP',\n SHEVRON: 'SHEVRON',\n SHEVRON_DOWN: 'SHEVRON_DOWN',\n SPINNER: 'SPINNER',\n SPINNER_LARGE: 'SPINNER_LARGE',\n USER: 'USER',\n ICON_OPERATOR: 'ICON_OPERATOR',\n ICON_BANNED: 'ICON_BANNED',\n ICON_FREEZE: 'ICON_FREEZE',\n ICON_MUTED: 'ICON_MUTED',\n ICON_MUTED_FG: 'ICON_MUTED_FG',\n TOGGLE_ON: 'TOGGLE_ON',\n TOGGLE_OFF: 'TOGGLE_OFF',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Type from './type';\n\nimport IconAdd from '../../svgs/icon-add.svg';\nimport IconAttach from '../../svgs/icon-attach.svg';\nimport IconArrowLeft from '../../svgs/icon-arrow-left.svg';\nimport IconAvatarDark from '../../svgs/icon-avatar-dark.svg';\nimport IconAvatarLight from '../../svgs/icon-avatar-light.svg';\nimport IconAvatarNoImage from '../../svgs/avatar-no-image-light.svg';\nimport BroadcastLargeDark from '../../svgs/icon-broadcast-lrg-dark.svg';\nimport BroadcastLargeLight from '../../svgs/icon-broadcast-lrg-light.svg';\nimport BroadcastDark from '../../svgs/icon-broadcast-dark.svg';\nimport BroadcastLight from '../../svgs/icon-broadcast-light.svg';\nimport Broadcast from '../../svgs/icon-broadcast.svg';\nimport FrozenDark from '../../svgs/frozen-dark.svg';\nimport FrozenLight from '../../svgs/frozen-light.svg';\nimport IconCamera from '../../svgs/icon-camera.svg';\nimport IconMore from '../../svgs/icon-more.svg';\nimport IconMute from '../../svgs/icon-mute.svg';\nimport IconNoThumbnail from '../../svgs/icon-no-thumbnail.svg';\nimport IconCheckbox from '../../svgs/icon-checkbox.svg';\nimport IconCheckboxOff from '../../svgs/icon-checkbox-off.svg';\nimport IconClose from '../../svgs/icon-close.svg';\nimport IconCopy from '../../svgs/icon-copy.svg';\nimport IconChat from '../../svgs/icon-chat.svg';\nimport IconSupergroup from '../../svgs/icon-supergroup.svg';\nimport IconCreate from '../../svgs/icon-create.svg';\nimport IconDelete from '../../svgs/icon-delete.svg';\nimport IconDummy from '../../svgs/icon-dummy.svg';\nimport IconEdit from '../../svgs/icon-edit.svg';\nimport IconError from '../../svgs/icon-error.svg';\nimport IconErrorFilled from '../../svgs/icon-error-filled.svg';\nimport IconEmojiFailed from '../../svgs/emoji-fail.svg';\nimport IconEmojiReactionsAdd from '../../svgs/icon-reactions-add.svg';\nimport IconEmojiReactionsAddGray from '../../svgs/icon-emoji-reactions-add.svg';\nimport IconDelivered from '../../svgs/icon-delivered.svg';\nimport IconDisconnected from '../../svgs/icon-disconnected.svg';\nimport IconDocument from '../../svgs/icon-document.svg';\nimport IconDownload from '../../svgs/icon-download.svg';\nimport IconFileAudio from '../../svgs/icon-file-audio.svg';\nimport IconFileDocument from '../../svgs/icon-file-document.svg';\nimport IconGif from '../../svgs/icon-gif.svg';\nimport IconInfo from '../../svgs/icon-info.svg';\nimport IconLeave from '../../svgs/icon-leave.svg';\nimport IconMembers from '../../svgs/icon-members.svg';\nimport IconNotifications from '../../svgs/icon-notifications.svg';\nimport IconPhoto from '../../svgs/icon-photo.svg';\nimport IconPlay from '../../svgs/icon-play.svg';\nimport IconPlus from '../../svgs/icon-plus.svg';\nimport IconRead from '../../svgs/icon-read.svg';\nimport IconRefresh from '../../svgs/icon-refresh.svg';\nimport IconSend from '../../svgs/icon-send.svg';\nimport IconSent from '../../svgs/icon-sent.svg';\nimport IconShevron from '../../svgs/icon-shevron.svg';\nimport IconShevronDown from '../../svgs/icon-shevron-down.svg';\nimport IconSpinner from '../../svgs/icon-spinner-small.svg';\nimport IconSpinnerLarge from '../../svgs/icon-spinner-large.svg';\nimport IconUser from '../../svgs/icon-user.svg';\nimport IconOperator from '../../svgs/icon-operator.svg';\nimport IconBanned from '../../svgs/icon-banned.svg';\nimport IconMuted from '../../svgs/icon-muted.svg';\nimport IconMutedFg from '../../svgs/icon-muted-foreground.svg';\nimport IconFreeze from '../../svgs/icon-freeze.svg';\nimport ToggleOn from '../../svgs/icon-toggleon.svg';\nimport ToggleOff from '../../svgs/icon-toggleoff.svg';\n\nconst Colors = {\n DEFAULT: 'DEFAULT',\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n CONTENT: 'CONTENT',\n CONTENT_INVERSE: 'CONTENT_INVERSE',\n WHITE: 'WHITE',\n SENT: 'SENT',\n READ: 'READ',\n ON_BACKGROUND_2: 'ON_BACKGROUND_2',\n ON_BACKGROUND_3: 'ON_BACKGROUND_3',\n BACKGROUND_3: 'BACKGROUND_3',\n};\n\nfunction changeColorToClassName(color) {\n switch (color) {\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.SECONDARY: return 'sendbird-color--secondary';\n case Colors.CONTENT: return 'sendbird-color--content';\n case Colors.CONTENT_INVERSE: return 'sendbird-color--content-inverse';\n case Colors.WHITE: return 'sendbird-color--white';\n case Colors.SENT: return 'sendbird-color--sent';\n case Colors.READ: return 'sendbird-color--read';\n case Colors.ON_BACKGROUND_2: return 'sendbird-color--on-background-2';\n case Colors.ON_BACKGROUND_3: return 'sendbird-color--on-background-3';\n case Colors.BACKGROUND_3: return 'sendbird-color--background-3';\n default: return '';\n }\n}\n\nfunction changeTypeToIconComponent(type) {\n switch (type) {\n case Type.ADD: return ;\n case Type.ARROW_LEFT: return ;\n case Type.CAMERA: return ;\n case Type.ATTACH: return ;\n case Type.AVATAR_DARK: return ;\n case Type.AVATAR_LIGHT: return ;\n case Type.AVATAR_NO_IMAGE: return ;\n case Type.BROADCAST_LARGE_DARK: return ;\n case Type.BROADCAST_LARGE_LIGHT: return ;\n case Type.BROADCAST_DARK: return ;\n case Type.BROADCAST_LIGHT: return ;\n case Type.BROADCAST: return ;\n case Type.FROZEN_DARK: return ;\n case Type.FROZEN_LIGHT: return ;\n case Type.MORE: return ;\n case Type.MUTE: return ;\n case Type.NO_THUMBNAIL: return ;\n case Type.CHECKBOX: return ;\n case Type.CHECKBOX_OFF: return ;\n case Type.CLOSE: return ;\n case Type.COPY: return ;\n case Type.CHAT: return ;\n case Type.SUPER_GROUP: return ;\n case Type.CREATE: return ;\n case Type.DELETE: return ;\n case Type.DISCONNECTED: return ;\n case Type.DUMMY: return ;\n case Type.EDIT: return ;\n case Type.ERROR: return ;\n case Type.ERROR_FILLED: return ;\n case Type.EMOJI_FAILED: return ;\n case Type.EMOJI_REACTIONS_ADD: return ;\n case Type.EMOJI_REACTIONS_ADD_GRAY: return ;\n case Type.DELIVERED: return ;\n case Type.DOCUMENT: return ;\n case Type.DOWNLOAD: return ;\n case Type.FILE_AUDIO: return ;\n case Type.FILE_DOCUMENT: return ;\n case Type.GIF: return ;\n case Type.INFO: return ;\n case Type.LEAVE: return ;\n case Type.MEMBERS: return ;\n case Type.NOTIFICATIONS: return ;\n case Type.PHOTO: return ;\n case Type.PLAY: return ;\n case Type.PLUS: return ;\n case Type.READ: return ;\n case Type.REFRESH: return ;\n case Type.SEND: return ;\n case Type.SENT: return ;\n case Type.SHEVRON: return ;\n case Type.SHEVRON_DOWN: return ;\n case Type.SPINNER: return ;\n case Type.SPINNER_LARGE: return ;\n case Type.USER: return ;\n case Type.ICON_OPERATOR: return ;\n case Type.ICON_BANNED: return ;\n case Type.ICON_MUTED: return ;\n case Type.ICON_MUTED_FG: return ;\n case Type.ICON_FREEZE: return ;\n case Type.TOGGLE_ON: return ;\n case Type.TOGGLE_OFF: return ;\n default: return null;\n }\n}\n\nexport default function Icon({\n type,\n width,\n height,\n children,\n className,\n onClick,\n fillColor,\n}) {\n const iconStyle = {\n width: typeof width === 'string' ? width : `${width}px`,\n minWidth: typeof width === 'string' ? width : `${width}px`,\n height: typeof height === 'string' ? height : `${height}px`,\n minHeight: typeof height === 'string' ? height : `${height}px`,\n };\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {\n children || changeTypeToIconComponent(type)\n }\n \n );\n}\n\nIcon.propTypes = {\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(Type)),\n PropTypes.string,\n ]).isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n onClick: PropTypes.func,\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n fillColor: PropTypes.oneOf(Object.keys(Colors)),\n};\n\nIcon.defaultProps = {\n onClick: () => { },\n width: 26,\n height: 26,\n children: null,\n className: '',\n fillColor: Colors.DEFAULT,\n};\n\nexport const IconTypes = Type;\nexport const IconColors = Colors;\n","import React, { ReactElement } from 'react';\n\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes } from '../Icon';\n\nimport './index.scss';\nimport { uuidv4 } from '../../utils/uuid';\n\nconst imageRendererClassName = 'sendbird-avatar-img';\n\ninterface DefaultComponentProps {\n width: string | number,\n height: string | number,\n}\n\nconst defaultComponent = (\n {\n width,\n height,\n }: DefaultComponentProps\n) => (): ReactElement => (\n document.querySelector('.sendbird-theme--dark')\n ? \n : \n);\n\ninterface AvatarInnerProps {\n height: string | number,\n width: string | number,\n src?: string | string[],\n alt?: string,\n}\n\nexport const AvatarInner = ({\n src = '',\n alt = '',\n height,\n width,\n}: AvatarInnerProps): ReactElement => {\n if (typeof src === 'string') {\n return (\n \n );\n }\n\n if (src && src.length) {\n if (src.length === 1) {\n return (\n \n );\n }\n\n if (src.length === 2) {\n return (\n
\n \n \n
\n );\n }\n\n if (src.length === 3) {\n return (\n <>\n
\n \n
\n
\n \n \n
\n \n );\n }\n\n return (\n
\n {\n src.slice(0, 4)\n .map((i) => (\n \n ))\n }\n
\n );\n }\n // default img\n return (\n \n );\n};\n\ninterface AvatarProps {\n height?: string | number,\n width?: string | number,\n src?: string | string[],\n alt?: string,\n onClick?(): void,\n className?: string | string[],\n}\n\nfunction Avatar(\n {\n src = '',\n alt = '',\n width = '56px',\n height = '56px',\n onClick,\n className = '',\n }: AvatarProps,\n ref: React.Ref,\n): ReactElement {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n \n \n );\n}\n\nexport default React.forwardRef(Avatar);\n","export const Typography = {\n H_1: 'H_1',\n H_2: 'H_2',\n SUBTITLE_1: 'SUBTITLE_1',\n SUBTITLE_2: 'SUBTITLE_2',\n BODY_1: 'BODY_1',\n BODY_2: 'BODY_2',\n BUTTON_1: 'BUTTON_1',\n BUTTON_2: 'BUTTON_2',\n CAPTION_1: 'CAPTION_1',\n CAPTION_2: 'CAPTION_2',\n CAPTION_3: 'CAPTION_3',\n};\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONCONTENT_1: 'ONCONTENT_1',\n ONCONTENT_2: 'ONCONTENT_2',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n SECONDARY_3: 'SECONDARY_3',\n};\n","import { Typography, Colors } from './types';\n\nexport function changeTypographyToClassName(type) {\n switch (type) {\n case Typography.H_1: return 'sendbird-label--h-1';\n case Typography.H_2: return 'sendbird-label--h-2';\n case Typography.SUBTITLE_1: return 'sendbird-label--subtitle-1';\n case Typography.SUBTITLE_2: return 'sendbird-label--subtitle-2';\n case Typography.BODY_1: return 'sendbird-label--body-1';\n case Typography.BODY_2: return 'sendbird-label--body-2';\n case Typography.BUTTON_1: return 'sendbird-label--button-1';\n case Typography.BUTTON_2: return 'sendbird-label--button-2';\n case Typography.CAPTION_1: return 'sendbird-label--caption-1';\n case Typography.CAPTION_2: return 'sendbird-label--caption-2';\n case Typography.CAPTION_3: return 'sendbird-label--caption-3';\n default: return null;\n }\n}\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-label--color-onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-label--color-onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-label--color-onbackground-3';\n case Colors.ONCONTENT_1: return 'sendbird-label--color-oncontent-1';\n case Colors.ONCONTENT_2: return 'sendbird-label--color-oncontent-2';\n case Colors.PRIMARY: return 'sendbird-label--color-primary'; // should be Primary-3 fix me\n case Colors.ERROR: return 'sendbird-label--color-error';\n case Colors.SECONDARY_3: return 'sendbird-label--color-secondary-3';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { Typography, Colors } from './types';\nimport { changeTypographyToClassName, changeColorToClassName } from './utils';\nimport getStringSet from './stringSet';\n\nconst CLASS_NAME = 'sendbird-label';\n\nexport default function Label({\n type,\n color,\n children,\n className,\n}) {\n const injectingClassName = (Array.isArray(className))\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n if (type) {\n injectingClassName.push(changeTypographyToClassName(type));\n }\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n\n return (\n \n {children}\n \n );\n}\n\nLabel.propTypes = {\n type: PropTypes.oneOf([...Object.keys(Typography), '']),\n color: PropTypes.oneOf([...Object.keys(Colors), '']),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.element,\n PropTypes.any,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nLabel.defaultProps = {\n type: '',\n color: '',\n className: [],\n children: null,\n};\n\nconst LabelTypography = Typography;\nconst LabelColors = Colors;\nconst LabelStringSet = getStringSet('en');\nexport { LabelTypography, LabelColors, LabelStringSet };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-iconbutton';\n\nconst IconButton = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n disabled = false,\n type,\n height,\n width,\n onClick,\n onBlur,\n style,\n } = props;\n\n const [pressed, setPressed] = useState('');\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n // eslint-disable-next-line react/button-has-type\n {\n if (disabled) { return; }\n setPressed('sendbird-iconbutton--pressed');\n onClick(e);\n }}\n onBlur={(e) => {\n setPressed('');\n onBlur(e);\n }}\n >\n \n {children}\n \n \n );\n});\n\nIconButton.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nIconButton.defaultProps = {\n height: '56px',\n width: '56px',\n className: '',\n type: 'button',\n disabled: false,\n onClick: () => { },\n onBlur: () => { },\n style: {},\n};\n\nexport default IconButton;\n","// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n
\n);\n","export const Type = {\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n DANGER: 'DANGER',\n DISABLED: 'DISABLED',\n};\n\nexport const Size = {\n BIG: 'BIG',\n SMALL: 'SMALL',\n};\n","import { Type, Size } from './type';\n\nexport function changeTypeToClassName(type) {\n switch (type) {\n case Type.PRIMARY: return 'sendbird-button--primary';\n case Type.SECONDARY: return 'sendbird-button--secondary';\n case Type.DANGER: return 'sendbird-button--danger';\n case Type.DISABLED: return 'sendbird-button--disabled';\n default: return null;\n }\n}\n\nexport function changeSizeToClassName(size) {\n switch (size) {\n case Size.BIG: return 'sendbird-button--big';\n case Size.SMALL: return 'sendbird-button--small';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { Type, Size } from './type';\nimport { changeTypeToClassName, changeSizeToClassName } from './utils';\n\nexport default function Button({\n type,\n size,\n children,\n disabled,\n onClick,\n className,\n}) {\n const injectingClassNames = [\n 'sendbird-button',\n (disabled ? 'sendbird-button__disabled' : ''),\n changeTypeToClassName(type),\n changeSizeToClassName(size),\n ...((Array.isArray(className)) ? className : [className]),\n ].join(' ');\n\n return (\n \n );\n}\n\nButton.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n disabled: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(Type)),\n size: PropTypes.oneOf(Object.keys(Size)),\n onClick: PropTypes.func,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nButton.defaultProps = {\n children: 'Button',\n type: Type.PRIMARY,\n disabled: false,\n size: Size.BIG,\n onClick: () => { },\n className: '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport const ModalHeader = ({ titleText }) => (\n
\n \n
\n);\nModalHeader.propTypes = {\n titleText: PropTypes.string.isRequired,\n};\n\nexport const ModalBody = ({ children }) => (\n
{children}
\n);\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element.isRequired,\n PropTypes.arrayOf(PropTypes.element.isRequired),\n ]),\n};\nModalBody.defaultProps = {\n children: null,\n};\n\nexport const ModalFooter = ({\n onSubmit,\n onCancel,\n disabled = false,\n submitText,\n type,\n}) => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n \n
\n );\n};\n\nModalFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModalFooter.defaultProps = {\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nfunction Modal(props) {\n const {\n children,\n onCancel,\n onSubmit,\n disabled,\n submitText,\n titleText,\n hideFooter,\n type,\n } = props;\n return createPortal((\n
\n
\n \n {children}\n {\n !hideFooter && (\n \n )\n }\n
\n \n \n \n
\n
\n
\n
\n ), document.getElementById(MODAL_ROOT));\n}\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n hideFooter: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModal.defaultProps = {\n children: null,\n hideFooter: false,\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nexport default Modal;\n","import './color.scss';\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONBACKGROUND_4: 'ONBACKGROUND_4',\n ONCONTENT_1: 'ONCONTENT_1',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-color--onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-color--onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-color--onbackground-3';\n case Colors.ONBACKGROUND_4: return 'sendbird-color--onbackground-4';\n case Colors.ONCONTENT_1: return 'sendbird-color--oncontent-1';\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.ERROR: return 'sendbird-color--error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\n\nexport default function TextButton({\n color,\n children,\n disabled,\n className,\n onClick,\n notUnderline,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nTextButton.propTypes = {\n color: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClick: PropTypes.func,\n notUnderline: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nTextButton.defaultProps = {\n color: Colors.ONBACKGROUND_1,\n className: '',\n onClick: () => { },\n notUnderline: false,\n disabled: false,\n};\n","export function Types() {\n return {\n LOADING: 'LOADING',\n NO_CHANNELS: 'NO_CHANNELS',\n WRONG: 'WRONG',\n };\n}\n\nexport default Types();\n","export const USER_UPDATED = 'USER_UPDATED';\nexport const SEND_MESSAGE_START = 'SEND_MESSAGE_START';\nexport const SEND_USER_MESSAGE = 'SEND_USER_MESSAGE';\nexport const SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE';\nexport const UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE';\nexport const DELETE_MESSAGE = 'DELETE_MESSAGE';\nexport const LEAVE_CHANNEL = 'LEAVE_CHANNEL';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\n","import * as topics from './pubSub/topics';\n\nexport const getSdk = (store) => {\n const { stores = {} } = store;\n const { sdkStore = {} } = stores;\n const { sdk } = sdkStore;\n return sdk;\n};\n\nexport const getPubSub = (store) => {\n const { config = {} } = store;\n const { pubSub } = config;\n return pubSub;\n};\n\n// SendBird disconnect. Invalidates currentUser\n// eslint-disable-next-line max-len\nexport const getConnect = (store) => (userId, accessToken) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n if (!accessToken) {\n sdk.connect(userId)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n } else {\n sdk.connect(userId, accessToken)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n }\n});\n\n// SendBird disconnect. Invalidates currentUser\nexport const getDisconnect = (store) => () => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.disconnect()\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\n// Using the updateCurrentUserInfo() method\n// you can update a user's nickname and profile image with a URL\n// eslint-disable-next-line max-len\nexport const getUpdateUserInfo = (store) => (nickName, profileUrl) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.updateCurrentUserInfo(nickName, profileUrl)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\nexport const getSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\nexport const getDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nexport const getResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getCreateChannel = (store) => (params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n pubsub.publish(\n topics.CREATE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n });\n};\n\nexport const getLeaveChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.leave()\n .then(() => {\n resolve(channel);\n pubsub.publish(\n topics.LEAVE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.freeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getUnFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.unfreeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport default {\n getSdk,\n getConnect,\n getDisconnect,\n getUpdateUserInfo,\n getSendUserMessage,\n getSendFileMessage,\n getUpdateUserMessage,\n getDeleteMessage,\n getResendUserMessage,\n getResendFileMessage,\n getFreezeChannel,\n getUnFreezeChannel,\n getCreateChannel,\n getLeaveChannel,\n};\n","import React, { ReactElement, useContext } from 'react';\nimport { SendbirdTypes } from '../../types';\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { getSdk, getCreateChannel } from '../../lib/selectors';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\n\ninterface Logger {\n info?(message: string, channel: SendbirdTypes['GroupChannel']): void;\n}\n\ninterface Props {\n user: SendbirdTypes['User'];\n currentUserId?: string;\n sdk?: SendbirdTypes['SendBirdInstance'];\n logger?: Logger;\n disableMessaging?: boolean;\n createChannel?(params: SendbirdTypes['GroupChannelParams']): Promise;\n onSuccess?(): void;\n}\n\nfunction UserProfile({\n user,\n currentUserId,\n sdk,\n logger,\n disableMessaging = false,\n createChannel,\n onSuccess,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n
\n
\n \n
\n {\n (user.userId !== currentUserId) && !disableMessaging && (\n
\n {\n const params = new sdk.GroupChannelParams();\n params.isDistinct = true;\n params.addUserIds([user.userId]);\n onSuccess();\n createChannel(params)\n .then((groupChannel) => {\n logger.info('UserProfile, channel create', groupChannel);\n });\n }}\n >\n {stringSet.USER_PROFILE__MESSAGE}\n \n
\n )\n }\n
\n
\n \n {stringSet.USER_PROFILE__USER_ID}\n \n \n {user.userId}\n \n
\n
\n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n createChannel: getCreateChannel(store),\n logger: store.config.logger,\n pubsub: store.config.pubSub,\n});\n\nconst ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps);\n\nexport default ConnectedUserProfile;\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class MenuItems extends Component {\n constructor(props) {\n super(props);\n this.menuRef = React.createRef();\n this.state = {\n menuStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getMenuPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-icon--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-icon--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { menuRef } = this;\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getMenuPosition = () => {\n const { parentRef, openLeft } = this.props;\n const parentRect = parentRef.current.getBoundingClientRect();\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n const menuStyle = {\n top: y,\n left: x,\n };\n\n if (!this.menuRef.current) return menuStyle;\n\n const { innerWidth, innerHeight } = window;\n const rect = this.menuRef.current.getBoundingClientRect();\n if (y + rect.height > innerHeight) {\n menuStyle.top -= rect.height;\n }\n\n if (x + rect.width > innerWidth && !openLeft) {\n menuStyle.left -= rect.width;\n }\n\n if (menuStyle.top < 0) {\n menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;\n }\n\n if (menuStyle.left < 0) {\n menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;\n }\n\n menuStyle.top += 32;\n if (openLeft) {\n const padding = Number.isNaN(rect.width - 30)\n ? 108 // default\n : rect.width - 30;\n menuStyle.left -= padding;\n }\n\n return this.setState({ menuStyle });\n }\n\n render() {\n const { menuStyle } = this.state;\n const { children, style } = this.props;\n return (\n createPortal(\n (\n <>\n
\n \n {children}\n \n \n ),\n document.getElementById('sendbird-dropdown-portal'),\n )\n );\n }\n}\nMenuItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n style: PropTypes.shape({}),\n // https://stackoverflow.com/a/51127130\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n openLeft: PropTypes.bool,\n};\nMenuItems.defaultProps = {\n style: {},\n openLeft: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst componentClassName = 'sendbird-sort-by-row';\nexport default function SortByRow({\n className,\n maxItemCount,\n itemWidth,\n itemHeight,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(componentClassName);\n\n if (children.length > maxItemCount) {\n const result = [];\n for (let i = 0; i < children.length; i += maxItemCount) {\n result.push(\n \n {\n children.slice(i, i + maxItemCount)\n }\n
,\n );\n }\n\n return result;\n }\n return (\n \n {children}\n
\n );\n}\n\nSortByRow.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n maxItemCount: PropTypes.number.isRequired,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]).isRequired,\n};\n\nSortByRow.defaultProps = {\n className: '',\n};\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport SortByRow from '../../SortByRow';\n\nexport default class EmojiListItems extends Component {\n constructor(props) {\n super(props);\n this.reactionRef = React.createRef();\n this.state = {\n reactionStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getBarPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-reactions--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-reactions--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { reactionRef } = this;\n const handleClickOutside = (event) => {\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getBarPosition = () => {\n const {\n parentRef,\n spaceFromTrigger,\n } = this.props;\n const spaceFromTriggerX = spaceFromTrigger.x || 0;\n const spaceFromTriggerY = spaceFromTrigger.y || 0;\n\n const parentRect = parentRef.current.getBoundingClientRect();\n\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n\n const reactionStyle = {\n top: y,\n left: x,\n };\n\n if (!this.reactionRef.current) return reactionStyle;\n const rect = this.reactionRef.current.getBoundingClientRect();\n // const childRect = this.reactionRef.current.children[0].getBoundingClientRect();\n\n if (reactionStyle.top < rect.height) {\n reactionStyle.top += parentRect.height;\n reactionStyle.top += spaceFromTriggerY;\n } else {\n reactionStyle.top -= rect.height;\n reactionStyle.top -= spaceFromTriggerY;\n }\n\n reactionStyle.left -= (rect.width / 2);\n reactionStyle.left += (parentRect.height / 2) - 2;\n reactionStyle.left += spaceFromTriggerX;\n\n const maximumLeft = (window.innerWidth - rect.width);\n if (maximumLeft < reactionStyle.left) {\n reactionStyle.left = maximumLeft;\n }\n if (reactionStyle.left < 0) {\n reactionStyle.left = 0;\n }\n\n return this.setState({ reactionStyle });\n }\n\n render() {\n const { reactionStyle } = this.state;\n const { children } = this.props;\n return (\n createPortal(\n <>\n
\n \n \n {children}\n \n \n ,\n document.getElementById('sendbird-emoji-list-portal'),\n )\n );\n }\n}\nEmojiListItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n spaceFromTrigger: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n};\nEmojiListItems.defaultProps = {\n spaceFromTrigger: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport MenuItems_ from './items/MenuItems';\nimport EmojiListItems_ from './items/EmojiListItems';\n\nconst ENTER = 13;\n\nexport const MenuItems = MenuItems_;\nexport const EmojiListItems = EmojiListItems_;\n\nexport const MenuItem = ({ children, onClick, className }) => {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n {\n if (e.keyCode === ENTER) {\n onClick(e);\n }\n }}\n role=\"menuitem\"\n >\n \n {children}\n \n \n );\n};\n\nMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n};\n\nMenuItem.defaultProps = {\n className: '',\n};\n\nexport const MenuRoot = () => (\n
\n);\n\nexport const EmojiReactionListRoot = () => (\n
\n);\n\nexport default function ContextMenu({ menuTrigger, menuItems }) {\n const [showMenu, setShowMenu] = useState(false);\n\n return (\n
\n {menuTrigger(() => setShowMenu(!showMenu))}\n {showMenu && menuItems(() => setShowMenu(false))}\n
\n );\n}\n\nContextMenu.propTypes = {\n menuTrigger: PropTypes.func.isRequired,\n menuItems: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes } from '../Icon';\n\nexport default function Loader({\n children,\n className,\n width,\n height,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nLoader.propTypes = {\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nLoader.defaultProps = {\n children: ,\n className: '',\n width: '26px',\n height: '26px',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Loader from '../Loader';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport _PlaceHolderTypes from './type';\n\nexport const PlaceHolderTypes = _PlaceHolderTypes;\n\nexport default function PlaceHolder({\n className,\n type,\n retryToConnect,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n {\n type === PlaceHolderTypes.LOADING\n ? (\n \n \n \n )\n : null\n }\n {\n type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG\n ? (\n
\n {\n type === PlaceHolderTypes.NO_CHANNELS && (\n \n )\n }\n {\n type === PlaceHolderTypes.WRONG && (\n \n )\n }\n \n {\n retryToConnect\n ? (\n \n \n \n
\n )\n : null\n }\n
\n )\n : null\n }\n
\n );\n}\n\nPlaceHolder.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(PlaceHolderTypes)),\n PropTypes.string,\n ]).isRequired,\n retryToConnect: PropTypes.func,\n};\n\nPlaceHolder.defaultProps = {\n className: '',\n retryToConnect: null,\n};\n"],"names":["UserProfileContext","React","createContext","disableUserProfile","isOpenChannel","renderUserProfile","UserProfileProvider","props","children","className","propTypes","PropTypes","oneOfType","element","arrayOf","any","isRequired","bool","func","string","defaultProps","ImageRenderer","alt","url","width","height","defaultComponent","circle","injectingClassName","Array","isArray","unshift","useState","realElement","setRealElement","useEffect","join","backgroundRepeat","backgroundPosition","backgroundSize","backgroundImage","borderRadius","number","ADD","ATTACH","ARROW_LEFT","AVATAR_DARK","AVATAR_LIGHT","AVATAR_NO_IMAGE","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","BROADCAST_DARK","BROADCAST_LIGHT","BROADCAST","FROZEN_DARK","FROZEN_LIGHT","CAMERA","MORE","MUTE","NO_THUMBNAIL","CHECKBOX","CHECKBOX_OFF","CLOSE","COPY","CHAT","CREATE","DELETE","DISCONNECTED","DUMMY","EDIT","ERROR","ERROR_FILLED","EMOJI_FAILED","EMOJI_REACTIONS_ADD","EMOJI_REACTIONS_ADD_GRAY","DELIVERED","DOCUMENT","DOWNLOAD","FILE_AUDIO","FILE_DOCUMENT","GIF","INFO","LEAVE","MEMBERS","NOTIFICATIONS","PHOTO","PLAY","PLUS","READ","REFRESH","SEND","SENT","SUPER_GROUP","SHEVRON","SHEVRON_DOWN","SPINNER","SPINNER_LARGE","USER","ICON_OPERATOR","ICON_BANNED","ICON_FREEZE","ICON_MUTED","ICON_MUTED_FG","TOGGLE_ON","TOGGLE_OFF","Colors","DEFAULT","PRIMARY","SECONDARY","CONTENT","CONTENT_INVERSE","WHITE","ON_BACKGROUND_2","ON_BACKGROUND_3","BACKGROUND_3","changeColorToClassName","color","changeTypeToIconComponent","type","Type","IconAdd","IconArrowLeft","IconCamera","IconAttach","IconAvatarDark","IconAvatarLight","IconAvatarNoImage","BroadcastLargeDark","BroadcastLargeLight","BroadcastDark","BroadcastLight","Broadcast","FrozenDark","FrozenLight","IconMore","IconMute","IconNoThumbnail","IconCheckbox","IconCheckboxOff","IconClose","IconCopy","IconChat","IconSupergroup","IconCreate","IconDelete","IconDisconnected","IconDummy","IconEdit","IconError","IconErrorFilled","IconEmojiFailed","IconEmojiReactionsAdd","IconEmojiReactionsAddGray","IconDelivered","IconDocument","IconDownload","IconFileAudio","IconFileDocument","IconGif","IconInfo","IconLeave","IconMembers","IconNotifications","IconPhoto","IconPlay","IconPlus","IconRead","IconRefresh","IconSend","IconSent","IconShevron","IconShevronDown","IconSpinner","IconSpinnerLarge","IconUser","IconOperator","IconBanned","IconMuted","IconMutedFg","IconFreeze","ToggleOn","ToggleOff","Icon","onClick","fillColor","iconStyle","minWidth","minHeight","oneOf","Object","keys","IconTypes","IconColors","imageRendererClassName","_a","document","querySelector","AvatarInner","_b","src","_c","length","slice","map","i","uuidv4","Avatar","ref","_d","_e","_f","__spreadArrays","forwardRef","Typography","H_1","H_2","SUBTITLE_1","SUBTITLE_2","BODY_1","BODY_2","BUTTON_1","BUTTON_2","CAPTION_1","CAPTION_2","CAPTION_3","ONBACKGROUND_1","ONBACKGROUND_2","ONBACKGROUND_3","ONCONTENT_1","ONCONTENT_2","SECONDARY_3","changeTypographyToClassName","CLASS_NAME","Label","push","LabelTypography","LabelColors","LabelStringSet","getStringSet","IconButton","disabled","onBlur","style","pressed","setPressed","e","shape","MODAL_ROOT","DANGER","DISABLED","Size","BIG","SMALL","changeTypeToClassName","changeSizeToClassName","size","Button","injectingClassNames","ModalHeader","titleText","ModalBody","ModalFooter","onSubmit","onCancel","submitText","useContext","LocalizationContext","stringSet","ButtonTypes","BUTTON__CANCEL","Modal","hideFooter","createPortal","getElementById","ONBACKGROUND_4","TextButton","notUnderline","Types","LOADING","NO_CHANNELS","WRONG","SEND_MESSAGE_START","SEND_USER_MESSAGE","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","DELETE_MESSAGE","LEAVE_CHANNEL","CREATE_CHANNEL","getSdk","store","stores","sdkStore","sdk","getPubSub","config","pubSub","getConnect","userId","accessToken","Promise","resolve","reject","Error","connect","then","res","catch","err","getDisconnect","disconnect","getUpdateUserInfo","nickName","profileUrl","updateCurrentUserInfo","getSendUserMessage","channelUrl","userMessageParams","pubsub","GroupChannel","getChannel","channel","promisify","pendingMsg","pendingPromise","resolve_","reject_","sendUserMessage","swapParams","getErrorFirstCallback","message","error","publish","topics","get","getSendFileMessage","fileMessageParams","sendFileMessage","file","localUrl","URL","createObjectURL","fileUrl","requestState","getUpdateUserMessage","messageId","params","updateUserMessage","fromSelector","getDeleteMessage","deleteMessage","getResendUserMessage","failedMessage","resendUserMessage","getResendFileMessage","resendFileMessage","getCreateChannel","createChannel","getLeaveChannel","leave","getFreezeChannel","freeze","getUnFreezeChannel","unfreeze","UserProfile","user","currentUserId","logger","disableMessaging","onSuccess","nickname","NO_NAME","GroupChannelParams","isDistinct","addUserIds","groupChannel","info","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","mapStoreToProps","ConnectedUserProfile","withSendbirdContext","MenuItems","parentContainRef","current","classList","add","remove","closeDropdown","menuRef","handleClickOutside","event","contains","target","setState","addEventListener","state","removeEventListener","parentRef","openLeft","parentRect","getBoundingClientRect","x","left","y","top","menuStyle","window","innerWidth","innerHeight","rect","padding","Number","isNaN","createRef","setupEvents","getMenuPosition","showParent","cleanUpEvents","hideParent","display","position","Math","round","Component","instanceOf","Element","componentClassName","SortByRow","maxItemCount","itemWidth","itemHeight","result","EmojiListItems","reactionRef","spaceFromTrigger","spaceFromTriggerX","spaceFromTriggerY","reactionStyle","maximumLeft","getBarPosition","ENTER","MenuItems_","EmojiListItems_","MenuItem","keyCode","ContextMenu","menuTrigger","menuItems","showMenu","setShowMenu","Loader","PlaceHolderTypes","_PlaceHolderTypes","PlaceHolder","retryToConnect","PLACE_HOLDER__NO_CHANNEL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqEA,IAAMC,MAAM,GAAG;AACbC,EAAAA,OAAO,EAAE,SADI;AAEbC,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"} \ No newline at end of file diff --git a/dist/cjs/index-95b18747.js.map b/dist/cjs/index-95b18747.js.map deleted file mode 100644 index 1c09478..0000000 --- a/dist/cjs/index-95b18747.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-1cf7b066.js","sources":["../../../src/ui/FileViewer/types.js","../../../src/utils/compareIds.js","../../../src/ui/DateSeparator/index.jsx","../../../src/ui/MessageInput/index.jsx","../../../src/ui/FileViewer/index.jsx","../../../src/ui/LinkLabel/index.jsx"],"sourcesContent":["// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const isImage = (type) => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type) => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const unSupported = (type) => !(isImage(type) || isVideo(type));\n\nexport default SUPPORTED_MIMES;\n","const isEmpty = (val) => (val === null || val === undefined);\n\n// Some Ids return string and number inconsistently\n// only use to comapre IDs\nexport default function (a, b) {\n if (isEmpty(a) || isEmpty(b)) {\n return false;\n }\n const aString = a.toString();\n const bString = b.toString();\n return aString === bString;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport default function DateSeparator({\n className,\n children,\n separatorColor,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n
\n
{children}
\n
\n
\n );\n}\n\nDateSeparator.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.element,\n ]),\n separatorColor: PropTypes.string,\n};\n\nDateSeparator.defaultProps = {\n className: '',\n children: (\n \n ),\n separatorColor: Colors.ONBACKGROUND_4,\n};\n","import React, {\n useState,\n useRef,\n useEffect,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport IconButton from '../IconButton';\nimport Button from '../Button';\nimport { Type, Size } from '../Button/type';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n// import IconSend from '../../svgs/icon-send.svg';\n// import IconAttach from '../../svgs/icon-attach.svg';\n\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst KeyCode = {\n SHIFT: 16,\n ENTER: 13,\n};\n\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n isEdit,\n disabled,\n value,\n name,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onCancelEdit,\n onStartTyping,\n } = props;\n\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [inputValue, setInputValue] = useState(value);\n const [isShiftPressed, setIsShiftPressed] = useState(false);\n\n const setHeight = () => {\n const elem = ref.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n };\n\n // after setHeight called twice, the textarea goes to the initialized\n useEffect(() => {\n setHeight();\n return setHeight;\n }, [inputValue]);\n\n const sendMessage = () => {\n if (inputValue && inputValue.trim().length > 0) {\n const trimmedInputValue = inputValue.trim();\n if (isEdit) {\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n } else {\n onSendMessage(trimmedInputValue);\n setInputValue('');\n }\n }\n };\n\n return (\n \n \n {\n setInputValue(e.target.value);\n onStartTyping();\n }}\n onKeyDown={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(true);\n }\n if (!isShiftPressed && e.keyCode === KeyCode.ENTER) {\n e.preventDefault();\n sendMessage();\n }\n }}\n onKeyUp={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(false);\n }\n }}\n />\n {/* placeholder */}\n {!inputValue && (\n \n {placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER}\n \n )}\n {/* send icon */}\n {\n (!isEdit && inputValue && inputValue.trim().length > 0) && (\n \n \n \n )\n }\n {/* upload icon */}\n {\n (!isEdit && !inputValue && !(inputValue.trim().length > 0)) && (\n {\n // todo: clear previous input\n fileInputRef.current.click();\n }}\n >\n \n \n \n )\n }\n
\n {/* Edit */}\n {\n isEdit && (\n
\n \n {stringSet.BUTTON__CANCEL}\n \n {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n }\n }}\n >\n {stringSet.BUTTON__SAVE}\n \n
\n )\n }\n \n );\n});\n\nMessageInput.propTypes = {\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isEdit: PropTypes.bool,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n value: PropTypes.string,\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n value: '',\n onSendMessage: noop,\n name: 'sendbird-message-input',\n isEdit: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n};\n\nexport default MessageInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes } from '../Icon';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, unSupported } from './types';\n\nexport const FileViewerComponent = ({\n profileUrl,\n nickname,\n type,\n url,\n name,\n onClose,\n onDelete,\n isByMe,\n}) => (\n
\n
\n
\n
\n \n
\n \n {name}\n \n \n {nickname}\n \n
\n
\n {\n !unSupported(type) && (\n
\n \n \n \n {\n onDelete && isByMe && (\n
\n \n
\n )\n }\n
\n )\n }\n
\n \n
\n
\n
\n
\n {isVideo(type) && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n \n )}\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n \n
\n )\n }\n
\n
\n);\n\nFileViewerComponent.propTypes = {\n profileUrl: PropTypes.string.isRequired,\n nickname: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewerComponent.defaultProps = {\n isByMe: true,\n};\n\nexport default function FileViewer(props) {\n const {\n onClose,\n message,\n onDelete,\n isByMe,\n } = props;\n const {\n sender,\n type,\n url,\n name = '',\n } = message;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n \n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nFileViewer.propTypes = {\n onClose: PropTypes.func.isRequired,\n message: PropTypes.shape({\n sender: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }),\n type: PropTypes.string,\n url: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewer.defaultProps = {\n isByMe: true,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { changeColorToClassName } from '../Label/utils';\nimport './index.scss';\n\nconst LINK_LABEL = 'sendbird-link-label';\nconst http = /https?:\\/\\//;\n\nexport default function LinkLabel({\n className,\n src,\n type,\n color,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n const url = (http.test(src)) ? src : `http://${src}`;\n\n return (\n \n \n \n );\n}\n\nLinkLabel.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n src: PropTypes.string.isRequired,\n type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired,\n color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired,\n};\n\nLinkLabel.defaultProps = {\n className: '',\n};\n\nexport const LinkLabelTypography = LabelTypography;\nexport const LinkLabelColors = LabelColors;\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","isImage","type","indexOf","isVideo","unSupported","isEmpty","val","undefined","a","b","aString","toString","bString","DateSeparator","className","children","separatorColor","injectingClassName","Array","isArray","React","join","changeColorToClassName","propTypes","PropTypes","oneOfType","string","arrayOf","element","defaultProps","Label","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","Colors","ONBACKGROUND_4","LINE_HEIGHT","noop","KeyCode","SHIFT","ENTER","handleUploadFile","callback","event","target","files","value","MessageInput","forwardRef","props","ref","isEdit","disabled","name","placeholder","maxLength","onFileUpload","onSendMessage","onCancelEdit","onStartTyping","useContext","LocalizationContext","stringSet","fileInputRef","useRef","useState","inputValue","setInputValue","isShiftPressed","setIsShiftPressed","setHeight","elem","current","MAX_HEIGHT","window","document","body","offsetHeight","scrollHeight","style","height","useEffect","sendMessage","trim","length","trimmedInputValue","e","keyCode","preventDefault","BODY_1","ONBACKGROUND_3","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","IconButton","Icon","IconTypes","SEND","IconColors","PRIMARY","click","ATTACH","Button","Type","SECONDARY","Size","SMALL","BUTTON__CANCEL","BUTTON__SAVE","bool","number","func","FileViewerComponent","profileUrl","nickname","url","onClose","onDelete","isByMe","Avatar","H_2","ONBACKGROUND_1","DOWNLOAD","DELETE","CLOSE","H_1","isRequired","FileViewer","message","sender","createPortal","getElementById","MODAL_ROOT","shape","LINK_LABEL","http","LinkLabel","src","color","push","test","oneOf","Object","keys"],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/index-64dcc5d9.js b/dist/cjs/index-994f886d.js similarity index 95% rename from dist/cjs/index-64dcc5d9.js rename to dist/cjs/index-994f886d.js index 26508dd..8545bc7 100644 --- a/dist/cjs/index-64dcc5d9.js +++ b/dist/cjs/index-994f886d.js @@ -4,7 +4,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau var React = require('react'); var React__default = _interopDefault(React); -var index = require('./index-710314fd.js'); +var index = require('./index-49d966e1.js'); var utils = require('./utils-6aedec02.js'); function ChannelAvatar(_a) { @@ -45,4 +45,4 @@ function ChannelAvatar(_a) { } exports.ChannelAvatar = ChannelAvatar; -//# sourceMappingURL=index-64dcc5d9.js.map +//# sourceMappingURL=index-994f886d.js.map diff --git a/dist/cjs/index-64dcc5d9.js.map b/dist/cjs/index-994f886d.js.map similarity index 98% rename from dist/cjs/index-64dcc5d9.js.map rename to dist/cjs/index-994f886d.js.map index b57bd18..d5efd35 100644 --- a/dist/cjs/index-64dcc5d9.js.map +++ b/dist/cjs/index-994f886d.js.map @@ -1 +1 @@ -{"version":3,"file":"index-a199094e.js","sources":["../../../src/ui/ChannelAvatar/index.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes } from '../Icon';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendBird.GroupChannel;\n userId: string;\n theme: string;\n height?: number,\n width?: number,\n}\n\nfunction ChannelAvatar({\n channel,\n userId,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { isBroadcast } = channel;\n const memoizedAvatar = useMemo(() => (\n isBroadcast\n ? (\n utils.useDefaultAvatar(channel)\n ? (\n theme === 'dark'\n ? (\n \n )\n : (\n \n )\n )\n : (\n \n )\n )\n : (\n \n )\n ),[channel.members, channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n"],"names":["ChannelAvatar","_a","channel","userId","theme","_b","height","_c","width","isBroadcast","memoizedAvatar","useMemo","utils","React","Icon","IconTypes","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","Avatar","name","members","coverUrl"],"mappings":";;;;;;;;;AAeA,SAASA,aAAT,CAAuBC,EAAvB;MACEC,OAAO;MACPC,MAAM;MACNC,KAAK;MACLC;MAAAC,MAAM,mBAAG;MACTC;MAAAC,KAAK,mBAAG;AAEA,MAAAC,WAAW,GAAKP,OAAO,YAAvB;AACR,MAAMQ,cAAc,GAAGC,aAAO,CAAC;AAAM,WACnCF,WAAW,GAEPG,sBAAA,CAAuBV,OAAvB,IAEIE,KAAK,KAAK,MAAV,GAEIS,6BAACC,UAAD;AACE,MAAA,IAAI,EAAEC,eAAS,CAACC,oBADlB;AAEE,MAAA,KAAK,EAAER,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAFJ,GAUIO,6BAACC,UAAD;AACE,MAAA,IAAI,EAAEC,eAAS,CAACE,qBADlB;AAEE,MAAA,KAAK,EAAET,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAZR,GAqBIO,6BAACK,YAAD;AACE,MAAA,SAAS,EAAC,iDADZ;AAEE,MAAA,GAAG,EAAEN,4BAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAEK,KAHT;AAIE,MAAA,MAAM,EAAEF,MAJV;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACiB;AALf,MAvBG,GAiCPN,6BAACK,YAAD;AACE,MAAA,SAAS,EAAC,6CADZ;AAEE,MAAA,GAAG,EAAEN,4BAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAKK,KAAK,OAHjB;AAIE,MAAA,MAAM,EAAKF,MAAM,OAJnB;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACiB;AALf,MAlC+B;AA0CpC,GA1C6B,EA0C5B,CAACjB,OAAO,CAACkB,OAAT,EAAkBlB,OAAO,CAACmB,QAA1B,EAAoCjB,KAApC,CA1C4B,CAA9B;AA2CA,SACES,4DAAIH,cAAJ,CADF;AAGD;;;;"} \ No newline at end of file +{"version":3,"file":"index-aebda3d2.js","sources":["../../../src/ui/ChannelAvatar/index.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes } from '../Icon';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendBird.GroupChannel;\n userId: string;\n theme: string;\n height?: number,\n width?: number,\n}\n\nfunction ChannelAvatar({\n channel,\n userId,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { isBroadcast } = channel;\n const memoizedAvatar = useMemo(() => (\n isBroadcast\n ? (\n utils.useDefaultAvatar(channel)\n ? (\n theme === 'dark'\n ? (\n \n )\n : (\n \n )\n )\n : (\n \n )\n )\n : (\n \n )\n ),[channel.members, channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n"],"names":["ChannelAvatar","_a","channel","userId","theme","_b","height","_c","width","isBroadcast","memoizedAvatar","useMemo","utils","React","Icon","IconTypes","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","Avatar","name","members","coverUrl"],"mappings":";;;;;;;;;AAeA,SAASA,aAAT,CAAuBC,EAAvB;MACEC,OAAO;MACPC,MAAM;MACNC,KAAK;MACLC;MAAAC,MAAM,mBAAG;MACTC;MAAAC,KAAK,mBAAG;AAEA,MAAAC,WAAW,GAAKP,OAAO,YAAvB;AACR,MAAMQ,cAAc,GAAGC,aAAO,CAAC;AAAM,WACnCF,WAAW,GAEPG,sBAAA,CAAuBV,OAAvB,IAEIE,KAAK,KAAK,MAAV,GAEIS,6BAACC,UAAD;AACE,MAAA,IAAI,EAAEC,eAAS,CAACC,oBADlB;AAEE,MAAA,KAAK,EAAER,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAFJ,GAUIO,6BAACC,UAAD;AACE,MAAA,IAAI,EAAEC,eAAS,CAACE,qBADlB;AAEE,MAAA,KAAK,EAAET,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAZR,GAqBIO,6BAACK,YAAD;AACE,MAAA,SAAS,EAAC,iDADZ;AAEE,MAAA,GAAG,EAAEN,4BAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAEK,KAHT;AAIE,MAAA,MAAM,EAAEF,MAJV;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACiB;AALf,MAvBG,GAiCPN,6BAACK,YAAD;AACE,MAAA,SAAS,EAAC,6CADZ;AAEE,MAAA,GAAG,EAAEN,4BAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAKK,KAAK,OAHjB;AAIE,MAAA,MAAM,EAAKF,MAAM,OAJnB;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACiB;AALf,MAlC+B;AA0CpC,GA1C6B,EA0C5B,CAACjB,OAAO,CAACkB,OAAT,EAAkBlB,OAAO,CAACmB,QAA1B,EAAoCjB,KAApC,CA1C4B,CAA9B;AA2CA,SACES,4DAAIH,cAAJ,CADF;AAGD;;;;"} \ No newline at end of file diff --git a/dist/cjs/index.js b/dist/cjs/index.js index a60907e..0d29315 100644 --- a/dist/cjs/index.js +++ b/dist/cjs/index.js @@ -9,25 +9,25 @@ require('prop-types'); require('sendbird'); require('./actionTypes-920b541f.js'); require('css-vars-ponyfill'); -var index$1 = require('./index-710314fd.js'); +var index$1 = require('./index-49d966e1.js'); var ChannelList = require('./ChannelList.js'); require('./utils-6aedec02.js'); -require('./index-64dcc5d9.js'); -require('./LeaveChannel-cb2a36b0.js'); +require('./index-994f886d.js'); +require('./LeaveChannel-4cf3cd9c.js'); require('date-fns/isToday'); require('date-fns/format'); require('date-fns/isYesterday'); require('./type-c7a3bee7.js'); require('./utils-a8277ca2.js'); require('react-dom'); -require('./index-6ca9e95e.js'); +require('./index-21269166.js'); var Channel = require('./Channel.js'); -require('./index-95b18747.js'); +require('./index-6e58a4a2.js'); require('date-fns/isSameDay'); require('./utils-c8e36c68.js'); require('date-fns/formatDistanceToNowStrict'); var ChannelSettings = require('./ChannelSettings.js'); -require('./index-c4d028d8.js'); +require('./index-63161cb1.js'); var App = require('./App.js'); var OpenChannel = require('./OpenChannel.js'); var OpenChannelSettings = require('./OpenChannelSettings.js'); diff --git a/dist/esm/App.js b/dist/esm/App.js index 771fd84..bedc61c 100644 --- a/dist/esm/App.js +++ b/dist/esm/App.js @@ -5,25 +5,25 @@ import PropTypes from 'prop-types'; import 'sendbird'; import './actionTypes-a85c0eaa.js'; import 'css-vars-ponyfill'; -import './index-0c67ae90.js'; +import './index-ec3bf9fe.js'; import ChannelList from './ChannelList.js'; import './utils-53ba1773.js'; -import './index-a199094e.js'; -import './LeaveChannel-fcc0bfc3.js'; +import './index-aebda3d2.js'; +import './LeaveChannel-da8b5d0b.js'; import 'date-fns/isToday'; import 'date-fns/format'; import 'date-fns/isYesterday'; import './type-0296584d.js'; import './utils-cfdeb084.js'; import 'react-dom'; -import './index-73379213.js'; +import './index-aa89d60a.js'; import Conversation from './Channel.js'; -import './index-1cf7b066.js'; +import './index-19f570c9.js'; import 'date-fns/isSameDay'; import './utils-d7f59026.js'; import 'date-fns/formatDistanceToNowStrict'; import ChannelSettings from './ChannelSettings.js'; -import './index-7bc4a9f7.js'; +import './index-8abf69b8.js'; function App(props) { var appId = props.appId, diff --git a/dist/esm/Channel.js b/dist/esm/Channel.js index f0938c9..eb784c2 100644 --- a/dist/esm/Channel.js +++ b/dist/esm/Channel.js @@ -1,14 +1,14 @@ import { c as _toConsumableArray, a as _objectSpread2, u as uuidv4$1, l as _defineProperty, b as _slicedToArray, e as LocalizationContext, f as _inherits, h as _createClass, i as _classCallCheck, j as _possibleConstructorReturn, k as _getPrototypeOf, m as _assertThisInitialized, w as withSendbirdContext } from './LocalizationContext-619bafba.js'; import React, { useEffect, useCallback, useRef, useMemo, useState, useContext, Component, useReducer } from 'react'; import PropTypes from 'prop-types'; -import { p as SEND_USER_MESSAGE, S as SEND_MESSAGE_START, q as SEND_FILE_MESSAGE, U as UPDATE_USER_MESSAGE, D as DELETE_MESSAGE, E as EmojiListItems, r as ImageRenderer, I as Icon, a as IconTypes, s as Loader, g as IconColors, b as Label, c as LabelTypography, d as LabelColors, C as ContextMenu, e as IconButton, h as MenuItems, i as MenuItem, n as UserProfileContext, A as Avatar, o as UserProfile, f as TextButton, M as Modal, L as LabelStringSet, P as PlaceHolder, t as PlaceHolderTypes, l as UserProfileProvider } from './index-0c67ae90.js'; +import { p as SEND_USER_MESSAGE, S as SEND_MESSAGE_START, q as SEND_FILE_MESSAGE, U as UPDATE_USER_MESSAGE, D as DELETE_MESSAGE, E as EmojiListItems, r as ImageRenderer, I as Icon, a as IconTypes, s as Loader, g as IconColors, b as Label, c as LabelTypography, d as LabelColors, C as ContextMenu, e as IconButton, h as MenuItems, i as MenuItem, n as UserProfileContext, A as Avatar, o as UserProfile, f as TextButton, M as Modal, L as LabelStringSet, P as PlaceHolder, t as PlaceHolderTypes, l as UserProfileProvider } from './index-ec3bf9fe.js'; import { a as getMessageCreatedAt$4, b as getSenderName$2, c as getSenderProfileUrl$2 } from './utils-53ba1773.js'; -import { C as ChannelAvatar } from './index-a199094e.js'; +import { C as ChannelAvatar } from './index-aebda3d2.js'; import format from 'date-fns/format'; import { M as MessageStatusType } from './type-0296584d.js'; import { t as truncate, g as getIsSentFromStatus$3 } from './utils-cfdeb084.js'; import 'react-dom'; -import { i as isImage, a as isVideo, c as compareIds, u as unSupported, L as LinkLabel, M as MessageInput, D as DateSeparator, F as FileViewer } from './index-1cf7b066.js'; +import { i as isImage, a as isVideo, c as compareIds, u as unSupported, L as LinkLabel, D as DateSeparator, M as MessageInput, F as FileViewer } from './index-19f570c9.js'; import isSameDay from 'date-fns/isSameDay'; import { c as copyToClipboard$1, g as getSenderProfileUrl$1, a as getSenderName$1, b as getMessageCreatedAt$5, d as getIsSentFromStatus$2 } from './utils-d7f59026.js'; import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict'; @@ -4379,7 +4379,9 @@ function MessageHoc(_ref) { emojiAllMap = _ref.emojiAllMap, membersMap = _ref.membersMap, toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems; + memoizedEmojiListItems = _ref.memoizedEmojiListItems, + renderCustomMessage = _ref.renderCustomMessage, + currentGroupChannel = _ref.currentGroupChannel; var _message$sender = message.sender, sender = _message$sender === void 0 ? {} : _message$sender; @@ -4399,8 +4401,26 @@ function MessageHoc(_ref) { setShowFileViewer = _useState6[1]; var editMessageInputRef = useRef(null); + var RenderedMessage = useMemo(function () { + if (renderCustomMessage) { + return renderCustomMessage(message, currentGroupChannel); + } + + return null; + }, [message, message.message, renderCustomMessage]); var isByMe = userId === sender.userId || message.requestState === 'pending' || message.requestState === 'failed'; + if (RenderedMessage) { + return React.createElement("div", { + className: "sendbird-msg-hoc sendbird-msg--scroll-ref" + }, hasSeperator && React.createElement(DateSeparator, null, React.createElement(Label, { + type: LabelTypography.CAPTION_2, + color: LabelColors.ONBACKGROUND_2 + }, format(message.createdAt, 'MMMM dd, yyyy'))), React.createElement(RenderedMessage, { + message: message + })); + } + if (showEdit) { return React.createElement(MessageInput, { isEdit: true, @@ -4531,6 +4551,8 @@ MessageHoc.propTypes = { }), ogMetaData: PropTypes.shape({}) }), + renderCustomMessage: PropTypes.func, + currentGroupChannel: PropTypes.shape, hasSeperator: PropTypes.bool, disabled: PropTypes.bool, editDisabled: PropTypes.bool, @@ -4549,6 +4571,8 @@ MessageHoc.propTypes = { MessageHoc.defaultProps = { userId: '', editDisabled: false, + renderCustomMessage: null, + currentGroupChannel: {}, message: {}, hasSeperator: false, disabled: false, @@ -4638,6 +4662,7 @@ function (_Component) { deleteMessage = _this$props2.deleteMessage, updateMessage = _this$props2.updateMessage, resendMessage = _this$props2.resendMessage, + renderCustomMessage = _this$props2.renderCustomMessage, renderChatItem = _this$props2.renderChatItem, emojiContainer = _this$props2.emojiContainer, toggleReaction = _this$props2.toggleReaction, @@ -4683,11 +4708,13 @@ function (_Component) { } return React.createElement(MessageHoc, { + renderCustomMessage: renderCustomMessage, key: m.messageId || m.reqId, userId: userId, status: readStatus[m.messageId] || getParsedStatus(m, currentGroupChannel) // show status for pending/failed messages , message: m, + currentGroupChannel: currentGroupChannel, disabled: disabled, membersMap: membersMap, chainTop: chainTop, @@ -4732,6 +4759,7 @@ ConversationScroll.propTypes = { members: PropTypes.arrayOf(PropTypes.shape({})) }).isRequired, renderChatItem: PropTypes.element, + renderCustomMessage: PropTypes.func, useReaction: PropTypes.bool, emojiContainer: PropTypes.shape({}), emojiAllMap: PropTypes.instanceOf(Map), @@ -4746,6 +4774,7 @@ ConversationScroll.defaultProps = { disabled: false, initialized: false, userId: '', + renderCustomMessage: null, renderChatItem: null, onScroll: null, useReaction: true, @@ -5122,6 +5151,7 @@ var ConversationPanel = function ConversationPanel(props) { useReaction = props.useReaction, renderChatItem = props.renderChatItem, renderChatHeader = props.renderChatHeader, + renderCustomMessage = props.renderCustomMessage, renderUserProfile = props.renderUserProfile, disableUserProfile = props.disableUserProfile, renderMessageInput = props.renderMessageInput, @@ -5385,6 +5415,7 @@ var ConversationPanel = function ConversationPanel(props) { toggleReaction: toggleReaction, emojiContainer: emojiContainer, renderChatItem: renderChatItem, + renderCustomMessage: renderCustomMessage, useMessageGrouping: useMessageGrouping, messagesDispatcher: messagesDispatcher, currentGroupChannel: currentGroupChannel, @@ -5482,6 +5513,7 @@ ConversationPanel.propTypes = { // onBeforeSendFileMessage(File) onBeforeUpdateUserMessage: PropTypes.func, renderChatItem: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), + renderCustomMessage: PropTypes.func, renderMessageInput: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), renderChatHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), onChatHeaderActionClick: PropTypes.func, @@ -5497,6 +5529,7 @@ ConversationPanel.defaultProps = { onBeforeSendFileMessage: null, onBeforeUpdateUserMessage: null, renderChatItem: null, + renderCustomMessage: null, renderMessageInput: null, renderChatHeader: null, useReaction: true, diff --git a/dist/esm/Channel.js.map b/dist/esm/Channel.js.map index 9db651b..b9ab7d8 100644 --- a/dist/esm/Channel.js.map +++ b/dist/esm/Channel.js.map @@ -1 +1 @@ -{"version":3,"file":"Channel.js","sources":["../../../src/smart-components/Conversation/dux/actionTypes.js","../../../src/smart-components/Conversation/types.js","../../../src/smart-components/Conversation/utils.js","../../../src/smart-components/Conversation/dux/initialState.js","../../../src/smart-components/Conversation/dux/reducers.js","../../../src/smart-components/Conversation/hooks/useHandleChannelEvents.js","../../../src/smart-components/Conversation/hooks/useGetChannel.js","../../../src/smart-components/Conversation/hooks/useInitialMessagesFetch.js","../../../src/smart-components/Conversation/hooks/useHandleReconnect.js","../../../src/smart-components/Conversation/hooks/useScrollCallback.js","../../../src/smart-components/Conversation/hooks/useDeleteMessageCallback.js","../../../src/smart-components/Conversation/hooks/useUpdateMessageCallback.js","../../../src/smart-components/Conversation/hooks/useResendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendFileMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSetReadStatus.js","../../../src/ui/ReactionButton/index.jsx","../../../src/smart-components/Conversation/hooks/useMemoizedEmojiListItems.jsx","../../../src/smart-components/Conversation/hooks/useToggleReactionCallback.js","../../../src/ui/MessageStatus/index.jsx","../../../src/ui/ReactionBadge/index.jsx","../../../src/ui/Tooltip/index.jsx","../../../src/ui/TooltipWrapper/index.jsx","../../../src/ui/EmojiReactions/index.jsx","../../../src/ui/Message/memoizedMessageText.jsx","../../../src/hooks/onMouseHover.jsx","../../../src/ui/Message/index.jsx","../../../src/ui/AdminMessage/index.jsx","../../../src/ui/ThumbnailMessage/util.js","../../../src/ui/ThumbnailMessage/index.jsx","../../../src/ui/FileMessage/index.jsx","../../../src/smart-components/Conversation/components/RemoveMessage.jsx","../../../src/ui/UnknownMessage/utils.js","../../../src/ui/UnknownMessage/index.jsx","../../../src/ui/OGMessage/const.js","../../../src/ui/OGMessage/utils.js","../../../src/ui/OGMessage/memoizedMessageText.jsx","../../../src/ui/OGMessage/index.jsx","../../../src/smart-components/Conversation/components/MessageHOC.jsx","../../../src/smart-components/Conversation/components/ConversationScroll.jsx","../../../src/smart-components/Conversation/components/Notification.jsx","../../../src/smart-components/Conversation/components/FrozenNotification.tsx","../../../src/smart-components/Conversation/components/TypingIndicator.jsx","../../../src/smart-components/Conversation/components/MessageInputWrapper.tsx","../../../src/ui/ConnectionStatus/index.jsx","../../../src/ui/ChatHeader/utils.js","../../../src/ui/AutoRefresh/index.jsx","../../../src/ui/ChatHeader/index.jsx","../../../src/smart-components/Conversation/index.jsx"],"sourcesContent":["export const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const RESET_STATE = 'RESET_STATE';\nexport const CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAILURE = 'GET_PREV_MESSAGES_FAILURE';\n\nexport const SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';\nexport const SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';\nexport const SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';\n\nexport const RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';\n\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\n\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const SET_READ_STATUS = 'SET_READ_STATUS';\n","import { isImage, isVideo } from '../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message) => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if ((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return '';\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../../ui/MessageStatus/type';\nimport * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nimport { SendingMessageStatus } from './types';\n\nconst UNDEFINED = 'undefined';\nconst { SUCCEEDED, FAILED, PENDING } = SendingMessageStatus;\n\nexport const scrollIntoLast = (selector, intialTry = 0) => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (channelUrl, pubSub, dispatcher) => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) return subscriber;\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return subscriber;\n};\n\nexport const getParsedStatus = (message, currentGroupChannel) => {\n if (message.requestState === FAILED) {\n return MessageStatusType.FAILED;\n }\n\n if (message.requestState === PENDING) {\n return MessageStatusType.PENDING;\n }\n\n if (message.requestState === SUCCEEDED) {\n if (!currentGroupChannel) {\n return MessageStatusType.SENT;\n }\n\n const unreadCount = currentGroupChannel.getReadReceipt(message);\n if (unreadCount === 0) {\n return MessageStatusType.READ;\n }\n\n const isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0;\n if (isDelivered) {\n return MessageStatusType.DELIVERED;\n }\n\n return MessageStatusType.SENT;\n }\n\n return null;\n};\n\nexport const isOperator = (groupChannel = {}) => {\n const { myRole } = groupChannel;\n return myRole === 'operator';\n};\n\nexport const isDisabledBecauseFrozen = (groupChannel = {}) => {\n const { isFrozen } = groupChannel;\n return isFrozen && !isOperator(groupChannel);\n};\n\nexport const isDisabledBecauseMuted = (groupChannel = {}) => {\n const { myMutedState } = groupChannel;\n return myMutedState === 'muted';\n};\n\nexport const getEmojiCategoriesFromEmojiContainer = (emojiContainer = {}) => (\n emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []\n);\n\nexport const getAllEmojisFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojis = [];\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n allEmojis.push(emojis[emojiIndex]);\n }\n }\n return allEmojis;\n};\n\nexport const getEmojisFromEmojiContainer = (emojiContainer = {}, emojiCategoryId = '') => (\n emojiContainer.emojiCategories\n ? emojiContainer.emojiCategories\n .filter((emojiCategory) => emojiCategory.id === emojiCategoryId)[0].emojis\n : []\n);\n\nexport const getAllEmojisMapFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojisMap = new Map();\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n const { key, url } = emojis[emojiIndex];\n allEmojisMap.set(key, url);\n }\n }\n return allEmojisMap;\n};\n\nexport const getNicknamesMapFromMembers = (members = []) => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const isSameGroup = (message, comparingMessage) => {\n if (\n !message\n || !comparingMessage\n || !message.sender\n || !comparingMessage.sender\n || !message.createdAt\n || !comparingMessage.createdAt\n || !message.sender.userId\n || !comparingMessage.sender.userId\n ) {\n return false;\n }\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage,\n currMessage,\n nextMessage,\n) => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const passUnsuccessfullMessages = (allMessages, newMessage) => {\n const { sendingStatus = UNDEFINED } = newMessage;\n if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) {\n const lastIndexOfSucceededMessage = allMessages\n .map((message) => (\n message.sendingStatus\n || ((message.isAdminMessage && message.isAdminMessage()) ? SUCCEEDED : UNDEFINED)\n ))\n .lastIndexOf(SUCCEEDED);\n if (lastIndexOfSucceededMessage + 1 < allMessages.length) {\n const messages = [...allMessages];\n messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);\n return messages;\n }\n }\n return [\n ...allMessages,\n newMessage,\n ];\n};\n\nexport default getParsedStatus;\n","export default {\n initialized: false,\n loading: false,\n allMessages: [],\n currentGroupChannel: { members: [] },\n hasMore: false,\n lastMessageTimeStamp: 0,\n emojiContainer: {},\n readStatus: {},\n unreadCount: 0,\n unreadSince: null,\n isInvalid: false,\n};\n","import format from 'date-fns/format';\n\nimport * as actionTypes from './actionTypes';\nimport initialState from './initialState';\n\nimport compareIds from '../../../utils/compareIds';\nimport { passUnsuccessfullMessages } from '../utils';\nimport { SendingMessageStatus } from '../types';\n\nconst {\n SUCCEEDED,\n FAILED,\n PENDING,\n} = SendingMessageStatus;\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actionTypes.RESET_STATE:\n return initialState;\n case actionTypes.RESET_MESSAGES:\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMore`\n // the onScroll gets called twice, setting hasMore false prevents this\n hasMore: false,\n allMessages: [],\n };\n case actionTypes.GET_PREV_MESSAGES_START:\n return {\n ...state,\n loading: true,\n };\n case actionTypes.CLEAR_SENT_MESSAGES:\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => (\n m.sendingStatus !== SUCCEEDED\n )),\n ],\n };\n case actionTypes.GET_PREV_MESSAGES_SUCESS: {\n const receivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...action.payload },\n ],\n };\n case actionTypes.SEND_MESSAGEGE_SUCESS: {\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId) ? action.payload : m\n ));\n [...newMessages].sort((a, b) => (\n (\n a.sendingStatus\n && b.sendingStatus\n && a.sendingStatus === SUCCEEDED\n && (\n b.sendingStatus === PENDING\n || b.sendingStatus === FAILED\n )\n ) ? -1 : 1\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SEND_MESSAGEGE_FAILURE: {\n // eslint-disable-next-line no-param-reassign\n action.payload.failed = true;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const { channel, message } = action.payload;\n const { currentGroupChannel = {}, unreadCount, unreadSince } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n if (!compareIds(channel.url, currentGroupChannelUrl)) {\n return state;\n }\n // Excluded overlapping messages\n if (!(state.allMessages.map((msg) => msg.messageId).indexOf(message.messageId) < 0)) {\n return state;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n return {\n ...state,\n unreadCount: unreadCount + 1,\n unreadSince: (unreadCount === 0)\n ? format(new Date(), 'p MMM dd')\n : unreadSince,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.messageId, action.payload.message.messageId)\n ? action.payload.message\n : m\n )),\n };\n case actionTypes.RESEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.MARK_AS_READ:\n return {\n ...state,\n unreadCount: 0,\n unreadSince: null,\n };\n case actionTypes.ON_MESSAGE_DELETED:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n case actionTypes.SET_EMOJI_CONTAINER: {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n }\n case actionTypes.SET_READ_STATUS: {\n return {\n ...state,\n readStatus: action.payload,\n };\n }\n case actionTypes.ON_REACTION_UPDATED: {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n }\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\n\nimport * as messageActions from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\nimport compareIds from '../../../utils/compareIds';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\nfunction useHandleChannelEvents({ currentGroupChannel, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (channelUrl && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n ChannelHandler.onMessageReceived = (channel, message) => {\n if (compareIds(channel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n\n ChannelHandler.onMessageDeleted = (_, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n };\n\n ChannelHandler.onReactionUpdated = (_, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n };\n\n ChannelHandler.onChannelChanged = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelFrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelUnfrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserMuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserUnmuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserBanned = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onOperatorUpdated = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n // Add this channel event handler to the SendBird object.\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [channelUrl, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.GroupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n // this order is important - this mark as read should update the event handler up above\n groupChannel.markAsRead();\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji((emojiContainer_, err) => {\n if (err) {\n logger.error('Channel: Getting emojis failed', err);\n return;\n }\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\nfunction useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams\n && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n });\n }\n }, [channelUrl, userFilledMessageListQuery]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n}) {\n useEffect(() => {\n const wasOffline = !isOnline;\n return () => {\n // state changed from offline to online\n if (wasOffline) {\n logger.info('Refreshing conversation state');\n const { appInfo = {} } = sdk;\n const useReaction = appInfo.isUsingReaction || false;\n\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = useReaction;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n sdk.GroupChannel.getChannel(currentGroupChannel.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.CLEAR_SENT_MESSAGES,\n });\n\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n });\n }\n };\n }, [isOnline]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useScrollCallback({\n currentGroupChannel,\n lastMessageTimeStamp,\n userFilledMessageListQuery,\n}, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMore) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n lastMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMoreMessages = (messages && messages.length > 0);\n const lastMessageTs = hasMoreMessages\n ? messages[0].createdAt\n : null;\n\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore: hasMoreMessages,\n lastMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, lastMessageTimeStamp]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message, cb) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);\n\n // Message is only on local\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (cb) { cb(); }\n return;\n }\n\n // Message is on server\n currentGroupChannel.deleteMessage(message, (err) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);\n if (cb) { cb(err); }\n if (!err) {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n } else {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as topics from '../../../lib/pubSub/topics';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n}, {\n logger,\n pubSub,\n sdk,\n}) {\n return useCallback((messageId, text, cb) => {\n const createParamsDefault = (txt) => {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(text)\n : createParamsDefault(text);\n\n currentGroupChannel.updateUserMessage(messageId, params, (r, e) => {\n logger.info('Channel: Updating message!', params);\n const swapParams = sdk.getErrorFirstCallback();\n let message = r;\n let err = e;\n if (swapParams) {\n message = e;\n err = r;\n }\n if (cb) {\n cb(err, message);\n }\n if (!err) {\n logger.info('Channel: Updating message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentGroupChannel,\n message,\n },\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel: currentGroupChannel,\n },\n );\n } else {\n logger.warning('Channel: Updating message failed!', err);\n }\n });\n }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function'\n && failedMessage.isResendable()\n ) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel\n .resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendMessageCallback({ currentGroupChannel, onBeforeSendUserMessage }, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n () => {\n const text = messageInputRef.current.value;\n const createParamsDefault = (txt) => {\n const message = (typeof txt === 'string') ? txt.trim() : txt;\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefault(text);\n\n logger.info('Channel: Sending message has started', params);\n const pendingMsg = currentGroupChannel.sendUserMessage(params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n if (error) {\n logger.warning('Channel: Sending message failed!', {\n message,\n });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel, onBeforeSendFileMessage,\n}, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((file) => {\n const createParamsDefault = (file_) => {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n };\n\n const createCustomPrams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefault(file);\n\n logger.info('Channel: Uploading file message start!', params);\n const pendingMsg = currentGroupChannel.sendFileMessage(params, (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = response;\n let error = err;\n if (swapParams) {\n message = err;\n error = response;\n }\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', message);\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'), 1000);\n }, [currentGroupChannel, onBeforeSendFileMessage]);\n return [sendMessage];\n}\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\n\nexport default function useSetReadStatus({ allMessages, currentGroupChannel }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (!sdk.ChannelHandler || !currentGroupChannel.url) {\n return () => {};\n }\n // todo: move to reducer?\n const setReadStatus = () => {\n const allReadStatus = allMessages.reduce((accumulator, msg) => {\n if (msg.messageId !== 0) {\n return {\n ...accumulator,\n [msg.messageId]: utils.getParsedStatus(msg, currentGroupChannel),\n };\n }\n return accumulator;\n }, {});\n messagesDispatcher({\n type: messageActionTypes.SET_READ_STATUS,\n payload: allReadStatus,\n });\n };\n if (allMessages.length > 0) {\n setReadStatus();\n }\n\n const channelUrl = currentGroupChannel.url;\n const handler = new sdk.ChannelHandler();\n const handleMessageStatus = (c) => {\n if (channelUrl === c.url) {\n setReadStatus();\n }\n };\n handler.onDeliveryReceiptUpdated = handleMessageStatus;\n handler.onReadReceiptUpdated = handleMessageStatus;\n // Add this channel event handler to the SendBird object.\n const handlerId = uuidv4();\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.addChannelHandler(handlerId, handler);\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.removeChannelHandler(handlerId);\n }\n };\n }, [allMessages, currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst ReactionButton = React.forwardRef((props, ref) => {\n const {\n children,\n width,\n height,\n onClick,\n selected,\n className,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n return (\n onClick(e)}\n role=\"button\"\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n
\n {children}\n
\n
\n );\n});\n\nReactionButton.propTypes = {\n children: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n selected: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nReactionButton.defaultProps = {\n selected: false,\n width: '36px',\n height: '36px',\n onClick: () => { },\n className: '',\n};\n\nexport default ReactionButton;\n","import React, { useMemo } from 'react';\n\nimport { EmojiListItems } from '../../../ui/ContextMenu';\nimport ReactionButton from '../../../ui/ReactionButton';\nimport ImageRenderer from '../../../ui/ImageRenderer';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nexport default function useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n}, {\n useReaction,\n logger,\n userId,\n emojiAllList,\n}) {\n return useMemo(() => ({\n parentRef,\n parentContainRef,\n message,\n closeDropdown,\n spaceFromTrigger = {},\n }) => {\n if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {\n logger.warning('Channel: Invalid Params in memoizedEmojiListItems');\n return null;\n }\n\n return (\n \n {\n emojiAllList.map((emoji) => {\n const reactedReaction = message.reactions\n .filter((reaction) => reaction.key === emoji.key)[0];\n const isReacted = reactedReaction\n ? !(reactedReaction.userIds.indexOf(userId) < 0)\n : false;\n return (\n {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n \n }\n />\n \n );\n })\n }\n \n );\n }, [emojiContainer, toggleReaction]);\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Loader from '../Loader';\nimport MessageStatusType from './type';\n\nimport { getMessageCreatedAt } from '../../utils/utils';\n\nconst MessageStatusTypes = MessageStatusType;\nexport { MessageStatusTypes };\nexport default function MessageStatus({\n message,\n status,\n className,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n const label = () => {\n switch (status) {\n case MessageStatusType.FAILED:\n case MessageStatusType.PENDING: {\n return null;\n }\n case MessageStatusType.SENT:\n case MessageStatusType.DELIVERED:\n case MessageStatusType.READ: {\n return (\n \n {getMessageCreatedAt(message)}\n \n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n \n \n \n ),\n SENT: ,\n DELIVERED: ,\n READ: ,\n FAILED: ,\n };\n\n return (\n
\n {icon[status]}\n
\n {label(status)}\n
\n );\n}\n\nMessageStatus.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nMessageStatus.defaultProps = {\n message: null,\n status: '',\n className: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst ReactionBadge = React.forwardRef((props, ref) => {\n const {\n className,\n children,\n count,\n selected,\n isAdd,\n onClick,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (selected && !isAdd) {\n injectingClassName.unshift('sendbird-reaction-badge--selected');\n } else if (isAdd) {\n injectingClassName.push('sendbird-reaction-badge--is-add');\n } else {\n injectingClassName.unshift('sendbird-reaction-badge');\n }\n\n return (\n \n
\n
\n {children}\n
\n \n
\n
\n );\n});\n\nReactionBadge.propTypes = {\n children: PropTypes.element.isRequired,\n count: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isAdd: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nReactionBadge.defaultProps = {\n className: '',\n count: '',\n selected: false,\n isAdd: false,\n onClick: () => { },\n};\n\nexport default ReactionBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label from '../Label';\n\nconst CLASS_NAME = 'sendbird-tooltip';\n\nexport default function Tooltip({\n className,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n
\n \n {children}\n \n
\n );\n}\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n};\n\nTooltip.defaultProps = {\n className: '',\n children: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-tooltip-wrapper';\nconst SPACE_FROM_TRIGGER = 8;\n\nexport default function TooltipWrapper({\n className,\n children,\n hoverTooltip,\n // clickTooltip can be added later\n}) {\n const injectingClassName = Array.isArray(className)\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n const [showHoverTooltip, setShowHoverTooltip] = useState(false);\n const childrenRef = useRef(null);\n\n return (\n { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n \n {children}\n \n {\n showHoverTooltip && (\n \n \n \n {hoverTooltip}\n \n \n \n )\n }\n \n );\n}\n\nTooltipWrapper.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n hoverTooltip: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n};\nTooltipWrapper.defaultProps = {\n className: '',\n};\n","import React, { useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ReactionBadge from '../ReactionBadge';\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ContextMenu from '../ContextMenu';\nimport Tooltip from '../Tooltip';\nimport TooltipWrapper from '../TooltipWrapper';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function EmojiReactions({\n className,\n userId,\n message,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-emoji-reactions');\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const imageWidth = '20px';\n const imageHeight = '20px';\n const emojiReactionAddRef = useRef(null);\n const { reactions = [] } = message;\n const messageReactions = reactions;\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n {\n messageReactions && (\n messageReactions.map((reaction) => {\n const { userIds = [] } = reaction;\n const emojiUrl = emojiAllMap.get(reaction.key) || '';\n const reactedUserCount = userIds.length;\n const reactedByMe = !(userIds.indexOf(userId) < 0);\n const nicknames = userIds\n .filter((currentUserId) => currentUserId !== userId)\n .map((currentUserId) => (\n membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER\n ));\n const stringSetForMe = (nicknames.length > 0)\n ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU;\n return (\n 0 && (\n \n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n \n \n )\n }\n >\n toggleReaction(message, reaction.key, reactedByMe)}\n >\n \n )}\n />\n \n \n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n );\n}\n\nEmojiReactions.propTypes = {\n userId: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n message: PropTypes.shape({\n reactions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\nEmojiReactions.defaultProps = {\n className: '',\n membersMap: new Map(),\n userId: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport uuidv4 from '../../utils/uuid';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(/\\r/);\n const matchedMessage = splitMessage\n .map((word) => (word !== '' ? word :
));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import { useEffect } from 'react';\n\nconst MOUSE_ENTER = 'mouseenter';\nconst MOUSE_LEAVE = 'mouseleave';\n\nconst useMouseHover = ({\n ref,\n setHover,\n}) => {\n const handleMouseOver = () => {\n if (ref.current) {\n setHover(true);\n }\n };\n const handleMouseOut = () => {\n if (ref.current) {\n setHover(false);\n }\n };\n\n useEffect(() => {\n const { current } = ref;\n current.addEventListener(MOUSE_ENTER, handleMouseOver);\n current.addEventListener(MOUSE_LEAVE, handleMouseOut);\n return () => {\n current.removeEventListener(MOUSE_ENTER, handleMouseOver);\n current.removeEventListener(MOUSE_LEAVE, handleMouseOut);\n };\n });\n};\n\nexport default useMouseHover;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport UserProfile from '../UserProfile';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport MessageStatus from '../MessageStatus';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n} from './utils';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function Message(props) {\n const {\n isByMe,\n userId,\n message,\n className,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n } = props;\n\n if (!message) return null;\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n injectingClassName.push(`sendbird-message${isByMe ? '--outgoing' : '--incoming'}`);\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-user-message-word',\n });\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nMessage.propTypes = {\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showEdit: PropTypes.func,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n userId: '',\n resendMessage: noop,\n className: '',\n showEdit: noop,\n showRemove: noop,\n status: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUserMessage({\n userId,\n message,\n showEdit,\n disabled,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n \n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n { showRemove(true); }}\n // onResend={() => resendMessage(message)}\n // duplicated and should replace to more\n />\n
\n )\n }\n
\n
\n
\n
\n \n \n \n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n \n \n );\n}\n\nfunction IncomingUserMessage({\n userId,\n message,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n // showProfile && ()\n }\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-user-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n
\n \n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n
\n
\n
\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nIncomingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingUserMessage.defaultProps = {\n message: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nOutgoingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n disabled: PropTypes.bool,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUserMessage.defaultProps = {\n message: {},\n resendMessage: noop,\n showEdit: noop,\n showRemove: noop,\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function AdminMessage({\n className,\n message,\n}) {\n if (!message.messageType || message.messageType !== 'admin') { // change to use message.isAdminMessage()\n return null;\n }\n\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n \n
\n );\n}\n\nAdminMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nAdminMessage.defaultProps = {\n message: {},\n className: '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n getMessageCreatedAt,\n getIsSentFromStatus,\n};\n","import React, { useContext, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport {\n getMessageCreatedAt,\n getIsSentFromStatus,\n} from './util';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n isImage,\n isVideo,\n unSupported,\n} from '../FileViewer/types';\nimport {\n getSenderName,\n getSenderProfileUrl,\n} from '../../utils/utils';\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst noop = () => { };\n\nconst OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message';\nconst INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function ThumbnailMessage({\n message = {},\n userId,\n disabled,\n isByMe,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n return (\n isByMe\n ? (\n \n )\n : (\n \n )\n );\n}\n\nexport function OutgoingThumbnailMessage({\n message = {},\n userId,\n disabled,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n isMessageSent && showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n )\n }\n
\n
\n \n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n role=\"button\"\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n \n \n \n );\n}\n\nexport function IncomingThumbnailMessage({\n message = {},\n userId,\n onClick,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const reactionAddRef = useRef(null);\n const avatarRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n !chainTop && (\n \n {getSenderName(message) || ''}\n \n )\n }\n
\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_THUMBNAIL_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string,\n resendMessage: PropTypes.func,\n status: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n showRemove: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\nThumbnailMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n resendMessage: noop,\n onClick: noop,\n showRemove: noop,\n status: '',\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nOutgoingThumbnailMessage.defaultProps = {\n status: '',\n};\n\nIncomingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nIncomingThumbnailMessage.defaultProps = {\n status: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\n\nimport { getSenderProfileUrl, getSenderName, getMessageCreatedAt } from '../../utils/utils';\nimport {\n truncate,\n getIsSentFromStatus,\n} from './utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst MAX_TRUNCATE_LENGTH = 40;\nconst GROUPAING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\nconst noop = () => { };\n\nfunction checkFileType(fileUrl) {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport function OutgoingFileMessage({\n message,\n userId,\n status,\n showRemove,\n disabled,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n url,\n } = message;\n const openFileUrl = () => { window.open(url); };\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n const showEmojiReactions = isMessageSent && useReaction && message.reactions\n && (message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n {\n checkFileType(url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n \n \n );\n}\n\nexport function IncomingFileMessage({\n message,\n userId,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const openFileUrl = () => { window.open(message.url); };\n const messageRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-file-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n {\n checkFileType(message.url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n \n )\n }\n
\n
\n
\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n \n \n );\n}\n\nOutgoingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingFileMessage.defaultProps = {\n status: '',\n showRemove: noop,\n resendMessage: noop,\n message: {},\n userId: '',\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nIncomingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingFileMessage.defaultProps = {\n message: {},\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nconst MessageSwitch = ({\n message,\n userId,\n disabled,\n isByMe,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) => (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n);\n\n\nMessageSwitch.propTypes = {\n message: PropTypes.shape({}),\n userId: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessageSwitch.defaultProps = {\n message: {},\n isByMe: false,\n disabled: false,\n showRemove: noop,\n resendMessage: noop,\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nexport default MessageSwitch;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nconst RemoveMessage = (props) => {\n const {\n onCloseModal,\n onDeleteMessage,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n );\n};\n\nRemoveMessage.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onDeleteMessage: PropTypes.func.isRequired,\n};\n\nexport default RemoveMessage;\n","import format from 'date-fns/format';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport default {\n getMessageCreatedAt,\n};\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst CLASS_NAME = 'sendbird-unknown-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function UnknownMessage({\n message,\n isByMe,\n status,\n className,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n injectingClassName.push(`${CLASS_NAME}${isByMe ? '--outgoing' : '--incoming'}`);\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n isByMe: PropTypes.bool,\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nUnknownMessage.defaultProps = {\n isByMe: false,\n status: '',\n className: '',\n showRemove: () => { },\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUnknownMessage({\n message,\n status,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-outgoing-unknown-message';\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { showRemove(true); closeDropdown(); }}\n >\n Delete\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n \n \n );\n}\n\nfunction IncomingUnknownMessage({\n message,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-incoming-unknown-message';\n const { sender } = message;\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${className}__left__sender-profile-image`}\n src={sender.profileUrl}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n \n {sender.nickname || stringSet.NO_NAME}\n \n )\n }\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n
\n {\n !chainBottom && (\n \n {utils.getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nOutgoingUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n status: PropTypes.string.isRequired,\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUnknownMessage.defaultProps = {\n showRemove: () => { },\n};\n\nIncomingUnknownMessage.propTypes = {\n message: PropTypes.shape({\n sender: PropTypes.shape({\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }).isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","export const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const OG_MESSAGE = 'sendbird-og-message';\nexport const OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message';\nexport const INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message';\nexport const generateMockMessage = (process) => {\n const message = {\n message: 'go to this link sendbird.com it will be usefull to you!!',\n ogMetaData: {\n title: 'This is the TITLE',\n description: 'I\\'m description I\\'m description I\\'m description I\\'m description ',\n url: 'https://sendbird.com/',\n defaultImage: {\n url: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n alt: 'test',\n },\n },\n sender: {\n profileUrl: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n nickname: 'Hoonying',\n },\n createdAt: 2000000,\n };\n if (process && typeof process === 'function') {\n return process(message);\n }\n return message;\n};\n\nexport default {\n URL_REG,\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n generateMockMessage,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const copyToClipboard = (text) => {\n try {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path\n // to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const checkOGIsEnalbed = (message) => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n\nexport default {\n getSenderName,\n createUrlTester,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { createUrlTester } from './utils';\nimport { URL_REG } from './const';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst WORD_COLOR = LabelColors.ONBACKGROUND_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\nconst isUrl = createUrlTester(URL_REG);\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n} from './const';\nimport {\n getSenderName,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n} from './utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport './index.scss';\n\nimport UserProfile from '../UserProfile';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport Avatar from '../Avatar/index';\n\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst GROUPING_PADDING = '1px';\nconst NORAML_PADDING = '8px';\n\nconst OGMessageSwitch = ({\n isByMe,\n userId,\n status,\n message,\n disabled,\n showEdit,\n chainTop,\n className,\n membersMap,\n showRemove,\n useReaction,\n emojiAllMap,\n chainBottom,\n resendMessage,\n toggleReaction,\n memoizedEmojiListItems,\n}) => {\n const { ogMetaData } = message;\n const injectingClassName = Array.isArray(className) ? className : [className];\n\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n });\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n};\n\nfunction OutgoingOGMessage(props) {\n const {\n status,\n userId,\n message,\n disabled,\n openLink,\n showEdit,\n chainTop,\n showRemove,\n membersMap,\n chainBottom,\n emojiAllMap,\n useReaction,\n resendMessage,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n \n \n );\n}\n\nfunction IncomingOGMessage(props) {\n const {\n userId,\n message,\n openLink,\n chainTop,\n membersMap,\n chainBottom,\n useReaction,\n emojiAllMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_OG_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n \n )}\n />\n
\n
\n \n \n );\n}\n\nexport default OGMessageSwitch;\n\nconst noop = () => { };\n\nOGMessageSwitch.propTypes = {\n isByMe: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n useReaction: PropTypes.bool.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n status: PropTypes.string,\n disabled: PropTypes.bool,\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n toggleReaction: PropTypes.func,\n membersMap: PropTypes.instanceOf(Map),\n emojiAllMap: PropTypes.instanceOf(Map),\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nOGMessageSwitch.defaultProps = {\n className: '',\n status: '',\n disabled: false,\n showEdit: noop,\n showRemove: noop,\n resendMessage: noop,\n toggleReaction: noop,\n membersMap: new Map(),\n emojiAllMap: new Map(),\n memoizedEmojiListItems: noop,\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingOGMessage.propTypes = {\n status: PropTypes.string,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n isResendable: PropTypes.func,\n errorCode: PropTypes.number,\n }).isRequired,\n disabled: PropTypes.bool.isRequired,\n openLink: PropTypes.func.isRequired,\n showEdit: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingOGMessage.defaultProps = {\n status: '',\n};\n\nIncomingOGMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n openLink: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport format from 'date-fns/format';\n\nimport Message from '../../../ui/Message';\nimport AdminMessage from '../../../ui/AdminMessage';\nimport ThumbnailMessage from '../../../ui/ThumbnailMessage';\nimport FileMessage from '../../../ui/FileMessage';\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\nimport RemoveMessageModal from './RemoveMessage';\nimport UnknownMessage from '../../../ui/UnknownMessage';\nimport OGMessage from '../../../ui/OGMessage';\n\nimport { MessageTypes, getMessageType } from '../types';\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n status,\n resendMessage,\n useReaction,\n chainTop,\n chainBottom,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const { sender = {} } = message;\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n const isByMe = (userId === sender.userId)\n || (message.requestState === 'pending')\n || (message.requestState === 'failed');\n\n if (showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: ,\n [MessageTypes.FILE]: (\n \n ),\n [MessageTypes.OG]: (\n \n ),\n [MessageTypes.THUMBNAIL]: (\n \n ),\n [MessageTypes.USER]: (\n \n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={() => {\n deleteMessage(message, () => {\n setShowFileViewer(false);\n });\n }}\n isByMe={isByMe}\n />\n )\n }\n {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n }\n
\n );\n}\n\nMessageHoc.propTypes = {\n userId: PropTypes.string,\n message: PropTypes.shape({\n isFileMessage: PropTypes.func,\n isAdminMessage: PropTypes.func,\n isUserMessage: PropTypes.func,\n isDateSeperator: PropTypes.func,\n // should be a number, but there's a bug in SDK shich returns string\n messageId: PropTypes.number,\n type: PropTypes.string,\n createdAt: PropTypes.number,\n message: PropTypes.string,\n requestState: PropTypes.string,\n messageType: PropTypes.string,\n sender: PropTypes.shape({ userId: PropTypes.string }),\n ogMetaData: PropTypes.shape({}),\n }),\n hasSeperator: PropTypes.bool,\n disabled: PropTypes.bool,\n editDisabled: PropTypes.bool,\n deleteMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nMessageHoc.defaultProps = {\n userId: '',\n editDisabled: false,\n message: {},\n hasSeperator: false,\n disabled: false,\n status: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport './conversation-scroll.scss';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nimport MessageHOC from './MessageHOC';\nimport {\n getParsedStatus,\n compareMessagesForGrouping,\n} from '../utils';\n\nexport default class ConversationScroll extends Component {\n onScroll = (e) => {\n const {\n scrollRef,\n hasMore,\n messagesDispatcher,\n onScroll,\n currentGroupChannel,\n } = this.props;\n\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const first = nodes[0];\n onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n first.scrollIntoView();\n }\n });\n }\n\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n }\n\n render() {\n const {\n userId,\n disabled,\n scrollRef,\n readStatus,\n membersMap,\n initialized,\n allMessages,\n useReaction,\n emojiAllMap,\n editDisabled,\n deleteMessage,\n updateMessage,\n resendMessage,\n renderChatItem,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n } = this.props;\n return (\n
\n \n
\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n initialized\n && allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n if (renderChatItem) {\n return (\n \n {\n renderChatItem({\n message: m,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n })\n }\n
\n );\n }\n\n return (\n \n );\n },\n )\n }\n
\n
\n \n );\n }\n}\n\nConversationScroll.propTypes = {\n // https://stackoverflow.com/a/52646941\n scrollRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}),\n ]),\n }).isRequired,\n hasMore: PropTypes.bool,\n messagesDispatcher: PropTypes.func.isRequired,\n onScroll: PropTypes.func,\n initialized: PropTypes.bool,\n editDisabled: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n allMessages: PropTypes.arrayOf(PropTypes.shape({\n createdAt: PropTypes.number,\n })).isRequired,\n deleteMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n readStatus: PropTypes.shape({}).isRequired,\n currentGroupChannel: PropTypes.shape({\n markAsRead: PropTypes.func,\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n renderChatItem: PropTypes.element,\n useReaction: PropTypes.bool,\n emojiContainer: PropTypes.shape({}),\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n useMessageGrouping: PropTypes.bool,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nConversationScroll.defaultProps = {\n hasMore: false,\n editDisabled: false,\n disabled: false,\n initialized: false,\n userId: '',\n renderChatItem: null,\n onScroll: null,\n useReaction: true,\n emojiContainer: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n useMessageGrouping: true,\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './notification.scss';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default function Notification({\n count,\n time,\n onClick,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const timeArray = time.split(' ');\n timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON);\n return (\n // eslint-disable-next-line\n
\n \n \n
\n );\n}\n\nNotification.propTypes = {\n count: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n time: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nNotification.defaultProps = {\n count: 0,\n time: '',\n};\n","import React, { useContext } from 'react';\n\nimport './notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\n\nconst TypingIndicatorText = ({ members }) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nfunction TypingIndicator({ channelUrl, sb, logger }) {\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState([]);\n\n useEffect(() => {\n if (sb && sb.ChannelHandler) {\n sb.removeChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new sb.ChannelHandler();\n // there is a possible warning in here - setState called after unmount\n handler.onTypingStatusUpdated = (groupChannel) => {\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n const members = groupChannel.getTypingMembers();\n if (groupChannel.url === channelUrl) {\n setTypingMembers(members);\n }\n };\n sb.addChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb && sb.removeChannelHandler) {\n sb.removeChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n \n );\n}\n\nTypingIndicator.propTypes = {\n channelUrl: PropTypes.string.isRequired,\n sb: PropTypes.shape({\n ChannelHandler: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n addChannelHandler: PropTypes.func,\n }).isRequired,\n logger: PropTypes.shape({\n info: PropTypes.func,\n }).isRequired,\n};\n\nexport default TypingIndicator;\n","// Logic required to handle message input rendering\n\nimport React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\n\nimport { RenderMessageInputProps } from '../../../index';\nimport * as utils from '../utils.js';\n\nimport MessageInput from '../../../ui/MessageInput';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: Sendbird.GroupChannel;\n user: Sendbird.User;\n isOnline: boolean;\n initialized: boolean;\n onSendMessage(): void;\n onFileUpload(): void;\n renderMessageInput(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n isOnline,\n initialized,\n}: Props, ref: React.RefObject): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // custom message\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n {\n channel.startTyping();\n }}\n onSendMessage={onSendMessage}\n onFileUpload={onFileUpload}\n />\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\nimport './index.scss';\n\nfunction ConnectionStatus() {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n );\n}\n\nexport default ConnectionStatus;\n","import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict';\nimport { LabelStringSet } from '../Label';\n\nexport const prettyDate = (date) => formatDistanceToNowStrict(date, { addSuffix: true });\n\nexport const getOthersLastSeenAt = (channel) => {\n if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) {\n return '';\n }\n const lastSeenList = [...Object.values(channel.getReadStatus())];\n const lastSeenAt = lastSeenList.length > 0\n ? lastSeenList[0].last_seen_at\n : 0;\n if (lastSeenAt === 0) {\n return '';\n }\n return prettyDate(lastSeenAt);\n};\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default function AutoRefresh({\n repeatFunc,\n}) {\n const [label, setLabel] = useState(repeatFunc());\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (label !== repeatFunc()) {\n setLabel(repeatFunc());\n }\n }, 10000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (
{label}
);\n}\n\nAutoRefresh.propTypes = {\n repeatFunc: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport AutoRefresh from '../AutoRefresh';\nimport ChannelAvatar from '../ChannelAvatar/index';\n\nexport default function ChatHeader(props) {\n const {\n currentGroupChannel,\n currentUser,\n title,\n subTitle,\n isActive,\n isMuted,\n onActionClick,\n theme,\n } = props;\n const { userId } = currentUser;\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n \n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n \n {\n (typeof isActive === 'string' && isActive === 'true') || (typeof isActive === 'boolean' && isActive)\n ?
\n : null\n }\n \n {\n subTitle\n || utils.getOthersLastSeenAt(currentGroupChannel)} />\n }\n \n
\n
\n {\n (typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted)\n ? \n : null\n }\n \n \n \n
\n
\n );\n}\n\nChatHeader.propTypes = {\n currentGroupChannel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n }),\n theme: PropTypes.string,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n title: PropTypes.string,\n subTitle: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n isActive: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isMuted: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n onActionClick: PropTypes.func,\n};\n\nChatHeader.defaultProps = {\n currentGroupChannel: {},\n title: '',\n theme: 'light',\n subTitle: '',\n isActive: false,\n isMuted: false,\n currentUser: {},\n onActionClick: () => { },\n};\n","import React, {\n useEffect,\n useRef,\n useReducer,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as messageActionTypes from './dux/actionTypes';\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useSetReadStatus from './hooks/useSetReadStatus';\nimport useMemoizedEmojiListItems from './hooks/useMemoizedEmojiListItems';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\n\nimport ConversationScroll from './components/ConversationScroll';\nimport Notification from './components/Notification';\nimport FrozenNotification from './components/FrozenNotification';\nimport TypingIndicator from './components/TypingIndicator';\nimport MessageInputWrapper from './components/MessageInputWrapper';\nimport ConnectionStatus from '../../ui/ConnectionStatus';\nimport ChatHeader from '../../ui/ChatHeader';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\n\nconst noop = () => { };\n\nexport const ConversationPanel = (props) => {\n const {\n channelUrl,\n stores: { sdkStore, userStore },\n config: {\n userId,\n logger,\n pubSub,\n isOnline,\n theme,\n },\n dispatchers: {\n reconnect,\n },\n queries = {},\n useReaction,\n renderChatItem,\n renderChatHeader,\n renderUserProfile,\n disableUserProfile,\n renderMessageInput,\n useMessageGrouping,\n onChatHeaderActionClick,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n } = props;\n const { sdk } = sdkStore;\n const { config } = props;\n const sdkError = sdkStore.error;\n const sdkInit = sdkStore.initialized;\n const { user } = userStore;\n\n if (queries.messageListQuery) {\n // eslint-disable-next-line no-console\n console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead');\n }\n\n const userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery;\n\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n loading,\n hasMore,\n initialized,\n unreadCount,\n unreadSince,\n isInvalid,\n currentGroupChannel = {},\n lastMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n const { isFrozen, isBroadcast } = currentGroupChannel;\n const { appInfo = {} } = sdk;\n const usingReaction = (\n (appInfo.isUsingReaction && !isBroadcast) || useReaction || false\n );\n\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n\n const emojiAllList = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisFromEmojiContainer(emojiContainer)\n : []\n ), [emojiContainer]);\n\n const nicknamesMap = useMemo(() => (\n usingReaction\n ? utils.getNicknamesMapFromMembers(currentGroupChannel.members)\n : new Map()\n ), [currentGroupChannel.members]);\n\n const onScrollCallback = useScrollCallback({\n currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery,\n }, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n const memoizedEmojiListItems = useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n }, {\n useReaction: usingReaction,\n logger,\n userId,\n emojiAllList,\n });\n\n // to create message-datasource\n useGetChannel(\n { channelUrl, sdkInit },\n { messagesDispatcher, sdk, logger },\n );\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n { currentGroupChannel, sdkInit, userId },\n { messagesDispatcher, sdk, logger },\n );\n\n useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subScriber = utils.pubSubHandler(channelUrl, pubSub, messagesDispatcher);\n return () => {\n utils.pubSubHandleRemover(subScriber);\n };\n }, [channelUrl, sdkInit]);\n\n // to create initial read status\n useSetReadStatus(\n { allMessages, currentGroupChannel },\n { messagesDispatcher, sdk, logger },\n );\n\n // handling connection breaks\n useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n });\n\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage },\n { logger, sdk, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, onSendMessage] = useSendMessageCallback(\n { currentGroupChannel, onBeforeSendUserMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n const [onSendFileMessage] = useSendFileMessageCallback(\n { currentGroupChannel, onBeforeSendFileMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n\n if (sdkError) {\n return (\n
\n {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n
\n );\n }\n if (!channelUrl) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n return (\n \n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n \n )\n }\n {\n isFrozen && (\n \n )\n }\n {\n unreadCount > 0 && (\n {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n // there is no scroll\n if (scrollRef.current.scrollTop === 0) {\n currentGroupChannel.markAsRead();\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n }\n }}\n time={unreadSince}\n />\n )\n }\n \n
\n \n
\n \n
\n {\n !isOnline && (\n \n )\n }\n
\n \n );\n};\n\nConversationPanel.propTypes = {\n channelUrl: PropTypes.string,\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n GroupChannel: PropTypes.any,\n ChannelHandler: PropTypes.any,\n addChannelHandler: PropTypes.func,\n UserMessageParams: PropTypes.any,\n FileMessageParams: PropTypes.any,\n getAllEmoji: PropTypes.func,\n appInfo: PropTypes.shape({}),\n }),\n error: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n reconnect: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n userId: PropTypes.string.isRequired,\n isOnline: PropTypes.bool.isRequired,\n theme: PropTypes.string,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n messageListParams: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n // deprecate in v1.3\n messageListQuery: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeSendUserMessage: PropTypes.func, // onBeforeSendUserMessage(text)\n onBeforeSendFileMessage: PropTypes.func, // onBeforeSendFileMessage(File)\n onBeforeUpdateUserMessage: PropTypes.func,\n renderChatItem: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderMessageInput: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderChatHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChatHeaderActionClick: PropTypes.func,\n useReaction: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n useMessageGrouping: PropTypes.bool,\n};\n\nConversationPanel.defaultProps = {\n channelUrl: null,\n queries: {},\n onBeforeSendUserMessage: null,\n onBeforeSendFileMessage: null,\n onBeforeUpdateUserMessage: null,\n renderChatItem: null,\n renderMessageInput: null,\n renderChatHeader: null,\n useReaction: true,\n disableUserProfile: false,\n renderUserProfile: null,\n useMessageGrouping: true,\n onChatHeaderActionClick: noop,\n};\n\nexport const {\n getEmojiCategoriesFromEmojiContainer,\n getAllEmojisFromEmojiContainer,\n getEmojisFromEmojiContainer,\n} = utils;\n\nexport default withSendbirdContext(ConversationPanel);\n"],"names":["RESET_MESSAGES","RESET_STATE","CLEAR_SENT_MESSAGES","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","SEND_MESSAGEGE_START","SEND_MESSAGEGE_SUCESS","SEND_MESSAGEGE_FAILURE","RESEND_MESSAGEGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","SET_READ_STATUS","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","getMessageType","message","isUserMessage","messageType","ogMetaData","isAdminMessage","isFileMessage","isImage","type","isVideo","UNDEFINED","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","pubSubHandleRemover","subscriber","forEach","s","remove","pubSubHandler","channelUrl","pubSub","dispatcher","Map","subscribe","set","topics","msg","channel","url","channelActions","payload","fromSelector","messageId","getParsedStatus","currentGroupChannel","requestState","MessageStatusType","SENT","unreadCount","getReadReceipt","READ","isDelivered","getDeliveryReceipt","DELIVERED","isOperator","groupChannel","myRole","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","myMutedState","getEmojiCategoriesFromEmojiContainer","emojiContainer","emojiCategories","getAllEmojisFromEmojiContainer","allEmojis","categoryIndex","emojis","emojiIndex","push","getEmojisFromEmojiContainer","emojiCategoryId","filter","emojiCategory","id","getAllEmojisMapFromEmojiContainer","allEmojisMap","key","getNicknamesMapFromMembers","members","nicknamesMap","memberIndex","userId","nickname","getMessageCreatedAt","format","createdAt","isSameGroup","comparingMessage","sender","sendingStatus","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","passUnsuccessfullMessages","allMessages","newMessage","lastIndexOfSucceededMessage","map","lastIndexOf","messages","splice","initialized","loading","hasMore","lastMessageTimeStamp","readStatus","unreadSince","isInvalid","reducer","state","action","actionTypes","initialState","m","receivedMessages","stateChannel","stateChannelUrl","actionChannelUrl","filteredAllMessages","find","compareIds","newMessages","reqId","sort","a","b","failed","currentGroupChannelUrl","indexOf","Date","applyReactionEvent","useHandleChannelEvents","sdkInit","messagesDispatcher","sdk","logger","useEffect","messageReceiverId","uuidv4","ChannelHandler","info","onMessageReceived","messageActions","onMessageUpdated","onMessageDeleted","_","onReactionUpdated","reactionEvent","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onUserMuted","onUserUnmuted","onUserBanned","onOperatorUpdated","addChannelHandler","removeChannelHandler","useSetChannel","GroupChannel","getChannel","then","messageActionTypes","markAsRead","catch","e","warning","getAllEmoji","emojiContainer_","err","useInitialMessagesFetch","userFilledMessageListQuery","MessageListParams","getMessagesByMessageId","messageListParams","prevResultSize","isInclusive","includeReplies","includeReaction","Object","keys","getMessagesByTimestamp","getTime","finally","utils","useHandleReconnect","isOnline","wasOffline","appInfo","useReaction","isUsingReaction","lastMessageTime","useScrollCallback","useCallback","cb","hasMoreMessages","lastMessageTs","useDeleteMessageCallback","deleteMessage","useUpdateMessageCallback","onBeforeUpdateUserMessage","text","createParamsDefault","txt","params","UserMessageParams","createCustomPrams","updateUserMessage","r","swapParams","getErrorFirstCallback","publish","useResendMessageCallback","failedMessage","file","isResendable","resendUserMessage","resendFileMessage","console","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","useRef","sendMessage","current","value","trim","pendingMsg","sendUserMessage","res","useSendFileMessageCallback","onBeforeSendFileMessage","file_","FileMessageParams","sendFileMessage","response","localUrl","URL","createObjectURL","useSetReadStatus","setReadStatus","allReadStatus","reduce","accumulator","handler","handleMessageStatus","c","onDeliveryReceiptUpdated","onReadReceiptUpdated","handlerId","ReactionButton","React","forwardRef","props","ref","children","width","height","onClick","selected","className","injectingClassName","Array","isArray","join","slice","propTypes","PropTypes","element","isRequired","func","bool","oneOfType","number","string","arrayOf","defaultProps","useMemoizedEmojiListItems","toggleReaction","emojiAllList","useMemo","parentRef","parentContainRef","closeDropdown","spaceFromTrigger","emoji","reactedReaction","reactions","reaction","isReacted","userIds","IconTypes","EMOJI_FAILED","useToggleReactionCallback","deleteReaction","addReaction","MessageStatus","status","label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_2","icon","SPINNER","IconColors","ERROR","objectOf","array","object","ReactionBadge","count","isAdd","unshift","ONBACKGROUND_1","CLASS_NAME","Tooltip","SPACE_FROM_TRIGGER","TooltipWrapper","hoverTooltip","useState","showHoverTooltip","setShowHoverTooltip","childrenRef","bottom","left","offsetWidth","EmojiReactions","emojiAllMap","membersMap","memoizedEmojiListItems","MemoizedEmojiListItems","imageWidth","imageHeight","emojiReactionAddRef","messageReactions","useContext","LocalizationContext","stringSet","emojiUrl","get","reactedUserCount","reactedByMe","nicknames","currentUserId","TOOLTIP__UNKOWN_USER","stringSetForMe","TOOLTIP__AND_YOU","TOOLTIP__YOU","size","toggleDropdown","ON_BACKGROUND_3","EMOJI_REACTIONS_ADD","y","shape","instanceOf","WORD_TYPOGRAPHY","BODY_1","EDITED_COLOR","useMemoizedMessageText","updatedAt","splitMessage","split","matchedMessage","word","MESSAGE_EDITED","MOUSE_ENTER","MOUSE_LEAVE","useMouseHover","setHover","handleMouseOver","handleMouseOut","addEventListener","removeEventListener","noop","GROUPING_PADDING","NORMAL_PADDING","Message","isByMe","resendMessage","disabled","showEdit","showRemove","chainTop","chainBottom","memoizedMessageText","OutgoingUserMessage","MemoizedMessageText","messageRef","parentRefReactions","parentRefMenus","isMessageSent","getIsSentFromStatus","mousehover","setMousehover","moreActive","setMoreActive","handleMoreIconClick","handleMoreIconBlur","paddingTop","paddingBottom","MORE","CONTENT_INVERSE","copyToClipboard","IncomingUserMessage","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","showReactionAddButton","showEmojiReactions","getSenderProfileUrl","user","close","CAPTION_2","getSenderName","AdminMessage","OUTGOING_THUMBNAIL_MESSAGE","INCOMING_THUMBNAIL_MESSAGE","ThumbnailMessage","OutgoingThumbnailMessage","menuRef","reactionAddRef","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","PLAY","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","unSupported","UNKNOWN__UNKNOWN_MESSAGE_TYPE","IncomingThumbnailMessage","MAX_TRUNCATE_LENGTH","GROUPAING_PADDING","checkFileType","fileUrl","result","imageFile","audioFile","test","FILE_DOCUMENT","FILE_AUDIO","OutgoingFileMessage","openFileUrl","window","open","reactionAddButtonRef","truncate","IncomingFileMessage","MessageSwitch","RemoveMessage","onCloseModal","onDeleteMessage","MODAL__DELETE_MESSAGE__TITLE","UnknownMessage","OutgoingUnknownMessage","UNKNOWN__CANNOT_READ_MESSAGE","IncomingUnknownMessage","profileUrl","NO_NAME","URL_REG","OG_MESSAGE","OUTGOING_OG_MESSAGE","INCOMING_OG_MESSAGE","createUrlTester","regexp","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","friendName","checkOGIsEnalbed","WORD_COLOR","isUrl","NORAML_PADDING","OGMessageSwitch","openLink","OutgoingOGMessage","defaultImage","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","alt","NO_THUMBNAIL","title","SUBTITLE_2","description","BODY_2","event","stopPropagation","IncomingOGMessage","errorCode","MessageHoc","editDisabled","hasSeperator","updateMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","editMessageInputRef","FileMessage","OGMessage","RemoveMessageModal","isDateSeperator","ConversationScroll","scrollRef","onScroll","target","scrollTop","clientHeight","scrollHeight","first","renderChatItem","useMessageGrouping","idx","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","onUpdateMessage","onResendMessage","MessageHOC","Component","Notification","time","timeArray","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","ONCONTENT_1","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","SHEVRON_DOWN","CONTENT","FrozenNotification","CHANNEL_FROZEN","TypingIndicatorText","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","TypingIndicator","sb","setHandlerId","typingMembers","setTypingMembers","newHandlerId","onTypingStatusUpdated","getTypingMembers","MessageInputWrapper","_a","onSendMessage","onFileUpload","renderMessageInput","isBroadcast","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","ConnectionStatus","TRYING_TO_CONNECT","DISCONNECTED","prettyDate","date","formatDistanceToNowStrict","addSuffix","getOthersLastSeenAt","getReadStatus","lastSeenList","values","lastSeenAt","last_seen_at","getChannelTitle","LabelStringSet","name","NO_TITLE","NO_MEMBERS","AutoRefresh","repeatFunc","setLabel","interval","setInterval","clearInterval","ChatHeader","currentUser","subTitle","isActive","isMuted","onActionClick","theme","H_2","MUTE","INFO","PRIMARY","coverUrl","ConversationPanel","stores","sdkStore","userStore","config","reconnect","dispatchers","queries","renderChatHeader","onChatHeaderActionClick","sdkError","messageListQuery","warn","useReducer","messagesReducer","messagesInitialState","messagesStore","usingReaction","userDefinedDisableUserProfile","userDefinedRenderProfile","onScrollCallback","useGetChannel","subScriber","onSendFileMessage","PlaceHolderTypes","WRONG","NO_CHANNELS","LOADING","any","includeMetaArray","includeParentMessageText","includeThreadInfo","limit","reverse","senderUserIdsFilter","withSendbirdContext"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Channel.js","sources":["../../../src/smart-components/Conversation/dux/actionTypes.js","../../../src/smart-components/Conversation/types.js","../../../src/smart-components/Conversation/utils.js","../../../src/smart-components/Conversation/dux/initialState.js","../../../src/smart-components/Conversation/dux/reducers.js","../../../src/smart-components/Conversation/hooks/useHandleChannelEvents.js","../../../src/smart-components/Conversation/hooks/useGetChannel.js","../../../src/smart-components/Conversation/hooks/useInitialMessagesFetch.js","../../../src/smart-components/Conversation/hooks/useHandleReconnect.js","../../../src/smart-components/Conversation/hooks/useScrollCallback.js","../../../src/smart-components/Conversation/hooks/useDeleteMessageCallback.js","../../../src/smart-components/Conversation/hooks/useUpdateMessageCallback.js","../../../src/smart-components/Conversation/hooks/useResendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSendFileMessageCallback.js","../../../src/smart-components/Conversation/hooks/useSetReadStatus.js","../../../src/ui/ReactionButton/index.jsx","../../../src/smart-components/Conversation/hooks/useMemoizedEmojiListItems.jsx","../../../src/smart-components/Conversation/hooks/useToggleReactionCallback.js","../../../src/ui/MessageStatus/index.jsx","../../../src/ui/ReactionBadge/index.jsx","../../../src/ui/Tooltip/index.jsx","../../../src/ui/TooltipWrapper/index.jsx","../../../src/ui/EmojiReactions/index.jsx","../../../src/ui/Message/memoizedMessageText.jsx","../../../src/hooks/onMouseHover.jsx","../../../src/ui/Message/index.jsx","../../../src/ui/AdminMessage/index.jsx","../../../src/ui/ThumbnailMessage/util.js","../../../src/ui/ThumbnailMessage/index.jsx","../../../src/ui/FileMessage/index.jsx","../../../src/smart-components/Conversation/components/RemoveMessage.jsx","../../../src/ui/UnknownMessage/utils.js","../../../src/ui/UnknownMessage/index.jsx","../../../src/ui/OGMessage/const.js","../../../src/ui/OGMessage/utils.js","../../../src/ui/OGMessage/memoizedMessageText.jsx","../../../src/ui/OGMessage/index.jsx","../../../src/smart-components/Conversation/components/MessageHOC.jsx","../../../src/smart-components/Conversation/components/ConversationScroll.jsx","../../../src/smart-components/Conversation/components/Notification.jsx","../../../src/smart-components/Conversation/components/FrozenNotification.tsx","../../../src/smart-components/Conversation/components/TypingIndicator.jsx","../../../src/smart-components/Conversation/components/MessageInputWrapper.tsx","../../../src/ui/ConnectionStatus/index.jsx","../../../src/ui/ChatHeader/utils.js","../../../src/ui/AutoRefresh/index.jsx","../../../src/ui/ChatHeader/index.jsx","../../../src/smart-components/Conversation/index.jsx"],"sourcesContent":["export const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const RESET_STATE = 'RESET_STATE';\nexport const CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAILURE = 'GET_PREV_MESSAGES_FAILURE';\n\nexport const SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';\nexport const SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';\nexport const SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';\n\nexport const RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';\n\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\n\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const SET_READ_STATUS = 'SET_READ_STATUS';\n","import { isImage, isVideo } from '../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message) => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if ((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return '';\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../../ui/MessageStatus/type';\nimport * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nimport { SendingMessageStatus } from './types';\n\nconst UNDEFINED = 'undefined';\nconst { SUCCEEDED, FAILED, PENDING } = SendingMessageStatus;\n\nexport const scrollIntoLast = (selector, intialTry = 0) => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (channelUrl, pubSub, dispatcher) => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) return subscriber;\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return subscriber;\n};\n\nexport const getParsedStatus = (message, currentGroupChannel) => {\n if (message.requestState === FAILED) {\n return MessageStatusType.FAILED;\n }\n\n if (message.requestState === PENDING) {\n return MessageStatusType.PENDING;\n }\n\n if (message.requestState === SUCCEEDED) {\n if (!currentGroupChannel) {\n return MessageStatusType.SENT;\n }\n\n const unreadCount = currentGroupChannel.getReadReceipt(message);\n if (unreadCount === 0) {\n return MessageStatusType.READ;\n }\n\n const isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0;\n if (isDelivered) {\n return MessageStatusType.DELIVERED;\n }\n\n return MessageStatusType.SENT;\n }\n\n return null;\n};\n\nexport const isOperator = (groupChannel = {}) => {\n const { myRole } = groupChannel;\n return myRole === 'operator';\n};\n\nexport const isDisabledBecauseFrozen = (groupChannel = {}) => {\n const { isFrozen } = groupChannel;\n return isFrozen && !isOperator(groupChannel);\n};\n\nexport const isDisabledBecauseMuted = (groupChannel = {}) => {\n const { myMutedState } = groupChannel;\n return myMutedState === 'muted';\n};\n\nexport const getEmojiCategoriesFromEmojiContainer = (emojiContainer = {}) => (\n emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []\n);\n\nexport const getAllEmojisFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojis = [];\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n allEmojis.push(emojis[emojiIndex]);\n }\n }\n return allEmojis;\n};\n\nexport const getEmojisFromEmojiContainer = (emojiContainer = {}, emojiCategoryId = '') => (\n emojiContainer.emojiCategories\n ? emojiContainer.emojiCategories\n .filter((emojiCategory) => emojiCategory.id === emojiCategoryId)[0].emojis\n : []\n);\n\nexport const getAllEmojisMapFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojisMap = new Map();\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n const { key, url } = emojis[emojiIndex];\n allEmojisMap.set(key, url);\n }\n }\n return allEmojisMap;\n};\n\nexport const getNicknamesMapFromMembers = (members = []) => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const isSameGroup = (message, comparingMessage) => {\n if (\n !message\n || !comparingMessage\n || !message.sender\n || !comparingMessage.sender\n || !message.createdAt\n || !comparingMessage.createdAt\n || !message.sender.userId\n || !comparingMessage.sender.userId\n ) {\n return false;\n }\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage,\n currMessage,\n nextMessage,\n) => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const passUnsuccessfullMessages = (allMessages, newMessage) => {\n const { sendingStatus = UNDEFINED } = newMessage;\n if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) {\n const lastIndexOfSucceededMessage = allMessages\n .map((message) => (\n message.sendingStatus\n || ((message.isAdminMessage && message.isAdminMessage()) ? SUCCEEDED : UNDEFINED)\n ))\n .lastIndexOf(SUCCEEDED);\n if (lastIndexOfSucceededMessage + 1 < allMessages.length) {\n const messages = [...allMessages];\n messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);\n return messages;\n }\n }\n return [\n ...allMessages,\n newMessage,\n ];\n};\n\nexport default getParsedStatus;\n","export default {\n initialized: false,\n loading: false,\n allMessages: [],\n currentGroupChannel: { members: [] },\n hasMore: false,\n lastMessageTimeStamp: 0,\n emojiContainer: {},\n readStatus: {},\n unreadCount: 0,\n unreadSince: null,\n isInvalid: false,\n};\n","import format from 'date-fns/format';\n\nimport * as actionTypes from './actionTypes';\nimport initialState from './initialState';\n\nimport compareIds from '../../../utils/compareIds';\nimport { passUnsuccessfullMessages } from '../utils';\nimport { SendingMessageStatus } from '../types';\n\nconst {\n SUCCEEDED,\n FAILED,\n PENDING,\n} = SendingMessageStatus;\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actionTypes.RESET_STATE:\n return initialState;\n case actionTypes.RESET_MESSAGES:\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMore`\n // the onScroll gets called twice, setting hasMore false prevents this\n hasMore: false,\n allMessages: [],\n };\n case actionTypes.GET_PREV_MESSAGES_START:\n return {\n ...state,\n loading: true,\n };\n case actionTypes.CLEAR_SENT_MESSAGES:\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => (\n m.sendingStatus !== SUCCEEDED\n )),\n ],\n };\n case actionTypes.GET_PREV_MESSAGES_SUCESS: {\n const receivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...action.payload },\n ],\n };\n case actionTypes.SEND_MESSAGEGE_SUCESS: {\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId) ? action.payload : m\n ));\n [...newMessages].sort((a, b) => (\n (\n a.sendingStatus\n && b.sendingStatus\n && a.sendingStatus === SUCCEEDED\n && (\n b.sendingStatus === PENDING\n || b.sendingStatus === FAILED\n )\n ) ? -1 : 1\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SEND_MESSAGEGE_FAILURE: {\n // eslint-disable-next-line no-param-reassign\n action.payload.failed = true;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const { channel, message } = action.payload;\n const { currentGroupChannel = {}, unreadCount, unreadSince } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n if (!compareIds(channel.url, currentGroupChannelUrl)) {\n return state;\n }\n // Excluded overlapping messages\n if (!(state.allMessages.map((msg) => msg.messageId).indexOf(message.messageId) < 0)) {\n return state;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n return {\n ...state,\n unreadCount: unreadCount + 1,\n unreadSince: (unreadCount === 0)\n ? format(new Date(), 'p MMM dd')\n : unreadSince,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.messageId, action.payload.message.messageId)\n ? action.payload.message\n : m\n )),\n };\n case actionTypes.RESEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.MARK_AS_READ:\n return {\n ...state,\n unreadCount: 0,\n unreadSince: null,\n };\n case actionTypes.ON_MESSAGE_DELETED:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n case actionTypes.SET_EMOJI_CONTAINER: {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n }\n case actionTypes.SET_READ_STATUS: {\n return {\n ...state,\n readStatus: action.payload,\n };\n }\n case actionTypes.ON_REACTION_UPDATED: {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n }\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\n\nimport * as messageActions from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\nimport compareIds from '../../../utils/compareIds';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\nfunction useHandleChannelEvents({ currentGroupChannel, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (channelUrl && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n ChannelHandler.onMessageReceived = (channel, message) => {\n if (compareIds(channel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n\n ChannelHandler.onMessageDeleted = (_, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n };\n\n ChannelHandler.onReactionUpdated = (_, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n };\n\n ChannelHandler.onChannelChanged = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelFrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelUnfrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserMuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserUnmuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserBanned = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onOperatorUpdated = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n // Add this channel event handler to the SendBird object.\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [channelUrl, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.GroupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n // this order is important - this mark as read should update the event handler up above\n groupChannel.markAsRead();\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji((emojiContainer_, err) => {\n if (err) {\n logger.error('Channel: Getting emojis failed', err);\n return;\n }\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\nfunction useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams\n && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n });\n }\n }, [channelUrl, userFilledMessageListQuery]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n}) {\n useEffect(() => {\n const wasOffline = !isOnline;\n return () => {\n // state changed from offline to online\n if (wasOffline) {\n logger.info('Refreshing conversation state');\n const { appInfo = {} } = sdk;\n const useReaction = appInfo.isUsingReaction || false;\n\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = useReaction;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n sdk.GroupChannel.getChannel(currentGroupChannel.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.CLEAR_SENT_MESSAGES,\n });\n\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n });\n }\n };\n }, [isOnline]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useScrollCallback({\n currentGroupChannel,\n lastMessageTimeStamp,\n userFilledMessageListQuery,\n}, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMore) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n lastMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMoreMessages = (messages && messages.length > 0);\n const lastMessageTs = hasMoreMessages\n ? messages[0].createdAt\n : null;\n\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore: hasMoreMessages,\n lastMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, lastMessageTimeStamp]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message, cb) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);\n\n // Message is only on local\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (cb) { cb(); }\n return;\n }\n\n // Message is on server\n currentGroupChannel.deleteMessage(message, (err) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);\n if (cb) { cb(err); }\n if (!err) {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n } else {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as topics from '../../../lib/pubSub/topics';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n}, {\n logger,\n pubSub,\n sdk,\n}) {\n return useCallback((messageId, text, cb) => {\n const createParamsDefault = (txt) => {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(text)\n : createParamsDefault(text);\n\n currentGroupChannel.updateUserMessage(messageId, params, (r, e) => {\n logger.info('Channel: Updating message!', params);\n const swapParams = sdk.getErrorFirstCallback();\n let message = r;\n let err = e;\n if (swapParams) {\n message = e;\n err = r;\n }\n if (cb) {\n cb(err, message);\n }\n if (!err) {\n logger.info('Channel: Updating message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentGroupChannel,\n message,\n },\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel: currentGroupChannel,\n },\n );\n } else {\n logger.warning('Channel: Updating message failed!', err);\n }\n });\n }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function'\n && failedMessage.isResendable()\n ) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel\n .resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendMessageCallback({ currentGroupChannel, onBeforeSendUserMessage }, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n () => {\n const text = messageInputRef.current.value;\n const createParamsDefault = (txt) => {\n const message = (typeof txt === 'string') ? txt.trim() : txt;\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefault(text);\n\n logger.info('Channel: Sending message has started', params);\n const pendingMsg = currentGroupChannel.sendUserMessage(params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n if (error) {\n logger.warning('Channel: Sending message failed!', {\n message,\n });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel, onBeforeSendFileMessage,\n}, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((file) => {\n const createParamsDefault = (file_) => {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n };\n\n const createCustomPrams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefault(file);\n\n logger.info('Channel: Uploading file message start!', params);\n const pendingMsg = currentGroupChannel.sendFileMessage(params, (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = response;\n let error = err;\n if (swapParams) {\n message = err;\n error = response;\n }\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', message);\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'), 1000);\n }, [currentGroupChannel, onBeforeSendFileMessage]);\n return [sendMessage];\n}\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\n\nexport default function useSetReadStatus({ allMessages, currentGroupChannel }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (!sdk.ChannelHandler || !currentGroupChannel.url) {\n return () => {};\n }\n // todo: move to reducer?\n const setReadStatus = () => {\n const allReadStatus = allMessages.reduce((accumulator, msg) => {\n if (msg.messageId !== 0) {\n return {\n ...accumulator,\n [msg.messageId]: utils.getParsedStatus(msg, currentGroupChannel),\n };\n }\n return accumulator;\n }, {});\n messagesDispatcher({\n type: messageActionTypes.SET_READ_STATUS,\n payload: allReadStatus,\n });\n };\n if (allMessages.length > 0) {\n setReadStatus();\n }\n\n const channelUrl = currentGroupChannel.url;\n const handler = new sdk.ChannelHandler();\n const handleMessageStatus = (c) => {\n if (channelUrl === c.url) {\n setReadStatus();\n }\n };\n handler.onDeliveryReceiptUpdated = handleMessageStatus;\n handler.onReadReceiptUpdated = handleMessageStatus;\n // Add this channel event handler to the SendBird object.\n const handlerId = uuidv4();\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.addChannelHandler(handlerId, handler);\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.removeChannelHandler(handlerId);\n }\n };\n }, [allMessages, currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst ReactionButton = React.forwardRef((props, ref) => {\n const {\n children,\n width,\n height,\n onClick,\n selected,\n className,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n return (\n onClick(e)}\n role=\"button\"\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n
\n {children}\n
\n
\n );\n});\n\nReactionButton.propTypes = {\n children: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n selected: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nReactionButton.defaultProps = {\n selected: false,\n width: '36px',\n height: '36px',\n onClick: () => { },\n className: '',\n};\n\nexport default ReactionButton;\n","import React, { useMemo } from 'react';\n\nimport { EmojiListItems } from '../../../ui/ContextMenu';\nimport ReactionButton from '../../../ui/ReactionButton';\nimport ImageRenderer from '../../../ui/ImageRenderer';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nexport default function useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n}, {\n useReaction,\n logger,\n userId,\n emojiAllList,\n}) {\n return useMemo(() => ({\n parentRef,\n parentContainRef,\n message,\n closeDropdown,\n spaceFromTrigger = {},\n }) => {\n if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {\n logger.warning('Channel: Invalid Params in memoizedEmojiListItems');\n return null;\n }\n\n return (\n \n {\n emojiAllList.map((emoji) => {\n const reactedReaction = message.reactions\n .filter((reaction) => reaction.key === emoji.key)[0];\n const isReacted = reactedReaction\n ? !(reactedReaction.userIds.indexOf(userId) < 0)\n : false;\n return (\n {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n \n }\n />\n \n );\n })\n }\n \n );\n }, [emojiContainer, toggleReaction]);\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Loader from '../Loader';\nimport MessageStatusType from './type';\n\nimport { getMessageCreatedAt } from '../../utils/utils';\n\nconst MessageStatusTypes = MessageStatusType;\nexport { MessageStatusTypes };\nexport default function MessageStatus({\n message,\n status,\n className,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n const label = () => {\n switch (status) {\n case MessageStatusType.FAILED:\n case MessageStatusType.PENDING: {\n return null;\n }\n case MessageStatusType.SENT:\n case MessageStatusType.DELIVERED:\n case MessageStatusType.READ: {\n return (\n \n {getMessageCreatedAt(message)}\n \n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n \n \n \n ),\n SENT: ,\n DELIVERED: ,\n READ: ,\n FAILED: ,\n };\n\n return (\n
\n {icon[status]}\n
\n {label(status)}\n
\n );\n}\n\nMessageStatus.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nMessageStatus.defaultProps = {\n message: null,\n status: '',\n className: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst ReactionBadge = React.forwardRef((props, ref) => {\n const {\n className,\n children,\n count,\n selected,\n isAdd,\n onClick,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (selected && !isAdd) {\n injectingClassName.unshift('sendbird-reaction-badge--selected');\n } else if (isAdd) {\n injectingClassName.push('sendbird-reaction-badge--is-add');\n } else {\n injectingClassName.unshift('sendbird-reaction-badge');\n }\n\n return (\n \n
\n
\n {children}\n
\n \n
\n \n );\n});\n\nReactionBadge.propTypes = {\n children: PropTypes.element.isRequired,\n count: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isAdd: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nReactionBadge.defaultProps = {\n className: '',\n count: '',\n selected: false,\n isAdd: false,\n onClick: () => { },\n};\n\nexport default ReactionBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label from '../Label';\n\nconst CLASS_NAME = 'sendbird-tooltip';\n\nexport default function Tooltip({\n className,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n
\n \n {children}\n \n
\n );\n}\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n};\n\nTooltip.defaultProps = {\n className: '',\n children: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-tooltip-wrapper';\nconst SPACE_FROM_TRIGGER = 8;\n\nexport default function TooltipWrapper({\n className,\n children,\n hoverTooltip,\n // clickTooltip can be added later\n}) {\n const injectingClassName = Array.isArray(className)\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n const [showHoverTooltip, setShowHoverTooltip] = useState(false);\n const childrenRef = useRef(null);\n\n return (\n { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n \n {children}\n \n {\n showHoverTooltip && (\n \n \n \n {hoverTooltip}\n \n \n \n )\n }\n \n );\n}\n\nTooltipWrapper.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n hoverTooltip: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n};\nTooltipWrapper.defaultProps = {\n className: '',\n};\n","import React, { useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ReactionBadge from '../ReactionBadge';\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ContextMenu from '../ContextMenu';\nimport Tooltip from '../Tooltip';\nimport TooltipWrapper from '../TooltipWrapper';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function EmojiReactions({\n className,\n userId,\n message,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-emoji-reactions');\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const imageWidth = '20px';\n const imageHeight = '20px';\n const emojiReactionAddRef = useRef(null);\n const { reactions = [] } = message;\n const messageReactions = reactions;\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n {\n messageReactions && (\n messageReactions.map((reaction) => {\n const { userIds = [] } = reaction;\n const emojiUrl = emojiAllMap.get(reaction.key) || '';\n const reactedUserCount = userIds.length;\n const reactedByMe = !(userIds.indexOf(userId) < 0);\n const nicknames = userIds\n .filter((currentUserId) => currentUserId !== userId)\n .map((currentUserId) => (\n membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER\n ));\n const stringSetForMe = (nicknames.length > 0)\n ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU;\n return (\n 0 && (\n \n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n \n \n )\n }\n >\n toggleReaction(message, reaction.key, reactedByMe)}\n >\n \n )}\n />\n \n \n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n );\n}\n\nEmojiReactions.propTypes = {\n userId: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n message: PropTypes.shape({\n reactions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\nEmojiReactions.defaultProps = {\n className: '',\n membersMap: new Map(),\n userId: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport uuidv4 from '../../utils/uuid';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(/\\r/);\n const matchedMessage = splitMessage\n .map((word) => (word !== '' ? word :
));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import { useEffect } from 'react';\n\nconst MOUSE_ENTER = 'mouseenter';\nconst MOUSE_LEAVE = 'mouseleave';\n\nconst useMouseHover = ({\n ref,\n setHover,\n}) => {\n const handleMouseOver = () => {\n if (ref.current) {\n setHover(true);\n }\n };\n const handleMouseOut = () => {\n if (ref.current) {\n setHover(false);\n }\n };\n\n useEffect(() => {\n const { current } = ref;\n current.addEventListener(MOUSE_ENTER, handleMouseOver);\n current.addEventListener(MOUSE_LEAVE, handleMouseOut);\n return () => {\n current.removeEventListener(MOUSE_ENTER, handleMouseOver);\n current.removeEventListener(MOUSE_LEAVE, handleMouseOut);\n };\n });\n};\n\nexport default useMouseHover;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport UserProfile from '../UserProfile';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport MessageStatus from '../MessageStatus';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n} from './utils';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function Message(props) {\n const {\n isByMe,\n userId,\n message,\n className,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n } = props;\n\n if (!message) return null;\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n injectingClassName.push(`sendbird-message${isByMe ? '--outgoing' : '--incoming'}`);\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-user-message-word',\n });\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nMessage.propTypes = {\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showEdit: PropTypes.func,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n userId: '',\n resendMessage: noop,\n className: '',\n showEdit: noop,\n showRemove: noop,\n status: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUserMessage({\n userId,\n message,\n showEdit,\n disabled,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n \n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n { showRemove(true); }}\n // onResend={() => resendMessage(message)}\n // duplicated and should replace to more\n />\n
\n )\n }\n
\n
\n
\n
\n \n \n \n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n \n \n );\n}\n\nfunction IncomingUserMessage({\n userId,\n message,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n // showProfile && ()\n }\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-user-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n
\n \n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n
\n
\n
\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nIncomingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingUserMessage.defaultProps = {\n message: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nOutgoingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n disabled: PropTypes.bool,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUserMessage.defaultProps = {\n message: {},\n resendMessage: noop,\n showEdit: noop,\n showRemove: noop,\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function AdminMessage({\n className,\n message,\n}) {\n if (!message.messageType || message.messageType !== 'admin') { // change to use message.isAdminMessage()\n return null;\n }\n\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n \n
\n );\n}\n\nAdminMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nAdminMessage.defaultProps = {\n message: {},\n className: '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n getMessageCreatedAt,\n getIsSentFromStatus,\n};\n","import React, { useContext, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport {\n getMessageCreatedAt,\n getIsSentFromStatus,\n} from './util';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n isImage,\n isVideo,\n unSupported,\n} from '../FileViewer/types';\nimport {\n getSenderName,\n getSenderProfileUrl,\n} from '../../utils/utils';\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst noop = () => { };\n\nconst OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message';\nconst INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function ThumbnailMessage({\n message = {},\n userId,\n disabled,\n isByMe,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n return (\n isByMe\n ? (\n \n )\n : (\n \n )\n );\n}\n\nexport function OutgoingThumbnailMessage({\n message = {},\n userId,\n disabled,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n isMessageSent && showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n )\n }\n
\n
\n \n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n role=\"button\"\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n \n \n \n );\n}\n\nexport function IncomingThumbnailMessage({\n message = {},\n userId,\n onClick,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const reactionAddRef = useRef(null);\n const avatarRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n !chainTop && (\n \n {getSenderName(message) || ''}\n \n )\n }\n
\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_THUMBNAIL_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string,\n resendMessage: PropTypes.func,\n status: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n showRemove: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\nThumbnailMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n resendMessage: noop,\n onClick: noop,\n showRemove: noop,\n status: '',\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nOutgoingThumbnailMessage.defaultProps = {\n status: '',\n};\n\nIncomingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nIncomingThumbnailMessage.defaultProps = {\n status: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\n\nimport { getSenderProfileUrl, getSenderName, getMessageCreatedAt } from '../../utils/utils';\nimport {\n truncate,\n getIsSentFromStatus,\n} from './utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst MAX_TRUNCATE_LENGTH = 40;\nconst GROUPAING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\nconst noop = () => { };\n\nfunction checkFileType(fileUrl) {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport function OutgoingFileMessage({\n message,\n userId,\n status,\n showRemove,\n disabled,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n url,\n } = message;\n const openFileUrl = () => { window.open(url); };\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n const showEmojiReactions = isMessageSent && useReaction && message.reactions\n && (message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n {\n checkFileType(url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n \n \n );\n}\n\nexport function IncomingFileMessage({\n message,\n userId,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const openFileUrl = () => { window.open(message.url); };\n const messageRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-file-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n {\n checkFileType(message.url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n \n )\n }\n
\n
\n
\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n \n \n );\n}\n\nOutgoingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingFileMessage.defaultProps = {\n status: '',\n showRemove: noop,\n resendMessage: noop,\n message: {},\n userId: '',\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nIncomingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingFileMessage.defaultProps = {\n message: {},\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nconst MessageSwitch = ({\n message,\n userId,\n disabled,\n isByMe,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) => (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n);\n\n\nMessageSwitch.propTypes = {\n message: PropTypes.shape({}),\n userId: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessageSwitch.defaultProps = {\n message: {},\n isByMe: false,\n disabled: false,\n showRemove: noop,\n resendMessage: noop,\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nexport default MessageSwitch;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nconst RemoveMessage = (props) => {\n const {\n onCloseModal,\n onDeleteMessage,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n );\n};\n\nRemoveMessage.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onDeleteMessage: PropTypes.func.isRequired,\n};\n\nexport default RemoveMessage;\n","import format from 'date-fns/format';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport default {\n getMessageCreatedAt,\n};\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst CLASS_NAME = 'sendbird-unknown-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function UnknownMessage({\n message,\n isByMe,\n status,\n className,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n injectingClassName.push(`${CLASS_NAME}${isByMe ? '--outgoing' : '--incoming'}`);\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n isByMe: PropTypes.bool,\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nUnknownMessage.defaultProps = {\n isByMe: false,\n status: '',\n className: '',\n showRemove: () => { },\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUnknownMessage({\n message,\n status,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-outgoing-unknown-message';\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { showRemove(true); closeDropdown(); }}\n >\n Delete\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n \n \n );\n}\n\nfunction IncomingUnknownMessage({\n message,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-incoming-unknown-message';\n const { sender } = message;\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${className}__left__sender-profile-image`}\n src={sender.profileUrl}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n \n {sender.nickname || stringSet.NO_NAME}\n \n )\n }\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n
\n {\n !chainBottom && (\n \n {utils.getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nOutgoingUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n status: PropTypes.string.isRequired,\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUnknownMessage.defaultProps = {\n showRemove: () => { },\n};\n\nIncomingUnknownMessage.propTypes = {\n message: PropTypes.shape({\n sender: PropTypes.shape({\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }).isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","export const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const OG_MESSAGE = 'sendbird-og-message';\nexport const OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message';\nexport const INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message';\nexport const generateMockMessage = (process) => {\n const message = {\n message: 'go to this link sendbird.com it will be usefull to you!!',\n ogMetaData: {\n title: 'This is the TITLE',\n description: 'I\\'m description I\\'m description I\\'m description I\\'m description ',\n url: 'https://sendbird.com/',\n defaultImage: {\n url: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n alt: 'test',\n },\n },\n sender: {\n profileUrl: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n nickname: 'Hoonying',\n },\n createdAt: 2000000,\n };\n if (process && typeof process === 'function') {\n return process(message);\n }\n return message;\n};\n\nexport default {\n URL_REG,\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n generateMockMessage,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const copyToClipboard = (text) => {\n try {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path\n // to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const checkOGIsEnalbed = (message) => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n\nexport default {\n getSenderName,\n createUrlTester,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { createUrlTester } from './utils';\nimport { URL_REG } from './const';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst WORD_COLOR = LabelColors.ONBACKGROUND_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\nconst isUrl = createUrlTester(URL_REG);\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n} from './const';\nimport {\n getSenderName,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n} from './utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport './index.scss';\n\nimport UserProfile from '../UserProfile';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport Avatar from '../Avatar/index';\n\nimport useMouseHover from '../../hooks/onMouseHover';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst GROUPING_PADDING = '1px';\nconst NORAML_PADDING = '8px';\n\nconst OGMessageSwitch = ({\n isByMe,\n userId,\n status,\n message,\n disabled,\n showEdit,\n chainTop,\n className,\n membersMap,\n showRemove,\n useReaction,\n emojiAllMap,\n chainBottom,\n resendMessage,\n toggleReaction,\n memoizedEmojiListItems,\n}) => {\n const { ogMetaData } = message;\n const injectingClassName = Array.isArray(className) ? className : [className];\n\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n });\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n};\n\nfunction OutgoingOGMessage(props) {\n const {\n status,\n userId,\n message,\n disabled,\n openLink,\n showEdit,\n chainTop,\n showRemove,\n membersMap,\n chainBottom,\n emojiAllMap,\n useReaction,\n resendMessage,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n \n \n );\n}\n\nfunction IncomingOGMessage(props) {\n const {\n userId,\n message,\n openLink,\n chainTop,\n membersMap,\n chainBottom,\n useReaction,\n emojiAllMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const { stringSet } = useContext(LocalizationContext);\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_OG_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n \n )}\n />\n
\n
\n \n \n );\n}\n\nexport default OGMessageSwitch;\n\nconst noop = () => { };\n\nOGMessageSwitch.propTypes = {\n isByMe: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n useReaction: PropTypes.bool.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n status: PropTypes.string,\n disabled: PropTypes.bool,\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n toggleReaction: PropTypes.func,\n membersMap: PropTypes.instanceOf(Map),\n emojiAllMap: PropTypes.instanceOf(Map),\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nOGMessageSwitch.defaultProps = {\n className: '',\n status: '',\n disabled: false,\n showEdit: noop,\n showRemove: noop,\n resendMessage: noop,\n toggleReaction: noop,\n membersMap: new Map(),\n emojiAllMap: new Map(),\n memoizedEmojiListItems: noop,\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingOGMessage.propTypes = {\n status: PropTypes.string,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n isResendable: PropTypes.func,\n errorCode: PropTypes.number,\n }).isRequired,\n disabled: PropTypes.bool.isRequired,\n openLink: PropTypes.func.isRequired,\n showEdit: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingOGMessage.defaultProps = {\n status: '',\n};\n\nIncomingOGMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n openLink: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import React, { useState, useRef, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport format from 'date-fns/format';\n\nimport Message from '../../../ui/Message';\nimport AdminMessage from '../../../ui/AdminMessage';\nimport ThumbnailMessage from '../../../ui/ThumbnailMessage';\nimport FileMessage from '../../../ui/FileMessage';\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\nimport RemoveMessageModal from './RemoveMessage';\nimport UnknownMessage from '../../../ui/UnknownMessage';\nimport OGMessage from '../../../ui/OGMessage';\n\nimport { MessageTypes, getMessageType } from '../types';\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n status,\n resendMessage,\n useReaction,\n chainTop,\n chainBottom,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n renderCustomMessage,\n currentGroupChannel,\n}) {\n const { sender = {} } = message;\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n const RenderedMessage = useMemo(() => {\n if (renderCustomMessage) {\n return renderCustomMessage(message, currentGroupChannel);\n }\n return null;\n }, [message, message.message, renderCustomMessage]);\n\n const isByMe = (userId === sender.userId)\n || (message.requestState === 'pending')\n || (message.requestState === 'failed');\n\n if (RenderedMessage) {\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n \n
\n );\n }\n\n if (showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: ,\n [MessageTypes.FILE]: (\n \n ),\n [MessageTypes.OG]: (\n \n ),\n [MessageTypes.THUMBNAIL]: (\n \n ),\n [MessageTypes.USER]: (\n \n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={() => {\n deleteMessage(message, () => {\n setShowFileViewer(false);\n });\n }}\n isByMe={isByMe}\n />\n )\n }\n {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n }\n
\n );\n}\n\nMessageHoc.propTypes = {\n userId: PropTypes.string,\n message: PropTypes.shape({\n isFileMessage: PropTypes.func,\n isAdminMessage: PropTypes.func,\n isUserMessage: PropTypes.func,\n isDateSeperator: PropTypes.func,\n // should be a number, but there's a bug in SDK shich returns string\n messageId: PropTypes.number,\n type: PropTypes.string,\n createdAt: PropTypes.number,\n message: PropTypes.string,\n requestState: PropTypes.string,\n messageType: PropTypes.string,\n sender: PropTypes.shape({ userId: PropTypes.string }),\n ogMetaData: PropTypes.shape({}),\n }),\n renderCustomMessage: PropTypes.func,\n currentGroupChannel: PropTypes.shape,\n hasSeperator: PropTypes.bool,\n disabled: PropTypes.bool,\n editDisabled: PropTypes.bool,\n deleteMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nMessageHoc.defaultProps = {\n userId: '',\n editDisabled: false,\n renderCustomMessage: null,\n currentGroupChannel: {},\n message: {},\n hasSeperator: false,\n disabled: false,\n status: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport './conversation-scroll.scss';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nimport MessageHOC from './MessageHOC';\nimport {\n getParsedStatus,\n compareMessagesForGrouping,\n} from '../utils';\n\nexport default class ConversationScroll extends Component {\n onScroll = (e) => {\n const {\n scrollRef,\n hasMore,\n messagesDispatcher,\n onScroll,\n currentGroupChannel,\n } = this.props;\n\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const first = nodes[0];\n onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n first.scrollIntoView();\n }\n });\n }\n\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n }\n\n render() {\n const {\n userId,\n disabled,\n scrollRef,\n readStatus,\n membersMap,\n initialized,\n allMessages,\n useReaction,\n emojiAllMap,\n editDisabled,\n deleteMessage,\n updateMessage,\n resendMessage,\n renderCustomMessage,\n renderChatItem,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n } = this.props;\n return (\n
\n \n
\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n initialized\n && allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n if (renderChatItem) {\n return (\n \n {\n renderChatItem({\n message: m,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n })\n }\n
\n );\n }\n\n return (\n \n );\n },\n )\n }\n
\n
\n \n );\n }\n}\n\nConversationScroll.propTypes = {\n // https://stackoverflow.com/a/52646941\n scrollRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}),\n ]),\n }).isRequired,\n hasMore: PropTypes.bool,\n messagesDispatcher: PropTypes.func.isRequired,\n onScroll: PropTypes.func,\n initialized: PropTypes.bool,\n editDisabled: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n allMessages: PropTypes.arrayOf(PropTypes.shape({\n createdAt: PropTypes.number,\n })).isRequired,\n deleteMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n readStatus: PropTypes.shape({}).isRequired,\n currentGroupChannel: PropTypes.shape({\n markAsRead: PropTypes.func,\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n renderChatItem: PropTypes.element,\n renderCustomMessage: PropTypes.func,\n useReaction: PropTypes.bool,\n emojiContainer: PropTypes.shape({}),\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n useMessageGrouping: PropTypes.bool,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nConversationScroll.defaultProps = {\n hasMore: false,\n editDisabled: false,\n disabled: false,\n initialized: false,\n userId: '',\n renderCustomMessage: null,\n renderChatItem: null,\n onScroll: null,\n useReaction: true,\n emojiContainer: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n useMessageGrouping: true,\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './notification.scss';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default function Notification({\n count,\n time,\n onClick,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const timeArray = time.split(' ');\n timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON);\n return (\n // eslint-disable-next-line\n
\n \n \n
\n );\n}\n\nNotification.propTypes = {\n count: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n time: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nNotification.defaultProps = {\n count: 0,\n time: '',\n};\n","import React, { useContext } from 'react';\n\nimport './notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\n\nconst TypingIndicatorText = ({ members }) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nfunction TypingIndicator({ channelUrl, sb, logger }) {\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState([]);\n\n useEffect(() => {\n if (sb && sb.ChannelHandler) {\n sb.removeChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new sb.ChannelHandler();\n // there is a possible warning in here - setState called after unmount\n handler.onTypingStatusUpdated = (groupChannel) => {\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n const members = groupChannel.getTypingMembers();\n if (groupChannel.url === channelUrl) {\n setTypingMembers(members);\n }\n };\n sb.addChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb && sb.removeChannelHandler) {\n sb.removeChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n \n );\n}\n\nTypingIndicator.propTypes = {\n channelUrl: PropTypes.string.isRequired,\n sb: PropTypes.shape({\n ChannelHandler: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n addChannelHandler: PropTypes.func,\n }).isRequired,\n logger: PropTypes.shape({\n info: PropTypes.func,\n }).isRequired,\n};\n\nexport default TypingIndicator;\n","// Logic required to handle message input rendering\n\nimport React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\n\nimport { RenderMessageInputProps } from '../../../index';\nimport * as utils from '../utils.js';\n\nimport MessageInput from '../../../ui/MessageInput';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: Sendbird.GroupChannel;\n user: Sendbird.User;\n isOnline: boolean;\n initialized: boolean;\n onSendMessage(): void;\n onFileUpload(): void;\n renderMessageInput(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n isOnline,\n initialized,\n}: Props, ref: React.RefObject): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // custom message\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n {\n channel.startTyping();\n }}\n onSendMessage={onSendMessage}\n onFileUpload={onFileUpload}\n />\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\nimport './index.scss';\n\nfunction ConnectionStatus() {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n );\n}\n\nexport default ConnectionStatus;\n","import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict';\nimport { LabelStringSet } from '../Label';\n\nexport const prettyDate = (date) => formatDistanceToNowStrict(date, { addSuffix: true });\n\nexport const getOthersLastSeenAt = (channel) => {\n if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) {\n return '';\n }\n const lastSeenList = [...Object.values(channel.getReadStatus())];\n const lastSeenAt = lastSeenList.length > 0\n ? lastSeenList[0].last_seen_at\n : 0;\n if (lastSeenAt === 0) {\n return '';\n }\n return prettyDate(lastSeenAt);\n};\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default function AutoRefresh({\n repeatFunc,\n}) {\n const [label, setLabel] = useState(repeatFunc());\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (label !== repeatFunc()) {\n setLabel(repeatFunc());\n }\n }, 10000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (
{label}
);\n}\n\nAutoRefresh.propTypes = {\n repeatFunc: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport AutoRefresh from '../AutoRefresh';\nimport ChannelAvatar from '../ChannelAvatar/index';\n\nexport default function ChatHeader(props) {\n const {\n currentGroupChannel,\n currentUser,\n title,\n subTitle,\n isActive,\n isMuted,\n onActionClick,\n theme,\n } = props;\n const { userId } = currentUser;\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n \n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n \n {\n (typeof isActive === 'string' && isActive === 'true') || (typeof isActive === 'boolean' && isActive)\n ?
\n : null\n }\n \n {\n subTitle\n || utils.getOthersLastSeenAt(currentGroupChannel)} />\n }\n \n
\n
\n {\n (typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted)\n ? \n : null\n }\n \n \n \n
\n
\n );\n}\n\nChatHeader.propTypes = {\n currentGroupChannel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n }),\n theme: PropTypes.string,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n title: PropTypes.string,\n subTitle: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n isActive: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isMuted: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n onActionClick: PropTypes.func,\n};\n\nChatHeader.defaultProps = {\n currentGroupChannel: {},\n title: '',\n theme: 'light',\n subTitle: '',\n isActive: false,\n isMuted: false,\n currentUser: {},\n onActionClick: () => { },\n};\n","import React, {\n useEffect,\n useRef,\n useReducer,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as messageActionTypes from './dux/actionTypes';\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useSetReadStatus from './hooks/useSetReadStatus';\nimport useMemoizedEmojiListItems from './hooks/useMemoizedEmojiListItems';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\n\nimport ConversationScroll from './components/ConversationScroll';\nimport Notification from './components/Notification';\nimport FrozenNotification from './components/FrozenNotification';\nimport TypingIndicator from './components/TypingIndicator';\nimport MessageInputWrapper from './components/MessageInputWrapper';\nimport ConnectionStatus from '../../ui/ConnectionStatus';\nimport ChatHeader from '../../ui/ChatHeader';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\n\nconst noop = () => { };\n\nexport const ConversationPanel = (props) => {\n const {\n channelUrl,\n stores: { sdkStore, userStore },\n config: {\n userId,\n logger,\n pubSub,\n isOnline,\n theme,\n },\n dispatchers: {\n reconnect,\n },\n queries = {},\n useReaction,\n renderChatItem,\n renderChatHeader,\n renderCustomMessage,\n renderUserProfile,\n disableUserProfile,\n renderMessageInput,\n useMessageGrouping,\n onChatHeaderActionClick,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n } = props;\n const { sdk } = sdkStore;\n const { config } = props;\n const sdkError = sdkStore.error;\n const sdkInit = sdkStore.initialized;\n const { user } = userStore;\n\n if (queries.messageListQuery) {\n // eslint-disable-next-line no-console\n console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead');\n }\n\n const userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery;\n\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n loading,\n hasMore,\n initialized,\n unreadCount,\n unreadSince,\n isInvalid,\n currentGroupChannel = {},\n lastMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n const { isFrozen, isBroadcast } = currentGroupChannel;\n const { appInfo = {} } = sdk;\n const usingReaction = (\n (appInfo.isUsingReaction && !isBroadcast) || useReaction || false\n );\n\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n\n const emojiAllList = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisFromEmojiContainer(emojiContainer)\n : []\n ), [emojiContainer]);\n\n const nicknamesMap = useMemo(() => (\n usingReaction\n ? utils.getNicknamesMapFromMembers(currentGroupChannel.members)\n : new Map()\n ), [currentGroupChannel.members]);\n\n const onScrollCallback = useScrollCallback({\n currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery,\n }, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n const memoizedEmojiListItems = useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n }, {\n useReaction: usingReaction,\n logger,\n userId,\n emojiAllList,\n });\n\n // to create message-datasource\n useGetChannel(\n { channelUrl, sdkInit },\n { messagesDispatcher, sdk, logger },\n );\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n { currentGroupChannel, sdkInit, userId },\n { messagesDispatcher, sdk, logger },\n );\n\n useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subScriber = utils.pubSubHandler(channelUrl, pubSub, messagesDispatcher);\n return () => {\n utils.pubSubHandleRemover(subScriber);\n };\n }, [channelUrl, sdkInit]);\n\n // to create initial read status\n useSetReadStatus(\n { allMessages, currentGroupChannel },\n { messagesDispatcher, sdk, logger },\n );\n\n // handling connection breaks\n useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n });\n\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage },\n { logger, sdk, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, onSendMessage] = useSendMessageCallback(\n { currentGroupChannel, onBeforeSendUserMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n const [onSendFileMessage] = useSendFileMessageCallback(\n { currentGroupChannel, onBeforeSendFileMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n\n if (sdkError) {\n return (\n
\n {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n
\n );\n }\n if (!channelUrl) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n return (\n \n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n \n )\n }\n {\n isFrozen && (\n \n )\n }\n {\n unreadCount > 0 && (\n {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n // there is no scroll\n if (scrollRef.current.scrollTop === 0) {\n currentGroupChannel.markAsRead();\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n }\n }}\n time={unreadSince}\n />\n )\n }\n \n
\n \n
\n \n
\n {\n !isOnline && (\n \n )\n }\n
\n \n );\n};\n\nConversationPanel.propTypes = {\n channelUrl: PropTypes.string,\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n GroupChannel: PropTypes.any,\n ChannelHandler: PropTypes.any,\n addChannelHandler: PropTypes.func,\n UserMessageParams: PropTypes.any,\n FileMessageParams: PropTypes.any,\n getAllEmoji: PropTypes.func,\n appInfo: PropTypes.shape({}),\n }),\n error: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n reconnect: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n userId: PropTypes.string.isRequired,\n isOnline: PropTypes.bool.isRequired,\n theme: PropTypes.string,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n messageListParams: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n // deprecate in v1.3\n messageListQuery: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeSendUserMessage: PropTypes.func, // onBeforeSendUserMessage(text)\n onBeforeSendFileMessage: PropTypes.func, // onBeforeSendFileMessage(File)\n onBeforeUpdateUserMessage: PropTypes.func,\n renderChatItem: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderCustomMessage: PropTypes.func,\n renderMessageInput: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderChatHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChatHeaderActionClick: PropTypes.func,\n useReaction: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n useMessageGrouping: PropTypes.bool,\n};\n\nConversationPanel.defaultProps = {\n channelUrl: null,\n queries: {},\n onBeforeSendUserMessage: null,\n onBeforeSendFileMessage: null,\n onBeforeUpdateUserMessage: null,\n renderChatItem: null,\n renderCustomMessage: null,\n renderMessageInput: null,\n renderChatHeader: null,\n useReaction: true,\n disableUserProfile: false,\n renderUserProfile: null,\n useMessageGrouping: true,\n onChatHeaderActionClick: noop,\n};\n\nexport const {\n getEmojiCategoriesFromEmojiContainer,\n getAllEmojisFromEmojiContainer,\n getEmojisFromEmojiContainer,\n} = utils;\n\nexport default withSendbirdContext(ConversationPanel);\n"],"names":["RESET_MESSAGES","RESET_STATE","CLEAR_SENT_MESSAGES","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","SEND_MESSAGEGE_START","SEND_MESSAGEGE_SUCESS","SEND_MESSAGEGE_FAILURE","RESEND_MESSAGEGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","SET_READ_STATUS","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","getMessageType","message","isUserMessage","messageType","ogMetaData","isAdminMessage","isFileMessage","isImage","type","isVideo","UNDEFINED","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","pubSubHandleRemover","subscriber","forEach","s","remove","pubSubHandler","channelUrl","pubSub","dispatcher","Map","subscribe","set","topics","msg","channel","url","channelActions","payload","fromSelector","messageId","getParsedStatus","currentGroupChannel","requestState","MessageStatusType","SENT","unreadCount","getReadReceipt","READ","isDelivered","getDeliveryReceipt","DELIVERED","isOperator","groupChannel","myRole","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","myMutedState","getEmojiCategoriesFromEmojiContainer","emojiContainer","emojiCategories","getAllEmojisFromEmojiContainer","allEmojis","categoryIndex","emojis","emojiIndex","push","getEmojisFromEmojiContainer","emojiCategoryId","filter","emojiCategory","id","getAllEmojisMapFromEmojiContainer","allEmojisMap","key","getNicknamesMapFromMembers","members","nicknamesMap","memberIndex","userId","nickname","getMessageCreatedAt","format","createdAt","isSameGroup","comparingMessage","sender","sendingStatus","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","passUnsuccessfullMessages","allMessages","newMessage","lastIndexOfSucceededMessage","map","lastIndexOf","messages","splice","initialized","loading","hasMore","lastMessageTimeStamp","readStatus","unreadSince","isInvalid","reducer","state","action","actionTypes","initialState","m","receivedMessages","stateChannel","stateChannelUrl","actionChannelUrl","filteredAllMessages","find","compareIds","newMessages","reqId","sort","a","b","failed","currentGroupChannelUrl","indexOf","Date","applyReactionEvent","useHandleChannelEvents","sdkInit","messagesDispatcher","sdk","logger","useEffect","messageReceiverId","uuidv4","ChannelHandler","info","onMessageReceived","messageActions","onMessageUpdated","onMessageDeleted","_","onReactionUpdated","reactionEvent","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onUserMuted","onUserUnmuted","onUserBanned","onOperatorUpdated","addChannelHandler","removeChannelHandler","useSetChannel","GroupChannel","getChannel","then","messageActionTypes","markAsRead","catch","e","warning","getAllEmoji","emojiContainer_","err","useInitialMessagesFetch","userFilledMessageListQuery","MessageListParams","getMessagesByMessageId","messageListParams","prevResultSize","isInclusive","includeReplies","includeReaction","Object","keys","getMessagesByTimestamp","getTime","finally","utils","useHandleReconnect","isOnline","wasOffline","appInfo","useReaction","isUsingReaction","lastMessageTime","useScrollCallback","useCallback","cb","hasMoreMessages","lastMessageTs","useDeleteMessageCallback","deleteMessage","useUpdateMessageCallback","onBeforeUpdateUserMessage","text","createParamsDefault","txt","params","UserMessageParams","createCustomPrams","updateUserMessage","r","swapParams","getErrorFirstCallback","publish","useResendMessageCallback","failedMessage","file","isResendable","resendUserMessage","resendFileMessage","console","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","useRef","sendMessage","current","value","trim","pendingMsg","sendUserMessage","res","useSendFileMessageCallback","onBeforeSendFileMessage","file_","FileMessageParams","sendFileMessage","response","localUrl","URL","createObjectURL","useSetReadStatus","setReadStatus","allReadStatus","reduce","accumulator","handler","handleMessageStatus","c","onDeliveryReceiptUpdated","onReadReceiptUpdated","handlerId","ReactionButton","React","forwardRef","props","ref","children","width","height","onClick","selected","className","injectingClassName","Array","isArray","join","slice","propTypes","PropTypes","element","isRequired","func","bool","oneOfType","number","string","arrayOf","defaultProps","useMemoizedEmojiListItems","toggleReaction","emojiAllList","useMemo","parentRef","parentContainRef","closeDropdown","spaceFromTrigger","emoji","reactedReaction","reactions","reaction","isReacted","userIds","IconTypes","EMOJI_FAILED","useToggleReactionCallback","deleteReaction","addReaction","MessageStatus","status","label","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_2","icon","SPINNER","IconColors","ERROR","objectOf","array","object","ReactionBadge","count","isAdd","unshift","ONBACKGROUND_1","CLASS_NAME","Tooltip","SPACE_FROM_TRIGGER","TooltipWrapper","hoverTooltip","useState","showHoverTooltip","setShowHoverTooltip","childrenRef","bottom","left","offsetWidth","EmojiReactions","emojiAllMap","membersMap","memoizedEmojiListItems","MemoizedEmojiListItems","imageWidth","imageHeight","emojiReactionAddRef","messageReactions","useContext","LocalizationContext","stringSet","emojiUrl","get","reactedUserCount","reactedByMe","nicknames","currentUserId","TOOLTIP__UNKOWN_USER","stringSetForMe","TOOLTIP__AND_YOU","TOOLTIP__YOU","size","toggleDropdown","ON_BACKGROUND_3","EMOJI_REACTIONS_ADD","y","shape","instanceOf","WORD_TYPOGRAPHY","BODY_1","EDITED_COLOR","useMemoizedMessageText","updatedAt","splitMessage","split","matchedMessage","word","MESSAGE_EDITED","MOUSE_ENTER","MOUSE_LEAVE","useMouseHover","setHover","handleMouseOver","handleMouseOut","addEventListener","removeEventListener","noop","GROUPING_PADDING","NORMAL_PADDING","Message","isByMe","resendMessage","disabled","showEdit","showRemove","chainTop","chainBottom","memoizedMessageText","OutgoingUserMessage","MemoizedMessageText","messageRef","parentRefReactions","parentRefMenus","isMessageSent","getIsSentFromStatus","mousehover","setMousehover","moreActive","setMoreActive","handleMoreIconClick","handleMoreIconBlur","paddingTop","paddingBottom","MORE","CONTENT_INVERSE","copyToClipboard","IncomingUserMessage","avatarRef","UserProfileContext","disableUserProfile","renderUserProfile","showReactionAddButton","showEmojiReactions","getSenderProfileUrl","user","close","CAPTION_2","getSenderName","AdminMessage","OUTGOING_THUMBNAIL_MESSAGE","INCOMING_THUMBNAIL_MESSAGE","ThumbnailMessage","OutgoingThumbnailMessage","menuRef","reactionAddRef","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","PLAY","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","unSupported","UNKNOWN__UNKNOWN_MESSAGE_TYPE","IncomingThumbnailMessage","MAX_TRUNCATE_LENGTH","GROUPAING_PADDING","checkFileType","fileUrl","result","imageFile","audioFile","test","FILE_DOCUMENT","FILE_AUDIO","OutgoingFileMessage","openFileUrl","window","open","reactionAddButtonRef","truncate","IncomingFileMessage","MessageSwitch","RemoveMessage","onCloseModal","onDeleteMessage","MODAL__DELETE_MESSAGE__TITLE","UnknownMessage","OutgoingUnknownMessage","UNKNOWN__CANNOT_READ_MESSAGE","IncomingUnknownMessage","profileUrl","NO_NAME","URL_REG","OG_MESSAGE","OUTGOING_OG_MESSAGE","INCOMING_OG_MESSAGE","createUrlTester","regexp","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","friendName","checkOGIsEnalbed","WORD_COLOR","isUrl","NORAML_PADDING","OGMessageSwitch","openLink","OutgoingOGMessage","defaultImage","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","alt","NO_THUMBNAIL","title","SUBTITLE_2","description","BODY_2","event","stopPropagation","IncomingOGMessage","errorCode","MessageHoc","editDisabled","hasSeperator","updateMessage","renderCustomMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","editMessageInputRef","RenderedMessage","FileMessage","OGMessage","RemoveMessageModal","isDateSeperator","ConversationScroll","scrollRef","onScroll","target","scrollTop","clientHeight","scrollHeight","first","renderChatItem","useMessageGrouping","idx","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","onUpdateMessage","onResendMessage","MessageHOC","Component","Notification","time","timeArray","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","ONCONTENT_1","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","SHEVRON_DOWN","CONTENT","FrozenNotification","CHANNEL_FROZEN","TypingIndicatorText","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","TypingIndicator","sb","setHandlerId","typingMembers","setTypingMembers","newHandlerId","onTypingStatusUpdated","getTypingMembers","MessageInputWrapper","_a","onSendMessage","onFileUpload","renderMessageInput","isBroadcast","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","startTyping","ConnectionStatus","TRYING_TO_CONNECT","DISCONNECTED","prettyDate","date","formatDistanceToNowStrict","addSuffix","getOthersLastSeenAt","getReadStatus","lastSeenList","values","lastSeenAt","last_seen_at","getChannelTitle","LabelStringSet","name","NO_TITLE","NO_MEMBERS","AutoRefresh","repeatFunc","setLabel","interval","setInterval","clearInterval","ChatHeader","currentUser","subTitle","isActive","isMuted","onActionClick","theme","H_2","MUTE","INFO","PRIMARY","coverUrl","ConversationPanel","stores","sdkStore","userStore","config","reconnect","dispatchers","queries","renderChatHeader","onChatHeaderActionClick","sdkError","messageListQuery","warn","useReducer","messagesReducer","messagesInitialState","messagesStore","usingReaction","userDefinedDisableUserProfile","userDefinedRenderProfile","onScrollCallback","useGetChannel","subScriber","onSendFileMessage","PlaceHolderTypes","WRONG","NO_CHANNELS","LOADING","any","includeMetaArray","includeParentMessageText","includeThreadInfo","limit","reverse","senderUserIdsFilter","withSendbirdContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/ChannelList.js b/dist/esm/ChannelList.js index dc45daf..ee675ac 100644 --- a/dist/esm/ChannelList.js +++ b/dist/esm/ChannelList.js @@ -2,17 +2,17 @@ import { a as _objectSpread2, c as _toConsumableArray, e as LocalizationContext, import React, { useContext, useRef, useState, useEffect, useReducer } from 'react'; import PropTypes from 'prop-types'; import { U as UPDATE_USER_INFO } from './actionTypes-a85c0eaa.js'; -import { L as LabelStringSet, I as Icon, a as IconTypes, b as Label, c as LabelTypography, d as LabelColors, e as IconButton, A as Avatar, M as Modal, T as Type, f as TextButton, g as IconColors, C as ContextMenu, h as MenuItems, i as MenuItem, P as PlaceHolder, j as CREATE_CHANNEL$1, U as UPDATE_USER_MESSAGE, k as LEAVE_CHANNEL, S as SEND_MESSAGE_START, l as UserProfileProvider, m as PlaceHolderTypes } from './index-0c67ae90.js'; +import { L as LabelStringSet, I as Icon, a as IconTypes, b as Label, c as LabelTypography, d as LabelColors, e as IconButton, A as Avatar, M as Modal, T as Type, f as TextButton, g as IconColors, C as ContextMenu, h as MenuItems, i as MenuItem, P as PlaceHolder, j as CREATE_CHANNEL$1, U as UPDATE_USER_MESSAGE, k as LEAVE_CHANNEL, S as SEND_MESSAGE_START, l as UserProfileProvider, m as PlaceHolderTypes } from './index-ec3bf9fe.js'; import { n as noop$1 } from './utils-53ba1773.js'; -import { C as ChannelAvatar } from './index-a199094e.js'; -import { B as Badge, i as isBroadcastChannelEnabled, a as isSuperGroupChannelEnabled, I as InviteMembers, c as createDefaultUserListQuery, b as createChannel, L as LeaveChannelModal } from './LeaveChannel-fcc0bfc3.js'; +import { C as ChannelAvatar } from './index-aebda3d2.js'; +import { B as Badge, i as isBroadcastChannelEnabled, a as isSuperGroupChannelEnabled, I as InviteMembers, c as createDefaultUserListQuery, b as createChannel, L as LeaveChannelModal } from './LeaveChannel-da8b5d0b.js'; import isToday from 'date-fns/isToday'; import format from 'date-fns/format'; import isYesterday from 'date-fns/isYesterday'; import './type-0296584d.js'; import { t as truncate } from './utils-cfdeb084.js'; import 'react-dom'; -import { I as InputLabel, a as Input } from './index-73379213.js'; +import { I as InputLabel, a as Input } from './index-aa89d60a.js'; var RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST'; var CREATE_CHANNEL = 'CREATE_CHANNEL'; diff --git a/dist/esm/ChannelSettings.js b/dist/esm/ChannelSettings.js index 4c7616d..0e994b6 100644 --- a/dist/esm/ChannelSettings.js +++ b/dist/esm/ChannelSettings.js @@ -1,14 +1,14 @@ import { b as _slicedToArray, e as LocalizationContext, d as __spreadArrays, _ as __assign, w as withSendbirdContext, u as uuidv4 } from './LocalizationContext-619bafba.js'; import React, { useRef, useState, useContext, useEffect, useCallback } from 'react'; import PropTypes from 'prop-types'; -import { M as Modal, T as Type, A as Avatar, f as TextButton, b as Label, c as LabelTypography, d as LabelColors, C as ContextMenu, e as IconButton, I as Icon, a as IconTypes, g as IconColors, h as MenuItems, i as MenuItem, n as UserProfileContext, o as UserProfile, B as Button, w as Size, z as getSdk, P as PlaceHolder, m as PlaceHolderTypes, l as UserProfileProvider } from './index-0c67ae90.js'; +import { M as Modal, T as Type, A as Avatar, f as TextButton, b as Label, c as LabelTypography, d as LabelColors, C as ContextMenu, e as IconButton, I as Icon, a as IconTypes, g as IconColors, h as MenuItems, i as MenuItem, n as UserProfileContext, o as UserProfile, B as Button, w as Size, z as getSdk, P as PlaceHolder, m as PlaceHolderTypes, l as UserProfileProvider } from './index-ec3bf9fe.js'; import { n as noop } from './utils-53ba1773.js'; -import { C as ChannelAvatar } from './index-a199094e.js'; -import { I as InviteMembers$1, B as Badge, c as createDefaultUserListQuery, L as LeaveChannelModal } from './LeaveChannel-fcc0bfc3.js'; +import { C as ChannelAvatar } from './index-aebda3d2.js'; +import { I as InviteMembers$1, B as Badge, c as createDefaultUserListQuery, L as LeaveChannelModal } from './LeaveChannel-da8b5d0b.js'; import 'date-fns/format'; import 'react-dom'; -import { I as InputLabel, a as Input, U as UserListItem$2, M as MutedAvatarOverlay } from './index-73379213.js'; -import { A as AccordionGroup, a as Accordion } from './index-7bc4a9f7.js'; +import { I as InputLabel, a as Input, U as UserListItem$2, M as MutedAvatarOverlay } from './index-aa89d60a.js'; +import { A as AccordionGroup, a as Accordion } from './index-8abf69b8.js'; var EditDetails = function EditDetails(props) { var _onSubmit = props.onSubmit, diff --git a/dist/esm/LeaveChannel-fcc0bfc3.js b/dist/esm/LeaveChannel-da8b5d0b.js similarity index 98% rename from dist/esm/LeaveChannel-fcc0bfc3.js rename to dist/esm/LeaveChannel-da8b5d0b.js index b54d505..fa0e1a9 100644 --- a/dist/esm/LeaveChannel-fcc0bfc3.js +++ b/dist/esm/LeaveChannel-da8b5d0b.js @@ -1,8 +1,8 @@ import { e as LocalizationContext, c as _toConsumableArray, b as _slicedToArray, a as _objectSpread2, l as _defineProperty } from './LocalizationContext-619bafba.js'; import React, { useContext, useState, useEffect } from 'react'; import PropTypes from 'prop-types'; -import { b as Label, c as LabelTypography, d as LabelColors, M as Modal, T as Type } from './index-0c67ae90.js'; -import { U as UserListItem } from './index-73379213.js'; +import { b as Label, c as LabelTypography, d as LabelColors, M as Modal, T as Type } from './index-ec3bf9fe.js'; +import { U as UserListItem } from './index-aa89d60a.js'; function Badge(_ref) { var count = _ref.count, @@ -287,4 +287,4 @@ LeaveChannel.propTypes = { }; export { Badge as B, InviteMembers as I, LeaveChannel as L, isSuperGroupChannelEnabled as a, createChannel as b, createDefaultUserListQuery as c, isBroadcastChannelEnabled as i }; -//# sourceMappingURL=LeaveChannel-fcc0bfc3.js.map +//# sourceMappingURL=LeaveChannel-da8b5d0b.js.map diff --git a/dist/esm/LeaveChannel-fcc0bfc3.js.map b/dist/esm/LeaveChannel-da8b5d0b.js.map similarity index 99% rename from dist/esm/LeaveChannel-fcc0bfc3.js.map rename to dist/esm/LeaveChannel-da8b5d0b.js.map index 0436b72..37401ec 100644 --- a/dist/esm/LeaveChannel-fcc0bfc3.js.map +++ b/dist/esm/LeaveChannel-da8b5d0b.js.map @@ -1 +1 @@ -{"version":3,"file":"LeaveChannel-fcc0bfc3.js","sources":["../../../src/ui/Badge/index.jsx","../../../src/smart-components/InviteMembers/index.jsx","../../../src/smart-components/ChannelList/components/utils.js","../../../src/smart-components/ChannelSettings/components/LeaveChannel.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function Badge({\n count,\n maxLevel,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const maximumNumber = parseInt('9'.repeat((maxLevel > 6) ? 6 : maxLevel), 10);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n
\n \n
\n
\n );\n}\n\nBadge.propTypes = {\n count: PropTypes.number.isRequired,\n maxLevel: PropTypes.number,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nBadge.defaultProps = {\n maxLevel: 2,\n className: [],\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Modal from '../../ui/Modal';\nimport { Type as ButtonTypes } from '../../ui/Button/type';\nimport UserListItem from '../../ui/UserListItem';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst filterUser = (idsToFilter) => (currentId) => idsToFilter.includes(currentId);\n\nconst InviteMembers = (props) => {\n const {\n userQueryCreator,\n closeModal,\n onSubmit,\n submitText,\n titleText,\n idsToFilter,\n swapParams,\n } = props;\n\n const [users, setUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState({});\n const { stringSet } = useContext(LocalizationContext);\n const [usersDataSource, setUsersDataSource] = useState({});\n const selectedCount = Object.keys(selectedUsers).length;\n\n useEffect(() => {\n const applicationUserListQuery = userQueryCreator();\n setUsersDataSource(applicationUserListQuery);\n applicationUserListQuery.next((res, err) => {\n // eslint-disable-next-line no-underscore-dangle\n let users_ = res;\n let error = err;\n if (swapParams) {\n users_ = err;\n error = users_;\n }\n if (error) {\n return;\n }\n setUsers(users_);\n });\n }, []);\n\n return (\n {\n const selectedUserList = Object.keys(selectedUsers);\n if (selectedUserList.length > 0) {\n onSubmit(selectedUserList);\n closeModal();\n }\n }}\n submitText={submitText}\n titleText={titleText}\n type={ButtonTypes.PRIMARY}\n >\n
\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = usersDataSource;\n const fetchMore = (\n e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n usersDataSource.next((usersBatch, error) => {\n if (error) {\n return;\n }\n setUsers([\n ...users,\n ...usersBatch,\n ]);\n });\n }\n }}\n >\n {\n users.map((user) => (!filterUser(idsToFilter)(user.userId)) && (\n {\n const modifiedSelectedUsers = {\n ...selectedUsers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedUsers[event.target.id];\n }\n setSelectedUsers(modifiedSelectedUsers);\n }\n }\n />\n ))\n }\n
\n
\n \n );\n};\n\nInviteMembers.propTypes = {\n idsToFilter: PropTypes.arrayOf(PropTypes.string),\n swapParams: PropTypes.bool,\n userQueryCreator: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string,\n titleText: PropTypes.string,\n};\nInviteMembers.defaultProps = {\n swapParams: false,\n submitText: 'create',\n titleText: 'Create new channel',\n idsToFilter: [],\n};\n\nexport default InviteMembers;\n","export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n const params = sdk.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.GroupChannel.createChannel(params, (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.GroupChannel.createChannel(\n params,\n (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n },\n );\n});\n\nexport default createChannel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\n\nconst LeaveChannel = (props) => {\n const {\n onCloseModal,\n onLeaveChannel,\n } = props;\n return (\n \n );\n};\n\nLeaveChannel.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nexport default LeaveChannel;\n"],"names":["Badge","count","maxLevel","className","useContext","LocalizationContext","stringSet","maximumNumber","parseInt","repeat","injectingClassName","Array","isArray","join","LabelTypography","CAPTION_2","LabelColors","ONCONTENT_1","BADGE__OVER","propTypes","PropTypes","number","isRequired","oneOfType","string","arrayOf","defaultProps","filterUser","idsToFilter","currentId","includes","InviteMembers","props","userQueryCreator","closeModal","onSubmit","submitText","titleText","swapParams","useState","users","setUsers","selectedUsers","setSelectedUsers","usersDataSource","setUsersDataSource","selectedCount","Object","keys","length","useEffect","applicationUserListQuery","next","res","err","users_","error","selectedUserList","ButtonTypes","PRIMARY","ONBACKGROUND_3","CAPTION_1","MODAL__INVITE_MEMBER__SELECTEC","e","hasNext","fetchMore","target","clientHeight","scrollTop","scrollHeight","usersBatch","map","user","userId","event","modifiedSelectedUsers","id","checked","bool","func","createDefaultUserListQuery","sdk","userFilledApplicationUserListQuery","params","createApplicationUserListQuery","forEach","key","getApplicationAttributes","appInfo","applicationAttributes","isBroadcastChannelEnabled","ALLOW_BROADCAST_CHANNEL","isSuperGroupChannelEnabled","ALLOW_SUPER_GROUP_CHANNEL","setChannelType","type","isBroadcast","isSuper","createChannel","onBeforeCreateChannel","Promise","resolve","reject","GroupChannel","response","getErrorFirstCallback","groupChannel","GroupChannelParams","addUserIds","isDistinct","operatorUserIds","LeaveChannel","onCloseModal","onLeaveChannel"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LeaveChannel-da8b5d0b.js","sources":["../../../src/ui/Badge/index.jsx","../../../src/smart-components/InviteMembers/index.jsx","../../../src/smart-components/ChannelList/components/utils.js","../../../src/smart-components/ChannelSettings/components/LeaveChannel.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function Badge({\n count,\n maxLevel,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const maximumNumber = parseInt('9'.repeat((maxLevel > 6) ? 6 : maxLevel), 10);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n
\n \n
\n
\n );\n}\n\nBadge.propTypes = {\n count: PropTypes.number.isRequired,\n maxLevel: PropTypes.number,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nBadge.defaultProps = {\n maxLevel: 2,\n className: [],\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Modal from '../../ui/Modal';\nimport { Type as ButtonTypes } from '../../ui/Button/type';\nimport UserListItem from '../../ui/UserListItem';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst filterUser = (idsToFilter) => (currentId) => idsToFilter.includes(currentId);\n\nconst InviteMembers = (props) => {\n const {\n userQueryCreator,\n closeModal,\n onSubmit,\n submitText,\n titleText,\n idsToFilter,\n swapParams,\n } = props;\n\n const [users, setUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState({});\n const { stringSet } = useContext(LocalizationContext);\n const [usersDataSource, setUsersDataSource] = useState({});\n const selectedCount = Object.keys(selectedUsers).length;\n\n useEffect(() => {\n const applicationUserListQuery = userQueryCreator();\n setUsersDataSource(applicationUserListQuery);\n applicationUserListQuery.next((res, err) => {\n // eslint-disable-next-line no-underscore-dangle\n let users_ = res;\n let error = err;\n if (swapParams) {\n users_ = err;\n error = users_;\n }\n if (error) {\n return;\n }\n setUsers(users_);\n });\n }, []);\n\n return (\n {\n const selectedUserList = Object.keys(selectedUsers);\n if (selectedUserList.length > 0) {\n onSubmit(selectedUserList);\n closeModal();\n }\n }}\n submitText={submitText}\n titleText={titleText}\n type={ButtonTypes.PRIMARY}\n >\n
\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = usersDataSource;\n const fetchMore = (\n e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n usersDataSource.next((usersBatch, error) => {\n if (error) {\n return;\n }\n setUsers([\n ...users,\n ...usersBatch,\n ]);\n });\n }\n }}\n >\n {\n users.map((user) => (!filterUser(idsToFilter)(user.userId)) && (\n {\n const modifiedSelectedUsers = {\n ...selectedUsers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedUsers[event.target.id];\n }\n setSelectedUsers(modifiedSelectedUsers);\n }\n }\n />\n ))\n }\n
\n \n \n );\n};\n\nInviteMembers.propTypes = {\n idsToFilter: PropTypes.arrayOf(PropTypes.string),\n swapParams: PropTypes.bool,\n userQueryCreator: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string,\n titleText: PropTypes.string,\n};\nInviteMembers.defaultProps = {\n swapParams: false,\n submitText: 'create',\n titleText: 'Create new channel',\n idsToFilter: [],\n};\n\nexport default InviteMembers;\n","export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n const params = sdk.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.GroupChannel.createChannel(params, (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.GroupChannel.createChannel(\n params,\n (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n },\n );\n});\n\nexport default createChannel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\n\nconst LeaveChannel = (props) => {\n const {\n onCloseModal,\n onLeaveChannel,\n } = props;\n return (\n \n );\n};\n\nLeaveChannel.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nexport default LeaveChannel;\n"],"names":["Badge","count","maxLevel","className","useContext","LocalizationContext","stringSet","maximumNumber","parseInt","repeat","injectingClassName","Array","isArray","join","LabelTypography","CAPTION_2","LabelColors","ONCONTENT_1","BADGE__OVER","propTypes","PropTypes","number","isRequired","oneOfType","string","arrayOf","defaultProps","filterUser","idsToFilter","currentId","includes","InviteMembers","props","userQueryCreator","closeModal","onSubmit","submitText","titleText","swapParams","useState","users","setUsers","selectedUsers","setSelectedUsers","usersDataSource","setUsersDataSource","selectedCount","Object","keys","length","useEffect","applicationUserListQuery","next","res","err","users_","error","selectedUserList","ButtonTypes","PRIMARY","ONBACKGROUND_3","CAPTION_1","MODAL__INVITE_MEMBER__SELECTEC","e","hasNext","fetchMore","target","clientHeight","scrollTop","scrollHeight","usersBatch","map","user","userId","event","modifiedSelectedUsers","id","checked","bool","func","createDefaultUserListQuery","sdk","userFilledApplicationUserListQuery","params","createApplicationUserListQuery","forEach","key","getApplicationAttributes","appInfo","applicationAttributes","isBroadcastChannelEnabled","ALLOW_BROADCAST_CHANNEL","isSuperGroupChannelEnabled","ALLOW_SUPER_GROUP_CHANNEL","setChannelType","type","isBroadcast","isSuper","createChannel","onBeforeCreateChannel","Promise","resolve","reject","GroupChannel","response","getErrorFirstCallback","groupChannel","GroupChannelParams","addUserIds","isDistinct","operatorUserIds","LeaveChannel","onCloseModal","onLeaveChannel"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/OpenChannel.js b/dist/esm/OpenChannel.js index bcb72ae..7c2a098 100644 --- a/dist/esm/OpenChannel.js +++ b/dist/esm/OpenChannel.js @@ -1,10 +1,10 @@ import { e as LocalizationContext, n as uuidv4, d as __spreadArrays, _ as __assign, w as withSendbirdContext } from './LocalizationContext-619bafba.js'; import React, { useContext, useRef, useState, useMemo, useEffect, useReducer, useCallback } from 'react'; import 'prop-types'; -import { b as Label, c as LabelTypography, L as LabelStringSet, A as Avatar, I as Icon, a as IconTypes, g as IconColors, d as LabelColors, e as IconButton, n as UserProfileContext, C as ContextMenu, h as MenuItems, o as UserProfile, i as MenuItem, r as ImageRenderer, f as TextButton, M as Modal, P as PlaceHolder, t as PlaceHolderTypes, l as UserProfileProvider } from './index-0c67ae90.js'; +import { b as Label, c as LabelTypography, L as LabelStringSet, A as Avatar, I as Icon, a as IconTypes, g as IconColors, d as LabelColors, e as IconButton, n as UserProfileContext, C as ContextMenu, h as MenuItems, o as UserProfile, i as MenuItem, r as ImageRenderer, f as TextButton, M as Modal, p as SEND_USER_MESSAGE, S as SEND_MESSAGE_START, q as SEND_FILE_MESSAGE, U as UPDATE_USER_MESSAGE, D as DELETE_MESSAGE, P as PlaceHolder, t as PlaceHolderTypes, l as UserProfileProvider } from './index-ec3bf9fe.js'; import format from 'date-fns/format'; import 'react-dom'; -import { M as MessageInput, L as LinkLabel, i as isImage, a as isVideo, D as DateSeparator, F as FileViewer, c as compareIds } from './index-1cf7b066.js'; +import { M as MessageInput, L as LinkLabel, i as isImage, a as isVideo, D as DateSeparator, F as FileViewer, c as compareIds } from './index-19f570c9.js'; import isSameDay from 'date-fns/isSameDay'; var getMessageCreatedAt = function getMessageCreatedAt(message) { @@ -1191,6 +1191,8 @@ function MessageHoc(_a) { disabled = _a.disabled, editDisabled = _a.editDisabled, hasSeperator = _a.hasSeperator, + channel = _a.channel, + renderCustomMessage = _a.renderCustomMessage, deleteMessage = _a.deleteMessage, updateMessage = _a.updateMessage, resendMessage = _a.resendMessage, @@ -1203,6 +1205,14 @@ function MessageHoc(_a) { sender = message.sender; } + var RenderedMessage = useMemo(function () { + if (renderCustomMessage) { + return renderCustomMessage(message, channel); + } + + return null; + }, [message, renderCustomMessage]); + var _c = useState(false), showEdit = _c[0], setShowEdit = _c[1]; @@ -1223,6 +1233,14 @@ function MessageHoc(_a) { isByMe = userId === sender.userId || message.requestState === SendingMessageStatus.PENDING || message.requestState === SendingMessageStatus.FAILED; } + if (RenderedMessage) { + return React.createElement("div", { + className: "sendbird-msg-hoc sendbird-msg--scroll-ref" + }, React.createElement(RenderedMessage, { + message: message + })); + } + if (message.messageType === 'user' && showEdit) { return React.createElement(MessageInput, { isEdit: true, @@ -1345,6 +1363,7 @@ function OpenchannelConversationScroll(_a) { hasMore = _a.hasMore, onScroll = _a.onScroll, scrollDownPromise = _a.scrollDownPromise, + renderCustomMessage = _a.renderCustomMessage, showScrollDownButton = _a.showScrollDownButton, updateMessage = _a.updateMessage, deleteMessage = _a.deleteMessage, @@ -1422,6 +1441,8 @@ function OpenchannelConversationScroll(_a) { chainBottom = _a[1]; return React.createElement(MessageHoc, { + renderCustomMessage: renderCustomMessage, + channel: openchannel, key: message.messageId, message: message, status: status, @@ -1885,6 +1906,7 @@ var OpenchannelConversation = function OpenchannelConversation(props) { _a = props.queries, queries = _a === void 0 ? {} : _a, disableUserProfile = props.disableUserProfile, + renderCustomMessage = props.renderCustomMessage, renderUserProfile = props.renderUserProfile, renderChannelTitle = props.renderChannelTitle, renderMessageInput = props.renderMessageInput, @@ -1895,7 +1917,8 @@ var OpenchannelConversation = function OpenchannelConversation(props) { userStore = stores.userStore; var userId = config.userId, isOnline = config.isOnline, - logger = config.logger; + logger = config.logger, + pubSub = config.pubSub; var sdk = sdkStore.sdk; var user = userStore.user; // hook variables @@ -1975,6 +1998,86 @@ var OpenchannelConversation = function OpenchannelConversation(props) { // }); // }); } + }, [channelUrl, sdkInit]); // handles API calls from withSendbird + + useEffect(function () { + var subscriber = new Map(); + + if (!pubSub || !pubSub.subscribe) { + return; + } + + subscriber.set(SEND_USER_MESSAGE, pubSub.subscribe(SEND_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + scrollIntoLast('.sendbird-msg--scroll-ref'); + + if (channel && channelUrl === channel.url) { + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + } + })); + subscriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, function (msg) { + var channel = msg.channel, + message = msg.message; + + if (channel && channelUrl === channel.url) { + messagesDispatcher({ + type: SENDING_MESSAGE_START, + payload: message + }); + } + })); + subscriber.set(SEND_FILE_MESSAGE, pubSub.subscribe(SEND_FILE_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message; + scrollIntoLast('.sendbird-msg--scroll-ref'); + + if (channel && channelUrl === channel.url) { + messagesDispatcher({ + type: SENDING_MESSAGE_SUCCEEDED, + payload: message + }); + } + })); + subscriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, function (msg) { + var channel = msg.channel, + message = msg.message, + fromSelector = msg.fromSelector; + + if (fromSelector && channel && channelUrl === channel.url) { + messagesDispatcher({ + type: ON_MESSAGE_UPDATED, + payload: { + channel: channel, + message: message + } + }); + } + })); + subscriber.set(DELETE_MESSAGE, pubSub.subscribe(DELETE_MESSAGE, function (msg) { + var channel = msg.channel, + messageId = msg.messageId; + + if (channel && channelUrl === channel.url) { + messagesDispatcher({ + type: ON_MESSAGE_DELETED, + payload: messageId + }); + } + })); + return function () { + if (subscriber) { + subscriber.forEach(function (s) { + try { + s.remove(); + } catch (_a) {// + } + }); + } + }; }, [channelUrl, sdkInit]); // useHandleChannelEvents useEffect(function () { @@ -2704,6 +2807,7 @@ var OpenchannelConversation = function OpenchannelConversation(props) { coverImage: currentOpenChannel.coverUrl, onActionClick: onChatHeaderActionClick }), currentOpenChannel.isFrozen && React.createElement(FrozenNotification, null), React.createElement(OpenchannelConversationScroll, { + renderCustomMessage: renderCustomMessage, openchannel: currentOpenChannel, user: user, useMessageGrouping: useMessageGrouping, diff --git a/dist/esm/OpenChannel.js.map b/dist/esm/OpenChannel.js.map index 252c2e3..b1071fc 100644 --- a/dist/esm/OpenChannel.js.map +++ b/dist/esm/OpenChannel.js.map @@ -1 +1 @@ -{"version":3,"file":"OpenChannel.js","sources":["../../../src/smart-components/OpenchannelConversation/utils.ts","../../../src/smart-components/OpenchannelConversation/components/MessageInpuetWrapper.tsx","../../../src/smart-components/OpenchannelConversation/components/FrozenNotification.tsx","../../../src/ui/OpenchannelConversationHeader/index.tsx","../../../src/ui/OpenchannelUserMessage/utils.ts","../../../src/utils/openChannelUtils.ts","../../../src/ui/OpenchannelUserMessage/index.tsx","../../../src/ui/OpenChannelAdminMessage/index.tsx","../../../src/ui/OpenchannelOGMessage/utils.ts","../../../src/ui/OpenchannelOGMessage/index.tsx","../../../src/ui/OpenchannelThumbnailMessage/utils.ts","../../../src/ui/OpenchannelThumbnailMessage/index.tsx","../../../src/ui/OpenchannelFileMessage/utils.ts","../../../src/ui/OpenchannelFileMessage/index.tsx","../../../src/smart-components/OpenchannelConversation/components/RemoveMessageModal.tsx","../../../src/smart-components/OpenchannelConversation/components/types.ts","../../../src/smart-components/OpenchannelConversation/components/MessageHOC.tsx","../../../src/smart-components/OpenchannelConversation/components/OpenchannelConversationScroll.tsx","../../../src/smart-components/OpenchannelConversation/dux/actionTypes.ts","../../../src/smart-components/OpenchannelConversation/dux/reducers.ts","../../../src/smart-components/OpenchannelConversation/dux/initialState.ts","../../../src/smart-components/OpenchannelConversation/index.tsx"],"sourcesContent":["import format from 'date-fns/format';\nimport Sendbird from 'sendbird';\nimport SendbirdUIKit from '../../index';\n\nexport const getMessageCreatedAt = (message: SendbirdUIKit.EveryMessage): string => format(message.createdAt, 'p');\n\nexport const scrollIntoLast = (selector: string, intialTry = 0): void => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\n\nexport const isSameGroup = (\n message: SendbirdUIKit.EveryMessage,\n comparingMessage: SendbirdUIKit.EveryMessage,\n): boolean => {\n if (\n !message\n || !comparingMessage\n || message.messageType === 'admin'\n || comparingMessage.messageType === 'admin'\n ) {\n return false\n }\n\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: SendbirdUIKit.EveryMessage,\n currMessage: SendbirdUIKit.EveryMessage,\n nextMessage: SendbirdUIKit.EveryMessage,\n): [boolean, boolean] => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n );\n\nexport const kFormatter = (num: number): string => {\n if (Math.abs(num) > 999999) {\n return `${(Math.abs(num) / 1000000).toFixed(1)}M`;\n }\n\n if (Math.abs(num) > 999) {\n return `${(Math.abs(num) / 1000).toFixed(1)}K`;\n }\n\n return `${num}`;\n};\n\nexport const isOperator = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { operators } = openChannel;\n if (operators.map(operator => operator.userId).indexOf(userId) < 0) {\n return false;\n }\n return true;\n};\n\nexport const isDisabledBecauseFrozen = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { isFrozen } = openChannel;\n return isFrozen && !isOperator(openChannel, userId);\n};\n\nexport const isDisabledBecauseMuted = (mutedParticipantIds: string[], userId: string): boolean => {\n return mutedParticipantIds.indexOf(userId) < 0;\n};\n","import React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\nimport { RenderMessageInputProps } from '../../../index';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport MessageInput from '../../../ui/MessageInput';\n\ninterface Props {\n channel: Sendbird.OpenChannel;\n user: Sendbird.User;\n disabled: boolean;\n onSendMessage(): void;\n onFileUpload(file_: File): void;\n renderMessageInput?(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n disabled,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n}: Props, ref: React.RefObject): JSX.Element => {\n if (!channel) {\n return;\n }\n\n const { stringSet } = useContext(LocalizationContext);\n\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport './frozen-notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { ReactElement } from 'react';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, {\n LabelTypography,\n LabelColors,\n LabelStringSet,\n} from '../Label';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation-header';\n\ninterface Props {\n coverImage?: string;\n title?: string;\n subTitle?: string;\n onActionClick?(): void;\n}\n\nexport default function OpenchannelConversationHeader({\n coverImage,\n title = LabelStringSet.NO_TITLE,\n subTitle = LabelStringSet.NO_TITLE,\n onActionClick,\n}: Props): ReactElement {\n return (\n\n
\n
\n {\n coverImage ? (\n \n ) : (\n \n )\n }\n \n {title}\n \n \n {subTitle}\n \n
\n
\n \n \n \n
\n
\n );\n}\n","export const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport default { copyToClipboard };\n","import Sendbird from 'sendbird';\nimport { ClientUserMessage, ClientFileMessage } from '../index';\n\nconst OpenChannelMessageStatusTypes = {\n NONE: 'none',\n PENDING: 'pending',\n FAILED: 'failed',\n CANCELED: 'canceled',\n SUCCEEDED: 'succeeded'\n};\n\nexport const getSenderFromMessage = (message: ClientUserMessage | ClientFileMessage): Sendbird.User => {\n return message.sender || message._sender;\n};\n\nexport const checkIsSent = (status: string): boolean => (status === OpenChannelMessageStatusTypes.SUCCEEDED);\n\nexport const checkIsByMe = (message: ClientFileMessage | ClientUserMessage, userId: string): boolean => (getSenderFromMessage(message).userId === userId);\n\ninterface isFineCopyParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineCopy = ({ message }: isFineCopyParams): boolean => {\n return (message.messageType === 'user' && message.message.length > 0);\n};\n\ninterface isFineResendParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineResend = ({ message, status, userId }: isFineResendParams): boolean => {\n return checkIsByMe(message, userId)\n && !checkIsSent(status)\n && message.isResendable\n && message.isResendable();\n};\n\ninterface isFineEditParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineEdit = ({ message, status, userId }: isFineEditParams): boolean => {\n return checkIsByMe(message, userId) && checkIsSent(status);\n};\n\ninterface isFineDeleteParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineDelete = ({ message, userId }: isFineDeleteParams): boolean => {\n return checkIsByMe(message, userId);\n};\n\ninterface showMenuTriggerParams {\n message: ClientUserMessage | ClientFileMessage;\n status: string;\n userId: string;\n}\nexport const showMenuTrigger = (props: showMenuTriggerParams): boolean => {\n const { message, status, userId } = props;\n if (message.messageType === 'user') {\n return (\n isFineDelete({ message, status, userId })\n || isFineEdit({ message, status, userId })\n || isFineCopy({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n } else {\n return (\n isFineDelete({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n }\n};\n","import React, {\n useMemo,\n useContext,\n useRef,\n useState,\n ReactElement,\n useEffect,\n} from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { copyToClipboard } from './utils';\nimport uuidv4 from '../../utils/uuid';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n userId: string;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n}\n\nexport default function OpenchannelUserMessage({\n message,\n className,\n userId,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n chainTop,\n status,\n}: Props): ReactElement {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n // hooks\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const contextMenuRef = useRef(null);\n const [contextStyle, setContextStyle] = useState({});\n\n // consts\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push(`sendbird-openchannel-user-message`);\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const splitMessage = message.message.split(/\\r/);\n const matchedMessage = splitMessage.map((word) => (word !== '' ? word :
));\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n // place context menu top depending clientHeight of message component\n useEffect(() => {\n if (messageRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status}) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message: message, userId: userId, status: status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message: message, userId: userId, status: status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n );\n}\n","import React, { ReactElement } from 'react';\nimport { ClientAdminMessage } from '../../index';\nimport './index.scss';\n\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\ninterface Props {\n message: ClientAdminMessage;\n className?: string | string[];\n}\n\nexport default function OpenChannelAdminMessage({\n message,\n className,\n}: Props): ReactElement {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-admin-message');\n\n return (\n
\n \n {message.message || ''}\n \n
\n );\n}\n","import Sendbird from 'sendbird';\n\nexport const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const createUrlTester = (regexp: RegExp) => (text: string): boolean => regexp.test(text);\nexport const checkOGIsEnalbed = (message: Sendbird.UserMessage): boolean => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n","import React, { useState, useContext, useMemo, useRef, useEffect } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport LinkLabel from '../LinkLabel';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport uuidv4 from '../../utils/uuid';\nimport { copyToClipboard } from '../OpenchannelUserMessage/utils';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkOGIsEnalbed, createUrlTester, URL_REG } from './utils';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n userId: string;\n}\n\nexport default function OpenchannelOGMessage({\n message,\n className,\n disabled,\n showEdit,\n showRemove,\n resendMessage,\n chainTop,\n status,\n userId,\n}: Props): JSX.Element {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n const { ogMetaData } = message;\n const { defaultImage } = ogMetaData;\n\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const [contextStyle, setContextStyle] = useState({});\n const messageComponentRef = useRef(null);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const isUrl = createUrlTester(URL_REG);\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-og-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const wordClassName = 'sendbird-openchannel-og-message--word';\n const splitMessage = message.message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n // place conxt menu top depending clientHeight of message component\n useEffect(() => {\n if (messageComponentRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status }) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message, userId, status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n
\n
\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n ogMetaData.title && (\n \n {\n ogMetaData.title\n }\n \n )\n }\n {\n ogMetaData.description && (\n \n {ogMetaData.description}\n \n )\n }\n {\n ogMetaData.url && (\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n )\n }\n \n \n \n );\n}\n","export const SUPPORTING_TYPES = {\n IMAGE: 'IMAGE',\n VIDEO: 'VIDEO',\n UNSUPPORTED: 'UNSUPPORTED',\n};\n\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const getSupportingFileType = (type: string): string => {\n if (SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.IMAGE;\n }\n if (SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.VIDEO;\n }\n return SUPPORTING_TYPES.UNSUPPORTED;\n}\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\nimport { SUPPORTING_TYPES, getSupportingFileType } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport {\n checkIsByMe,\n checkIsSent,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n disabled: boolean;\n userId: string;\n status: string;\n chainTop: boolean;\n chainBottom: boolean;\n onClick(bool: boolean): void,\n showRemove(bool: boolean): void,\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelThumbnailMessage({\n message,\n className,\n disabled,\n userId,\n status,\n chainTop,\n onClick,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-thumbnail-message');\n const isByMe = checkIsByMe(message, userId);\n const isMessageSent = checkIsSent(status);\n const sender = getSenderFromMessage(message);\n\n return (\n
\n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n onKeyDown={() => {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n tabIndex={0}\n role=\"button\"\n >\n
\n {\n {\n [SUPPORTING_TYPES.VIDEO]: (\n (url || localUrl)\n ? (\n
\n \n \n \n \n
\n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.IMAGE]: (\n (url || localUrl)\n ? (\n \n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.UNSUPPORTED]: (\n \n ),\n }[getSupportingFileType(type)]\n }\n
\n
\n
\n \n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n
\n \n );\n}\n","import { IconTypes } from '../Icon';\n\nexport const checkFileType = (fileUrl: string): string => {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport const truncate = (fullStr:string, strLen: number): string => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkFileType, truncate } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineDelete,\n isFineResend,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n userId: string;\n disabled?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n\n showRemove(bool: boolean): void;\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelFileMessage({\n message,\n className,\n userId,\n disabled,\n chainTop,\n status,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n\n const openFileUrl = () => { window.open(message.url); };\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-file-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n checkFileType(message.url) && (\n \n )\n }\n \n \n {truncate(message.url, 40)}\n \n \n
\n
\n \n {\n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n if (disabled) { return; }\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n }\n \n \n );\n}\n","import React, { useContext } from 'react'\nimport { ClientFileMessage, ClientUserMessage } from '../../..'\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n onCloseModal(): void;\n onDeleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n}\n\nexport default function RemoveMessageModal({\n onCloseModal,\n onDeleteMessage,\n}: Props): JSX.Element {\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n \n );\n}\n","import { EveryMessage } from '../../..';\nimport { isImage, isVideo } from '../../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message: EveryMessage): string => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if (message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return MessageTypes.UNKNOWN;\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import React, { useState, useRef, ReactElement } from 'react';\n\nimport format from 'date-fns/format';\nimport { ClientFileMessage, ClientUserMessage, EveryMessage } from '../../../index';\n\nimport OpenChannelUserMessage from '../../../ui/OpenchannelUserMessage';\nimport OpenChannelAdminMessage from '../../../ui/OpenChannelAdminMessage';\nimport OpenChannelOGMessage from '../../../ui/OpenchannelOGMessage';\nimport OpenChannelThumbnailMessage from '../../../ui/OpenchannelThumbnailMessage';\nimport OpenChannelFileMessage from '../../../ui/OpenchannelFileMessage';\n// import UnknownMessage from '../../../ui/UnknownMessage';\n\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\n\nimport RemoveMessageModal from './RemoveMessageModal';\nimport {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n} from './types';\n\ninterface Props {\n message: EveryMessage;\n userId: string;\n disabled: boolean;\n editDisabled: boolean;\n hasSeperator: boolean;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n updateMessage(messageId: number, text: string, callback?: () => void): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n status?: string;\n chainTop: boolean;\n chainBottom: boolean;\n}\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n resendMessage,\n status,\n chainTop,\n chainBottom,\n}: Props): ReactElement {\n let sender: SendBird.User = null;\n if (message.messageType !== 'admin') {\n sender = message.sender;\n }\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n let isByMe = false;\n\n if (sender && message.messageType !== 'admin') {\n // pending and failed messages are by me\n isByMe = (userId === sender.userId)\n || (message.requestState === SendingMessageStatus.PENDING)\n || (message.requestState === SendingMessageStatus.FAILED);\n }\n\n if (message.messageType === 'user' && showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: (() => {\n if (message.messageType === 'admin') {\n return (\n \n )\n }\n })(),\n [MessageTypes.FILE]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.OG]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.THUMBNAIL]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.USER]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.UNKNOWN]: (() => {\n return;\n // return (\n // \n // );\n })(),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n if (message.messageType !== 'admin') {\n deleteMessage(message);\n }\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={deleteMessage}\n isByMe={isByMe}\n />\n )\n }\n {/* {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n } */}\n
\n );\n}\n","import React, { ReactElement, useRef, useEffect } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\nimport { ClientFileMessage, ClientUserMessage, EveryMessage } from '../../../index';\nimport MessageHoc from './MessageHOC';\n\nimport './openchannel-conversation-scroll.scss';\nimport { compareMessagesForGrouping } from '../utils';\n\ninterface Props {\n openchannel: SendBird.OpenChannel;\n user: SendBird.User;\n allMessages: EveryMessage[];\n useMessageGrouping: boolean;\n isOnline: boolean;\n hasMore: boolean;\n onScroll(callback?: () => void): void;\n scrollDownPromise: PromiseLike;\n showScrollDownButton?(bool: boolean): void;\n updateMessage(messageId: number, text: string, callback?: () => void ): void;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void ): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n}\n\nexport default function OpenchannelConversationScroll(\n {\n useMessageGrouping = true,\n openchannel,\n user,\n allMessages,\n isOnline = true,\n hasMore,\n onScroll,\n scrollDownPromise,\n showScrollDownButton,\n updateMessage,\n deleteMessage,\n resendMessage,\n }: Props\n): ReactElement {\n const scrollRef = useRef(null);\n\n const handleOnScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n } = element;\n if (showScrollDownButton) {\n if (scrollHeight > scrollTop + clientHeight) {\n showScrollDownButton(true);\n } else {\n showScrollDownButton(false);\n }\n }\n\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n onScroll(() => {\n const first = nodes[0];\n first.scrollIntoView();\n });\n }\n };\n\n useEffect(() => {\n // This promise is created in everytime when user click the scroll to bottom button\n // This scope waits when user click the button and scrolls to the bottom of conversation\n if (scrollDownPromise && scrollRef && scrollRef.current) {\n scrollDownPromise.then(() => {\n scrollRef.current.scrollTo(0, scrollRef.current.scrollHeight);\n if (showScrollDownButton) {\n showScrollDownButton(false);\n }\n });\n }\n return;\n }, [scrollDownPromise]);\n\n return (\n \n
\n
\n
\n {\n allMessages.map((message, index) => {\n let status: string;\n\n if (message.messageType !== 'admin') {\n status = message.sendingStatus;\n }\n\n const previousMessage = allMessages[index - 1];\n const nextMessage = allMessages[index - 1];\n\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = message.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, message, nextMessage)\n : [false, false];\n return (\n \n )\n })\n }\n
\n
\n
\n );\n}\n","export const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';\nexport const SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';\nexport const SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';\nexport const SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';\nexport const RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';\n\n// event handlers\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';\nexport const ON_USER_ENTERED = 'ON_USER_ENTERED';\nexport const ON_USER_EXITED = 'ON_USER_EXITED';\nexport const ON_USER_MUTED = 'ON_USER_MUTED';\nexport const ON_USER_UNMUTED = 'ON_USER_UNMUTED';\nexport const ON_USER_BANNED = 'ON_USER_BANNED';\nexport const ON_USER_UNBANNED = 'ON_USER_UNBANNED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';\nexport const ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';\nexport const ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';\nexport const ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';\nexport const ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';\nexport const ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';\nexport const ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';\n","import { State as initialStateInterface } from './initialState';\nimport * as actionTypes from './actionTypes';\n\nimport compareIds from '../../../utils/compareIds.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore: Unreachable code error\ninterface ActionInterface {\n type: string;\n payload?: any;\n}\n\nexport default function reducer(\n state: initialStateInterface,\n action: ActionInterface,\n): initialStateInterface {\n switch (action.type) {\n case actionTypes.RESET_MESSAGES: {\n return {\n ...state,\n allMessages: [],\n };\n }\n\n case actionTypes.SET_CURRENT_CHANNEL: {\n const currentChannel = action.payload;\n const operators = currentChannel.operators;\n if (\n !state.isInvalid\n && state.currentOpenChannel\n && state.currentOpenChannel.url\n && (state.currentOpenChannel.url === currentChannel.url)\n ) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: currentChannel,\n isInvalid: false,\n operators: operators,\n participants: operators,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_SUCESS:\n case actionTypes.GET_PREV_MESSAGES_FAIL: {\n const isFailed = (action.type === actionTypes.GET_PREV_MESSAGES_FAIL);\n const {\n currentOpenChannel = {},\n messages = [],\n hasMore,\n lastMessageTimestamp,\n } = action.payload;\n const actionChannelUrl = currentOpenChannel.url;\n const receivedMessages = isFailed ? [] : messages;\n const _hasMore = isFailed ? false : hasMore;\n const _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;\n\n const stateChannel = state.currentOpenChannel;\n const stateChannelUrl = stateChannel.url;\n\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n const filteredAllMessages = state.allMessages.filter((message) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, message.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: _hasMore,\n lastMessageTimestamp: _lastMessageTimestamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_START: {\n const {\n message,\n channel,\n } = action.payload;\n if (channel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...message },\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_SUCCEEDED: {\n const sentMessage = action.payload;\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SENDING_MESSAGE_FAILED: {\n const sentMessage = action.payload;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n )),\n };\n }\n case actionTypes.RESENDING_MESSAGE_START: {\n const eventedChannel = action.payload.channel;\n const resentMessage = action.payload.message;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, resentMessage.reqId) ? resentMessage : m\n )),\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const eventedChannel = action.payload.channel;\n const receivedMessage = action.payload.message;\n const {\n currentOpenChannel\n } = state;\n\n if (\n !compareIds(eventedChannel.url, currentOpenChannel.url)\n || (\n !(state.allMessages.map(\n (message) => message.messageId).indexOf(receivedMessage.messageId) < 0\n ))\n ) {\n return state;\n }\n\n return {\n ...state,\n allMessages: [...state.allMessages, receivedMessage],\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedMessage = action.payload.message;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((message) => (\n message.isIdentical(updatedMessage)\n ? updatedMessage\n : message\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED: {\n const eventedChannel = action.payload.channel;\n const deletedMessageId = action.payload.messageId;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.filter((message) => (\n !compareIds(message.messageId, deletedMessageId)\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID: {\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n }\n case actionTypes.ON_OPERATOR_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedOperators = action.payload.operators;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: {\n ...state.currentOpenChannel,\n operators: updatedOperators,\n },\n operators: updatedOperators,\n };\n }\n case actionTypes.ON_USER_ENTERED: {\n const eventedChannel = action.payload.channel;\n const enteredUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, enteredUser],\n };\n }\n case actionTypes.ON_USER_EXITED: {\n const eventedChannel = action.payload.channel;\n const exitedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: state.participants.filter((participant) => (\n !compareIds(participant.userId, exitedUser.userId)\n )),\n };\n }\n case actionTypes.ON_USER_MUTED: {\n // const eventedChannel = action.payload.channel;\n // const mutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNMUTED: {\n // const eventedChannel = action.payload.channel;\n // const unmutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_BANNED: {\n // const eventedChannel = action.payload.channel;\n // const bannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNBANNED: {\n // const eventedChannel = action.payload.channel;\n // const unbannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_CHANNEL_FROZEN: {\n const frozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== frozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: true,\n };\n }\n case actionTypes.ON_CHANNEL_UNFROZEN: {\n const unfrozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== unfrozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: false,\n };\n }\n case actionTypes.ON_CHANNEL_CHANGED: {\n const changedChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== changedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: changedChannel,\n };\n }\n case actionTypes.ON_META_DATA_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaDataKeys = action.payload.metaDataKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaCounterKeys = action.payload.metaCounterKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_MENTION_RECEIVED: {\n // const eventedChannel = action.payload.channel;\n // const mentionedMessage = action.payload.message;\n // return {\n // ...state\n // };\n return state;\n }\n default:\n return state;\n }\n}\n","import Sendbird from 'sendbird';\nimport { EveryMessage } from '../../../index';\n\nexport interface State {\n allMessages: EveryMessage[];\n loading: boolean;\n initialized: boolean;\n currentOpenChannel: Sendbird.OpenChannel;\n isInvalid: boolean;\n hasMore: boolean;\n lastMessageTimestamp: number;\n frozen: boolean;\n operators: Sendbird.User[];\n participants: Sendbird.User[];\n // add banned participant ids\n // add muted participant ids\n}\n\nconst initialState: State = {\n allMessages: [],\n loading: false,\n initialized: false,\n currentOpenChannel: null,\n isInvalid: false,\n hasMore: false,\n lastMessageTimestamp: 0,\n frozen: false,\n operators: [],\n participants: [],\n // bannedParticipantIds\n // mutedParticipantIds\n};\n\nexport default initialState;\n","import React, {\n useRef,\n useCallback,\n useEffect,\n useReducer,\n useContext,\n useState,\n} from 'react';\nimport Sendbird from 'sendbird';\nimport * as utils from './utils';\nimport './index.scss';\n\nimport MessageInputWrapper from './components/MessageInpuetWrapper';\nimport FrozenChannelNotification from './components/FrozenNotification';\nimport OpenchannelConversationHeader from '../../ui/OpenchannelConversationHeader';\nimport OpenchannelConversationScroll from './components/OpenchannelConversationScroll';\nimport Icon, { IconColors, IconTypes } from '../../ui/Icon';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport {\n EveryMessage,\n ClientUserMessage,\n ClientFileMessage,\n OpenChannelProps,\n} from '../../index';\nimport messagesReducer from './dux/reducers';\nimport messagesInitialState from './dux/initialState';\nimport * as messageActionTypes from './dux/actionTypes';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext.jsx';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport uuidv4 from '../../utils/uuid';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation';\n\ninterface Props extends OpenChannelProps {\n stores: {\n sdkStore?: SendbirdUIKit.SdkStore,\n userStore?: {\n user: Sendbird.User,\n },\n };\n config: {\n userId: string,\n isOnline: boolean,\n logger?: SendbirdUIKit.Logger,\n theme?: string,\n disableUserProfile?: boolean;\n renderUserProfile?(): JSX.Element;\n };\n}\n\nexport const OpenchannelConversation = (props: Props): JSX.Element => {\n // props\n const {\n useMessageGrouping,\n channelUrl,\n stores,\n config,\n queries = {},\n disableUserProfile,\n renderUserProfile,\n renderChannelTitle,\n renderMessageInput,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onChatHeaderActionClick\n } = props;\n\n const {\n sdkStore,\n userStore,\n } = stores;\n const {\n userId,\n isOnline,\n logger,\n } = config;\n\n const {\n sdk\n } = sdkStore;\n const {\n user\n } = userStore;\n\n // hook variables\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const {\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n } = messagesStore;\n // ref\n const messageInputRef = useRef(null); // useSendMessageCallback\n const { stringSet } = useContext(LocalizationContext);\n const [scrollDownPromise, setScrollDownPromise] = useState(null);\n const [showScrollDownButton, setShowScrollDownButton] = useState(false);\n\n // const\n const sdkInit = sdkStore.initialized;\n const userFilledMessageListParams = queries ? queries.messageListParams: null;\n const disabled = !initialized\n || !isOnline\n || utils.isDisabledBecauseFrozen(currentOpenChannel, userId);\n // || utils.isDisabledBecauseMuted(mutedParticipantIds, userId)\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n // useSetChannel\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.OpenChannel) {\n logger.info('OpenChannel | useSetChannel fetching channel', channelUrl);\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (!error) {\n logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: openChannel,\n });\n openChannel.enter((error) => {\n if (error) {\n logger.warning('OpenChannel | useSetChannel enter channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n } else {\n logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n // .then((openChannel) => {\n // logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n // messagesDispatcher({\n // type: messageActionTypes.SET_CURRENT_CHANNEL,\n // payload: openChannel,\n // });\n // })\n // .catch((error) => {\n // logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n // messagesDispatcher({\n // type: messageActionTypes.SET_CHANNEL_INVALID,\n // });\n // });\n }\n }, [channelUrl, sdkInit]);\n\n // useHandleChannelEvents\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (currentOpenChannel && currentOpenChannel.url && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('OpenChannel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n\n ChannelHandler.onMessageReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageUpdated = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageDeleted = (channel, messageId) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { channelUrl, messageId });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: { channel, messageId },\n });\n };\n ChannelHandler.onOperatorUpdated = (channel, operators) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { channelUrl, operators });\n messagesDispatcher({\n type: messageActionTypes.ON_OPERATOR_UPDATED,\n payload: { channel, operators },\n });\n };\n ChannelHandler.onUserEntered = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_ENTERED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserExited = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_EXITED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserMuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnmuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNMUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_BANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnbanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNBANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onMetaDataCreated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_CREATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataUpdated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_UPDATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataDeleted = (channel, metaDataKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { channelUrl, metaDataKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_DELETED,\n payload: { channel, metaDataKeys },\n });\n };\n ChannelHandler.onMetaCountersCreated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_CREATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersUpdated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_UPDATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersDeleted = (channel, metaCounterKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { channelUrl, metaCounterKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_DELETED,\n payload: { channel, metaCounterKeys },\n });\n };\n ChannelHandler.onMentionReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MENTION_RECEIVED,\n payload: { channel, message },\n });\n };\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [currentOpenChannel]);\n\n // useInitialMessagesFetch\n useEffect(() => {\n logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams && currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | Used customizedMessageListParams');\n }\n\n logger.info('OpenChannel | Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n },\n );\n // todo: use promise after CoreSDK adds required TS methods\n // .then((messages) => {\n // console.log('get messages via getMessagesByTimestamp', messages);\n // const hasMore = (messages && messages.length > 0);\n // const lastMessageTimestamp = hasMore\n // ? messages[0].createdAt\n // : null;\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n // payload: {\n // currentOpenChannel,\n // messages,\n // hasMore,\n // lastMessageTimestamp,\n // },\n // });\n // })\n // .catch((error: Error): void => {\n // logger.error('OpenChannel | Fetching messages failed', error);\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n // payload: {\n // currentOpenChannel,\n // messages: [],\n // hasMore: false,\n // lastMessageTimestamp: 0,\n // }\n // });\n // });\n }\n }, [currentOpenChannel]);\n\n // useScrollCallback\n const onScroll = useCallback((callback) => {\n if (!hasMore) {\n return;\n }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel: Used userFilledMessageListParams');\n }\n\n logger.info('OpenChannel: Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n lastMessageTimestamp || new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n callback();\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n }\n );\n }, [currentOpenChannel, lastMessageTimestamp]);\n\n // useSendMessageCallback\n const handleSendMessage = useCallback(() => {\n const text = messageInputRef.current.value;\n\n function createParamsDefualt(txt: string | number): Sendbird.UserMessageParams {\n const message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim();\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n }\n\n const createCustomParams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n logger.info('OpenChannel | Sending message has started', params);\n\n const pendingMessage = currentOpenChannel.sendUserMessage(params, (message, error) => {\n if (error) {\n logger.warning('OpenChannel | Sending message failed', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: pendingMessage,\n channel: currentOpenChannel,\n },\n });\n }, [currentOpenChannel, onBeforeSendUserMessage]);\n\n // useFileUploadCallback\n const handleFileUpload = useCallback((file) => {\n function createParamsDefualt(file_: File): Sendbird.FileMessageParams {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n }\n\n const createCustomParams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefualt(file);\n\n logger.info('OpenChannel | Uploading file message start', params);\n\n const pendingMessage = currentOpenChannel.sendFileMessage(\n params,\n (message: EveryMessage, error: Sendbird.SendBirdError) => {\n if (error) {\n logger.error('OpenChannel | Sending file message failed', { message, error });\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n );\n\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n }\n });\n }, [currentOpenChannel, onBeforeSendFileMessage]);\n\n // useUpdateMessageCallback\n const updateMessage = useCallback((messageId: number, text: string, callback?: () => void): void => {\n\n function createParamsDefualt(txt: string): SendBird.UserMessageParams {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n }\n\n if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {\n logger.info('OpenChannel | Creating params using onBeforeUpdateUserMessage');\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n currentOpenChannel.updateUserMessage(messageId, params, (message, error) => {\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | Updating message succeeded', { message, params });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentOpenChannel,\n message,\n },\n });\n } else {\n logger.warning('OpenChannel | Updating message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher, onBeforeSendUserMessage]);\n\n // useDeleteMessageCallback\n const deleteMessage = useCallback((message: ClientUserMessage | ClientFileMessage, callback?: () => void): void => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState: ', requestState);\n\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local: ', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (callback) {\n callback();\n }\n return;\n }\n\n currentOpenChannel.deleteMessage(message, (error) => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message from remote: ', requestState);\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: {\n channel: currentOpenChannel,\n messageId: message.messageId,\n },\n });\n } else {\n logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher]);\n\n // useResendMessageCallback\n const resendMessage = useCallback((failedMessage: ClientUserMessage | ClientFileMessage) => {\n logger.info('OpenChannel | Reseding message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESENDING_MESSAGE_START,\n payload: {\n channel: currentOpenChannel,\n message: failedMessage,\n },\n });\n\n // userMessage\n if (messageType === 'user' && failedMessage.messageType === 'user') {\n currentOpenChannel.resendUserMessage(failedMessage, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Reseding message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n return;\n }\n\n // fileMessage\n if (messageType === 'file' && failedMessage.messageType === 'file') {\n currentOpenChannel.resendFileMessage(failedMessage, file, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Resending file message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending file message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('OpenChannel | Message is not resendable');\n logger.warning('OpenChannel | Message is not resendable', failedMessage);\n }\n }, [currentOpenChannel, messagesDispatcher]);\n\n const handleClickScrollDownButton = () => {\n const promise = new Promise((resolve) => {\n resolve();\n });\n setScrollDownPromise(promise);\n };\n\n if (!currentOpenChannel || !currentOpenChannel.url) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n\n return (\n \n {\n showScrollDownButton && (\n \n \n \n )\n }\n {\n renderChannelTitle\n ? renderChannelTitle({\n channel: currentOpenChannel,\n user: user,\n })\n : (\n \n )\n }\n {\n currentOpenChannel.isFrozen && (\n \n )\n }\n \n {\n renderMessageInput\n ? (\n renderMessageInput({\n channel: currentOpenChannel,\n user: user,\n disabled: disabled,\n })\n )\n : (\n \n )\n }\n \n );\n};\n\nexport default withSendbirdContext(OpenchannelConversation);\n"],"names":["getMessageCreatedAt","message","format","createdAt","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","isSameGroup","comparingMessage","messageType","sendingStatus","sender","userId","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","kFormatter","num","Math","abs","toFixed","isOperator","openChannel","operators","map","operator","indexOf","isDisabledBecauseFrozen","isFrozen","MessageInputWrapper","_a","ref","channel","user","disabled","onSendMessage","onFileUpload","renderMessageInput","stringSet","useContext","LocalizationContext","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","React","forwardRef","FrozenNotification","LabelTypography","CAPTION_2","CHANNEL_FROZEN","COMPONENT_CLASS_NAME","OpenchannelConversationHeader","coverImage","_b","title","LabelStringSet","NO_TITLE","_c","subTitle","onActionClick","IconTypes","AVATAR_NO_IMAGE","IconColors","BACKGROUND_3","H_2","LabelColors","ONBACKGROUND_1","BODY_2","ONBACKGROUND_2","INFO","PRIMARY","copyToClipboard","text","window","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","OpenChannelMessageStatusTypes","NONE","PENDING","FAILED","CANCELED","SUCCEEDED","getSenderFromMessage","_sender","checkIsSent","status","checkIsByMe","isFineCopy","isFineResend","isResendable","isFineEdit","isFineDelete","showMenuTrigger","props","OpenchannelUserMessage","className","resendMessage","showEdit","showRemove","chainTop","UserProfileContext","disableUserProfile","renderUserProfile","messageRef","useRef","avatarRef","contextMenuRef","useState","contextStyle","setContextStyle","injectingClassName","Array","isArray","push","isByMe","MemoizedMessageText","useMemo","splitMessage","split","matchedMessage","word","updatedAt","uuidv4","BODY_1","MESSAGE_EDITED","useEffect","current","clientHeight","top","innerWidth","join","toggleDropdown","profileUrl","closeDropdown","paddingTop","paddingBottom","close","SECONDARY_3","friendName","nickname","CAPTION_3","ONBACKGROUND_3","MORE","CONTENT_INVERSE","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","OpenChannelAdminMessage","__spreadArrays","URL_REG","createUrlTester","regexp","test","checkOGIsEnalbed","ogMetaData","url","OpenchannelOGMessage","defaultImage","messageComponentRef","isUrl","wordClassName","openLink","open","SUBTITLE_2","description","alt","NO_THUMBNAIL","SUPPORTING_TYPES","IMAGE","VIDEO","UNSUPPORTED","SUPPORTED_MIMES","getSupportingFileType","type","OpenchannelThumbnailMessage","onClick","localUrl","isMessageSent","PLAY","PHOTO","ON_BACKGROUND_2","checkFileType","fileUrl","result","imageFile","audioFile","FILE_DOCUMENT","FILE_AUDIO","truncate","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","ceil","backChars","floor","substr","OpenchannelFileMessage","openFileUrl","RemoveMessageModal","onCloseModal","onDeleteMessage","MODAL__DELETE_MESSAGE__TITLE","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","UNKNOWN","SendingMessageStatus","getMessageType","isUserMessage","isAdminMessage","isImage","isVideo","MessageHoc","editDisabled","hasSeperator","deleteMessage","updateMessage","chainBottom","setShowEdit","_d","setShowRemove","_e","showFileViewer","setShowFileViewer","editMessageInputRef","requestState","messageId","OpenChannelFileMessage","OpenChannelOGMessage","OpenChannelThumbnailMessage","OpenChannelUserMessage","OpenchannelConversationScroll","useMessageGrouping","openchannel","allMessages","isOnline","hasMore","onScroll","scrollDownPromise","showScrollDownButton","scrollRef","handleOnScroll","e","element","target","scrollTop","scrollHeight","nodes_1","first","then","scrollTo","index","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","RESET_MESSAGES","GET_PREV_MESSAGES_SUCESS","GET_PREV_MESSAGES_FAIL","SENDING_MESSAGE_FAILED","SENDING_MESSAGE_SUCCEEDED","SENDING_MESSAGE_START","RESENDING_MESSAGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","ON_OPERATOR_UPDATED","ON_USER_ENTERED","ON_USER_EXITED","ON_USER_MUTED","ON_USER_UNMUTED","ON_USER_BANNED","ON_USER_UNBANNED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_CHANNEL_CHANGED","ON_META_DATA_CREATED","ON_META_DATA_UPDATED","ON_META_DATA_DELETED","ON_META_COUNTERS_CREATED","ON_META_COUNTERS_UPDATED","ON_META_COUNTERS_DELETED","ON_MENTION_RECEIVED","reducer","state","action","actionTypes","currentChannel","payload","isInvalid","currentOpenChannel","participants","isFailed","messages","lastMessageTimestamp","actionChannelUrl","receivedMessages_1","_hasMore","_lastMessageTimestamp","stateChannel","stateChannelUrl","filteredAllMessages","filter","find","compareIds","loading","initialized","sentMessage_1","newMessages","m","reqId","sentMessage_2","eventedChannel","resentMessage_1","receivedMessage","updatedMessage_1","isIdentical","deletedMessageId_1","updatedOperators","enteredUser","exitedUser_1","participant","frozenChannel","frozen","unfrozenChannel","changedChannel","initialState","OpenchannelConversation","channelUrl","stores","config","queries","renderChannelTitle","onBeforeSendUserMessage","onBeforeSendFileMessage","onChatHeaderActionClick","sdkStore","userStore","logger","sdk","useReducer","messagesReducer","messagesInitialState","messagesStore","messagesDispatcher","messageInputRef","setScrollDownPromise","setShowScrollDownButton","sdkInit","userFilledMessageListParams","messageListParams","utils","userDefinedDisableUserProfile","userDefinedRenderProfile","OpenChannel","info","getChannel","messageActionTypes","enter","warning","messageReceiverId","ChannelHandler","onMessageReceived","onMessageUpdated","onMessageDeleted","onOperatorUpdated","onUserEntered","onUserExited","onUserMuted","onUserUnmuted","onUserBanned","onUserUnbanned","onChannelFrozen","onChannelUnfrozen","onChannelChanged","onMetaDataCreated","metaData","onMetaDataUpdated","onMetaDataDeleted","metaDataKeys","onMetaCountersCreated","metaCounter","onMetaCountersUpdated","onMetaCountersDeleted","metaCounterKeys","onMentionReceived","addChannelHandler","removeChannelHandler","MessageListParams","getMessagesByTimestamp","messageListParams_1","prevResultSize","isInclusive","includeReplies","includeReactions","Object","keys","forEach","key","Date","getTime","hasMore_1","lastMessageTimestamp_1","useCallback","callback","hasMore_2","lastMessageTimestamp_2","handleSendMessage","value","createParamsDefualt","txt","trim","toString","params","UserMessageParams","createCustomParams","pendingMessage","sendUserMessage","handleFileUpload","file","file_","FileMessageParams","sendFileMessage","URL","createObjectURL","updateUserMessage","failedMessage","resendUserMessage","resendFileMessage","console","handleClickScrollDownButton","promise","Promise","resolve","PlaceHolderTypes","NO_CHANNELS","LOADING","WRONG","SHEVRON_DOWN","CONTENT","name","participantCount","OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS","coverUrl","FrozenChannelNotification","withSendbirdContext"],"mappings":";;;;;;;;;AAIO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,OAAD;AAAiD,SAAAC,MAAM,CAACD,OAAO,CAACE,SAAT,EAAoB,GAApB,CAAN;AAA8B,CAA3G;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,QAAD,EAAmBC,SAAnB;AAAmB,0BAAA,EAAA;AAAAA,IAAAA,aAAA;;;AAC/C,MAAMC,SAAS,GAAG,EAAlB;AACA,MAAMC,UAAU,GAAGF,SAAnB;;AACA,MAAIE,UAAU,GAAGD,SAAjB,EAA4B;AAC1B;AACD;;AACD,MAAI;AACF,QAAME,KAAK,GAAGC,QAAQ,CAACC,gBAAT,CAA0BN,QAA1B,CAAd;AACA,QAAMO,IAAI,GAAGH,KAAK,CAACA,KAAK,CAACI,MAAN,GAAe,CAAhB,CAAlB;AACAD,IAAAA,IAAI,CAACE,cAAL,CAAoB,KAApB;AAA4B;AAC7B,GAJD,CAIE,OAAOC,KAAP,EAAc;AACdC,IAAAA,UAAU,CAAC;AACTZ,MAAAA,cAAc,CAACC,QAAD,EAAWG,UAAU,GAAG,CAAxB,CAAd;AACD,KAFS,EAEP,MAAMA,UAFC,CAAV;AAGD;AACF,CAfM;AAkBA,IAAMS,WAAW,GAAG,SAAdA,WAAc,CACzBhB,OADyB,EAEzBiB,gBAFyB;AAIzB,MACE,CAACjB,OAAD,IACG,CAACiB,gBADJ,IAEGjB,OAAO,CAACkB,WAAR,KAAwB,OAF3B,IAGGD,gBAAgB,CAACC,WAAjB,KAAiC,OAJtC,EAKE;AACA,WAAO,KAAP;AACD;;AAED,SACElB,OAAO,CAACmB,aAAR,KAA0BF,gBAAgB,CAACE,aAA3C,IACGnB,OAAO,CAACoB,MAAR,CAAeC,MAAf,KAA0BJ,gBAAgB,CAACG,MAAjB,CAAwBC,MADrD,IAEGtB,mBAAmB,CAACC,OAAD,CAAnB,KAAiCD,mBAAmB,CAACkB,gBAAD,CAHzD;AAKD,CAlBM;AAoBA,IAAMK,0BAA0B,GAAG,SAA7BA,0BAA6B,CACxCC,WADwC,EAExCC,WAFwC,EAGxCC,WAHwC;AAIjB,SACrB,CACET,WAAW,CAACO,WAAD,EAAcC,WAAd,CADb,EAEER,WAAW,CAACQ,WAAD,EAAcC,WAAd,CAFb,CADqB;AAKtB,CATI;AAWA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,GAAD;AACxB,MAAIC,IAAI,CAACC,GAAL,CAASF,GAAT,IAAgB,MAApB,EAA4B;AAC1B,WAAU,CAACC,IAAI,CAACC,GAAL,CAASF,GAAT,IAAgB,OAAjB,EAA0BG,OAA1B,CAAkC,CAAlC,OAAV;AACD;;AAED,MAAIF,IAAI,CAACC,GAAL,CAASF,GAAT,IAAgB,GAApB,EAAyB;AACvB,WAAU,CAACC,IAAI,CAACC,GAAL,CAASF,GAAT,IAAgB,IAAjB,EAAuBG,OAAvB,CAA+B,CAA/B,OAAV;AACD;;AAED,SAAO,KAAGH,GAAV;AACD,CAVM;AAYA,IAAMI,UAAU,GAAG,SAAbA,UAAa,CAACC,WAAD,EAAoCX,MAApC;AAChB,MAAAY,SAAS,GAAKD,WAAW,UAAzB;;AACR,MAAIC,SAAS,CAACC,GAAV,CAAc,UAAAC,QAAA;AAAY,WAAAA,QAAQ,CAACd,MAAT;AAAe,GAAzC,EAA2Ce,OAA3C,CAAmDf,MAAnD,IAA6D,CAAjE,EAAoE;AAClE,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD,CANM;AAQA,IAAMgB,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACL,WAAD,EAAoCX,MAApC;AAC7B,MAAAiB,QAAQ,GAAKN,WAAW,SAAxB;AACR,SAAOM,QAAQ,IAAI,CAACP,UAAU,CAACC,WAAD,EAAcX,MAAd,CAA9B;AACD,CAHM;;AC5DP,IAAMkB,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,EAAD,EAOlBC,GAPkB;MAC1BC,OAAO;MACPC,IAAI;MACJC,QAAQ;MACRC,aAAa;MACbC,YAAY;MACZC,kBAAkB;;AAElB,MAAI,CAACL,OAAL,EAAc;AACZ;AACD;;AAEO,MAAAM,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;;AAER,MAAIH,kBAAJ,EAAwB;AACtB,WAAOA,kBAAkB,CAAC;AAAEL,MAAAA,OAAO,SAAT;AAAWC,MAAAA,IAAI,MAAf;AAAiBC,MAAAA,QAAQ;AAAzB,KAAD,CAAzB;AACD;;AAED,SACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,YAAD;AACE,IAAA,GAAG,EAAEH,GADP;AAEE,IAAA,QAAQ,EAAEG,QAFZ;AAGE,IAAA,aAAa,EAAEC,aAHjB;AAIE,IAAA,YAAY,EAAEC,YAJhB;AAKE,IAAA,WAAW,EACTF,QAAQ,IACLI,SAAS,CAACG,8CAFJ;;AALb,IADF,CADF;AAeD,CAjCD;;AAmCA,4BAAeC,KAAK,CAACC,UAAN,CAAiBd,mBAAjB,CAAf;;AC3CA,IAAMe,kBAAkB,GAAG,SAArBA,kBAAqB;AACjB,MAAAN,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;AACR,SACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,4CADZ;AAEE,IAAA,IAAI,EAAEK,eAAe,CAACC;AAFxB,KAIGR,SAAS,CAACS,cAJb,CADF,CADF;AAUD,CAZD;;ACKA,IAAMC,oBAAoB,GAAG,0CAA7B;AASA,SAAwBC,8BAA8BnB;MACpDoB,UAAU;MACVC;MAAAC,KAAK,mBAAGC,cAAc,CAACC;MACvBC;MAAAC,QAAQ,mBAAGH,cAAc,CAACC;MAC1BG,aAAa;AAEb,SAEE;AAAK,IAAA,SAAS,EAAET;AAAhB,KACE;AAAK,IAAA,SAAS,EAAKA,oBAAoB;AAAvC,KAEIE,UAAU,GACR,oBAAC,MAAD;AACE,IAAA,SAAS,EAAKF,oBAAoB,wBADpC;AAEE,IAAA,GAAG,EAAEE,UAFP;AAGE,IAAA,GAAG,EAAC,qBAHN;AAIE,IAAA,KAAK,EAAC,MAJR;AAKE,IAAA,MAAM,EAAC;AALT,IADQ,GASN,oBAAC,IAAD;AACE,IAAA,SAAS,EAAKF,oBAAoB,8BADpC;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,IAAI,EAAEU,SAAS,CAACC,eAJlB;AAKE,IAAA,SAAS,EAAEC,UAAU,CAACC;AALxB,IAXR,EAoBE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAKb,oBAAoB,kBADpC;AAEE,IAAA,IAAI,EAAEH,eAAe,CAACiB,GAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACC;AAHrB,KAKGZ,KALH,CApBF,EA2BE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAKJ,oBAAoB,sBADpC;AAEE,IAAA,IAAI,EAAEH,eAAe,CAACoB,MAFxB;AAGE,IAAA,KAAK,EAAEF,WAAW,CAACG;AAHrB,KAKGV,QALH,CA3BF,CADF,EAoCE;AAAK,IAAA,SAAS,EAAKR,oBAAoB;AAAvC,KACE,oBAAC,UAAD;AACE,IAAA,SAAS,EAAKA,oBAAoB,qBADpC;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,OAAO,EAAES;AAJX,KAME,oBAAC,IAAD;AACE,IAAA,IAAI,EAAEC,SAAS,CAACS,IADlB;AAEE,IAAA,SAAS,EAAEP,UAAU,CAACQ,OAFxB;AAGE,IAAA,KAAK,EAAC,MAHR;AAIE,IAAA,MAAM,EAAC;AAJT,IANF,CADF,CApCF,CAFF;AAuDD;;AClFM,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,IAAD;AAC7B;AACA,MAAIC,MAAM,CAACC,aAAP,IAAwBD,MAAM,CAACC,aAAP,CAAqBC,OAAjD,EAA0D;AACxD;AACA;AACA,WAAOF,MAAM,CAACC,aAAP,CAAqBC,OAArB,CAA6B,MAA7B,EAAqCH,IAArC,CAAP;AACD;;AACD,MAAIvE,QAAQ,CAAC2E,qBAAT,IAAkC3E,QAAQ,CAAC2E,qBAAT,CAA+B,MAA/B,CAAtC,EAA8E;AAC5E,QAAMC,QAAQ,GAAG5E,QAAQ,CAAC6E,aAAT,CAAuB,UAAvB,CAAjB;AACAD,IAAAA,QAAQ,CAACE,WAAT,GAAuBP,IAAvB;AACAK,IAAAA,QAAQ,CAACG,KAAT,CAAeC,QAAf,GAA0B,OAA1B,CAH4E;;AAI5EhF,IAAAA,QAAQ,CAACiF,IAAT,CAAcC,WAAd,CAA0BN,QAA1B;AACAA,IAAAA,QAAQ,CAACO,MAAT;;AACA,QAAI;AACF,aAAOnF,QAAQ,CAACoF,WAAT,CAAqB,MAArB,CAAP,CADE;AAEH,KAFD,CAEE,OAAOC,EAAP,EAAW;AACX,aAAO,KAAP;AACD,KAJD,SAIU;AACRrF,MAAAA,QAAQ,CAACiF,IAAT,CAAcK,WAAd,CAA0BV,QAA1B;AACD;AACF;;AACD,SAAO,KAAP;AACD,CAtBM;;ACGP,IAAMW,6BAA6B,GAAG;AACpCC,EAAAA,IAAI,EAAE,MAD8B;AAEpCC,EAAAA,OAAO,EAAE,SAF2B;AAGpCC,EAAAA,MAAM,EAAE,QAH4B;AAIpCC,EAAAA,QAAQ,EAAE,UAJ0B;AAKpCC,EAAAA,SAAS,EAAE;AALyB,CAAtC;AAQA,AAAO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACtG,OAAD;AAClC,SAAOA,OAAO,CAACoB,MAAR,IAAkBpB,OAAO,CAACuG,OAAjC;AACD,CAFM;AAIP,AAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD;AAA6B,SAACA,MAAM,KAAKT,6BAA6B,CAACK,SAA1C;AAAoD,CAArG;AAEP,AAAO,IAAMK,WAAW,GAAG,SAAdA,WAAc,CAAC1G,OAAD,EAAiDqB,MAAjD;AAA6E,SAACiF,oBAAoB,CAACtG,OAAD,CAApB,CAA8BqB,MAA9B,KAAyCA,MAA1C;AAAiD,CAAlJ;AAOP,AAAO,IAAMsF,UAAU,GAAG,SAAbA,UAAa,CAACnE,EAAD;MAAGxC,OAAO;AAClC,SAAQA,OAAO,CAACkB,WAAR,KAAwB,MAAxB,IAAkClB,OAAO,CAACA,OAAR,CAAgBY,MAAhB,GAAyB,CAAnE;AACD,CAFM;AASP,AAAO,IAAMgG,YAAY,GAAG,SAAfA,YAAe,CAACpE,EAAD;MAAGxC,OAAO;MAAEyG,MAAM;MAAEpF,MAAM;AACpD,SAAOqF,WAAW,CAAC1G,OAAD,EAAUqB,MAAV,CAAX,IACF,CAACmF,WAAW,CAACC,MAAD,CADV,IAEFzG,OAAO,CAAC6G,YAFN,IAGF7G,OAAO,CAAC6G,YAAR,EAHL;AAID,CALM;AAYP,AAAO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACtE,EAAD;MAAGxC,OAAO;MAAEyG,MAAM;MAAEpF,MAAM;AAClD,SAAOqF,WAAW,CAAC1G,OAAD,EAAUqB,MAAV,CAAX,IAAgCmF,WAAW,CAACC,MAAD,CAAlD;AACD,CAFM;AASP,AAAO,IAAMM,YAAY,GAAG,SAAfA,YAAe,CAACvE,EAAD;MAAGxC,OAAO;MAAEqB,MAAM;AAC5C,SAAOqF,WAAW,CAAC1G,OAAD,EAAUqB,MAAV,CAAlB;AACD,CAFM;AASP,AAAO,IAAM2F,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD;AACrB,MAAAjH,OAAO,GAAqBiH,KAAK,QAAjC;AAAA,MAASR,MAAM,GAAaQ,KAAK,OAAjC;AAAA,MAAiB5F,MAAM,GAAK4F,KAAK,OAAjC;;AACR,MAAIjH,OAAO,CAACkB,WAAR,KAAwB,MAA5B,EAAoC;AAClC,WACE6F,YAAY,CAAC;AAAE/G,MAAAA,OAAO,SAAT;AAAWyG,MAAAA,MAAM,QAAjB;AAAmBpF,MAAAA,MAAM;AAAzB,KAAD,CAAZ,IACGyF,UAAU,CAAC;AAAE9G,MAAAA,OAAO,SAAT;AAAWyG,MAAAA,MAAM,QAAjB;AAAmBpF,MAAAA,MAAM;AAAzB,KAAD,CADb,IAEGsF,UAAU,CAAC;AAAE3G,MAAAA,OAAO,SAAT;AAAWyG,MAAAA,MAAM,QAAjB;AAAmBpF,MAAAA,MAAM;AAAzB,KAAD,CAFb,IAGGuF,YAAY,CAAC;AAAE5G,MAAAA,OAAO,SAAT;AAAWyG,MAAAA,MAAM,QAAjB;AAAmBpF,MAAAA,MAAM;AAAzB,KAAD,CAJjB;AAMD,GAPD,MAOO;AACL,WACE0F,YAAY,CAAC;AAAE/G,MAAAA,OAAO,SAAT;AAAWyG,MAAAA,MAAM,QAAjB;AAAmBpF,MAAAA,MAAM;AAAzB,KAAD,CAAZ,IACGuF,YAAY,CAAC;AAAE5G,MAAAA,OAAO,SAAT;AAAWyG,MAAAA,MAAM,QAAjB;AAAmBpF,MAAAA,MAAM;AAAzB,KAAD,CAFjB;AAID;AACF,CAfM;;SCjBiB6F,uBAAuB1E;MAC7CxC,OAAO;MACPmH,SAAS;MACT9F,MAAM;MACN+F,aAAa;MACbxE,QAAQ;MACRyE,QAAQ;MACRC,UAAU;MACVC,QAAQ;MACRd,MAAM;;AAEN,MAAI,CAACzG,OAAD,IAAYA,OAAO,CAACkB,WAAR,KAAwB,MAAxC,EAAgD;AAC9C,WAAO,IAAP;AACD;;;AAGO,MAAA8B,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;;AACF,MAAAW,KAA4CZ,UAAU,CAACuE,kBAAD,CAAtD;AAAA,MAAEC,kBAAkB,wBAApB;AAAA,MAAsBC,iBAAiB,uBAAvC;;AACN,MAAMC,UAAU,GAAGC,MAAM,CAAC,IAAD,CAAzB;AACA,MAAMC,SAAS,GAAGD,MAAM,CAAC,IAAD,CAAxB;AACA,MAAME,cAAc,GAAGF,MAAM,CAAC,IAAD,CAA7B;;AACM,MAAA3D,KAAkC8D,QAAQ,CAAC,EAAD,CAA1C;AAAA,MAACC,YAAY,QAAb;AAAA,MAAeC,eAAe,QAA9B;;;AAGN,MAAMC,kBAAkB,GAAGC,KAAK,CAACC,OAAN,CAAcjB,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CAAlE;AACAe,EAAAA,kBAAkB,CAACG,IAAnB,CAAwB,mCAAxB;AACA,MAAMC,MAAM,GAAG5B,WAAW,CAAC1G,OAAD,EAAUqB,MAAV,CAA1B;AACA,MAAMD,MAAM,GAAGkF,oBAAoB,CAACtG,OAAD,CAAnC;AAEA,MAAMuI,mBAAmB,GAAGC,OAAO,CAAC;AAAM,WAAA;AACxC,UAAMC,YAAY,GAAGzI,OAAO,CAACA,OAAR,CAAgB0I,KAAhB,CAAsB,IAAtB,CAArB;AACA,UAAMC,cAAc,GAAGF,YAAY,CAACvG,GAAb,CAAiB,UAAC0G,IAAD;AAAU,eAACA,IAAI,KAAK,EAAT,GAAcA,IAAd,GAAqB,+BAAtB;AAA6B,OAAxD,CAAvB;;AACA,UAAI5I,OAAO,CAAC6I,SAAR,GAAoB,CAAxB,EAA2B;AACzBF,QAAAA,cAAc,CAACN,IAAf,CACE,oBAAC,KAAD;AACE,UAAA,GAAG,EAAES,MAAM,EADb;AAEE,UAAA,IAAI,EAAEvF,eAAe,CAACwF,MAFxB;AAGE,UAAA,KAAK,EAAEtE,WAAW,CAACG,cAHrB;AAIE,UAAA,SAAS,EAAC;AAJZ,WAMG,MAAI5B,SAAS,CAACgG,cAAd,MANH,CADF;AAUD;;AACD,aAAOL,cAAP;AACD,KAhByC;AAgBzC,GAhBkC,EAgBhC,CAAC3I,OAAD,EAAUA,OAAO,CAAC6I,SAAlB,CAhBgC,CAAnC;;AAmBAI,EAAAA,SAAS,CAAC;AACR,QAAItB,UAAU,CAACuB,OAAX,CAAmBC,YAAnB,GAAkC,EAAtC,EAA0C;AACxClB,MAAAA,eAAe,CAAC;AAAEmB,QAAAA,GAAG,EAAE;AAAP,OAAD,CAAf;AACD,KAFD,MAEO;AACLnB,MAAAA,eAAe,CAAC;AAAEmB,QAAAA,GAAG,EAAE;AAAP,OAAD,CAAf;AACD;AACF,GANQ,EAMN,CAACnE,MAAM,CAACoE,UAAR,CANM,CAAT;AAQA,SACE;AACE,IAAA,SAAS,EAAEnB,kBAAkB,CAACoB,IAAnB,CAAwB,GAAxB,CADb;AAEE,IAAA,GAAG,EAAE3B;AAFP,KAIE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAACJ,QAAD,IACE,oBAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACgC,cAAD;AAAoB,aAC/B,oBAAC,MAAD;AACE,QAAA,SAAS,EAAC,iDADZ;AAEE,QAAA,GAAG,EAAEnI,MAAM,CAACoI,UAAP,IAAqB,EAF5B;AAGE,QAAA,GAAG,EAAE3B,SAHP;AAIE,QAAA,KAAK,EAAC,MAJR;AAKE,QAAA,MAAM,EAAC,MALT;AAME,QAAA,OAAO,EAAE;AACP,cAAI,CAACJ,kBAAL,EAAyB;AACvB8B,YAAAA,cAAc;AACf;AACF;AAVH,QAD+B;AAahC,KAdH;AAeE,IAAA,SAAS,EAAE,mBAACE,aAAD;AAAmB,aAC5B,oBAAC,SAAD;AACE,QAAA,SAAS,EAAE5B,SADb;AAEE,QAAA,gBAAgB,EAAEA,SAFpB;AAGE,QAAA,aAAa,EAAE4B,aAHjB;AAIE,QAAA,KAAK,EAAE;AAAEC,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AAJT,SAOIjC,iBAAiB,GAEfA,iBAAiB,CAAC;AAChB/E,QAAAA,IAAI,EAAEvB,MADU;AAEhBwI,QAAAA,KAAK,EAAEH;AAFS,OAAD,CAFF,GAQf,oBAAC,WAAD;AACE,QAAA,IAAI,EAAErI,MADR;AAEE,QAAA,SAAS,EAAEqI,aAFb;AAGE,QAAA,gBAAgB;AAHlB,QAfN,CAD4B;AAwB7B;AAvCH,IAHN,CAJF,EAmDE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAAClC,QAAD,IACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,4DADZ;AAEE,IAAA,IAAI,EAAEhE,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAE8E,MAAM,GAAG7D,WAAW,CAACoF,WAAf,GAA6BpF,WAAW,CAACG;AAHxD,KAMIxD,MAAM,KACJA,MAAM,CAAC0I,UAAP,IACG1I,MAAM,CAAC2I,QADV,IAEG3I,MAAM,CAACC,MAHN,CANV,CADF,EAcE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,wDADZ;AAEE,IAAA,IAAI,EAAEkC,eAAe,CAACyG,SAFxB;AAGE,IAAA,KAAK,EAAEvF,WAAW,CAACwF;AAHrB,KAMIjK,OAAO,CAACE,SAAR,IACED,MAAM,CAACD,OAAO,CAACE,SAAT,EAAoB,GAApB,CAPZ,CAdF,CAHN,EA+BE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,2DADZ;AAEE,IAAA,IAAI,EAAEqD,eAAe,CAACwF,MAFxB;AAGE,IAAA,KAAK,EAAEtE,WAAW,CAACC;AAHrB,KAKG6D,mBAAmB,EALtB,CADF,CA/BF,CAnDF,EA6FI;AACE,IAAA,SAAS,EAAC,iDADZ;AAEE,IAAA,GAAG,EAAET,cAFP;AAGE,IAAA,KAAK,EAAEE;AAHT,KAKE,oBAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACuB,cAAD;AAAoB,aAC/BvC,eAAe,CAAC;AAAEhH,QAAAA,OAAO,EAAEA,OAAX;AAAoBqB,QAAAA,MAAM,EAAEA,MAA5B;AAAoCoF,QAAAA,MAAM,EAAEA;AAA5C,OAAD,CAAf,IACE,oBAAC,UAAD;AACE,QAAA,SAAS,EAAC,uDADZ;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE;AACP8C,UAAAA,cAAc;AACf;AANH,SAQE,oBAAC,IAAD;AACE,QAAA,KAAK,EAAC,MADR;AAEE,QAAA,MAAM,EAAC,MAFT;AAGE,QAAA,IAAI,EAAEnF,SAAS,CAAC8F,IAHlB;AAIE,QAAA,SAAS,EAAE5F,UAAU,CAAC6F;AAJxB,QARF,CAF6B;AAkBhC,KAnBH;AAoBE,IAAA,SAAS,EAAE,mBAACV,aAAD;AAAmB,aAC5B,oBAAC,SAAD;AACE,QAAA,SAAS,EAAE3B,cADb;AAEE,QAAA,gBAAgB,EAAEA,cAFpB;AAGE,QAAA,aAAa,EAAE2B,aAHjB;AAIE,QAAA,QAAQ;AAJV,SAOI9C,UAAU,CAAC;AAAE3G,QAAAA,OAAO,EAAEA,OAAX;AAAoBqB,QAAAA,MAAM,EAAEA,MAA5B;AAAoCoF,QAAAA,MAAM,EAAEA;AAA5C,OAAD,CAAV,IACE,oBAAC,QAAD;AACE,QAAA,SAAS,EAAC,uDADZ;AAEE,QAAA,OAAO,EAAE;AACP1B,UAAAA,eAAe,CAAC/E,OAAO,CAACA,OAAT,CAAf;AACAyJ,UAAAA,aAAa;AACd;AALH,SAOGzG,SAAS,CAACoH,2BAPb,CARN,EAoBItD,UAAU,CAAC;AAAE9G,QAAAA,OAAO,EAAEA,OAAX;AAAoBqB,QAAAA,MAAM,EAAEA,MAA5B;AAAoCoF,QAAAA,MAAM,EAAEA;AAA5C,OAAD,CAAV,IACE,oBAAC,QAAD;AACE,QAAA,SAAS,EAAC,uDADZ;AAEE,QAAA,OAAO,EAAE;AACP,cAAI7D,QAAJ,EAAc;AACZ;AACD;;AACDyE,UAAAA,QAAQ,CAAC,IAAD,CAAR;AACAoC,UAAAA,aAAa;AACd;AARH,SAUGzG,SAAS,CAACqH,2BAVb,CArBN,EAoCIzD,YAAY,CAAC;AAAE5G,QAAAA,OAAO,EAAEA,OAAX;AAAoBqB,QAAAA,MAAM,EAAEA,MAA5B;AAAoCoF,QAAAA,MAAM,EAAEA;AAA5C,OAAD,CAAZ,IACE,oBAAC,QAAD;AACE,QAAA,SAAS,EAAC,yDADZ;AAEE,QAAA,OAAO,EAAE;AACPW,UAAAA,aAAa,CAACpH,OAAD,CAAb;AACAyJ,UAAAA,aAAa;AACd;AALH,SAOGzG,SAAS,CAACsH,6BAPb,CArCN,EAiDIvD,YAAY,CAAC;AAAE/G,QAAAA,OAAO,EAAEA,OAAX;AAAoBqB,QAAAA,MAAM,EAAEA,MAA5B;AAAoCoF,QAAAA,MAAM,EAAEA;AAA5C,OAAD,CAAZ,IACE,oBAAC,QAAD;AACE,QAAA,SAAS,EAAC,yDADZ;AAEE,QAAA,OAAO,EAAE;AACP,cAAI7D,QAAJ,EAAc;AACZ;AACD;;AACD0E,UAAAA,UAAU,CAAC,IAAD,CAAV;AACAmC,UAAAA,aAAa;AACd;AARH,SAUGzG,SAAS,CAACuH,6BAVb,CAlDN,CAD4B;AAkE7B;AAtFH,IALF,CA7FJ,CADF;AA+LD;;SC1RuBC,wBAAwBhI;MAC9CxC,OAAO;MACPmH,SAAS;AAET,MAAMe,kBAAkB,GAAGC,KAAK,CAACC,OAAN,CAAcjB,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CAAlE;AACAe,EAAAA,kBAAkB,CAACG,IAAnB,CAAwB,oCAAxB;AAEA,SACE;AAAK,IAAA,SAAS,EAAEoC,eAAIvC,mBAAJ,CAAwBoB,IAAxB,CAA6B,GAA7B;AAAhB,KACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,0CADZ;AAEE,IAAA,IAAI,EAAE/F,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEiB,WAAW,CAACG;AAHrB,KAKG5E,OAAO,CAACA,OAAR,IAAmB,EALtB,CADF,CADF;AAWD;;AC3BM,IAAM0K,OAAO,GAAG,kFAAhB;AACP,AAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,MAAD;AAAoB,SAAA,UAAC5F,IAAD;AAA2B,WAAA4F,MAAM,CAACC,IAAP,CAAY7F,IAAZ,CAAA;AAAiB,GAA5C;AAA4C,CAAxF;AACP,AAAO,IAAM8F,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC9K,OAAD;AACtB,MAAA+K,UAAU,GAAK/K,OAAO,WAAtB;;AACR,MAAI,CAAC+K,UAAL,EAAiB;AACf,WAAO,KAAP;AACD;;AACO,MAAAC,GAAG,GAAKD,UAAU,IAAlB;;AACR,MAAI,CAACC,GAAL,EAAU;AACR,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD,CAVM;;SCsCiBC,qBAAqBzI;MAC3CxC,OAAO;MACPmH,SAAS;MACTvE,QAAQ;MACRyE,QAAQ;MACRC,UAAU;MACVF,aAAa;MACbG,QAAQ;MACRd,MAAM;MACNpF,MAAM;;AAEN,MAAI,CAACrB,OAAD,IAAYA,OAAO,CAACkB,WAAR,KAAwB,MAAxC,EAAgD;AAC9C,WAAO,IAAP;AACD;;AAEO,MAAA6J,UAAU,GAAK/K,OAAO,WAAtB;AACA,MAAAkL,YAAY,GAAKH,UAAU,aAA3B;AAEA,MAAA/H,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;;AACF,MAAAW,KAA4CZ,UAAU,CAACuE,kBAAD,CAAtD;AAAA,MAAEC,kBAAkB,wBAApB;AAAA,MAAsBC,iBAAiB,uBAAvC;;AACA,MAAAzD,KAAkC8D,QAAQ,CAAC,EAAD,CAA1C;AAAA,MAACC,YAAY,QAAb;AAAA,MAAeC,eAAe,QAA9B;;AACN,MAAMkD,mBAAmB,GAAGvD,MAAM,CAAC,IAAD,CAAlC;AACA,MAAME,cAAc,GAAGF,MAAM,CAAC,IAAD,CAA7B;AACA,MAAMC,SAAS,GAAGD,MAAM,CAAC,IAAD,CAAxB;AAEA,MAAMwD,KAAK,GAAGT,eAAe,CAACD,OAAD,CAA7B;AACA,MAAMxC,kBAAkB,GAAGC,KAAK,CAACC,OAAN,CAAcjB,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CAAlE;AACAe,EAAAA,kBAAkB,CAACG,IAAnB,CAAwB,iCAAxB;AACA,MAAMC,MAAM,GAAG5B,WAAW,CAAC1G,OAAD,EAAUqB,MAAV,CAA1B;AACA,MAAMD,MAAM,GAAGkF,oBAAoB,CAACtG,OAAD,CAAnC;AAEA,MAAMuI,mBAAmB,GAAGC,OAAO,CAAC;AAAM,WAAA;AACxC,UAAM6C,aAAa,GAAG,uCAAtB;AACA,UAAM5C,YAAY,GAAGzI,OAAO,CAACA,OAAR,CAAgB0I,KAAhB,CAAsB,GAAtB,CAArB;AACA,UAAMC,cAAc,GAAGF,YAAY,CAChCvG,GADoB,CAChB,UAAC0G,IAAD;AAAU,eACbwC,KAAK,CAACxC,IAAD,CAAL,GAEI,oBAAC,SAAD;AACE,UAAA,GAAG,EAAEE,MAAM,EADb;AAEE,UAAA,SAAS,EAAE,CACTuC,aADS,EAET,6CAFS,CAFb;AAME,UAAA,GAAG,EAAEzC,IANP;AAOE,UAAA,IAAI,EAAErF,eAAe,CAACwF,MAPxB;AAQE,UAAA,KAAK,EAAEtE,WAAW,CAACK;AARrB,WAUG8D,IAVH,CAFJ,GAgBI,oBAAC,KAAD;AACE,UAAA,GAAG,EAAEE,MAAM,EADb;AAEE,UAAA,SAAS,EAAEuC,aAFb;AAGE,UAAA,IAAI,EAAE9H,eAAe,CAACwF,MAHxB;AAIE,UAAA,KAAK,EAAEtE,WAAW,CAACC;AAJrB,WAMGkE,IANH,CAjBS;AA0Bd,OA3BoB,CAAvB;;AA6BA,UAAI5I,OAAO,CAAC6I,SAAR,GAAoB,CAAxB,EAA2B;AACzBF,QAAAA,cAAc,CAACN,IAAf,CACE,oBAAC,KAAD;AACE,UAAA,GAAG,EAAES,MAAM,EADb;AAEE,UAAA,SAAS,EAAEuC,aAFb;AAGE,UAAA,IAAI,EAAE9H,eAAe,CAACwF,MAHxB;AAIE,UAAA,KAAK,EAAEtE,WAAW,CAACG;AAJrB,WAMG5B,SAAS,CAACgG,cANb,CADF;AAUD;;AAED,aAAOL,cAAP;AACD,KA9CyC;AA8CzC,GA9CkC,EA8ChC,CAAC3I,OAAD,EAAUA,OAAO,CAAC6I,SAAlB,CA9CgC,CAAnC;;AAgDA,MAAMyC,QAAQ,GAAG,SAAXA,QAAW;AACf,QAAIR,gBAAgB,CAAC9K,OAAD,CAApB,EAA+B;AACrB,UAAAgL,GAAG,GAAKD,UAAU,IAAlB;AACR9F,MAAAA,MAAM,CAACsG,IAAP,CAAYP,GAAZ;AACD;AACF,GALD;;;AAQA/B,EAAAA,SAAS,CAAC;AACR,QAAIkC,mBAAmB,CAACjC,OAApB,CAA4BC,YAA5B,GAA2C,EAA/C,EAAmD;AACjDlB,MAAAA,eAAe,CAAC;AAAEmB,QAAAA,GAAG,EAAE;AAAP,OAAD,CAAf;AACD,KAFD,MAEO;AACLnB,MAAAA,eAAe,CAAC;AAAEmB,QAAAA,GAAG,EAAE;AAAP,OAAD,CAAf;AACD;AACF,GANQ,EAMN,CAACnE,MAAM,CAACoE,UAAR,CANM,CAAT;AAQA,SACE;AACE,IAAA,SAAS,EAAEnB,kBAAkB,CAACoB,IAAnB,CAAwB,GAAxB,CADb;AAEE,IAAA,GAAG,EAAE6B;AAFP,KAIE;AACE,IAAA,SAAS,EAAC;AADZ,KAGE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAAC5D,QAAD,IACE,oBAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACgC,cAAD;AAAoB,aAC/B,oBAAC,MAAD;AACE,QAAA,SAAS,EAAC,oDADZ;AAEE,QAAA,GAAG,EAAEnI,MAAM,CAACoI,UAAP,IAAqB,EAF5B;AAGE,QAAA,GAAG,EAAE3B,SAHP;AAIE,QAAA,KAAK,EAAC,MAJR;AAKE,QAAA,MAAM,EAAC,MALT;AAME,QAAA,OAAO,EAAE;AACP,cAAI,CAACJ,kBAAL,EAAyB;AACvB8B,YAAAA,cAAc;AACf;AACF;AAVH,QAD+B;AAahC,KAdH;AAeE,IAAA,SAAS,EAAE,mBAACE,aAAD;AAAmB,aAC5B,oBAAC,SAAD;AACE,QAAA,SAAS,EAAE5B,SADb;AAEE,QAAA,gBAAgB,EAAEA,SAFpB;AAGE,QAAA,aAAa,EAAE4B,aAHjB;AAIE,QAAA,KAAK,EAAE;AAAEC,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AAJT,SAOIjC,iBAAiB,GAEbA,iBAAiB,CAAC;AAChB/E,QAAAA,IAAI,EAAEvB,MADU;AAEhBwI,QAAAA,KAAK,EAAEH;AAFS,OAAD,CAFJ,GAQb,oBAAC,WAAD;AACE,QAAA,IAAI,EAAErI,MADR;AAEE,QAAA,SAAS,EAAEqI,aAFb;AAGE,QAAA,gBAAgB;AAHlB,QAfR,CAD4B;AAwB7B;AAvCH,IAHN,CAHF,EAkDE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAAClC,QAAD,IACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,iEADZ;AAEE,IAAA,IAAI,EAAEhE,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAE8E,MAAM,GAAG7D,WAAW,CAACoF,WAAf,GAA6BpF,WAAW,CAACG;AAHxD,KAMIxD,MAAM,KACJA,MAAM,CAAC0I,UAAP,IACG1I,MAAM,CAAC2I,QADV,IAEG3I,MAAM,CAACC,MAHN,CANV,CADF,EAcE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,6DADZ;AAEE,IAAA,IAAI,EAAEkC,eAAe,CAACyG,SAFxB;AAGE,IAAA,KAAK,EAAEvF,WAAW,CAACwF;AAHrB,KAMIjK,OAAO,CAACE,SAAR,IACED,MAAM,CAACD,OAAO,CAACE,SAAT,EAAoB,GAApB,CAPZ,CAdF,CAHN,EA+BE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,mEADZ;AAEE,IAAA,IAAI,EAAEqD,eAAe,CAACwF,MAFxB;AAGE,IAAA,KAAK,EAAEtE,WAAW,CAACC;AAHrB,KAKG6D,mBAAmB,EALtB,CADF,CA/BF,CAlDF,EA4FI;AACE,IAAA,SAAS,EAAC,oDADZ;AAEE,IAAA,GAAG,EAAET,cAFP;AAGE,IAAA,KAAK,EAAEE;AAHT,KAKE,oBAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACuB,cAAD;AAAoB,aAC/BvC,eAAe,CAAC;AAAEhH,QAAAA,OAAO,EAAEA,OAAX;AAAoBqB,QAAAA,MAAM,EAAEA,MAA5B;AAAoCoF,QAAAA,MAAM,EAAEA;AAA5C,OAAD,CAAf,IACE,oBAAC,UAAD;AACE,QAAA,SAAS,EAAC,0DADZ;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE;AACP8C,UAAAA,cAAc;AACf;AANH,SAQE,oBAAC,IAAD;AACE,QAAA,KAAK,EAAC,MADR;AAEE,QAAA,MAAM,EAAC,MAFT;AAGE,QAAA,IAAI,EAAEnF,SAAS,CAAC8F,IAHlB;AAIE,QAAA,SAAS,EAAE5F,UAAU,CAAC6F;AAJxB,QARF,CAF6B;AAkBhC,KAnBH;AAoBE,IAAA,SAAS,EAAE,mBAACV,aAAD;AAAmB,aAC5B,oBAAC,SAAD;AACE,QAAA,SAAS,EAAE3B,cADb;AAEE,QAAA,gBAAgB,EAAEA,cAFpB;AAGE,QAAA,aAAa,EAAE2B,aAHjB;AAIE,QAAA,QAAQ;AAJV,SAOI9C,UAAU,CAAC;AAAE3G,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAV,IACE,oBAAC,QAAD;AACE,QAAA,SAAS,EAAC,0DADZ;AAEE,QAAA,OAAO,EAAE;AACP1B,UAAAA,eAAe,CAAC/E,OAAO,CAACA,OAAT,CAAf;AACAyJ,UAAAA,aAAa;AACd;AALH,SAOGzG,SAAS,CAACoH,2BAPb,CARN,EAoBItD,UAAU,CAAC;AAAE9G,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAV,IACE,oBAAC,QAAD;AACE,QAAA,SAAS,EAAC,0DADZ;AAEE,QAAA,OAAO,EAAE;AACP,cAAI7D,QAAJ,EAAc;AACZ;AACD;;AACDyE,UAAAA,QAAQ,CAAC,IAAD,CAAR;AACAoC,UAAAA,aAAa;AACd;AARH,SAUGzG,SAAS,CAACqH,2BAVb,CArBN,EAoCIzD,YAAY,CAAC;AAAE5G,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAZ,IACE,oBAAC,QAAD;AACE,QAAA,SAAS,EAAC,4DADZ;AAEE,QAAA,OAAO,EAAE;AACPW,UAAAA,aAAa,CAACpH,OAAD,CAAb;AACAyJ,UAAAA,aAAa;AACd;AALH,SAOGzG,SAAS,CAACsH,6BAPb,CArCN,EAiDIvD,YAAY,CAAC;AAAE/G,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAZ,IACE,oBAAC,QAAD;AACE,QAAA,SAAS,EAAC,4DADZ;AAEE,QAAA,OAAO,EAAE;AACP,cAAI7D,QAAJ,EAAc;AACZ;AACD;;AACD0E,UAAAA,UAAU,CAAC,IAAD,CAAV;AACAmC,UAAAA,aAAa;AACd;AARH,SAUGzG,SAAS,CAACuH,6BAVb,CAlDN,CAD4B;AAkE7B;AAtFH,IALF,CA5FJ,CAJF,EAgME;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEIQ,UAAU,CAACC,GAAX,IACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,sDADZ;AAEE,IAAA,IAAI,EAAEzH,eAAe,CAACyG,SAFxB;AAGE,IAAA,KAAK,EAAEvF,WAAW,CAACG;AAHrB,KAKGmG,UAAU,CAACC,GALd,CAHN,EAaID,UAAU,CAACjH,KAAX,IACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAC,wDADZ;AAEE,IAAA,IAAI,EAAEP,eAAe,CAACiI,UAFxB;AAGE,IAAA,KAAK,EAAE/G,WAAW,CAACK,OAHrB;AAIE,IAAA,GAAG,EAAEiG,UAAU,CAACC;AAJlB,KAOID,UAAU,CAACjH,KAPf,CAdN,EA2BIiH,UAAU,CAACU,WAAX,IACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,8DADZ;AAEE,IAAA,IAAI,EAAElI,eAAe,CAACoB,MAFxB;AAGE,IAAA,KAAK,EAAEF,WAAW,CAACC;AAHrB,KAKGqG,UAAU,CAACU,WALd,CA5BN,EAsCIV,UAAU,CAACC,GAAX,IACE;AACE,IAAA,SAAS,EAAC,4DADZ;AAEE,IAAA,OAAO,EAAEM,QAFX;AAGE,IAAA,SAAS,EAAEA,QAHb;AAIE,IAAA,IAAI,EAAC,QAJP;AAKE,IAAA,QAAQ,EAAE;AALZ,KAQIJ,YAAY,IACV,oBAAC,aAAD;AACE,IAAA,GAAG,EAAEA,YAAY,CAACF,GAAb,IAAoB,EAD3B;AAEE,IAAA,GAAG,EAAEE,YAAY,CAACQ,GAAb,IAAoB,EAF3B;AAGE,IAAA,SAAS,EAAC,mEAHZ;AAIE,IAAA,MAAM,EAAC,OAJT;AAKE,IAAA,gBAAgB,EACd;AAAK,MAAA,SAAS,EAAC;AAAf,OACE,oBAAC,IAAD;AACE,MAAA,KAAK,EAAC,MADR;AAEE,MAAA,MAAM,EAAC,MAFT;AAGE,MAAA,IAAI,EAAEtH,SAAS,CAACuH;AAHlB,MADF;AANJ,IATN,CAvCN,CADF,CAhMF,CADF;AA0QD;;ACnZM,IAAMC,gBAAgB,GAAG;AAC9BC,EAAAA,KAAK,EAAE,OADuB;AAE9BC,EAAAA,KAAK,EAAE,OAFuB;AAG9BC,EAAAA,WAAW,EAAE;AAHiB,CAAzB;AAMP,IAAMC,eAAe,GAAG;AACtBH,EAAAA,KAAK,EAAE,CACL,YADK,EAEL,WAFK,EAGL,WAHK,EAIL,WAJK,EAKL,YALK,CADe;AAQtBC,EAAAA,KAAK,EAAE,CACL,YADK,EAEL,WAFK,EAGL,YAHK,EAIL,WAJK;AARe,CAAxB;AAgBA,AAAO,IAAMG,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,IAAD;AACnC,MAAIF,eAAe,CAACH,KAAhB,CAAsBzJ,OAAtB,CAA8B8J,IAA9B,KAAuC,CAA3C,EAA8C;AAC5C,WAAON,gBAAgB,CAACC,KAAxB;AACD;;AACD,MAAIG,eAAe,CAACF,KAAhB,CAAsB1J,OAAtB,CAA8B8J,IAA9B,KAAuC,CAA3C,EAA8C;AAC5C,WAAON,gBAAgB,CAACE,KAAxB;AACD;;AACD,SAAOF,gBAAgB,CAACG,WAAxB;AACD,CARM;;SCeiBI,4BAA4B3J;;;MAClDxC,OAAO;MACPmH,SAAS;MACTvE,QAAQ;MACRvB,MAAM;MACNoF,MAAM;MACNc,QAAQ;MACR6E,QAAO;MACP9E,UAAU;MACVF,aAAa;AAGX,MAAA8E,IAAI,GAGFlM,OAAO,KAHT;AAAA,MACAgL,GAAG,GAEDhL,OAAO,IAHT;AAAA,MAEAqM,QAAQ,GACNrM,OAAO,SAHT;AAIM,MAAAgD,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;;AACF,MAAAe,KAA4ChB,UAAU,CAACuE,kBAAD,CAAtD;AAAA,MAAEC,kBAAkB,wBAApB;AAAA,MAAsBC,iBAAiB,uBAAvC;;AACN,MAAMI,cAAc,GAAGF,MAAM,CAAC,IAAD,CAA7B;AACA,MAAMC,SAAS,GAAGD,MAAM,CAAC,IAAD,CAAxB;AAEA,MAAMM,kBAAkB,GAAGC,KAAK,CAACC,OAAN,CAAcjB,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CAAlE;AACAe,EAAAA,kBAAkB,CAACG,IAAnB,CAAwB,wCAAxB;AACA,MAAMC,MAAM,GAAG5B,WAAW,CAAC1G,OAAD,EAAUqB,MAAV,CAA1B;AACA,MAAMiL,aAAa,GAAG9F,WAAW,CAACC,MAAD,CAAjC;AACA,MAAMrF,MAAM,GAAGkF,oBAAoB,CAACtG,OAAD,CAAnC;AAEA,SACE;AAAK,IAAA,SAAS,EAAEkI,kBAAkB,CAACoB,IAAnB,CAAwB,GAAxB;AAAhB,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAAC/B,QAAD,IACE,oBAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACgC,cAAD;AAAoB,aAC/B,oBAAC,MAAD;AACE,QAAA,SAAS,EAAC,sDADZ;AAEE,QAAA,GAAG,EAAEnI,MAAM,CAACoI,UAAP,IAAqB,EAF5B;AAGE,QAAA,GAAG,EAAE3B,SAHP;AAIE,QAAA,KAAK,EAAC,MAJR;AAKE,QAAA,MAAM,EAAC,MALT;AAME,QAAA,OAAO,EAAE;AACP,cAAI,CAACJ,kBAAL,EAAyB;AACvB8B,YAAAA,cAAc;AACf;AACF;AAVH,QAD+B;AAahC,KAdH;AAeE,IAAA,SAAS,EAAE,mBAACE,aAAD;AAAmB,aAC5B,oBAAC,SAAD;AACE,QAAA,SAAS,EAAE5B,SADb;AAEE,QAAA,gBAAgB,EAAEA,SAFpB;AAGE,QAAA,aAAa,EAAE4B,aAHjB;AAIE,QAAA,KAAK,EAAE;AAAEC,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AAJT,SAOIjC,iBAAiB,GAEbA,iBAAiB,CAAC;AAChB/E,QAAAA,IAAI,EAAEvB,MADU;AAEhBwI,QAAAA,KAAK,EAAEH;AAFS,OAAD,CAFJ,GAQb,oBAAC,WAAD;AACE,QAAA,IAAI,EAAErI,MADR;AAEE,QAAA,SAAS,EAAEqI,aAFb;AAGE,QAAA,gBAAgB;AAHlB,QAfR,CAD4B;AAwB7B;AAvCH,IAHN,CADF,EAgDE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAAClC,QAAD,IACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,mEADZ;AAEE,IAAA,IAAI,EAAEhE,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAE8E,MAAM,GAAG7D,WAAW,CAACoF,WAAf,GAA6BpF,WAAW,CAACG;AAHxD,KAMIxD,MAAM,KACJA,MAAM,CAAC0I,UAAP,IACG1I,MAAM,CAAC2I,QADV,IAEG3I,MAAM,CAACC,MAHN,CANV,CADF,EAcE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,+DADZ;AAEE,IAAA,IAAI,EAAEkC,eAAe,CAACyG,SAFxB;AAGE,IAAA,KAAK,EAAEvF,WAAW,CAACwF;AAHrB,KAMIjK,OAAO,CAACE,SAAR,IACED,MAAM,CAACD,OAAO,CAACE,SAAT,EAAoB,GAApB,CAPZ,CAdF,CAHN,EA+BE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AACE,IAAA,SAAS,EAAC,2DADZ;AAEE,IAAA,OAAO,EAAE;AACP,UAAIoM,aAAJ,EAAmB;AACjBF,QAAAA,QAAO,CAAC,IAAD,CAAP;AACD;AACF,KANH;AAOE,IAAA,SAAS,EAAE;AACT,UAAIE,aAAJ,EAAmB;AACjBF,QAAAA,QAAO,CAAC,IAAD,CAAP;AACD;AACF,KAXH;AAYE,IAAA,QAAQ,EAAE,CAZZ;AAaE,IAAA,IAAI,EAAC;AAbP,KAeE;AAAK,IAAA,SAAS,EAAC;AAAf,IAfF,EAiBI,UACEvI,GAAC+H,gBAAgB,CAACE,MAAlB,GACGd,GAAG,IAAIqB,QAAR,GAEI;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AACE,IAAA,SAAS,EAAC;AADZ,KAGE;AAAQ,IAAA,GAAG,EAAErB,GAAG,IAAIqB,QAApB;AAA8B,IAAA,IAAI,EAAEH;AAApC,IAHF,CADF,EAME,oBAAC,IAAD;AACE,IAAA,SAAS,EAAC,wEADZ;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,IAAI,EAAE9H,SAAS,CAACmI;AAJlB,IANF,CAFJ,GAiBI,oBAAC,IAAD;AACE,IAAA,SAAS,EAAC,wEADZ;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,IAAI,EAAEnI,SAAS,CAACoI,KAJlB;AAKE,IAAA,SAAS,EAAElI,UAAU,CAACmI;AALxB,MASN5I,GAAC+H,gBAAgB,CAACC,MAAlB,GACGb,GAAG,IAAIqB,QAAR,GAEI,oBAAC,aAAD;AACE,IAAA,SAAS,EAAC,kEADZ;AAEE,IAAA,MAAM,EAAC,OAFT;AAGE,IAAA,GAAG,EAAErB,GAAG,IAAIqB,QAHd;AAIE,IAAA,GAAG,EAAC;AAJN,IAFJ,GAUI,oBAAC,IAAD;AACE,IAAA,SAAS,EAAC,wEADZ;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,IAAI,EAAEjI,SAAS,CAACoI,KAJlB;AAKE,IAAA,SAAS,EAAElI,UAAU,CAACmI;AALxB,MASN5I,GAAC+H,gBAAgB,CAACG,YAAlB,GACE,oBAAC,IAAD;AACE,IAAA,SAAS,EAAC,oEADZ;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,IAAI,EAAE3H,SAAS,CAACoI,KAJlB;AAKE,IAAA,SAAS,EAAElI,UAAU,CAACmI;AALxB,QAjDJ,EAyDER,qBAAqB,CAACC,IAAD,CAzDvB,CAjBJ,CADF,CA/BF,CAhDF,EA+JE;AACE,IAAA,SAAS,EAAC,sDADZ;AAEE,IAAA,GAAG,EAAEpE;AAFP,KAIE,oBAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACyB,cAAD;AAAoB,aAC/BvC,eAAe,CAAC;AAAEhH,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAf,IACE,oBAAC,UAAD;AACE,QAAA,SAAS,EAAC,4DADZ;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE8C;AAJX,SAME,oBAAC,IAAD;AACE,QAAA,KAAK,EAAC,MADR;AAEE,QAAA,MAAM,EAAC,MAFT;AAGE,QAAA,IAAI,EAAEnF,SAAS,CAAC8F,IAHlB;AAIE,QAAA,SAAS,EAAE5F,UAAU,CAAC6F;AAJxB,QANF,CAF6B;AAgBhC,KAjBH;AAkBE,IAAA,SAAS,EAAE,mBAACV,aAAD;AAAmB,aAC5B,oBAAC,SAAD;AACE,QAAA,SAAS,EAAE3B,cADb;AAEE,QAAA,gBAAgB,EAAEA,cAFpB;AAGE,QAAA,aAAa,EAAE2B,aAHjB;AAIE,QAAA,QAAQ;AAJV,SAOI7C,YAAY,CAAC;AAAE5G,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAZ,IACE,oBAAC,QAAD;AACE,QAAA,OAAO,EAAE;AACPW,UAAAA,aAAa,CAACpH,OAAD,CAAb;AACAyJ,UAAAA,aAAa;AACd;AAJH,SAMGzG,SAAS,CAACsH,6BANb,CARN,EAmBIvD,YAAY,CAAC;AAAE/G,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAZ,IACE,oBAAC,QAAD;AACE,QAAA,OAAO,EAAE;AACP,cAAI7D,QAAJ,EAAc;AACZ;AACD;;AACD0E,UAAAA,UAAU,CAAC,IAAD,CAAV;AACAmC,UAAAA,aAAa;AACd;AAPH,SASGzG,SAAS,CAACuH,6BATb,CApBN,CAD4B;AAmC7B;AArDH,IAJF,CA/JF,CADF;AA8ND;;AC5RM,IAAMmC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,OAAD;AAC3B,MAAIC,MAAM,GAAG,IAAb;AACA,MAAMC,SAAS,GAAG,oCAAlB;AACA,MAAMC,SAAS,GAAG,WAAlB;;AACA,MAAID,SAAS,CAAChC,IAAV,CAAe8B,OAAf,CAAJ,EAA6B;AAC3BC,IAAAA,MAAM,GAAGxI,SAAS,CAAC2I,aAAnB;AACD,GAFD,MAEO,IAAID,SAAS,CAACjC,IAAV,CAAe8B,OAAf,CAAJ,EAA6B;AAClCC,IAAAA,MAAM,GAAGxI,SAAS,CAAC4I,UAAnB;AACD;;AACD,SAAOJ,MAAP;AACD,CAVM;AAYP,AAAO,IAAMK,QAAQ,GAAG,SAAXA,QAAW,CAACC,OAAD,EAAiBC,MAAjB;AACtB,MAAID,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAKE,SAApC,EAA+C,OAAO,EAAP;AAC/C,MAAIF,OAAO,CAACtM,MAAR,IAAkBuM,MAAtB,EAA8B,OAAOD,OAAP;AAC9B,MAAMG,SAAS,GAAG,KAAlB;AACA,MAAMC,MAAM,GAAGD,SAAS,CAACzM,MAAzB;AACA,MAAM2M,WAAW,GAAGJ,MAAM,GAAGG,MAA7B;AACA,MAAME,UAAU,GAAG5L,IAAI,CAAC6L,IAAL,CAAUF,WAAW,GAAG,CAAxB,CAAnB;AACA,MAAMG,SAAS,GAAG9L,IAAI,CAAC+L,KAAL,CAAWJ,WAAW,GAAG,CAAzB,CAAlB;AACA,SAAOL,OAAO,CAACU,MAAR,CAAe,CAAf,EAAkBJ,UAAlB,IAAgCH,SAAhC,GAA4CH,OAAO,CAACU,MAAR,CAAeV,OAAO,CAACtM,MAAR,GAAiB8M,SAAhC,CAAnD;AACD,CATM;;SCuBiBG,uBAAuBrL;MAC7CxC,OAAO;MACPmH,SAAS;MACT9F,MAAM;MACNuB,QAAQ;MACR2E,QAAQ;MACRd,MAAM;MACNa,UAAU;MACVF,aAAa;AAEb,MAAMU,cAAc,GAAGF,MAAM,CAAC,IAAD,CAA7B;AACA,MAAMC,SAAS,GAAGD,MAAM,CAAC,IAAD,CAAxB;AACQ,MAAA5E,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;;AACF,MAAAW,KAA4CZ,UAAU,CAACuE,kBAAD,CAAtD;AAAA,MAAEC,kBAAkB,wBAApB;AAAA,MAAsBC,iBAAiB,uBAAvC;;AAEN,MAAMoG,WAAW,GAAG,SAAdA,WAAc;AAAQ7I,IAAAA,MAAM,CAACsG,IAAP,CAAYvL,OAAO,CAACgL,GAApB;AAA2B,GAAvD;;AAEA,MAAM9C,kBAAkB,GAAGC,KAAK,CAACC,OAAN,CAAcjB,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CAAlE;AACAe,EAAAA,kBAAkB,CAACG,IAAnB,CAAwB,mCAAxB;AACA,MAAMC,MAAM,GAAG5B,WAAW,CAAC1G,OAAD,EAAUqB,MAAV,CAA1B;AACA,MAAMD,MAAM,GAAGkF,oBAAoB,CAACtG,OAAD,CAAnC;AAEA,SACE;AACE,IAAA,SAAS,EAAEkI,kBAAkB,CAACoB,IAAnB,CAAwB,GAAxB;AADb,KAGE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEM,CAAC/B,QAAD,IACE,oBAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACgC,cAAD;AAAoB,aAC/B,oBAAC,MAAD;AACA,QAAA,SAAS,EAAC,iDADV;AAEE,QAAA,GAAG,EAAEnI,MAAM,CAACoI,UAAP,IAAqB,EAF5B;AAGE,QAAA,GAAG,EAAE3B,SAHP;AAIE,QAAA,KAAK,EAAC,MAJR;AAKE,QAAA,MAAM,EAAC,MALT;AAME,QAAA,OAAO,EAAE;AACP,cAAI,CAACJ,kBAAL,EAAyB;AACvB8B,YAAAA,cAAc;AACf;AACF;AAVH,QAD+B;AAahC,KAdH;AAeE,IAAA,SAAS,EAAE,mBAACE,aAAD;AAAmB,aAC5B,oBAAC,SAAD;AACE,QAAA,SAAS,EAAE5B,SADb;AAEE,QAAA,gBAAgB,EAAEA,SAFpB;AAGE,QAAA,aAAa,EAAE4B,aAHjB;AAIE,QAAA,KAAK,EAAE;AAAEC,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AAJT,SAOIjC,iBAAiB,GAEfA,iBAAiB,CAAC;AAChB/E,QAAAA,IAAI,EAAEvB,MADU;AAEhBwI,QAAAA,KAAK,EAAEH;AAFS,OAAD,CAFF,GAQf,oBAAC,WAAD;AACE,QAAA,IAAI,EAAErI,MADR;AAEE,QAAA,SAAS,EAAEqI,aAFb;AAGE,QAAA,gBAAgB;AAHlB,QAfN,CAD4B;AAwB7B;AAvCH,IAHR,CAHF,EAkDE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEI,CAAClC,QAAD,IACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,8DADZ;AAEE,IAAA,IAAI,EAAEhE,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAE8E,MAAM,GAAG7D,WAAW,CAACoF,WAAf,GAA6BpF,WAAW,CAACG;AAHxD,KAMIxD,MAAM,KACJA,MAAM,CAAC0I,UAAP,IACG1I,MAAM,CAAC2I,QADV,IAEG3I,MAAM,CAACC,MAHN,CANV,CADF,EAcE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,0DADZ;AAEE,IAAA,IAAI,EAAEkC,eAAe,CAACyG,SAFxB;AAGE,IAAA,KAAK,EAAEvF,WAAW,CAACwF;AAHrB,KAMIjK,OAAO,CAACE,SAAR,IACED,MAAM,CAACD,OAAO,CAACE,SAAT,EAAoB,GAApB,CAPZ,CAdF,CAHN,EA+BE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEIwM,aAAa,CAAC1M,OAAO,CAACgL,GAAT,CAAb,IACE,oBAAC,IAAD;AACE,IAAA,SAAS,EAAC,sDADZ;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAC,MAHT;AAIE,IAAA,IAAI,EAAE0B,aAAa,CAAC1M,OAAO,CAACgL,GAAT,CAJrB;AAKE,IAAA,KAAK,EAAE1G,UAAU,CAACQ;AALpB,IAHN,EAYE,oBAAC,UAAD;AACE,IAAA,SAAS,EAAC,2DADZ;AAEE,IAAA,OAAO,EAAEgJ;AAFX,KAIE,oBAAC,KAAD;AACE,IAAA,IAAI,EAAEvK,eAAe,CAACwF,MADxB;AAEE,IAAA,KAAK,EAAEtE,WAAW,CAACC;AAFrB,KAIGuI,QAAQ,CAACjN,OAAO,CAACgL,GAAT,EAAc,EAAd,CAJX,CAJF,CAZF,CA/BF,CAlDF,EA0GE;AACE,IAAA,SAAS,EAAC,iDADZ;AAEE,IAAA,GAAG,EAAElD;AAFP,KAKM,oBAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACyB,cAAD;AAAoB,aAC/BvC,eAAe,CAAC;AAAEhH,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAf,IACE,oBAAC,UAAD;AACE,QAAA,SAAS,EAAC,uDADZ;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC,MAHT;AAIE,QAAA,OAAO,EAAE8C;AAJX,SAME,oBAAC,IAAD;AACE,QAAA,IAAI,EAAEnF,SAAS,CAAC8F,IADlB;AAEE,QAAA,KAAK,EAAC,MAFR;AAGE,QAAA,MAAM,EAAC;AAHT,QANF,CAF6B;AAehC,KAhBH;AAiBE,IAAA,SAAS,EAAE,mBAACT,aAAD;AAAmB,aAC5B,oBAAC,SAAD;AACE,QAAA,SAAS,EAAE3B,cADb;AAEE,QAAA,gBAAgB,EAAEA,cAFpB;AAGE,QAAA,aAAa,EAAE2B,aAHjB;AAIE,QAAA,QAAQ;AAJV,SAOI7C,YAAY,CAAC;AAAE5G,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAZ,IACE,oBAAC,QAAD;AACE,QAAA,OAAO,EAAE;AACP,cAAI7D,QAAJ,EAAc;AAAE;AAAS;;AACzBwE,UAAAA,aAAa,CAACpH,OAAD,CAAb;AACAyJ,UAAAA,aAAa;AACd;AALH,SAOGzG,SAAS,CAACsH,6BAPb,CARN,EAoBIvD,YAAY,CAAC;AAAE/G,QAAAA,OAAO,SAAT;AAAWqB,QAAAA,MAAM,QAAjB;AAAmBoF,QAAAA,MAAM;AAAzB,OAAD,CAAZ,IACE,oBAAC,QAAD;AACE,QAAA,OAAO,EAAE;AACP,cAAI7D,QAAJ,EAAc;AAAE;AAAS;;AACzB0E,UAAAA,UAAU,CAAC,IAAD,CAAV;AACAmC,UAAAA,aAAa;AACd;AALH,SAOGzG,SAAS,CAACuH,6BAPb,CArBN,CAD4B;AAkC7B;AAnDH,IALN,CA1GF,CADF;AAyKD;;SC1NuBwD,mBAAmBvL;MACzCwL,YAAY;MACZC,eAAe;AAEP,MAAAjL,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;AAER,SACE,oBAAC,KAAD;AACE,IAAA,QAAQ,EAAE8K,YADZ;AAEE,IAAA,QAAQ,EAAEC,eAFZ;AAGE,IAAA,UAAU,EAAC,QAHb;AAIE,IAAA,SAAS,EAAEjL,SAAS,CAACkL;AAJvB,IADF;AAQD;;ACrBM,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,KAAK,EAAE,OADmB;AAE1BC,EAAAA,IAAI,EAAE,MAFoB;AAG1BC,EAAAA,IAAI,EAAE,MAHoB;AAI1BC,EAAAA,SAAS,EAAE,WAJe;AAK1BC,EAAAA,EAAE,EAAE,IALsB;AAM1BC,EAAAA,OAAO,EAAE;AANiB,CAArB;AASP,AAAO,IAAMC,oBAAoB,GAAG;AAClCzI,EAAAA,IAAI,EAAE,MAD4B;AAElCI,EAAAA,SAAS,EAAE,WAFuB;AAGlCF,EAAAA,MAAM,EAAE,QAH0B;AAIlCD,EAAAA,OAAO,EAAE;AAJyB,CAA7B;AAOP,AAAO,IAAMyI,cAAc,GAAG,SAAjBA,cAAiB,CAAC3O,OAAD;AAC5B,MAAKA,OAAO,CAAC4O,aAAR,IAAyB5O,OAAO,CAAC4O,aAAR,EAA1B,IAAsD5O,OAAO,CAACkB,WAAR,KAAwB,MAAlF,EAA0F;AACxF,WAAQlB,OAAO,CAAC+K,UAAT,GACHoD,YAAY,CAACK,EADV,GAEHL,YAAY,CAACE,IAFjB;AAGD;;AACD,MAAIrO,OAAO,CAAC6O,cAAR,IAA0B7O,OAAO,CAAC6O,cAAR,EAA9B,EAAwD;AACtD,WAAOV,YAAY,CAACC,KAApB;AACD;;AACD,MAAIpO,OAAO,CAACkB,WAAR,KAAwB,MAA5B,EAAoC;AAClC,WAAQ4N,OAAO,CAAC9O,OAAO,CAACkM,IAAT,CAAP,IAAyB6C,OAAO,CAAC/O,OAAO,CAACkM,IAAT,CAAjC,GACHiC,YAAY,CAACI,SADV,GAEHJ,YAAY,CAACG,IAFjB;AAGD;;AACD,SAAOH,YAAY,CAACM,OAApB;AACD,CAfM;;SCmBiBO,WAAWxM;;;MACjCxC,OAAO;MACPqB,MAAM;MACNuB,QAAQ;MACRqM,YAAY;MACZC,YAAY;MACZC,aAAa;MACbC,aAAa;MACbhI,aAAa;MACbX,MAAM;MACNc,QAAQ;MACR8H,WAAW;AAEX,MAAIjO,MAAM,GAAkB,IAA5B;;AACA,MAAIpB,OAAO,CAACkB,WAAR,KAAwB,OAA5B,EAAqC;AACnCE,IAAAA,MAAM,GAAGpB,OAAO,CAACoB,MAAjB;AACD;;AAEK,MAAA6C,KAA0B8D,QAAQ,CAAC,KAAD,CAAlC;AAAA,MAACV,QAAQ,QAAT;AAAA,MAAWiI,WAAW,QAAtB;;AACA,MAAAC,KAA8BxH,QAAQ,CAAC,KAAD,CAAtC;AAAA,MAACT,UAAU,QAAX;AAAA,MAAakI,aAAa,QAA1B;;AACA,MAAAC,KAAsC1H,QAAQ,CAAC,KAAD,CAA9C;AAAA,MAAC2H,cAAc,QAAf;AAAA,MAAiBC,iBAAiB,QAAlC;;AACN,MAAMC,mBAAmB,GAAGhI,MAAM,CAAC,IAAD,CAAlC;AAEA,MAAIU,MAAM,GAAG,KAAb;;AAEA,MAAIlH,MAAM,IAAIpB,OAAO,CAACkB,WAAR,KAAwB,OAAtC,EAA+C;AAC7C;AACAoH,IAAAA,MAAM,GAAIjH,MAAM,KAAKD,MAAM,CAACC,MAAnB,IACHrB,OAAO,CAAC6P,YAAR,KAAyBnB,oBAAoB,CAACxI,OAD3C,IAEHlG,OAAO,CAAC6P,YAAR,KAAyBnB,oBAAoB,CAACvI,MAFpD;AAGD;;AAED,MAAInG,OAAO,CAACkB,WAAR,KAAwB,MAAxB,IAAkCmG,QAAtC,EAAgD;AAC9C,WACE,oBAAC,YAAD;AACE,MAAA,MAAM,MADR;AAEE,MAAA,QAAQ,EAAE4H,YAFZ;AAGE,MAAA,GAAG,EAAEW,mBAHP;AAIE,MAAA,IAAI,EAAE5P,OAAO,CAAC8P,SAJhB;AAKE,MAAA,aAAa,EAAEV,aALjB;AAME,MAAA,YAAY,EAAE;AAAQE,QAAAA,WAAW,CAAC,KAAD,CAAX;AAAqB,OAN7C;AAOE,MAAA,KAAK,EAAEtP,OAAO,CAACA;AAPjB,MADF;AAWD;;AAED,SACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAGIkP,YAAY,IACV,oBAAC,aAAD,QACE,oBAAC,KAAD;AAAO,IAAA,IAAI,EAAE3L,eAAe,CAACC,SAA7B;AAAwC,IAAA,KAAK,EAAEiB,WAAW,CAACG;AAA3D,KACG3E,MAAM,CAACD,OAAO,CAACE,SAAT,EAAoB,eAApB,CADT,CADF,CAJN,EAaI,UACE2D,GAACsK,YAAY,CAACC,MAAd,GAAuB;AACrB,QAAIpO,OAAO,CAACkB,WAAR,KAAwB,OAA5B,EAAqC;AACnC,aACE,oBAAC,uBAAD;AAAyB,QAAA,OAAO,EAAElB;AAAlC,QADF;AAGD;AACF,GANqB,IAOtB6D,GAACsK,YAAY,CAACG,KAAd,GAAsB;AACpB,QAAItO,OAAO,CAACkB,WAAR,KAAwB,MAA5B,EAAoC;AAClC,aACE,oBAAC6O,sBAAD;AACE,QAAA,OAAO,EAAE/P,OADX;AAEE,QAAA,QAAQ,EAAE4C,QAFZ;AAGE,QAAA,MAAM,EAAEvB,MAHV;AAIE,QAAA,UAAU,EAAEmO,aAJd;AAKE,QAAA,aAAa,EAAEpI,aALjB;AAME,QAAA,MAAM,EAAEX,MANV;AAOE,QAAA,QAAQ,EAAEc,QAPZ;AAQE,QAAA,WAAW,EAAE8H;AARf,QADF;AAYD;;AACD;AACD,GAhBoB,IAiBrBxL,GAACsK,YAAY,CAACK,GAAd,GAAoB;AAClB,QAAIxO,OAAO,CAACkB,WAAR,KAAwB,MAA5B,EAAoC;AAClC,aACE,oBAAC8O,oBAAD;AACE,QAAA,OAAO,EAAEhQ,OADX;AAEE,QAAA,MAAM,EAAEyG,MAFV;AAGE,QAAA,MAAM,EAAEpF,MAHV;AAIE,QAAA,QAAQ,EAAEiO,WAJZ;AAKE,QAAA,QAAQ,EAAE1M,QALZ;AAME,QAAA,UAAU,EAAE4M,aANd;AAOE,QAAA,aAAa,EAAEpI,aAPjB;AAQE,QAAA,QAAQ,EAAEG,QARZ;AASE,QAAA,WAAW,EAAE8H;AATf,QADF;AAaD;;AACD;AACD,GAjBkB,IAkBnBxL,GAACsK,YAAY,CAACI,UAAd,GAA2B;AACzB,QAAIvO,OAAO,CAACkB,WAAR,KAAwB,MAA5B,EAAoC;AAClC,aACE,oBAAC+O,2BAAD;AACE,QAAA,OAAO,EAAEjQ,OADX;AAEE,QAAA,QAAQ,EAAE4C,QAFZ;AAGE,QAAA,MAAM,EAAEvB,MAHV;AAIE,QAAA,UAAU,EAAEmO,aAJd;AAKE,QAAA,aAAa,EAAEpI,aALjB;AAME,QAAA,OAAO,EAAEuI,iBANX;AAOE,QAAA,MAAM,EAAElJ,MAPV;AAQE,QAAA,QAAQ,EAAEc,QARZ;AASE,QAAA,WAAW,EAAE8H;AATf,QADF;AAaD;;AACD;AACD,GAjByB,IAkB1BxL,GAACsK,YAAY,CAACE,KAAd,GAAsB;AACpB,QAAIrO,OAAO,CAACkB,WAAR,KAAwB,MAA5B,EAAoC;AAClC,aACE,oBAACgP,sBAAD;AACE,QAAA,OAAO,EAAElQ,OADX;AAEE,QAAA,MAAM,EAAEqB,MAFV;AAGE,QAAA,QAAQ,EAAEuB,QAHZ;AAIE,QAAA,QAAQ,EAAE0M,WAJZ;AAKE,QAAA,UAAU,EAAEE,aALd;AAME,QAAA,aAAa,EAAEpI,aANjB;AAOE,QAAA,MAAM,EAAEX,MAPV;AAQE,QAAA,QAAQ,EAAEc,QARZ;AASE,QAAA,WAAW,EAAE8H;AATf,QADF;AAaD;;AACD;AACD,GAjBoB,IAkBrBxL,GAACsK,YAAY,CAACM,QAAd,GAAyB;AACvB;AAEA;AACA;AACD,GALuB,MA/E1B,EAqFEE,cAAc,CAAC3O,OAAD,CArFhB,CAbJ,EAsGIsH,UAAU,IACR,oBAAC,kBAAD;AACE,IAAA,YAAY,EAAE;AAAM,aAAAkI,aAAa,CAAC,KAAD,CAAb;AAAoB,KAD1C;AAEE,IAAA,eAAe,EAAE;AACf,UAAIxP,OAAO,CAACkB,WAAR,KAAwB,OAA5B,EAAqC;AACnCiO,QAAAA,aAAa,CAACnP,OAAD,CAAb;AACD;AACF;AANH,IAvGN,EAkHI0P,cAAc,IACZ,oBAAC,UAAD;AACE,IAAA,OAAO,EAAE;AAAM,aAAAC,iBAAiB,CAAC,KAAD,CAAjB;AAAwB,KADzC;AAEE,IAAA,OAAO,EAAE3P,OAFX;AAGE,IAAA,QAAQ,EAAEmP,aAHZ;AAIE,IAAA,MAAM,EAAE7G;AAJV,IAnHN,CADF;AA8ID;;SC3MuB6H,8BACtB3N;MACEqB;MAAAuM,kBAAkB,mBAAG;MACrBC,WAAW;MACX1N,IAAI;MACJ2N,WAAW;MACXrM;MAAAsM,QAAQ,mBAAG;MACXC,OAAO;MACPC,QAAQ;MACRC,iBAAiB;MACjBC,oBAAoB;MACpBvB,aAAa;MACbD,aAAa;MACb/H,aAAa;AAGf,MAAMwJ,SAAS,GAAGhJ,MAAM,CAAC,IAAD,CAAxB;;AAEA,MAAMiJ,cAAc,GAAG,SAAjBA,cAAiB,CAACC,CAAD;AACrB,QAAMC,OAAO,GAAGD,CAAC,CAACE,MAAlB;AAEE,QAAAC,SAAS,GAGPF,OAAO,UAHT;AAAA,QACAG,YAAY,GAEVH,OAAO,aAHT;AAAA,QAEA5H,YAAY,GACV4H,OAAO,aAHT;;AAIF,QAAIJ,oBAAJ,EAA0B;AACxB,UAAIO,YAAY,GAAGD,SAAS,GAAG9H,YAA/B,EAA6C;AAC3CwH,QAAAA,oBAAoB,CAAC,IAAD,CAApB;AACD,OAFD,MAEO;AACLA,QAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD;AACF;;AAED,QAAIM,SAAS,KAAK,CAAlB,EAAqB;AACnB,UAAI,CAACT,OAAL,EAAc;AACZ;AACD;;AACD,UAAMW,OAAK,GAAGP,SAAS,CAAC1H,OAAV,CAAkBxI,gBAAlB,CAAmC,2BAAnC,CAAd;AACA+P,MAAAA,QAAQ,CAAC;AACP,YAAMW,KAAK,GAAGD,OAAK,CAAC,CAAD,CAAnB;AACAC,QAAAA,KAAK,CAACvQ,cAAN;AACD,OAHO,CAAR;AAID;AACF,GAzBD;;AA2BAoI,EAAAA,SAAS,CAAC;AACR;AACA;AACA,QAAIyH,iBAAiB,IAAIE,SAArB,IAAkCA,SAAS,CAAC1H,OAAhD,EAAyD;AACvDwH,MAAAA,iBAAiB,CAACW,IAAlB,CAAuB;AACrBT,QAAAA,SAAS,CAAC1H,OAAV,CAAkBoI,QAAlB,CAA2B,CAA3B,EAA8BV,SAAS,CAAC1H,OAAV,CAAkBgI,YAAhD;;AACA,YAAIP,oBAAJ,EAA0B;AACxBA,UAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD;AACF,OALD;AAMD;;AACD;AACD,GAZQ,EAYN,CAACD,iBAAD,CAZM,CAAT;AAcA,SACE;AACE,IAAA,SAAS,EAAC,0CADZ;AAEE,IAAA,QAAQ,EAAEG,cAFZ;AAGE,IAAA,GAAG,EAAED;AAHP,KAKE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,IADF,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEIN,WAAW,CAACpO,GAAZ,CAAgB,UAAClC,OAAD,EAAUuR,KAAV;AACd,QAAI9K,MAAJ;;AAEA,QAAIzG,OAAO,CAACkB,WAAR,KAAwB,OAA5B,EAAqC;AACnCuF,MAAAA,MAAM,GAAGzG,OAAO,CAACmB,aAAjB;AACD;;AAED,QAAMqQ,eAAe,GAAGlB,WAAW,CAACiB,KAAK,GAAG,CAAT,CAAnC;AACA,QAAM9P,WAAW,GAAG6O,WAAW,CAACiB,KAAK,GAAG,CAAT,CAA/B;AAEA,QAAME,wBAAwB,GAAGD,eAAe,IAAIA,eAAe,CAACtR,SAApE;AACA,QAAMwR,gBAAgB,GAAG1R,OAAO,CAACE,SAAjC;;AAEA,QAAMgP,YAAY,GAAG,EAAEuC,wBAAwB,IAC7CE,SAAS,CAACD,gBAAD,EAAmBD,wBAAnB,CADU,CAArB;;AAIM,QAAAjP,KAA0B4N,kBAAkB,GAC9C9O,0BAA0B,CAACkQ,eAAD,EAAkBxR,OAAlB,EAA2ByB,WAA3B,CADoB,GAE9C,CAAC,KAAD,EAAQ,KAAR,CAFE;AAAA,QAAC8F,QAAQ,QAAT;AAAA,QAAW8H,WAAW,QAAtB;;AAGN,WACE,oBAAC,UAAD;AACE,MAAA,GAAG,EAAErP,OAAO,CAAC8P,SADf;AAEE,MAAA,OAAO,EAAE9P,OAFX;AAGE,MAAA,MAAM,EAAEyG,MAHV;AAIE,MAAA,MAAM,EAAE9D,IAAI,CAACtB,MAJf;AAKE,MAAA,QAAQ,EAAE,CAACkP,QALb;AAME,MAAA,YAAY,EAAEF,WAAW,CAAC/N,QAN5B;AAOE,MAAA,YAAY,EAAE4M,YAPhB;AAQE,MAAA,QAAQ,EAAE3H,QARZ;AASE,MAAA,WAAW,EAAE8H,WATf;AAUE,MAAA,aAAa,EAAEF,aAVjB;AAWE,MAAA,aAAa,EAAEC,aAXjB;AAYE,MAAA,aAAa,EAAEhI;AAZjB,MADF;AAgBD,GApCD,CAFJ,CAFF,CALF,CADF;AAoDD;;ACtIM,IAAMwK,mBAAmB,GAAG,qBAA5B;AACP,AAAO,IAAMC,mBAAmB,GAAG,qBAA5B;AACP,AAAO,IAAMC,cAAc,GAAG,gBAAvB;AACP,AAAO,IAAMC,wBAAwB,GAAG,0BAAjC;AACP,AAAO,IAAMC,sBAAsB,GAAG,wBAA/B;AACP,AAAO,IAAMC,sBAAsB,GAAG,wBAA/B;AACP,AAAO,IAAMC,yBAAyB,GAAG,2BAAlC;AACP,AAAO,IAAMC,qBAAqB,GAAG,uBAA9B;AACP,AAAO,IAAMC,uBAAuB,GAAG,yBAAhC;;AAGP,AAAO,IAAMC,mBAAmB,GAAG,qBAA5B;AACP,AAAO,IAAMC,kBAAkB,GAAG,oBAA3B;AACP,AAAO,IAAMC,kBAAkB,GAAG,oBAA3B;AACP,AAAO,IAAMC,4BAA4B,GAAG,8BAArC;AACP,AAAO,IAAMC,mBAAmB,GAAG,qBAA5B;AACP,AAAO,IAAMC,eAAe,GAAG,iBAAxB;AACP,AAAO,IAAMC,cAAc,GAAG,gBAAvB;AACP,AAAO,IAAMC,aAAa,GAAG,eAAtB;AACP,AAAO,IAAMC,eAAe,GAAG,iBAAxB;AACP,AAAO,IAAMC,cAAc,GAAG,gBAAvB;AACP,AAAO,IAAMC,gBAAgB,GAAG,kBAAzB;AACP,AAAO,IAAMC,iBAAiB,GAAG,mBAA1B;AACP,AAAO,IAAMC,mBAAmB,GAAG,qBAA5B;AACP,AAAO,IAAMC,kBAAkB,GAAG,oBAA3B;AACP,AAAO,IAAMC,oBAAoB,GAAG,sBAA7B;AACP,AAAO,IAAMC,oBAAoB,GAAG,sBAA7B;AACP,AAAO,IAAMC,oBAAoB,GAAG,sBAA7B;AACP,AAAO,IAAMC,wBAAwB,GAAG,0BAAjC;AACP,AAAO,IAAMC,wBAAwB,GAAG,0BAAjC;AACP,AAAO,IAAMC,wBAAwB,GAAG,0BAAjC;AACP,AAAO,IAAMC,mBAAmB,GAAG,qBAA5B;;SCnBiBC,QACtBC,OACAC;AAEA,UAAQA,MAAM,CAAC1H,IAAf;AACE,SAAK2H,cAAL;AAAiC;AAC/B,qCACKF;AACHrD,UAAAA,WAAW,EAAE;UAFf;AAID;;AAED,SAAKuD,mBAAL;AAAsC;AACpC,YAAMC,cAAc,GAAGF,MAAM,CAACG,OAA9B;AACA,YAAM9R,SAAS,GAAG6R,cAAc,CAAC7R,SAAjC;;AACA,YACE,CAAC0R,KAAK,CAACK,SAAP,IACGL,KAAK,CAACM,kBADT,IAEGN,KAAK,CAACM,kBAAN,CAAyBjJ,GAF5B,IAGI2I,KAAK,CAACM,kBAAN,CAAyBjJ,GAAzB,KAAiC8I,cAAc,CAAC9I,GAJtD,EAKE;AACA,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHM,UAAAA,kBAAkB,EAAEH;AACpBE,UAAAA,SAAS,EAAE;AACX/R,UAAAA,SAAS,EAAEA;AACXiS,UAAAA,YAAY,EAAEjS;UALhB;AAOD;;AACD,SAAK4R,mBAAL;AAAsC;AACpC,qCACKF;AACHK,UAAAA,SAAS,EAAE;UAFb;AAID;;AACD,SAAKH,wBAAL;AACA,SAAKA,sBAAL;AAAyC;AACvC,YAAMM,QAAQ,GAAIP,MAAM,CAAC1H,IAAP,KAAgB2H,sBAAlC;AACM,YAAArR,KAKFoR,MAAM,CAACG,OALL;AAAA,YACJlQ,0BADI;AAAA,YACJoQ,kBAAkB,mBAAG,OADjB;AAAA,YAEJhQ,gBAFI;AAAA,YAEJmQ,QAAQ,mBAAG,OAFP;AAAA,YAGJ5D,OAAO,aAHH;AAAA,YAIJ6D,oBAAoB,0BAJhB;AAMN,YAAMC,gBAAgB,GAAGL,kBAAkB,CAACjJ,GAA5C;AACA,YAAMuJ,kBAAgB,GAAGJ,QAAQ,GAAG,EAAH,GAAQC,QAAzC;;AACA,YAAMI,QAAQ,GAAGL,QAAQ,GAAG,KAAH,GAAW3D,OAApC;;AACA,YAAMiE,qBAAqB,GAAGN,QAAQ,GAAG,CAAH,GAAOE,oBAA7C;;AAEA,YAAMK,YAAY,GAAGf,KAAK,CAACM,kBAA3B;AACA,YAAMU,eAAe,GAAGD,YAAY,CAAC1J,GAArC;;AAEA,YAAIsJ,gBAAgB,KAAKK,eAAzB,EAA0C;AACxC,iBAAOhB,KAAP;AACD;;AAED,YAAMiB,mBAAmB,GAAGjB,KAAK,CAACrD,WAAN,CAAkBuE,MAAlB,CAAyB,UAAC7U,OAAD;AAAa,iBAChE,CAAEuU,kBAAgB,CAACO,IAAjB,CAAsB,UAACtS,EAAD;gBAAGsN,SAAS;AAAO,mBAAAiF,UAAU,CAACjF,SAAD,EAAY9P,OAAO,CAAC8P,SAApB,CAAV;AAAwC,WAAjF,CAD8D;AAEjE,SAF2B,CAA5B;AAGA,qCACK6D;AACHqB,UAAAA,OAAO,EAAE;AACTC,UAAAA,WAAW,EAAE;AACbzE,UAAAA,OAAO,EAAEgE;AACTH,UAAAA,oBAAoB,EAAEI;AACtBnE,UAAAA,WAAW,iBACNiE,oBACAK;UARP;AAWD;;AACD,SAAKf,qBAAL;AAAwC;AAChC,YAAAtE,KAGFqE,MAAM,CAACG,OAHL;AAAA,YACJ/T,OAAO,aADH;AAAA,YAEJ0C,OAAO,aAFH;;AAIN,YAAIA,OAAO,CAACsI,GAAR,KAAgB2I,KAAK,CAACM,kBAAN,CAAyBjJ,GAA7C,EAAkD;AAChD,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHrD,UAAAA,WAAW,iBACNqD,KAAK,CAACrD,2BACJtQ;UAJT;AAOD;;AACD,SAAK6T,yBAAL;AAA4C;AAC1C,YAAMqB,aAAW,GAAGtB,MAAM,CAACG,OAA3B;AACA,YAAMoB,WAAW,GAAGxB,KAAK,CAACrD,WAAN,CAAkBpO,GAAlB,CAAsB,UAACkT,CAAD;AAAO,iBAC/CL,UAAU,CAACK,CAAC,CAACC,KAAH,EAAUH,aAAW,CAACG,KAAtB,CAAV,GAAyCH,aAAzC,GAAuDE,CADR;AAEhD,SAFmB,CAApB;AAGA,qCACKzB;AACHrD,UAAAA,WAAW,EAAE6E;UAFf;AAID;;AACD,SAAKtB,sBAAL;AAAyC;AACvC,YAAMyB,aAAW,GAAG1B,MAAM,CAACG,OAA3B;AACA,qCACKJ;AACHrD,UAAAA,WAAW,EAAEqD,KAAK,CAACrD,WAAN,CAAkBpO,GAAlB,CAAsB,UAACkT,CAAD;AAAO,mBACxCL,UAAU,CAACK,CAAC,CAACC,KAAH,EAAUC,aAAW,CAACD,KAAtB,CAAV,GAAyCC,aAAzC,GAAuDF,CADf;AAEzC,WAFY;UAFf;AAMD;;AACD,SAAKvB,uBAAL;AAA0C;AACxC,YAAM0B,cAAc,GAAG3B,MAAM,CAACG,OAAP,CAAerR,OAAtC;AACA,YAAM8S,eAAa,GAAG5B,MAAM,CAACG,OAAP,CAAe/T,OAArC;;AACA,YAAIuV,cAAc,CAACvK,GAAf,KAAuB2I,KAAK,CAACM,kBAAN,CAAyBjJ,GAApD,EAAyD;AACvD,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHrD,UAAAA,WAAW,EAAEqD,KAAK,CAACrD,WAAN,CAAkBpO,GAAlB,CAAsB,UAACkT,CAAD;AAAO,mBACxCL,UAAU,CAACK,CAAC,CAACC,KAAH,EAAUG,eAAa,CAACH,KAAxB,CAAV,GAA2CG,eAA3C,GAA2DJ,CADnB;AAEzC,WAFY;UAFf;AAMD;;AACD,SAAKvB,mBAAL;AAAsC;AACpC,YAAM0B,cAAc,GAAG3B,MAAM,CAACG,OAAP,CAAerR,OAAtC;AACA,YAAM+S,eAAe,GAAG7B,MAAM,CAACG,OAAP,CAAe/T,OAAvC;AAEE,YAAAiU,kBAAkB,GAChBN,KAAK,mBADP;;AAGF,YACE,CAACoB,UAAU,CAACQ,cAAc,CAACvK,GAAhB,EAAqBiJ,kBAAkB,CAACjJ,GAAxC,CAAX,IAEE,EAAE2I,KAAK,CAACrD,WAAN,CAAkBpO,GAAlB,CACA,UAAClC,OAAD;AAAa,iBAAAA,OAAO,CAAC8P,SAAR;AAAiB,SAD9B,EACgC1N,OADhC,CACwCqT,eAAe,CAAC3F,SADxD,IACqE,CADvE,CAHJ,EAME;AACA,iBAAO6D,KAAP;AACD;;AAED,qCACKA;AACHrD,UAAAA,WAAW,iBAAMqD,KAAK,CAACrD,cAAamF;UAFtC;AAID;;AACD,SAAK5B,kBAAL;AAAqC;AACnC,YAAM0B,cAAc,GAAG3B,MAAM,CAACG,OAAP,CAAerR,OAAtC;AACA,YAAMgT,gBAAc,GAAG9B,MAAM,CAACG,OAAP,CAAe/T,OAAtC;AACA,YAAM8T,cAAc,GAAGH,KAAK,CAACM,kBAA7B;;AACA,YAAI,CAACH,cAAD,IAAmBA,cAAc,CAAC9I,GAAf,IAAuB8I,cAAc,CAAC9I,GAAf,KAAuBuK,cAAc,CAACvK,GAApF,EAA0F;AACxF,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHrD,UAAAA,WAAW,EAAEqD,KAAK,CAACrD,WAAN,CAAkBpO,GAAlB,CAAsB,UAAClC,OAAD;AAAa,mBAC9CA,OAAO,CAAC2V,WAAR,CAAoBD,gBAApB,IACIA,gBADJ,GAEI1V,OAH0C;AAI/C,WAJY;UAFf;AAQD;;AACD,SAAK6T,kBAAL;AAAqC;AACnC,YAAM0B,cAAc,GAAG3B,MAAM,CAACG,OAAP,CAAerR,OAAtC;AACA,YAAMkT,kBAAgB,GAAGhC,MAAM,CAACG,OAAP,CAAejE,SAAxC;AACA,YAAMgE,cAAc,GAAGH,KAAK,CAACM,kBAA7B;;AACA,YAAI,CAACH,cAAD,IAAmBA,cAAc,CAAC9I,GAAf,IAAuB8I,cAAc,CAAC9I,GAAf,KAAuBuK,cAAc,CAACvK,GAApF,EAA0F;AACxF,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHrD,UAAAA,WAAW,EAAEqD,KAAK,CAACrD,WAAN,CAAkBuE,MAAlB,CAAyB,UAAC7U,OAAD;AAAa,mBACjD,CAAC+U,UAAU,CAAC/U,OAAO,CAAC8P,SAAT,EAAoB8F,kBAApB,CADsC;AAElD,WAFY;UAFf;AAMD;;AACD,SAAK/B,4BAAL;AAA+C;AAC7C,qCACKF;AACHrD,UAAAA,WAAW,EAAEqD,KAAK,CAACrD,WAAN,CAAkBuE,MAAlB,CAAyB,UAACO,CAAD;AAAO,mBAC3C,CAACL,UAAU,CAACK,CAAC,CAACC,KAAH,EAAUzB,MAAM,CAACG,OAAjB,CADgC;AAE5C,WAFY;UAFf;AAMD;;AACD,SAAKF,mBAAL;AAAsC;AACpC,YAAM0B,cAAc,GAAG3B,MAAM,CAACG,OAAP,CAAerR,OAAtC;AACA,YAAMmT,gBAAgB,GAAGjC,MAAM,CAACG,OAAP,CAAe9R,SAAxC;AACA,YAAM6R,cAAc,GAAGH,KAAK,CAACM,kBAA7B;;AACA,YAAI,CAACH,cAAD,IAAmBA,cAAc,CAAC9I,GAAf,IAAuB8I,cAAc,CAAC9I,GAAf,KAAuBuK,cAAc,CAACvK,GAApF,EAA0F;AACxF,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHM,UAAAA,kBAAkB,wBACbN,KAAK,CAACM;AACThS,YAAAA,SAAS,EAAE4T;;AAEb5T,UAAAA,SAAS,EAAE4T;UANb;AAQD;;AACD,SAAKhC,eAAL;AAAkC;AAChC,YAAM0B,cAAc,GAAG3B,MAAM,CAACG,OAAP,CAAerR,OAAtC;AACA,YAAMoT,WAAW,GAAGlC,MAAM,CAACG,OAAP,CAAepR,IAAnC;AACA,YAAMmR,cAAc,GAAGH,KAAK,CAACM,kBAA7B;;AACA,YAAI,CAACH,cAAD,IAAmBA,cAAc,CAAC9I,GAAf,IAAuB8I,cAAc,CAAC9I,GAAf,KAAuBuK,cAAc,CAACvK,GAApF,EAA0F;AACxF,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHO,UAAAA,YAAY,iBAAMP,KAAK,CAACO,eAAc4B;UAFxC;AAID;;AACD,SAAKjC,cAAL;AAAiC;AAC/B,YAAM0B,cAAc,GAAG3B,MAAM,CAACG,OAAP,CAAerR,OAAtC;AACA,YAAMqT,YAAU,GAAGnC,MAAM,CAACG,OAAP,CAAepR,IAAlC;AACA,YAAMmR,cAAc,GAAGH,KAAK,CAACM,kBAA7B;;AACA,YAAI,CAACH,cAAD,IAAmBA,cAAc,CAAC9I,GAAf,IAAuB8I,cAAc,CAAC9I,GAAf,KAAuBuK,cAAc,CAACvK,GAApF,EAA0F;AACxF,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHO,UAAAA,YAAY,EAAEP,KAAK,CAACO,YAAN,CAAmBW,MAAnB,CAA0B,UAACmB,WAAD;AAAiB,mBACvD,CAACjB,UAAU,CAACiB,WAAW,CAAC3U,MAAb,EAAqB0U,YAAU,CAAC1U,MAAhC,CAD4C;AAExD,WAFa;UAFhB;AAMD;;AACD,SAAKwS,aAAL;AAAgC;AAC9B;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,eAAL;AAAkC;AAChC;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,cAAL;AAAiC;AAC/B;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,gBAAL;AAAmC;AACjC;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,iBAAL;AAAoC;AAClC,YAAMoC,aAAa,GAAGrC,MAAM,CAACG,OAA7B;AACA,YAAMD,cAAc,GAAGH,KAAK,CAACM,kBAA7B;;AACA,YAAI,CAACH,cAAD,IAAmBA,cAAc,CAAC9I,GAAf,IAAuB8I,cAAc,CAAC9I,GAAf,KAAuBiL,aAAa,CAACjL,GAAnF,EAAyF;AACvF,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHuC,UAAAA,MAAM,EAAE;UAFV;AAID;;AACD,SAAKrC,mBAAL;AAAsC;AACpC,YAAMsC,eAAe,GAAGvC,MAAM,CAACG,OAA/B;AACA,YAAMD,cAAc,GAAGH,KAAK,CAACM,kBAA7B;;AACA,YAAI,CAACH,cAAD,IAAmBA,cAAc,CAAC9I,GAAf,IAAuB8I,cAAc,CAAC9I,GAAf,KAAuBmL,eAAe,CAACnL,GAArF,EAA2F;AACzF,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHuC,UAAAA,MAAM,EAAE;UAFV;AAID;;AACD,SAAKrC,kBAAL;AAAqC;AACnC,YAAMuC,cAAc,GAAGxC,MAAM,CAACG,OAA9B;AACA,YAAMD,cAAc,GAAGH,KAAK,CAACM,kBAA7B;;AACA,YAAI,CAACH,cAAD,IAAmBA,cAAc,CAAC9I,GAAf,IAAuB8I,cAAc,CAAC9I,GAAf,KAAuBoL,cAAc,CAACpL,GAApF,EAA0F;AACxF,iBAAO2I,KAAP;AACD;;AACD,qCACKA;AACHM,UAAAA,kBAAkB,EAAEmC;UAFtB;AAID;;AACD,SAAKvC,oBAAL;AAAuC;AACrC;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,oBAAL;AAAuC;AACrC;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,oBAAL;AAAuC;AACrC;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,wBAAL;AAA2C;AACzC;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,wBAAL;AAA2C;AACzC;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,wBAAL;AAA2C;AACzC;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD,SAAKE,mBAAL;AAAsC;AACpC;AACA;AACA;AACA;AACA;AACA,eAAOF,KAAP;AACD;;AACD;AACE,aAAOA,KAAP;AArVJ;AAuVD;;ACrVD,IAAM0C,YAAY,GAAU;AAC1B/F,EAAAA,WAAW,EAAE,EADa;AAE1B0E,EAAAA,OAAO,EAAE,KAFiB;AAG1BC,EAAAA,WAAW,EAAE,KAHa;AAI1BhB,EAAAA,kBAAkB,EAAE,IAJM;AAK1BD,EAAAA,SAAS,EAAE,KALe;AAM1BxD,EAAAA,OAAO,EAAE,KANiB;AAO1B6D,EAAAA,oBAAoB,EAAE,CAPI;AAQ1B6B,EAAAA,MAAM,EAAE,KARkB;AAS1BjU,EAAAA,SAAS,EAAE,EATe;AAU1BiS,EAAAA,YAAY,EAAE;AAVY,CAA5B;;ACeA,IAAMxQ,sBAAoB,GAAG,mCAA7B;AAmBA,IAAa4S,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACrP,KAAD;AACrC;AAEE,MAAAmJ,kBAAkB,GAYhBnJ,KAAK,mBAZP;AAAA,MACAsP,UAAU,GAWRtP,KAAK,WAZP;AAAA,MAEAuP,MAAM,GAUJvP,KAAK,OAZP;AAAA,MAGAwP,MAAM,GASJxP,KAAK,OAZP;AAAA,MAIAzE,KAQEyE,KAAK,QAZP;AAAA,MAIAyP,OAAO,mBAAG,OAJV;AAAA,MAKAjP,kBAAkB,GAOhBR,KAAK,mBAZP;AAAA,MAMAS,iBAAiB,GAMfT,KAAK,kBAZP;AAAA,MAOA0P,kBAAkB,GAKhB1P,KAAK,mBAZP;AAAA,MAQAlE,kBAAkB,GAIhBkE,KAAK,mBAZP;AAAA,MASA2P,uBAAuB,GAGrB3P,KAAK,wBAZP;AAAA,MAUA4P,uBAAuB,GAErB5P,KAAK,wBAZP;AAAA,MAWA6P,uBAAuB,GACrB7P,KAAK,wBAZP;AAeA,MAAA8P,QAAQ,GAENP,MAAM,SAFR;AAAA,MACAQ,SAAS,GACPR,MAAM,UAFR;AAIA,MAAAnV,MAAM,GAGJoV,MAAM,OAHR;AAAA,MACAlG,QAAQ,GAENkG,MAAM,SAHR;AAAA,MAEAQ,MAAM,GACJR,MAAM,OAHR;AAMA,MAAAS,GAAG,GACDH,QAAQ,IADV;AAGA,MAAApU,IAAI,GACFqU,SAAS,KADX;;AAII,MAAAnT,KAAsCsT,UAAU,CAACC,OAAD,EAAkBC,YAAlB,CAAhD;AAAA,MAACC,aAAa,QAAd;AAAA,MAAgBC,kBAAkB,QAAlC;;AAEJ,MAAAjH,WAAW,GAOTgH,aAAa,YAPf;AAAA,MACAtC,OAAO,GAMLsC,aAAa,QAPf;AAAA,MAEArC,WAAW,GAKTqC,aAAa,YAPf;AAAA,MAGArD,kBAAkB,GAIhBqD,aAAa,mBAPf;AAAA,MAIAtD,SAAS,GAGPsD,aAAa,UAPf;AAAA,MAKA9G,OAAO,GAEL8G,aAAa,QAPf;AAAA,MAMAjD,oBAAoB,GAClBiD,aAAa,qBAPf;;AASF,MAAME,eAAe,GAAG5P,MAAM,CAAC,IAAD,CAA9B;;AACQ,MAAA5E,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;;AACF,MAAAe,KAA4C8D,QAAQ,CAAC,IAAD,CAApD;AAAA,MAAC2I,iBAAiB,QAAlB;AAAA,MAAoB+G,oBAAoB,QAAxC;;AACA,MAAAlI,KAAkDxH,QAAQ,CAAC,KAAD,CAA1D;AAAA,MAAC4I,oBAAoB,QAArB;AAAA,MAAuB+G,uBAAuB,QAA9C;;;AAGN,MAAMC,OAAO,GAAGZ,QAAQ,CAAC9B,WAAzB;AACA,MAAM2C,2BAA2B,GAAGlB,OAAO,GAAGA,OAAO,CAACmB,iBAAX,GAA8B,IAAzE;AACA,MAAMjV,QAAQ,GAAG,CAACqS,WAAD,IACZ,CAAC1E,QADW,IAEZuH,uBAAA,CAA8B7D,kBAA9B,EAAkD5S,MAAlD,CAFL;;AAIA,MAAM0W,6BAA6B,GAAGtQ,kBAAkB,IAAIgP,MAAM,CAAChP,kBAAnE;AACA,MAAMuQ,wBAAwB,GAAGtQ,iBAAiB,IAAI+O,MAAM,CAAC/O,iBAA7D;;AAGAuB,EAAAA,SAAS,CAAC;AACR,QAAIsN,UAAU,IAAIoB,OAAd,IAAyBT,GAAzB,IAAgCA,GAAG,CAACe,WAAxC,EAAqD;AACnDhB,MAAAA,MAAM,CAACiB,IAAP,CAAY,8CAAZ,EAA4D3B,UAA5D;AACAW,MAAAA,GAAG,CAACe,WAAJ,CAAgBE,UAAhB,CAA2B5B,UAA3B,EAAuC,UAACvU,WAAD,EAAclB,KAAd;AACrC,YAAI,CAACA,KAAL,EAAY;AACVmW,UAAAA,MAAM,CAACiB,IAAP,CAAY,6CAAZ,EAA2DlW,WAA3D;AACAuV,UAAAA,kBAAkB,CAAC;AACjBrL,YAAAA,IAAI,EAAEkM,mBADW;AAEjBrE,YAAAA,OAAO,EAAE/R;AAFQ,WAAD,CAAlB;AAIAA,UAAAA,WAAW,CAACqW,KAAZ,CAAkB,UAACvX,KAAD;AAChB,gBAAIA,KAAJ,EAAW;AACTmW,cAAAA,MAAM,CAACqB,OAAP,CAAe,kDAAf,EAAmE;AAAE/B,gBAAAA,UAAU,YAAZ;AAAczV,gBAAAA,KAAK;AAAnB,eAAnE;AACAyW,cAAAA,kBAAkB,CAAC;AACjBrL,gBAAAA,IAAI,EAAEkM;AADW,eAAD,CAAlB;AAGD;AACF,WAPD;AAQD,SAdD,MAcO;AACLnB,UAAAA,MAAM,CAACqB,OAAP,CAAe,kDAAf,EAAmE;AAAE/B,YAAAA,UAAU,YAAZ;AAAczV,YAAAA,KAAK;AAAnB,WAAnE;AACAyW,UAAAA,kBAAkB,CAAC;AACjBrL,YAAAA,IAAI,EAAEkM;AADW,WAAD,CAAlB;AAGD;AACF,OArBD,EAFmD;AAyBnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AACF,GAvCQ,EAuCN,CAAC7B,UAAD,EAAaoB,OAAb,CAvCM,CAAT;;AA0CA1O,EAAAA,SAAS,CAAC;AACR,QAAMsP,iBAAiB,GAAGzP,MAAM,EAAhC;;AACA,QAAImL,kBAAkB,IAAIA,kBAAkB,CAACjJ,GAAzC,IAAgDkM,GAAhD,IAAuDA,GAAG,CAACsB,cAA/D,EAA+E;AAC7E,UAAMA,cAAc,GAAG,IAAItB,GAAG,CAACsB,cAAR,EAAvB;AACAvB,MAAAA,MAAM,CAACiB,IAAP,CAAY,2DAAZ,EAAyEK,iBAAzE;;AAEAC,MAAAA,cAAc,CAACC,iBAAf,GAAmC,UAAC/V,OAAD,EAAU1C,OAAV;AACjC,YAAMuW,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,yDAAZ,EAAuE;AAAE3B,UAAAA,UAAU,YAAZ;AAAcvW,UAAAA,OAAO;AAArB,SAAvE;AACAuX,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,mBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAW1C,YAAAA,OAAO;AAAlB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQAwY,MAAAA,cAAc,CAACE,gBAAf,GAAkC,UAAChW,OAAD,EAAU1C,OAAV;AAChC,YAAMuW,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,wDAAZ,EAAsE;AAAE3B,UAAAA,UAAU,YAAZ;AAAcvW,UAAAA,OAAO;AAArB,SAAtE;AACAuX,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,kBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAW1C,YAAAA,OAAO;AAAlB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQAwY,MAAAA,cAAc,CAACG,gBAAf,GAAkC,UAACjW,OAAD,EAAUoN,SAAV;AAChC,YAAMyG,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,wDAAZ,EAAsE;AAAE3B,UAAAA,UAAU,YAAZ;AAAczG,UAAAA,SAAS;AAAvB,SAAtE;AACAyH,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,kBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWoN,YAAAA,SAAS;AAApB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQA0I,MAAAA,cAAc,CAACI,iBAAf,GAAmC,UAAClW,OAAD,EAAUT,SAAV;AACjC,YAAMsU,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,yDAAZ,EAAuE;AAAE3B,UAAAA,UAAU,YAAZ;AAActU,UAAAA,SAAS;AAAvB,SAAvE;AACAsV,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,mBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWT,YAAAA,SAAS;AAApB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQAuW,MAAAA,cAAc,CAACK,aAAf,GAA+B,UAACnW,OAAD,EAAUC,IAAV;AAC7B,YAAM4T,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,qDAAZ,EAAmE;AAAE3B,UAAAA,UAAU,YAAZ;AAAc5T,UAAAA,IAAI;AAAlB,SAAnE;AACA4U,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,eADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWC,YAAAA,IAAI;AAAf;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQA6V,MAAAA,cAAc,CAACM,YAAf,GAA8B,UAACpW,OAAD,EAAUC,IAAV;AAC5B,YAAM4T,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,oDAAZ,EAAkE;AAAE3B,UAAAA,UAAU,YAAZ;AAAc5T,UAAAA,IAAI;AAAlB,SAAlE;AACA4U,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,cADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWC,YAAAA,IAAI;AAAf;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQA6V,MAAAA,cAAc,CAACO,WAAf,GAA6B,UAACrW,OAAD,EAAUC,IAAV;AAC3B,YAAM4T,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,mDAAZ,EAAiE;AAAE3B,UAAAA,UAAU,YAAZ;AAAc5T,UAAAA,IAAI;AAAlB,SAAjE;AACA4U,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,aADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWC,YAAAA,IAAI;AAAf;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQA6V,MAAAA,cAAc,CAACQ,aAAf,GAA+B,UAACtW,OAAD,EAAUC,IAAV;AAC7B,YAAM4T,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,qDAAZ,EAAmE;AAAE3B,UAAAA,UAAU,YAAZ;AAAc5T,UAAAA,IAAI;AAAlB,SAAnE;AACA4U,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,eADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWC,YAAAA,IAAI;AAAf;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQA6V,MAAAA,cAAc,CAACS,YAAf,GAA8B,UAACvW,OAAD,EAAUC,IAAV;AAC5B,YAAM4T,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,oDAAZ,EAAkE;AAAE3B,UAAAA,UAAU,YAAZ;AAAc5T,UAAAA,IAAI;AAAlB,SAAlE;AACA4U,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,cADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWC,YAAAA,IAAI;AAAf;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQA6V,MAAAA,cAAc,CAACU,cAAf,GAAgC,UAACxW,OAAD,EAAUC,IAAV;AAC9B,YAAM4T,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,sDAAZ,EAAoE;AAAE3B,UAAAA,UAAU,YAAZ;AAAc5T,UAAAA,IAAI;AAAlB,SAApE;AACA4U,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,gBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWC,YAAAA,IAAI;AAAf;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQA6V,MAAAA,cAAc,CAACW,eAAf,GAAiC,UAACzW,OAAD;AAC/BuU,QAAAA,MAAM,CAACiB,IAAP,CAAY,uDAAZ,EAAqExV,OAArE;AACA6U,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,iBADW;AAEjBrE,UAAAA,OAAO,EAAErR;AAFQ,SAAD,CAAlB;AAID,OAND;;AAOA8V,MAAAA,cAAc,CAACY,iBAAf,GAAmC,UAAC1W,OAAD;AACjCuU,QAAAA,MAAM,CAACiB,IAAP,CAAY,yDAAZ,EAAuExV,OAAvE;AACA6U,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,mBADW;AAEjBrE,UAAAA,OAAO,EAAErR;AAFQ,SAAD,CAAlB;AAID,OAND;;AAOA8V,MAAAA,cAAc,CAACa,gBAAf,GAAkC,UAAC3W,OAAD;AAChCuU,QAAAA,MAAM,CAACiB,IAAP,CAAY,wDAAZ,EAAsExV,OAAtE;AACA6U,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,kBADW;AAEjBrE,UAAAA,OAAO,EAAErR;AAFQ,SAAD,CAAlB;AAID,OAND;;AAOA8V,MAAAA,cAAc,CAACc,iBAAf,GAAmC,UAAC5W,OAAD,EAAU6W,QAAV;AACjC,YAAMhD,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,yDAAZ,EAAuE;AAAE3B,UAAAA,UAAU,YAAZ;AAAcgD,UAAAA,QAAQ;AAAtB,SAAvE;AACAhC,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,oBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAW6W,YAAAA,QAAQ;AAAnB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQAf,MAAAA,cAAc,CAACgB,iBAAf,GAAmC,UAAC9W,OAAD,EAAU6W,QAAV;AACjC,YAAMhD,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,yDAAZ,EAAuE;AAAE3B,UAAAA,UAAU,YAAZ;AAAcgD,UAAAA,QAAQ;AAAtB,SAAvE;AACAhC,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,oBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAW6W,YAAAA,QAAQ;AAAnB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQAf,MAAAA,cAAc,CAACiB,iBAAf,GAAmC,UAAC/W,OAAD,EAAUgX,YAAV;AACjC,YAAMnD,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,yDAAZ,EAAuE;AAAE3B,UAAAA,UAAU,YAAZ;AAAcmD,UAAAA,YAAY;AAA1B,SAAvE;AACAnC,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,oBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWgX,YAAAA,YAAY;AAAvB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQAlB,MAAAA,cAAc,CAACmB,qBAAf,GAAuC,UAACjX,OAAD,EAAUkX,WAAV;AACrC,YAAMrD,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,6DAAZ,EAA2E;AAAE3B,UAAAA,UAAU,YAAZ;AAAcqD,UAAAA,WAAW;AAAzB,SAA3E;AACArC,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,wBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWkX,YAAAA,WAAW;AAAtB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQApB,MAAAA,cAAc,CAACqB,qBAAf,GAAuC,UAACnX,OAAD,EAAUkX,WAAV;AACrC,YAAMrD,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,6DAAZ,EAA2E;AAAE3B,UAAAA,UAAU,YAAZ;AAAcqD,UAAAA,WAAW;AAAzB,SAA3E;AACArC,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,wBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWkX,YAAAA,WAAW;AAAtB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQApB,MAAAA,cAAc,CAACsB,qBAAf,GAAuC,UAACpX,OAAD,EAAUqX,eAAV;AACrC,YAAMxD,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,6DAAZ,EAA2E;AAAE3B,UAAAA,UAAU,YAAZ;AAAcwD,UAAAA,eAAe;AAA7B,SAA3E;AACAxC,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,wBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAWqX,YAAAA,eAAe;AAA1B;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQAvB,MAAAA,cAAc,CAACwB,iBAAf,GAAmC,UAACtX,OAAD,EAAU1C,OAAV;AACjC,YAAMuW,UAAU,GAAG7T,OAAO,CAACsI,GAA3B;AACAiM,QAAAA,MAAM,CAACiB,IAAP,CAAY,yDAAZ,EAAuE;AAAE3B,UAAAA,UAAU,YAAZ;AAAcvW,UAAAA,OAAO;AAArB,SAAvE;AACAuX,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,mBADW;AAEjBrE,UAAAA,OAAO,EAAE;AAAErR,YAAAA,OAAO,SAAT;AAAW1C,YAAAA,OAAO;AAAlB;AAFQ,SAAD,CAAlB;AAID,OAPD;;AAQAkX,MAAAA,GAAG,CAAC+C,iBAAJ,CAAsB1B,iBAAtB,EAAyCC,cAAzC;AACD;;AAED,WAAO;AACL,UAAItB,GAAG,IAAIA,GAAG,CAACgD,oBAAf,EAAqC;AACnCjD,QAAAA,MAAM,CAACiB,IAAP,CAAY,yEAAZ,EAAuFK,iBAAvF;AACArB,QAAAA,GAAG,CAACgD,oBAAJ,CAAyB3B,iBAAzB;AACD;AACF,KALD;AAMD,GA5KQ,EA4KN,CAACtE,kBAAD,CA5KM,CAAT;;AA+KAhL,EAAAA,SAAS,CAAC;AACRgO,IAAAA,MAAM,CAACiB,IAAP,CAAY,sDAAZ,EAAoEjE,kBAApE;AAEAsD,IAAAA,kBAAkB,CAAC;AACjBrL,MAAAA,IAAI,EAAEkM;AADW,KAAD,CAAlB;;AAIA,QAAIlB,GAAG,IAAIA,GAAG,CAACiD,iBAAX,IAAgClG,kBAAhC,IAAsDA,kBAAkB,CAACmG,sBAA7E,EAAqG;AACnG,UAAMC,mBAAiB,GAAG,IAAInD,GAAG,CAACiD,iBAAR,EAA1B;AACAE,MAAAA,mBAAiB,CAACC,cAAlB,GAAmC,EAAnC;AACAD,MAAAA,mBAAiB,CAACE,WAAlB,GAAgC,IAAhC;AACAF,MAAAA,mBAAiB,CAACG,cAAlB,GAAmC,KAAnC;AACAH,MAAAA,mBAAiB,CAACI,gBAAlB,GAAqC,KAArC;;AACA,UAAI7C,2BAAJ,EAAiC;AAC/B8C,QAAAA,MAAM,CAACC,IAAP,CAAY/C,2BAAZ,EAAyCgD,OAAzC,CAAiD,UAAAC,GAAA;AAC/CR,UAAAA,mBAAiB,CAACQ,GAAD,CAAjB,GAAyBjD,2BAA2B,CAACiD,GAAD,CAApD;AACD,SAFD;AAGA5D,QAAAA,MAAM,CAACiB,IAAP,CAAY,gDAAZ;AACD;;AAEDjB,MAAAA,MAAM,CAACiB,IAAP,CAAY,iCAAZ,EAA+C;AAAEjE,QAAAA,kBAAkB,oBAApB;AAAsB4D,QAAAA,iBAAiB;AAAvC,OAA/C;AAEA5D,MAAAA,kBAAkB,CAACmG,sBAAnB,CACE,IAAIU,IAAJ,GAAWC,OAAX,EADF,EAEEV,mBAFF,EAGE,UAACjG,QAAD,EAAWtT,KAAX;AACE,YAAI,CAACA,KAAL,EAAY;AACVmW,UAAAA,MAAM,CAACiB,IAAP,CAAY,2CAAZ,EAAyD9D,QAAzD;AACA,cAAM4G,SAAO,GAAI5G,QAAQ,IAAIA,QAAQ,CAACxT,MAAT,GAAkB,CAA/C;AACA,cAAMqa,sBAAoB,GAAGD,SAAO,GAClC5G,QAAQ,CAAC,CAAD,CAAR,CAAYlU,SADsB,GAElC,IAFF;AAGAqX,UAAAA,kBAAkB,CAAC;AACjBrL,YAAAA,IAAI,EAAEkM,wBADW;AAEjBrE,YAAAA,OAAO,EAAE;AACPE,cAAAA,kBAAkB,oBADX;AAEPG,cAAAA,QAAQ,UAFD;AAGP5D,cAAAA,OAAO,WAHA;AAIP6D,cAAAA,oBAAoB;AAJb;AAFQ,WAAD,CAAlB;AASAtT,UAAAA,UAAU,CAAC;AACT+W,YAAAA,cAAA,CAAqB,2BAArB;AACD,WAFS,CAAV;AAGD,SAlBD,MAkBO;AACLb,UAAAA,MAAM,CAACnW,KAAP,CAAa,wCAAb,EAAuDA,KAAvD;AACAyW,UAAAA,kBAAkB,CAAC;AACjBrL,YAAAA,IAAI,EAAEkM,sBADW;AAEjBrE,YAAAA,OAAO,EAAE;AACPE,cAAAA,kBAAkB,oBADX;AAEPG,cAAAA,QAAQ,EAAE,EAFH;AAGP5D,cAAAA,OAAO,EAAE,KAHF;AAIP6D,cAAAA,oBAAoB,EAAE;AAJf;AAFQ,WAAD,CAAlB;AASD;AACF,OAlCH,EAfmG;AAoDnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AACF,GAxFQ,EAwFN,CAACJ,kBAAD,CAxFM,CAAT;;AA2FA,MAAMxD,QAAQ,GAAGyK,WAAW,CAAC,UAACC,QAAD;AAC3B,QAAI,CAAC3K,OAAL,EAAc;AACZ;AACD;;AACD,QAAMqH,iBAAiB,GAAG,IAAIX,GAAG,CAACiD,iBAAR,EAA1B;AACAtC,IAAAA,iBAAiB,CAACyC,cAAlB,GAAmC,EAAnC;AACAzC,IAAAA,iBAAiB,CAAC2C,cAAlB,GAAmC,KAAnC;AACA3C,IAAAA,iBAAiB,CAAC4C,gBAAlB,GAAqC,KAArC;;AAEA,QAAI7C,2BAAJ,EAAiC;AAC/B8C,MAAAA,MAAM,CAACC,IAAP,CAAY/C,2BAAZ,EAAyCgD,OAAzC,CAAiD,UAAAC,GAAA;AAC/ChD,QAAAA,iBAAiB,CAACgD,GAAD,CAAjB,GAAyBjD,2BAA2B,CAACiD,GAAD,CAApD;AACD,OAFD;AAGA5D,MAAAA,MAAM,CAACiB,IAAP,CAAY,+CAAZ;AACD;;AAEDjB,IAAAA,MAAM,CAACiB,IAAP,CAAY,gCAAZ,EAA8C;AAAEjE,MAAAA,kBAAkB,oBAApB;AAAsB4D,MAAAA,iBAAiB;AAAvC,KAA9C;AAEA5D,IAAAA,kBAAkB,CAACmG,sBAAnB,CACE/F,oBAAoB,IAAI,IAAIyG,IAAJ,GAAWC,OAAX,EAD1B,EAEElD,iBAFF,EAGE,UAACzD,QAAD,EAAWtT,KAAX;AACE,UAAI,CAACA,KAAL,EAAY;AACVmW,QAAAA,MAAM,CAACiB,IAAP,CAAY,2CAAZ,EAAyD9D,QAAzD;AACA,YAAMgH,SAAO,GAAIhH,QAAQ,IAAIA,QAAQ,CAACxT,MAAT,GAAkB,CAA/C;AACA,YAAMya,sBAAoB,GAAGD,SAAO,GAChChH,QAAQ,CAAC,CAAD,CAAR,CAAYlU,SADoB,GAEhC,IAFJ;AAGAqX,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,wBADW;AAEjBrE,UAAAA,OAAO,EAAE;AACPE,YAAAA,kBAAkB,oBADX;AAEPG,YAAAA,QAAQ,UAFD;AAGP5D,YAAAA,OAAO,WAHA;AAIP6D,YAAAA,oBAAoB;AAJb;AAFQ,SAAD,CAAlB;AASAtT,QAAAA,UAAU,CAAC;AACToa,UAAAA,QAAQ;AACT,SAFS,CAAV;AAGD,OAlBD,MAkBO;AACLlE,QAAAA,MAAM,CAACnW,KAAP,CAAa,wCAAb,EAAuDA,KAAvD;AACAyW,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,sBADW;AAEjBrE,UAAAA,OAAO,EAAE;AACPE,YAAAA,kBAAkB,oBADX;AAEPG,YAAAA,QAAQ,EAAE,EAFH;AAGP5D,YAAAA,OAAO,EAAE,KAHF;AAIP6D,YAAAA,oBAAoB,EAAE;AAJf;AAFQ,SAAD,CAAlB;AASD;AACF,KAlCH;AAoCD,GAtD2B,EAsDzB,CAACJ,kBAAD,EAAqBI,oBAArB,CAtDyB,CAA5B;;AAyDA,MAAMiH,iBAAiB,GAAGJ,WAAW,CAAC;AACpC,QAAMlW,IAAI,GAAGwS,eAAe,CAACtO,OAAhB,CAAwBqS,KAArC;;AAEA,aAASC,mBAAT,CAA6BC,GAA7B;AACE,UAAMzb,OAAO,GAAG,OAAOyb,GAAP,KAAe,QAAf,GAA0BA,GAAG,CAACC,IAAJ,EAA1B,GAAuCD,GAAG,CAACE,QAAJ,CAAa,EAAb,EAAiBD,IAAjB,EAAvD;AACA,UAAME,MAAM,GAAG,IAAI1E,GAAG,CAAC2E,iBAAR,EAAf;AACAD,MAAAA,MAAM,CAAC5b,OAAP,GAAiBA,OAAjB;AACA,aAAO4b,MAAP;AACD;;AAED,QAAME,kBAAkB,GAAGlF,uBAAuB,IAC7C,OAAOA,uBAAP,KAAmC,UADxC;;AAGA,QAAIkF,kBAAJ,EAAwB;AACtB7E,MAAAA,MAAM,CAACiB,IAAP,CAAY,6DAAZ,EAA2EtB,uBAA3E;AACD;;AAED,QAAMgF,MAAM,GAAGhF,uBAAuB,GAClCA,uBAAuB,CAAC5R,IAAD,CADW,GAElCwW,mBAAmB,CAACxW,IAAD,CAFvB;AAIAiS,IAAAA,MAAM,CAACiB,IAAP,CAAY,2CAAZ,EAAyD0D,MAAzD;AAEA,QAAMG,cAAc,GAAG9H,kBAAkB,CAAC+H,eAAnB,CAAmCJ,MAAnC,EAA2C,UAAC5b,OAAD,EAAUc,KAAV;AAChE,UAAIA,KAAJ,EAAW;AACTmW,QAAAA,MAAM,CAACqB,OAAP,CAAe,sCAAf,EAAuD;AAAEtY,UAAAA,OAAO;AAAT,SAAvD;AACAuX,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,sBADW;AAEjBrE,UAAAA,OAAO,EAAE/T;AAFQ,SAAD,CAAlB;AAIA;AACD;;AACDiX,MAAAA,MAAM,CAACiB,IAAP,CAAY,yCAAZ,EAAuD;AAAElY,QAAAA,OAAO;AAAT,OAAvD;AACAuX,MAAAA,kBAAkB,CAAC;AACjBrL,QAAAA,IAAI,EAAEkM,yBADW;AAEjBrE,QAAAA,OAAO,EAAE/T;AAFQ,OAAD,CAAlB;AAID,KAdsB,CAAvB;AAeAuX,IAAAA,kBAAkB,CAAC;AACjBrL,MAAAA,IAAI,EAAEkM,qBADW;AAEjBrE,MAAAA,OAAO,EAAE;AACP/T,QAAAA,OAAO,EAAE+b,cADF;AAEPrZ,QAAAA,OAAO,EAAEuR;AAFF;AAFQ,KAAD,CAAlB;AAOD,GA7CoC,EA6ClC,CAACA,kBAAD,EAAqB2C,uBAArB,CA7CkC,CAArC;;AAgDA,MAAMqF,gBAAgB,GAAGf,WAAW,CAAC,UAACgB,IAAD;AACnC,aAASV,mBAAT,CAA6BW,KAA7B;AACE,UAAMP,MAAM,GAAG,IAAI1E,GAAG,CAACkF,iBAAR,EAAf;AACAR,MAAAA,MAAM,CAACM,IAAP,GAAcC,KAAd;AACA,aAAOP,MAAP;AACD;;AAED,QAAME,kBAAkB,GAAGjF,uBAAuB,IAC7C,OAAOA,uBAAP,KAAmC,UADxC;;AAGA,QAAIiF,kBAAJ,EAAwB;AACtB7E,MAAAA,MAAM,CAACiB,IAAP,CAAY,6DAAZ,EAA2ErB,uBAA3E;AACD;;AAED,QAAM+E,MAAM,GAAG/E,uBAAuB,GAClCA,uBAAuB,CAACqF,IAAD,CADW,GAElCV,mBAAmB,CAACU,IAAD,CAFvB;AAIAjF,IAAAA,MAAM,CAACiB,IAAP,CAAY,4CAAZ,EAA0D0D,MAA1D;AAEA,QAAMG,cAAc,GAAG9H,kBAAkB,CAACoI,eAAnB,CACrBT,MADqB,EAErB,UAAC5b,OAAD,EAAwBc,KAAxB;AACE,UAAIA,KAAJ,EAAW;AACTmW,QAAAA,MAAM,CAACnW,KAAP,CAAa,2CAAb,EAA0D;AAAEd,UAAAA,OAAO,SAAT;AAAWc,UAAAA,KAAK;AAAhB,SAA1D;AACAd,QAAAA,OAAO,CAACqM,QAAR,GAAmBiQ,GAAG,CAACC,eAAJ,CAAoBL,IAApB,CAAnB;AACAlc,QAAAA,OAAO,CAACkc,IAAR,GAAeA,IAAf;AACA3E,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,sBADW;AAEjBrE,UAAAA,OAAO,EAAE/T;AAFQ,SAAD,CAAlB;AAIA;AACD;;AACDiX,MAAAA,MAAM,CAACiB,IAAP,CAAY,yCAAZ,EAAuDlY,OAAvD;AACAuX,MAAAA,kBAAkB,CAAC;AACjBrL,QAAAA,IAAI,EAAEkM,yBADW;AAEjBrE,QAAAA,OAAO,EAAE/T;AAFQ,OAAD,CAAlB;AAID,KAlBoB,CAAvB;AAqBAuX,IAAAA,kBAAkB,CAAC;AACjBrL,MAAAA,IAAI,EAAEkM,qBADW;AAEjBrE,MAAAA,OAAO,EAAE;AACP/T,QAAAA,OAAO,wBACF+b;AACH/Q,UAAAA,GAAG,EAAEsR,GAAG,CAACC,eAAJ,CAAoBL,IAApB;AACL;AACArM,UAAAA,YAAY,EAAE;UALT;AAOPnN,QAAAA,OAAO,EAAEuR;AAPF;AAFQ,KAAD,CAAlB;AAYD,GArDmC,EAqDjC,CAACA,kBAAD,EAAqB4C,uBAArB,CArDiC,CAApC;;AAwDA,MAAMzH,aAAa,GAAG8L,WAAW,CAAC,UAACpL,SAAD,EAAoB9K,IAApB,EAAkCmW,QAAlC;AAEhC,aAASK,mBAAT,CAA6BC,GAA7B;AACE,UAAMG,MAAM,GAAG,IAAI1E,GAAG,CAAC2E,iBAAR,EAAf;AACAD,MAAAA,MAAM,CAAC5b,OAAP,GAAiByb,GAAjB;AACA,aAAOG,MAAP;AACD;;AAED,QAAIhF,uBAAuB,IAAI,OAAOA,uBAAP,KAAmC,UAAlE,EAA8E;AAC5EK,MAAAA,MAAM,CAACiB,IAAP,CAAY,+DAAZ;AACD;;AAED,QAAM0D,MAAM,GAAGhF,uBAAuB,GAClCA,uBAAuB,CAAC5R,IAAD,CADW,GAElCwW,mBAAmB,CAACxW,IAAD,CAFvB;AAIAiP,IAAAA,kBAAkB,CAACuI,iBAAnB,CAAqC1M,SAArC,EAAgD8L,MAAhD,EAAwD,UAAC5b,OAAD,EAAUc,KAAV;AACtD,UAAIqa,QAAJ,EAAc;AACZA,QAAAA,QAAQ;AACT;;AACD,UAAI,CAACra,KAAL,EAAY;AACVmW,QAAAA,MAAM,CAACiB,IAAP,CAAY,0CAAZ,EAAwD;AAAElY,UAAAA,OAAO,SAAT;AAAW4b,UAAAA,MAAM;AAAjB,SAAxD;AACArE,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,kBADW;AAEjBrE,UAAAA,OAAO,EAAE;AACPrR,YAAAA,OAAO,EAAEuR,kBADF;AAEPjU,YAAAA,OAAO;AAFA;AAFQ,SAAD,CAAlB;AAOD,OATD,MASO;AACLiX,QAAAA,MAAM,CAACqB,OAAP,CAAe,uCAAf,EAAwDxX,KAAxD;AACD;AACF,KAhBD;AAiBD,GAjCgC,EAiC9B,CAACmT,kBAAD,EAAqBsD,kBAArB,EAAyCX,uBAAzC,CAjC8B,CAAjC;;AAoCA,MAAMzH,aAAa,GAAG+L,WAAW,CAAC,UAAClb,OAAD,EAAiDmb,QAAjD;AAChClE,IAAAA,MAAM,CAACiB,IAAP,CAAY,0DAAZ,EAAwElY,OAAxE;AACQ,QAAA6P,YAAY,GAAK7P,OAAO,aAAxB;AACRiX,IAAAA,MAAM,CAACiB,IAAP,CAAY,yEAAZ,EAAuFrI,YAAvF;;AAEA,QAAIA,YAAY,KAAK,QAAjB,IAA6BA,YAAY,KAAK,SAAlD,EAA6D;AAC3DoH,MAAAA,MAAM,CAACiB,IAAP,CAAY,sEAAZ,EAAoFlY,OAApF;AACAuX,MAAAA,kBAAkB,CAAC;AACjBrL,QAAAA,IAAI,EAAEkM,4BADW;AAEjBrE,QAAAA,OAAO,EAAE/T,OAAO,CAACqV;AAFA,OAAD,CAAlB;;AAIA,UAAI8F,QAAJ,EAAc;AACZA,QAAAA,QAAQ;AACT;;AACD;AACD;;AAEDlH,IAAAA,kBAAkB,CAAC9E,aAAnB,CAAiCnP,OAAjC,EAA0C,UAACc,KAAD;AACxCmW,MAAAA,MAAM,CAACiB,IAAP,CAAY,wEAAZ,EAAsFrI,YAAtF;;AACA,UAAIsL,QAAJ,EAAc;AACZA,QAAAA,QAAQ;AACT;;AACD,UAAI,CAACra,KAAL,EAAY;AACVmW,QAAAA,MAAM,CAACiB,IAAP,CAAY,oEAAZ,EAAkFlY,OAAlF;AACAuX,QAAAA,kBAAkB,CAAC;AACjBrL,UAAAA,IAAI,EAAEkM,kBADW;AAEjBrE,UAAAA,OAAO,EAAE;AACPrR,YAAAA,OAAO,EAAEuR,kBADF;AAEPnE,YAAAA,SAAS,EAAE9P,OAAO,CAAC8P;AAFZ;AAFQ,SAAD,CAAlB;AAOD,OATD,MASO;AACLmH,QAAAA,MAAM,CAACqB,OAAP,CAAe,iEAAf,EAAkFxX,KAAlF;AACD;AACF,KAjBD;AAkBD,GAnCgC,EAmC9B,CAACmT,kBAAD,EAAqBsD,kBAArB,CAnC8B,CAAjC;;AAsCA,MAAMnQ,aAAa,GAAG8T,WAAW,CAAC,UAACuB,aAAD;AAChCxF,IAAAA,MAAM,CAACiB,IAAP,CAAY,4CAAZ,EAA0DuE,aAA1D;AACQ,QAAAvb,WAAW,GAAWub,aAAa,YAAnC;AAAA,QAAaP,IAAI,GAAKO,aAAa,KAAnC;;AACR,QAAIA,aAAa,IAAI,OAAOA,aAAa,CAAC5V,YAArB,KAAsC,UAAvD,IAAqE4V,aAAa,CAAC5V,YAAd,EAAzE,EAAuG;AACrG;AACA4V,MAAAA,aAAa,CAAC5M,YAAd,GAA6B,SAA7B;AACA0H,MAAAA,kBAAkB,CAAC;AACjBrL,QAAAA,IAAI,EAAEkM,uBADW;AAEjBrE,QAAAA,OAAO,EAAE;AACPrR,UAAAA,OAAO,EAAEuR,kBADF;AAEPjU,UAAAA,OAAO,EAAEyc;AAFF;AAFQ,OAAD,CAAlB,CAHqG;;AAYrG,UAAIvb,WAAW,KAAK,MAAhB,IAA0Bub,aAAa,CAACvb,WAAd,KAA8B,MAA5D,EAAoE;AAClE+S,QAAAA,kBAAkB,CAACyI,iBAAnB,CAAqCD,aAArC,EAAoD,UAACzc,OAAD,EAAUc,KAAV;AAClD,cAAI,CAACA,KAAL,EAAY;AACVmW,YAAAA,MAAM,CAACiB,IAAP,CAAY,0CAAZ,EAAwDlY,OAAxD;AACAuX,YAAAA,kBAAkB,CAAC;AACjBrL,cAAAA,IAAI,EAAEkM,yBADW;AAEjBrE,cAAAA,OAAO,EAAE/T;AAFQ,aAAD,CAAlB;AAID,WAND,MAMO;AACLiX,YAAAA,MAAM,CAACqB,OAAP,CAAe,wCAAf,EAAyDxX,KAAzD,EADK;;AAGL2b,YAAAA,aAAa,CAAC5M,YAAd,GAA6B,QAA7B;AACA0H,YAAAA,kBAAkB,CAAC;AACjBrL,cAAAA,IAAI,EAAEkM,sBADW;AAEjBrE,cAAAA,OAAO,EAAE0I;AAFQ,aAAD,CAAlB;AAID;AACF,SAhBD;AAiBA;AACD,OA/BoG;;;AAkCrG,UAAIvb,WAAW,KAAK,MAAhB,IAA0Bub,aAAa,CAACvb,WAAd,KAA8B,MAA5D,EAAoE;AAClE+S,QAAAA,kBAAkB,CAAC0I,iBAAnB,CAAqCF,aAArC,EAAoDP,IAApD,EAA0D,UAAClc,OAAD,EAAUc,KAAV;AACxD,cAAI,CAACA,KAAL,EAAY;AACVmW,YAAAA,MAAM,CAACiB,IAAP,CAAY,gDAAZ,EAA8DlY,OAA9D;AACAuX,YAAAA,kBAAkB,CAAC;AACjBrL,cAAAA,IAAI,EAAEkM,yBADW;AAEjBrE,cAAAA,OAAO,EAAE/T;AAFQ,aAAD,CAAlB;AAID,WAND,MAMO;AACLiX,YAAAA,MAAM,CAACqB,OAAP,CAAe,6CAAf,EAA8DxX,KAA9D,EADK;;AAGL2b,YAAAA,aAAa,CAAC5M,YAAd,GAA6B,QAA7B;AACA0H,YAAAA,kBAAkB,CAAC;AACjBrL,cAAAA,IAAI,EAAEkM,sBADW;AAEjBrE,cAAAA,OAAO,EAAE0I;AAFQ,aAAD,CAAlB;AAID;AACF,SAhBD;AAiBD;AACF,KArDD,MAqDO;AACL;AACA;AACAG,MAAAA,OAAO,CAAC9b,KAAR,CAAc,yCAAd;AACAmW,MAAAA,MAAM,CAACqB,OAAP,CAAe,yCAAf,EAA0DmE,aAA1D;AACD;AACF,GA9DgC,EA8D9B,CAACxI,kBAAD,EAAqBsD,kBAArB,CA9D8B,CAAjC;;AAgEA,MAAMsF,2BAA2B,GAAG,SAA9BA,2BAA8B;AAClC,QAAMC,OAAO,GAAG,IAAIC,OAAJ,CAAY,UAACC,OAAD;AAC1BA,MAAAA,OAAO;AACR,KAFe,CAAhB;AAGAvF,IAAAA,oBAAoB,CAACqF,OAAD,CAApB;AACD,GALD;;AAOA,MAAI,CAAC7I,kBAAD,IAAuB,CAACA,kBAAkB,CAACjJ,GAA/C,EAAoD;AAClD,WAAQ;AAAK,MAAA,SAAS,EAAEtH;AAAhB,OAAsC,oBAAC,WAAD;AAAa,MAAA,IAAI,EAAEuZ,gBAAgB,CAACC;AAApC,MAAtC,CAAR;AACD;;AACD,MAAIlI,OAAJ,EAAa;AACX,WAAQ;AAAK,MAAA,SAAS,EAAEtR;AAAhB,OAAsC,oBAAC,WAAD;AAAa,MAAA,IAAI,EAAEuZ,gBAAgB,CAACE;AAApC,MAAtC,CAAR;AACD;;AACD,MAAInJ,SAAJ,EAAe;AACb,WAAQ;AAAK,MAAA,SAAS,EAAEtQ;AAAhB,OAAsC,oBAAC,WAAD;AAAa,MAAA,IAAI,EAAEuZ,gBAAgB,CAACG;AAApC,MAAtC,CAAR;AACD;;AAED,SACE,oBAAC,mBAAD;AACE,IAAA,SAAS,EAAE1Z,sBADb;AAEE,IAAA,kBAAkB,EAAEqU,6BAFtB;AAGE,IAAA,iBAAiB,EAAEC;AAHrB,KAMIrH,oBAAoB,IAClB;AACE,IAAA,SAAS,EAAKjN,sBAAoB,mBADpC;AAEE,IAAA,OAAO,EAAEmZ,2BAFX;AAGE,IAAA,SAAS,EAAEA,2BAHb;AAIE,IAAA,QAAQ,EAAE,CAJZ;AAKE,IAAA,IAAI,EAAC;AALP,KAOE,oBAAC,IAAD;AACE,IAAA,KAAK,EAAC,MADR;AAEE,IAAA,MAAM,EAAC,MAFT;AAGE,IAAA,IAAI,EAAEzY,SAAS,CAACiZ,YAHlB;AAIE,IAAA,SAAS,EAAE/Y,UAAU,CAACgZ;AAJxB,IAPF,CAPN,EAwBI3G,kBAAkB,GACdA,kBAAkB,CAAC;AACnBjU,IAAAA,OAAO,EAAEuR,kBADU;AAEnBtR,IAAAA,IAAI,EAAEA;AAFa,GAAD,CADJ,GAMd,oBAAC,6BAAD;AACE,IAAA,KAAK,EAAEsR,kBAAkB,CAACsJ,IAD5B;AAEE,IAAA,QAAQ,EAAKzF,UAAA,CAAiB7D,kBAAkB,CAACuJ,gBAApC,OAAA,GAAyDxa,SAAS,CAACya,6CAFlF;AAGE,IAAA,UAAU,EAAExJ,kBAAkB,CAACyJ,QAHjC;AAIE,IAAA,aAAa,EAAE5G;AAJjB,IA9BR,EAuCI7C,kBAAkB,CAAC3R,QAAnB,IACE,oBAACqb,kBAAD,OAxCN,EA2CE,oBAAC,6BAAD;AACE,IAAA,WAAW,EAAE1J,kBADf;AAEE,IAAA,IAAI,EAAEtR,IAFR;AAGE,IAAA,kBAAkB,EAAEyN,kBAHtB;AAIE,IAAA,QAAQ,EAAEG,QAJZ;AAKE,IAAA,WAAW,EAAED,WALf;AAME,IAAA,QAAQ,EAAEG,QANZ;AAOE,IAAA,OAAO,EAAED,OAPX;AAQE,IAAA,iBAAiB,EAAEE,iBARrB;AASE,IAAA,oBAAoB,EAAEgH,uBATxB;AAUE,IAAA,aAAa,EAAEtI,aAVjB;AAWE,IAAA,aAAa,EAAED,aAXjB;AAYE,IAAA,aAAa,EAAE/H;AAZjB,IA3CF,EA0DIrE,kBAAkB,GAEdA,kBAAkB,CAAC;AACjBL,IAAAA,OAAO,EAAEuR,kBADQ;AAEjBtR,IAAAA,IAAI,EAAEA,IAFW;AAGjBC,IAAAA,QAAQ,EAAEA;AAHO,GAAD,CAFJ,GASd,oBAACL,qBAAD;AACE,IAAA,OAAO,EAAE0R,kBADX;AAEE,IAAA,IAAI,EAAEtR,IAFR;AAGE,IAAA,GAAG,EAAE6U,eAHP;AAIE,IAAA,QAAQ,EAAE5U,QAJZ;AAKE,IAAA,aAAa,EAAE0Y,iBALjB;AAME,IAAA,YAAY,EAAEW,gBANhB;AAOE,IAAA,kBAAkB,EAAElZ;AAPtB,IAnER,CADF;AAiFD,CA/vBM;AAiwBP,YAAe6a,mBAAmB,CAACtH,uBAAD,CAAlC;;;;;"} \ No newline at end of file +{"version":3,"file":"OpenChannel.js","sources":["../../../src/smart-components/OpenchannelConversation/utils.ts","../../../src/smart-components/OpenchannelConversation/components/MessageInpuetWrapper.tsx","../../../src/smart-components/OpenchannelConversation/components/FrozenNotification.tsx","../../../src/ui/OpenchannelConversationHeader/index.tsx","../../../src/ui/OpenchannelUserMessage/utils.ts","../../../src/utils/openChannelUtils.ts","../../../src/ui/OpenchannelUserMessage/index.tsx","../../../src/ui/OpenChannelAdminMessage/index.tsx","../../../src/ui/OpenchannelOGMessage/utils.ts","../../../src/ui/OpenchannelOGMessage/index.tsx","../../../src/ui/OpenchannelThumbnailMessage/utils.ts","../../../src/ui/OpenchannelThumbnailMessage/index.tsx","../../../src/ui/OpenchannelFileMessage/utils.ts","../../../src/ui/OpenchannelFileMessage/index.tsx","../../../src/smart-components/OpenchannelConversation/components/RemoveMessageModal.tsx","../../../src/smart-components/OpenchannelConversation/components/types.ts","../../../src/smart-components/OpenchannelConversation/components/MessageHOC.tsx","../../../src/smart-components/OpenchannelConversation/components/OpenchannelConversationScroll.tsx","../../../src/smart-components/OpenchannelConversation/dux/actionTypes.ts","../../../src/smart-components/OpenchannelConversation/dux/reducers.ts","../../../src/smart-components/OpenchannelConversation/dux/initialState.ts","../../../src/smart-components/OpenchannelConversation/index.tsx"],"sourcesContent":["import format from 'date-fns/format';\nimport Sendbird from 'sendbird';\nimport SendbirdUIKit from '../../index';\n\nexport const getMessageCreatedAt = (message: SendbirdUIKit.EveryMessage): string => format(message.createdAt, 'p');\n\nexport const scrollIntoLast = (selector: string, intialTry = 0): void => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\n\nexport const isSameGroup = (\n message: SendbirdUIKit.EveryMessage,\n comparingMessage: SendbirdUIKit.EveryMessage,\n): boolean => {\n if (\n !message\n || !comparingMessage\n || message.messageType === 'admin'\n || comparingMessage.messageType === 'admin'\n ) {\n return false\n }\n\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: SendbirdUIKit.EveryMessage,\n currMessage: SendbirdUIKit.EveryMessage,\n nextMessage: SendbirdUIKit.EveryMessage,\n): [boolean, boolean] => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n );\n\nexport const kFormatter = (num: number): string => {\n if (Math.abs(num) > 999999) {\n return `${(Math.abs(num) / 1000000).toFixed(1)}M`;\n }\n\n if (Math.abs(num) > 999) {\n return `${(Math.abs(num) / 1000).toFixed(1)}K`;\n }\n\n return `${num}`;\n};\n\nexport const isOperator = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { operators } = openChannel;\n if (operators.map(operator => operator.userId).indexOf(userId) < 0) {\n return false;\n }\n return true;\n};\n\nexport const isDisabledBecauseFrozen = (openChannel: Sendbird.OpenChannel, userId: string): boolean => {\n const { isFrozen } = openChannel;\n return isFrozen && !isOperator(openChannel, userId);\n};\n\nexport const isDisabledBecauseMuted = (mutedParticipantIds: string[], userId: string): boolean => {\n return mutedParticipantIds.indexOf(userId) < 0;\n};\n","import React, { useContext } from 'react';\nimport Sendbird from 'sendbird';\nimport { RenderMessageInputProps } from '../../../index';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport MessageInput from '../../../ui/MessageInput';\n\ninterface Props {\n channel: Sendbird.OpenChannel;\n user: Sendbird.User;\n disabled: boolean;\n onSendMessage(): void;\n onFileUpload(file_: File): void;\n renderMessageInput?(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n disabled,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n}: Props, ref: React.RefObject): JSX.Element => {\n if (!channel) {\n return;\n }\n\n const { stringSet } = useContext(LocalizationContext);\n\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport './frozen-notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { ReactElement } from 'react';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, {\n LabelTypography,\n LabelColors,\n LabelStringSet,\n} from '../Label';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation-header';\n\ninterface Props {\n coverImage?: string;\n title?: string;\n subTitle?: string;\n onActionClick?(): void;\n}\n\nexport default function OpenchannelConversationHeader({\n coverImage,\n title = LabelStringSet.NO_TITLE,\n subTitle = LabelStringSet.NO_TITLE,\n onActionClick,\n}: Props): ReactElement {\n return (\n\n
\n
\n {\n coverImage ? (\n \n ) : (\n \n )\n }\n \n {title}\n \n \n {subTitle}\n \n
\n
\n \n \n \n
\n
\n );\n}\n","export const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport default { copyToClipboard };\n","import Sendbird from 'sendbird';\nimport { ClientUserMessage, ClientFileMessage } from '../index';\n\nconst OpenChannelMessageStatusTypes = {\n NONE: 'none',\n PENDING: 'pending',\n FAILED: 'failed',\n CANCELED: 'canceled',\n SUCCEEDED: 'succeeded'\n};\n\nexport const getSenderFromMessage = (message: ClientUserMessage | ClientFileMessage): Sendbird.User => {\n return message.sender || message._sender;\n};\n\nexport const checkIsSent = (status: string): boolean => (status === OpenChannelMessageStatusTypes.SUCCEEDED);\n\nexport const checkIsByMe = (message: ClientFileMessage | ClientUserMessage, userId: string): boolean => (getSenderFromMessage(message).userId === userId);\n\ninterface isFineCopyParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineCopy = ({ message }: isFineCopyParams): boolean => {\n return (message.messageType === 'user' && message.message.length > 0);\n};\n\ninterface isFineResendParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineResend = ({ message, status, userId }: isFineResendParams): boolean => {\n return checkIsByMe(message, userId)\n && !checkIsSent(status)\n && message.isResendable\n && message.isResendable();\n};\n\ninterface isFineEditParams {\n message: ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineEdit = ({ message, status, userId }: isFineEditParams): boolean => {\n return checkIsByMe(message, userId) && checkIsSent(status);\n};\n\ninterface isFineDeleteParams {\n message: ClientFileMessage | ClientUserMessage;\n status: string;\n userId: string;\n}\nexport const isFineDelete = ({ message, userId }: isFineDeleteParams): boolean => {\n return checkIsByMe(message, userId);\n};\n\ninterface showMenuTriggerParams {\n message: ClientUserMessage | ClientFileMessage;\n status: string;\n userId: string;\n}\nexport const showMenuTrigger = (props: showMenuTriggerParams): boolean => {\n const { message, status, userId } = props;\n if (message.messageType === 'user') {\n return (\n isFineDelete({ message, status, userId })\n || isFineEdit({ message, status, userId })\n || isFineCopy({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n } else {\n return (\n isFineDelete({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n }\n};\n","import React, {\n useMemo,\n useContext,\n useRef,\n useState,\n ReactElement,\n useEffect,\n} from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { copyToClipboard } from './utils';\nimport uuidv4 from '../../utils/uuid';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n userId: string;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n}\n\nexport default function OpenchannelUserMessage({\n message,\n className,\n userId,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n chainTop,\n status,\n}: Props): ReactElement {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n // hooks\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const contextMenuRef = useRef(null);\n const [contextStyle, setContextStyle] = useState({});\n\n // consts\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push(`sendbird-openchannel-user-message`);\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const splitMessage = message.message.split(/\\r/);\n const matchedMessage = splitMessage.map((word) => (word !== '' ? word :
));\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n // place context menu top depending clientHeight of message component\n useEffect(() => {\n if (messageRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status}) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message: message, userId: userId, status: status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message: message, userId: userId, status: status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message: message, userId: userId, status: status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n );\n}\n","import React, { ReactElement } from 'react';\nimport { ClientAdminMessage } from '../../index';\nimport './index.scss';\n\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\ninterface Props {\n message: ClientAdminMessage;\n className?: string | string[];\n}\n\nexport default function OpenChannelAdminMessage({\n message,\n className,\n}: Props): ReactElement {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-admin-message');\n\n return (\n
\n \n {message.message || ''}\n \n
\n );\n}\n","import Sendbird from 'sendbird';\n\nexport const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const createUrlTester = (regexp: RegExp) => (text: string): boolean => regexp.test(text);\nexport const checkOGIsEnalbed = (message: Sendbird.UserMessage): boolean => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n","import React, { useState, useContext, useMemo, useRef, useEffect } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport LinkLabel from '../LinkLabel';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport uuidv4 from '../../utils/uuid';\nimport { copyToClipboard } from '../OpenchannelUserMessage/utils';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkOGIsEnalbed, createUrlTester, URL_REG } from './utils';\nimport { ClientUserMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineCopy,\n isFineEdit,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientUserMessage;\n className?: string | string[];\n disabled?: boolean;\n showEdit(bool: boolean): void;\n showRemove(bool: boolean): void;\n resendMessage(message: ClientUserMessage): void;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n userId: string;\n}\n\nexport default function OpenchannelOGMessage({\n message,\n className,\n disabled,\n showEdit,\n showRemove,\n resendMessage,\n chainTop,\n status,\n userId,\n}: Props): JSX.Element {\n if (!message || message.messageType !== 'user') {\n return null;\n }\n\n const { ogMetaData } = message;\n const { defaultImage } = ogMetaData;\n\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const [contextStyle, setContextStyle] = useState({});\n const messageComponentRef = useRef(null);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const isUrl = createUrlTester(URL_REG);\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-og-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n const MemoizedMessageText = useMemo(() => () => {\n const wordClassName = 'sendbird-openchannel-og-message--word';\n const splitMessage = message.message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n\n if (message.updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n\n return matchedMessage;\n }, [message, message.updatedAt]);\n\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n // place conxt menu top depending clientHeight of message component\n useEffect(() => {\n if (messageComponentRef.current.clientHeight > 36) {\n setContextStyle({ top: '8px ' });\n } else {\n setContextStyle({ top: '2px' });\n }\n }, [window.innerWidth]);\n\n return (\n \n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n \n {MemoizedMessageText()}\n \n
\n
\n {\n \n (\n showMenuTrigger({ message: message, userId: userId, status: status }) && (\n {\n toggleDropdown();\n }}\n >\n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineCopy({ message, userId, status }) && (\n {\n copyToClipboard(message.message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__COPY}\n \n )\n }\n {\n isFineEdit({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showEdit(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__EDIT}\n \n )\n }\n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n \n }\n \n
\n
\n {\n ogMetaData.url && (\n \n {ogMetaData.url}\n \n )\n }\n {\n ogMetaData.title && (\n \n {\n ogMetaData.title\n }\n \n )\n }\n {\n ogMetaData.description && (\n \n {ogMetaData.description}\n \n )\n }\n {\n ogMetaData.url && (\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n )\n }\n \n \n \n );\n}\n","export const SUPPORTING_TYPES = {\n IMAGE: 'IMAGE',\n VIDEO: 'VIDEO',\n UNSUPPORTED: 'UNSUPPORTED',\n};\n\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const getSupportingFileType = (type: string): string => {\n if (SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.IMAGE;\n }\n if (SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0) {\n return SUPPORTING_TYPES.VIDEO;\n }\n return SUPPORTING_TYPES.UNSUPPORTED;\n}\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\nimport { SUPPORTING_TYPES, getSupportingFileType } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport {\n checkIsByMe,\n checkIsSent,\n isFineResend,\n isFineDelete,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n disabled: boolean;\n userId: string;\n status: string;\n chainTop: boolean;\n chainBottom: boolean;\n onClick(bool: boolean): void,\n showRemove(bool: boolean): void,\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelThumbnailMessage({\n message,\n className,\n disabled,\n userId,\n status,\n chainTop,\n onClick,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const {\n type,\n url,\n localUrl,\n } = message;\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-thumbnail-message');\n const isByMe = checkIsByMe(message, userId);\n const isMessageSent = checkIsSent(status);\n const sender = getSenderFromMessage(message);\n\n return (\n
\n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n onKeyDown={() => {\n if (isMessageSent) {\n onClick(true);\n }\n }}\n tabIndex={0}\n role=\"button\"\n >\n
\n {\n {\n [SUPPORTING_TYPES.VIDEO]: (\n (url || localUrl)\n ? (\n
\n \n \n \n \n
\n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.IMAGE]: (\n (url || localUrl)\n ? (\n \n )\n : (\n \n )\n ),\n [SUPPORTING_TYPES.UNSUPPORTED]: (\n \n ),\n }[getSupportingFileType(type)]\n }\n
\n
\n
\n \n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) {\n return;\n }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n
\n \n );\n}\n","import { IconTypes } from '../Icon';\n\nexport const checkFileType = (fileUrl: string): string => {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport const truncate = (fullStr:string, strLen: number): string => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n","import React, { useContext, useRef } from 'react';\nimport format from 'date-fns/format';\nimport './index.scss';\n\nimport Avatar from '../Avatar';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { checkFileType, truncate } from './utils';\nimport { ClientFileMessage } from '../../index';\nimport {\n checkIsByMe,\n isFineDelete,\n isFineResend,\n showMenuTrigger,\n} from '../../utils/openChannelUtils';\nimport { getSenderFromMessage } from '../../utils/openChannelUtils';\n\ninterface Props {\n message: ClientFileMessage;\n className?: string | string[];\n userId: string;\n disabled?: boolean;\n chainTop?: boolean;\n chainBottom?: boolean;\n status: string;\n\n showRemove(bool: boolean): void;\n resendMessage(message: ClientFileMessage): void;\n}\n\nexport default function OpenchannelFileMessage({\n message,\n className,\n userId,\n disabled,\n chainTop,\n status,\n showRemove,\n resendMessage,\n}: Props): JSX.Element {\n const contextMenuRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const { disableUserProfile, renderUserProfile } = useContext(UserProfileContext);\n\n const openFileUrl = () => { window.open(message.url); };\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.push('sendbird-openchannel-file-message');\n const isByMe = checkIsByMe(message, userId);\n const sender = getSenderFromMessage(message);\n\n return (\n \n
\n {\n !chainTop && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? (\n renderUserProfile({\n user: sender,\n close: closeDropdown,\n })\n )\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n
\n \n {\n sender && (\n sender.friendName\n || sender.nickname\n || sender.userId\n )\n }\n \n \n {\n message.createdAt && (\n format(message.createdAt, 'p')\n )\n }\n \n
\n )\n }\n
\n {\n checkFileType(message.url) && (\n \n )\n }\n \n \n {truncate(message.url, 40)}\n \n \n
\n
\n \n {\n (\n showMenuTrigger({ message, userId, status }) && (\n \n \n \n )\n )}\n menuItems={(closeDropdown) => (\n \n {\n isFineResend({ message, userId, status }) && (\n {\n if (disabled) { return; }\n resendMessage(message);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__RESEND}\n \n )\n }\n {\n isFineDelete({ message, userId, status }) && (\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__DELETE}\n \n )\n }\n \n )}\n />\n }\n \n \n );\n}\n","import React, { useContext } from 'react'\nimport { ClientFileMessage, ClientUserMessage } from '../../..'\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n onCloseModal(): void;\n onDeleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n}\n\nexport default function RemoveMessageModal({\n onCloseModal,\n onDeleteMessage,\n}: Props): JSX.Element {\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n \n );\n}\n","import { EveryMessage } from '../../..';\nimport { isImage, isVideo } from '../../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message: EveryMessage): string => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if (message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return MessageTypes.UNKNOWN;\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import React, {\n useState,\n useRef,\n ReactElement,\n useMemo,\n} from 'react';\n\nimport format from 'date-fns/format';\nimport {\n ClientFileMessage,\n ClientUserMessage,\n EveryMessage,\n RenderCustomMessage,\n} from '../../../index';\n\nimport OpenChannelUserMessage from '../../../ui/OpenchannelUserMessage';\nimport OpenChannelAdminMessage from '../../../ui/OpenChannelAdminMessage';\nimport OpenChannelOGMessage from '../../../ui/OpenchannelOGMessage';\nimport OpenChannelThumbnailMessage from '../../../ui/OpenchannelThumbnailMessage';\nimport OpenChannelFileMessage from '../../../ui/OpenchannelFileMessage';\n// import UnknownMessage from '../../../ui/UnknownMessage';\n\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\n\nimport RemoveMessageModal from './RemoveMessageModal';\nimport {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n} from './types';\nimport { OpenChannel } from 'sendbird';\n\ninterface Props {\n message: EveryMessage;\n userId: string;\n disabled: boolean;\n editDisabled: boolean;\n hasSeperator: boolean;\n channel: OpenChannel;\n renderCustomMessage?: RenderCustomMessage,\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void): void;\n updateMessage(messageId: number, text: string, callback?: () => void): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n status?: string;\n chainTop: boolean;\n chainBottom: boolean;\n}\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n channel,\n renderCustomMessage,\n deleteMessage,\n updateMessage,\n resendMessage,\n status,\n chainTop,\n chainBottom,\n}: Props): ReactElement {\n let sender: SendBird.User = null;\n if (message.messageType !== 'admin') {\n sender = message.sender;\n }\n\n const RenderedMessage = useMemo(() => {\n if (renderCustomMessage) {\n return renderCustomMessage(message, channel);\n }\n return null;\n }, [message, renderCustomMessage]);\n\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n let isByMe = false;\n\n if (sender && message.messageType !== 'admin') {\n // pending and failed messages are by me\n isByMe = (userId === sender.userId)\n || (message.requestState === SendingMessageStatus.PENDING)\n || (message.requestState === SendingMessageStatus.FAILED);\n }\n\n if(RenderedMessage) {\n return (\n
\n \n
\n );\n }\n\n if (message.messageType === 'user' && showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: (() => {\n if (message.messageType === 'admin') {\n return (\n \n )\n }\n })(),\n [MessageTypes.FILE]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.OG]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.THUMBNAIL]: (() => {\n if (message.messageType === 'file') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.USER]: (() => {\n if (message.messageType === 'user') {\n return (\n \n );\n }\n return;\n })(),\n [MessageTypes.UNKNOWN]: (() => {\n return;\n // return (\n // \n // );\n })(),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n if (message.messageType !== 'admin') {\n deleteMessage(message);\n }\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={deleteMessage}\n isByMe={isByMe}\n />\n )\n }\n {/* {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n } */}\n
\n );\n}\n","import React, { ReactElement, useRef, useEffect } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\nimport {\n ClientFileMessage,\n ClientUserMessage,\n EveryMessage,\n RenderCustomMessage,\n} from '../../../index';\nimport MessageHoc from './MessageHOC';\n\nimport './openchannel-conversation-scroll.scss';\nimport { compareMessagesForGrouping } from '../utils';\n\ninterface Props {\n openchannel: SendBird.OpenChannel;\n user: SendBird.User;\n allMessages: EveryMessage[];\n useMessageGrouping: boolean;\n isOnline: boolean;\n hasMore: boolean;\n renderCustomMessage?: RenderCustomMessage;\n onScroll(callback?: () => void): void;\n scrollDownPromise: PromiseLike;\n showScrollDownButton?(bool: boolean): void;\n updateMessage(messageId: number, text: string, callback?: () => void ): void;\n deleteMessage(message: ClientUserMessage | ClientFileMessage, callback?: () => void ): void;\n resendMessage(failedMessage: ClientUserMessage | ClientFileMessage): void;\n}\n\nexport default function OpenchannelConversationScroll(\n {\n useMessageGrouping = true,\n openchannel,\n user,\n allMessages,\n isOnline = true,\n hasMore,\n onScroll,\n scrollDownPromise,\n renderCustomMessage,\n showScrollDownButton,\n updateMessage,\n deleteMessage,\n resendMessage,\n }: Props\n): ReactElement {\n const scrollRef = useRef(null);\n\n const handleOnScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n } = element;\n if (showScrollDownButton) {\n if (scrollHeight > scrollTop + clientHeight) {\n showScrollDownButton(true);\n } else {\n showScrollDownButton(false);\n }\n }\n\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n onScroll(() => {\n const first = nodes[0];\n first.scrollIntoView();\n });\n }\n };\n\n useEffect(() => {\n // This promise is created in everytime when user click the scroll to bottom button\n // This scope waits when user click the button and scrolls to the bottom of conversation\n if (scrollDownPromise && scrollRef && scrollRef.current) {\n scrollDownPromise.then(() => {\n scrollRef.current.scrollTo(0, scrollRef.current.scrollHeight);\n if (showScrollDownButton) {\n showScrollDownButton(false);\n }\n });\n }\n return;\n }, [scrollDownPromise]);\n\n return (\n \n
\n
\n
\n {\n allMessages.map((message, index) => {\n let status: string;\n\n if (message.messageType !== 'admin') {\n status = message.sendingStatus;\n }\n\n const previousMessage = allMessages[index - 1];\n const nextMessage = allMessages[index - 1];\n\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = message.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, message, nextMessage)\n : [false, false];\n return (\n \n )\n })\n }\n
\n
\n
\n );\n}\n","export const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';\nexport const SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';\nexport const SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';\nexport const SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';\nexport const RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';\n\n// event handlers\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';\nexport const ON_USER_ENTERED = 'ON_USER_ENTERED';\nexport const ON_USER_EXITED = 'ON_USER_EXITED';\nexport const ON_USER_MUTED = 'ON_USER_MUTED';\nexport const ON_USER_UNMUTED = 'ON_USER_UNMUTED';\nexport const ON_USER_BANNED = 'ON_USER_BANNED';\nexport const ON_USER_UNBANNED = 'ON_USER_UNBANNED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';\nexport const ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';\nexport const ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';\nexport const ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';\nexport const ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';\nexport const ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';\nexport const ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';\n","import { State as initialStateInterface } from './initialState';\nimport * as actionTypes from './actionTypes';\n\nimport compareIds from '../../../utils/compareIds.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore: Unreachable code error\ninterface ActionInterface {\n type: string;\n payload?: any;\n}\n\nexport default function reducer(\n state: initialStateInterface,\n action: ActionInterface,\n): initialStateInterface {\n switch (action.type) {\n case actionTypes.RESET_MESSAGES: {\n return {\n ...state,\n allMessages: [],\n };\n }\n\n case actionTypes.SET_CURRENT_CHANNEL: {\n const currentChannel = action.payload;\n const operators = currentChannel.operators;\n if (\n !state.isInvalid\n && state.currentOpenChannel\n && state.currentOpenChannel.url\n && (state.currentOpenChannel.url === currentChannel.url)\n ) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: currentChannel,\n isInvalid: false,\n operators: operators,\n participants: operators,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_SUCESS:\n case actionTypes.GET_PREV_MESSAGES_FAIL: {\n const isFailed = (action.type === actionTypes.GET_PREV_MESSAGES_FAIL);\n const {\n currentOpenChannel = {},\n messages = [],\n hasMore,\n lastMessageTimestamp,\n } = action.payload;\n const actionChannelUrl = currentOpenChannel.url;\n const receivedMessages = isFailed ? [] : messages;\n const _hasMore = isFailed ? false : hasMore;\n const _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;\n\n const stateChannel = state.currentOpenChannel;\n const stateChannelUrl = stateChannel.url;\n\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n const filteredAllMessages = state.allMessages.filter((message) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, message.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: _hasMore,\n lastMessageTimestamp: _lastMessageTimestamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_START: {\n const {\n message,\n channel,\n } = action.payload;\n if (channel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...message },\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_SUCCEEDED: {\n const sentMessage = action.payload;\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SENDING_MESSAGE_FAILED: {\n const sentMessage = action.payload;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, sentMessage.reqId) ? sentMessage : m\n )),\n };\n }\n case actionTypes.RESENDING_MESSAGE_START: {\n const eventedChannel = action.payload.channel;\n const resentMessage = action.payload.message;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, resentMessage.reqId) ? resentMessage : m\n )),\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const eventedChannel = action.payload.channel;\n const receivedMessage = action.payload.message;\n const {\n currentOpenChannel\n } = state;\n\n if (\n !compareIds(eventedChannel.url, currentOpenChannel.url)\n || (\n !(state.allMessages.map(\n (message) => message.messageId).indexOf(receivedMessage.messageId) < 0\n ))\n ) {\n return state;\n }\n\n return {\n ...state,\n allMessages: [...state.allMessages, receivedMessage],\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedMessage = action.payload.message;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((message) => (\n message.isIdentical(updatedMessage)\n ? updatedMessage\n : message\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED: {\n const eventedChannel = action.payload.channel;\n const deletedMessageId = action.payload.messageId;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.filter((message) => (\n !compareIds(message.messageId, deletedMessageId)\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID: {\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n }\n case actionTypes.ON_OPERATOR_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedOperators = action.payload.operators;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: {\n ...state.currentOpenChannel,\n operators: updatedOperators,\n },\n operators: updatedOperators,\n };\n }\n case actionTypes.ON_USER_ENTERED: {\n const eventedChannel = action.payload.channel;\n const enteredUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, enteredUser],\n };\n }\n case actionTypes.ON_USER_EXITED: {\n const eventedChannel = action.payload.channel;\n const exitedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: state.participants.filter((participant) => (\n !compareIds(participant.userId, exitedUser.userId)\n )),\n };\n }\n case actionTypes.ON_USER_MUTED: {\n // const eventedChannel = action.payload.channel;\n // const mutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNMUTED: {\n // const eventedChannel = action.payload.channel;\n // const unmutedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_BANNED: {\n // const eventedChannel = action.payload.channel;\n // const bannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_USER_UNBANNED: {\n // const eventedChannel = action.payload.channel;\n // const unbannedUser = action.payload.user;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_CHANNEL_FROZEN: {\n const frozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== frozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: true,\n };\n }\n case actionTypes.ON_CHANNEL_UNFROZEN: {\n const unfrozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== unfrozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: false,\n };\n }\n case actionTypes.ON_CHANNEL_CHANGED: {\n const changedChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== changedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: changedChannel,\n };\n }\n case actionTypes.ON_META_DATA_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaDataKeys = action.payload.metaDataKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaCounterKeys = action.payload.metaCounterKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_MENTION_RECEIVED: {\n // const eventedChannel = action.payload.channel;\n // const mentionedMessage = action.payload.message;\n // return {\n // ...state\n // };\n return state;\n }\n default:\n return state;\n }\n}\n","import Sendbird from 'sendbird';\nimport { EveryMessage } from '../../../index';\n\nexport interface State {\n allMessages: EveryMessage[];\n loading: boolean;\n initialized: boolean;\n currentOpenChannel: Sendbird.OpenChannel;\n isInvalid: boolean;\n hasMore: boolean;\n lastMessageTimestamp: number;\n frozen: boolean;\n operators: Sendbird.User[];\n participants: Sendbird.User[];\n // add banned participant ids\n // add muted participant ids\n}\n\nconst initialState: State = {\n allMessages: [],\n loading: false,\n initialized: false,\n currentOpenChannel: null,\n isInvalid: false,\n hasMore: false,\n lastMessageTimestamp: 0,\n frozen: false,\n operators: [],\n participants: [],\n // bannedParticipantIds\n // mutedParticipantIds\n};\n\nexport default initialState;\n","import React, {\n useRef,\n useCallback,\n useEffect,\n useReducer,\n useContext,\n useState,\n ReactElement,\n} from 'react';\nimport Sendbird from 'sendbird';\nimport * as utils from './utils';\nimport './index.scss';\n\nimport MessageInputWrapper from './components/MessageInpuetWrapper';\nimport FrozenChannelNotification from './components/FrozenNotification';\nimport OpenchannelConversationHeader from '../../ui/OpenchannelConversationHeader';\nimport OpenchannelConversationScroll from './components/OpenchannelConversationScroll';\nimport Icon, { IconColors, IconTypes } from '../../ui/Icon';\nimport PlaceHolder, { PlaceHolderTypes } from '../../ui/PlaceHolder';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport {\n EveryMessage,\n ClientUserMessage,\n ClientFileMessage,\n OpenChannelProps,\n} from '../../index';\nimport messagesReducer from './dux/reducers';\nimport messagesInitialState from './dux/initialState';\nimport * as messageActionTypes from './dux/actionTypes';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext.jsx';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { scrollIntoLast } from './utils';\nimport * as topics from '../../lib/pubSub/topics';\nimport uuidv4 from '../../utils/uuid';\n\nconst COMPONENT_CLASS_NAME = 'sendbird-openchannel-conversation';\n\ninterface Props extends OpenChannelProps {\n stores: {\n sdkStore?: SendbirdUIKit.SdkStore,\n userStore?: {\n user: Sendbird.User,\n },\n };\n config: {\n userId: string,\n isOnline: boolean,\n logger?: SendbirdUIKit.Logger,\n theme?: string,\n // @ts-ignore: Unreachable code error\n pubSub: any;\n disableUserProfile?: boolean;\n renderUserProfile?(): JSX.Element;\n };\n}\n\nexport const OpenchannelConversation = (props: Props): JSX.Element => {\n // props\n const {\n useMessageGrouping,\n channelUrl,\n stores,\n config,\n queries = {},\n disableUserProfile,\n renderCustomMessage,\n renderUserProfile,\n renderChannelTitle,\n renderMessageInput,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onChatHeaderActionClick\n } = props;\n\n const {\n sdkStore,\n userStore,\n } = stores;\n const {\n userId,\n isOnline,\n logger,\n pubSub,\n } = config;\n\n const {\n sdk\n } = sdkStore;\n const {\n user\n } = userStore;\n\n // hook variables\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const {\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n } = messagesStore;\n // ref\n const messageInputRef = useRef(null); // useSendMessageCallback\n const { stringSet } = useContext(LocalizationContext);\n const [scrollDownPromise, setScrollDownPromise] = useState(null);\n const [showScrollDownButton, setShowScrollDownButton] = useState(false);\n\n // const\n const sdkInit = sdkStore.initialized;\n const userFilledMessageListParams = queries ? queries.messageListParams: null;\n const disabled = !initialized\n || !isOnline\n || utils.isDisabledBecauseFrozen(currentOpenChannel, userId);\n // || utils.isDisabledBecauseMuted(mutedParticipantIds, userId)\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n // useSetChannel\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.OpenChannel) {\n logger.info('OpenChannel | useSetChannel fetching channel', channelUrl);\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (!error) {\n logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: openChannel,\n });\n openChannel.enter((error) => {\n if (error) {\n logger.warning('OpenChannel | useSetChannel enter channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n } else {\n logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n }\n });\n // .then((openChannel) => {\n // logger.info('OpenChannel | useSetChannel fetched channel', openChannel);\n // messagesDispatcher({\n // type: messageActionTypes.SET_CURRENT_CHANNEL,\n // payload: openChannel,\n // });\n // })\n // .catch((error) => {\n // logger.warning('OpenChannel | useSetChannel fetch channel failed', { channelUrl, error });\n // messagesDispatcher({\n // type: messageActionTypes.SET_CHANNEL_INVALID,\n // });\n // });\n }\n }, [channelUrl, sdkInit]);\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) {\n return;\n }\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return () => {\n if (subscriber) {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n }\n };\n }, [channelUrl, sdkInit]);\n\n // useHandleChannelEvents\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (currentOpenChannel && currentOpenChannel.url && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('OpenChannel | useHandleChannelEvents: Setup event handler', messageReceiverId);\n\n ChannelHandler.onMessageReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageUpdated = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n };\n ChannelHandler.onMessageDeleted = (channel, messageId) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { channelUrl, messageId });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: { channel, messageId },\n });\n };\n ChannelHandler.onOperatorUpdated = (channel, operators) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { channelUrl, operators });\n messagesDispatcher({\n type: messageActionTypes.ON_OPERATOR_UPDATED,\n payload: { channel, operators },\n });\n };\n ChannelHandler.onUserEntered = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_ENTERED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserExited = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_EXITED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserMuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnmuted = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNMUTED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_BANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onUserUnbanned = (channel, user) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNBANNED,\n payload: { channel, user },\n });\n };\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onMetaDataCreated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_CREATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataUpdated = (channel, metaData) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_UPDATED,\n payload: { channel, metaData },\n });\n };\n ChannelHandler.onMetaDataDeleted = (channel, metaDataKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { channelUrl, metaDataKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_DELETED,\n payload: { channel, metaDataKeys },\n });\n };\n ChannelHandler.onMetaCountersCreated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_CREATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersUpdated = (channel, metaCounter) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_UPDATED,\n payload: { channel, metaCounter },\n });\n };\n ChannelHandler.onMetaCountersDeleted = (channel, metaCounterKeys) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { channelUrl, metaCounterKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_DELETED,\n payload: { channel, metaCounterKeys },\n });\n };\n ChannelHandler.onMentionReceived = (channel, message) => {\n const channelUrl = channel.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MENTION_RECEIVED,\n payload: { channel, message },\n });\n };\n sdk.addChannelHandler(messageReceiverId, ChannelHandler);\n }\n\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);\n sdk.removeChannelHandler(messageReceiverId);\n }\n };\n }, [currentOpenChannel]);\n\n // useInitialMessagesFetch\n useEffect(() => {\n logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams && currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | Used customizedMessageListParams');\n }\n\n logger.info('OpenChannel | Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n },\n );\n // todo: use promise after CoreSDK adds required TS methods\n // .then((messages) => {\n // console.log('get messages via getMessagesByTimestamp', messages);\n // const hasMore = (messages && messages.length > 0);\n // const lastMessageTimestamp = hasMore\n // ? messages[0].createdAt\n // : null;\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n // payload: {\n // currentOpenChannel,\n // messages,\n // hasMore,\n // lastMessageTimestamp,\n // },\n // });\n // })\n // .catch((error: Error): void => {\n // logger.error('OpenChannel | Fetching messages failed', error);\n // messagesDispatcher({\n // type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n // payload: {\n // currentOpenChannel,\n // messages: [],\n // hasMore: false,\n // lastMessageTimestamp: 0,\n // }\n // });\n // });\n }\n }, [currentOpenChannel]);\n\n // useScrollCallback\n const onScroll = useCallback((callback) => {\n if (!hasMore) {\n return;\n }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReactions = false;\n\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach(key => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel: Used userFilledMessageListParams');\n }\n\n logger.info('OpenChannel: Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(\n lastMessageTimestamp || new Date().getTime(),\n messageListParams,\n (messages, error) => {\n if (!error) {\n logger.info('OpenChannel | Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => {\n callback();\n });\n } else {\n logger.error('OpenChannel | Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n }\n }\n );\n }, [currentOpenChannel, lastMessageTimestamp]);\n\n // useSendMessageCallback\n const handleSendMessage = useCallback(() => {\n const text = messageInputRef.current.value;\n\n function createParamsDefualt(txt: string | number): Sendbird.UserMessageParams {\n const message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim();\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n }\n\n const createCustomParams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n logger.info('OpenChannel | Sending message has started', params);\n\n const pendingMessage = currentOpenChannel.sendUserMessage(params, (message, error) => {\n if (error) {\n logger.warning('OpenChannel | Sending message failed', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', { message });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n });\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: pendingMessage,\n channel: currentOpenChannel,\n },\n });\n }, [currentOpenChannel, onBeforeSendUserMessage]);\n\n // useFileUploadCallback\n const handleFileUpload = useCallback((file) => {\n function createParamsDefualt(file_: File): Sendbird.FileMessageParams {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n }\n\n const createCustomParams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomParams) {\n logger.info('OpenChannel | Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefualt(file);\n\n logger.info('OpenChannel | Uploading file message start', params);\n\n const pendingMessage = currentOpenChannel.sendFileMessage(\n params,\n (message: EveryMessage, error: Sendbird.SendBirdError) => {\n if (error) {\n logger.error('OpenChannel | Sending file message failed', { message, error });\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n return;\n }\n logger.info('OpenChannel | Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n );\n\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n }\n });\n }, [currentOpenChannel, onBeforeSendFileMessage]);\n\n // useUpdateMessageCallback\n const updateMessage = useCallback((messageId: number, text: string, callback?: () => void): void => {\n\n function createParamsDefualt(txt: string): SendBird.UserMessageParams {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n }\n\n if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {\n logger.info('OpenChannel | Creating params using onBeforeUpdateUserMessage');\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefualt(text);\n\n currentOpenChannel.updateUserMessage(messageId, params, (message, error) => {\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | Updating message succeeded', { message, params });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentOpenChannel,\n message,\n },\n });\n } else {\n logger.warning('OpenChannel | Updating message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher, onBeforeSendUserMessage]);\n\n // useDeleteMessageCallback\n const deleteMessage = useCallback((message: ClientUserMessage | ClientFileMessage, callback?: () => void): void => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState: ', requestState);\n\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local: ', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (callback) {\n callback();\n }\n return;\n }\n\n currentOpenChannel.deleteMessage(message, (error) => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message from remote: ', requestState);\n if (callback) {\n callback();\n }\n if (!error) {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: {\n channel: currentOpenChannel,\n messageId: message.messageId,\n },\n });\n } else {\n logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);\n }\n });\n }, [currentOpenChannel, messagesDispatcher]);\n\n // useResendMessageCallback\n const resendMessage = useCallback((failedMessage: ClientUserMessage | ClientFileMessage) => {\n logger.info('OpenChannel | Reseding message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESENDING_MESSAGE_START,\n payload: {\n channel: currentOpenChannel,\n message: failedMessage,\n },\n });\n\n // userMessage\n if (messageType === 'user' && failedMessage.messageType === 'user') {\n currentOpenChannel.resendUserMessage(failedMessage, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Reseding message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n return;\n }\n\n // fileMessage\n if (messageType === 'file' && failedMessage.messageType === 'file') {\n currentOpenChannel.resendFileMessage(failedMessage, file, (message, error) => {\n if (!error) {\n logger.info('OpenChannel | Resending file message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n } else {\n logger.warning('OpenChannel | Resending file message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n }\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('OpenChannel | Message is not resendable');\n logger.warning('OpenChannel | Message is not resendable', failedMessage);\n }\n }, [currentOpenChannel, messagesDispatcher]);\n\n const handleClickScrollDownButton = () => {\n const promise = new Promise((resolve) => {\n resolve();\n });\n setScrollDownPromise(promise);\n };\n\n if (!currentOpenChannel || !currentOpenChannel.url) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (isInvalid) {\n return (
);\n }\n\n return (\n \n {\n showScrollDownButton && (\n \n \n \n )\n }\n {\n renderChannelTitle\n ? renderChannelTitle({\n channel: currentOpenChannel,\n user: user,\n })\n : (\n \n )\n }\n {\n currentOpenChannel.isFrozen && (\n \n )\n }\n \n {\n renderMessageInput\n ? (\n renderMessageInput({\n channel: currentOpenChannel,\n user: user,\n disabled: disabled,\n })\n )\n : (\n \n )\n }\n \n );\n};\n\nexport default withSendbirdContext(OpenchannelConversation);\n"],"names":["getMessageCreatedAt","message","format","createdAt","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","document","querySelectorAll","last","length","scrollIntoView","error","setTimeout","isSameGroup","comparingMessage","messageType","sendingStatus","sender","userId","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","kFormatter","num","Math","abs","toFixed","isOperator","openChannel","operators","map","operator","indexOf","isDisabledBecauseFrozen","isFrozen","MessageInputWrapper","_a","ref","channel","user","disabled","onSendMessage","onFileUpload","renderMessageInput","stringSet","useContext","LocalizationContext","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","React","forwardRef","FrozenNotification","LabelTypography","CAPTION_2","CHANNEL_FROZEN","COMPONENT_CLASS_NAME","OpenchannelConversationHeader","coverImage","_b","title","LabelStringSet","NO_TITLE","_c","subTitle","onActionClick","IconTypes","AVATAR_NO_IMAGE","IconColors","BACKGROUND_3","H_2","LabelColors","ONBACKGROUND_1","BODY_2","ONBACKGROUND_2","INFO","PRIMARY","copyToClipboard","text","window","clipboardData","setData","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","OpenChannelMessageStatusTypes","NONE","PENDING","FAILED","CANCELED","SUCCEEDED","getSenderFromMessage","_sender","checkIsSent","status","checkIsByMe","isFineCopy","isFineResend","isResendable","isFineEdit","isFineDelete","showMenuTrigger","props","OpenchannelUserMessage","className","resendMessage","showEdit","showRemove","chainTop","UserProfileContext","disableUserProfile","renderUserProfile","messageRef","useRef","avatarRef","contextMenuRef","useState","contextStyle","setContextStyle","injectingClassName","Array","isArray","push","isByMe","MemoizedMessageText","useMemo","splitMessage","split","matchedMessage","word","updatedAt","uuidv4","BODY_1","MESSAGE_EDITED","useEffect","current","clientHeight","top","innerWidth","join","toggleDropdown","profileUrl","closeDropdown","paddingTop","paddingBottom","close","SECONDARY_3","friendName","nickname","CAPTION_3","ONBACKGROUND_3","MORE","CONTENT_INVERSE","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","OpenChannelAdminMessage","__spreadArrays","URL_REG","createUrlTester","regexp","test","checkOGIsEnalbed","ogMetaData","url","OpenchannelOGMessage","defaultImage","messageComponentRef","isUrl","wordClassName","openLink","open","SUBTITLE_2","description","alt","NO_THUMBNAIL","SUPPORTING_TYPES","IMAGE","VIDEO","UNSUPPORTED","SUPPORTED_MIMES","getSupportingFileType","type","OpenchannelThumbnailMessage","onClick","localUrl","isMessageSent","PLAY","PHOTO","ON_BACKGROUND_2","checkFileType","fileUrl","result","imageFile","audioFile","FILE_DOCUMENT","FILE_AUDIO","truncate","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","ceil","backChars","floor","substr","OpenchannelFileMessage","openFileUrl","RemoveMessageModal","onCloseModal","onDeleteMessage","MODAL__DELETE_MESSAGE__TITLE","MessageTypes","ADMIN","USER","FILE","THUMBNAIL","OG","UNKNOWN","SendingMessageStatus","getMessageType","isUserMessage","isAdminMessage","isImage","isVideo","MessageHoc","editDisabled","hasSeperator","renderCustomMessage","deleteMessage","updateMessage","chainBottom","RenderedMessage","setShowEdit","_d","setShowRemove","_e","showFileViewer","setShowFileViewer","editMessageInputRef","requestState","messageId","OpenChannelFileMessage","OpenChannelOGMessage","OpenChannelThumbnailMessage","OpenChannelUserMessage","OpenchannelConversationScroll","useMessageGrouping","openchannel","allMessages","isOnline","hasMore","onScroll","scrollDownPromise","showScrollDownButton","scrollRef","handleOnScroll","e","element","target","scrollTop","scrollHeight","nodes_1","first","then","scrollTo","index","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","RESET_MESSAGES","GET_PREV_MESSAGES_SUCESS","GET_PREV_MESSAGES_FAIL","SENDING_MESSAGE_FAILED","SENDING_MESSAGE_SUCCEEDED","SENDING_MESSAGE_START","RESENDING_MESSAGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","ON_OPERATOR_UPDATED","ON_USER_ENTERED","ON_USER_EXITED","ON_USER_MUTED","ON_USER_UNMUTED","ON_USER_BANNED","ON_USER_UNBANNED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_CHANNEL_CHANGED","ON_META_DATA_CREATED","ON_META_DATA_UPDATED","ON_META_DATA_DELETED","ON_META_COUNTERS_CREATED","ON_META_COUNTERS_UPDATED","ON_META_COUNTERS_DELETED","ON_MENTION_RECEIVED","reducer","state","action","actionTypes","currentChannel","payload","isInvalid","currentOpenChannel","participants","isFailed","messages","lastMessageTimestamp","actionChannelUrl","receivedMessages_1","_hasMore","_lastMessageTimestamp","stateChannel","stateChannelUrl","filteredAllMessages","filter","find","compareIds","loading","initialized","sentMessage_1","newMessages","m","reqId","sentMessage_2","eventedChannel","resentMessage_1","receivedMessage","updatedMessage_1","isIdentical","deletedMessageId_1","updatedOperators","enteredUser","exitedUser_1","participant","frozenChannel","frozen","unfrozenChannel","changedChannel","initialState","OpenchannelConversation","channelUrl","stores","config","queries","renderChannelTitle","onBeforeSendUserMessage","onBeforeSendFileMessage","onChatHeaderActionClick","sdkStore","userStore","logger","pubSub","sdk","useReducer","messagesReducer","messagesInitialState","messagesStore","messagesDispatcher","messageInputRef","setScrollDownPromise","setShowScrollDownButton","sdkInit","userFilledMessageListParams","messageListParams","utils","userDefinedDisableUserProfile","userDefinedRenderProfile","OpenChannel","info","getChannel","messageActionTypes","enter","warning","subscriber","Map","subscribe","set","topics","msg","fromSelector","forEach","s","remove","messageReceiverId","ChannelHandler","onMessageReceived","onMessageUpdated","onMessageDeleted","onOperatorUpdated","onUserEntered","onUserExited","onUserMuted","onUserUnmuted","onUserBanned","onUserUnbanned","onChannelFrozen","onChannelUnfrozen","onChannelChanged","onMetaDataCreated","metaData","onMetaDataUpdated","onMetaDataDeleted","metaDataKeys","onMetaCountersCreated","metaCounter","onMetaCountersUpdated","onMetaCountersDeleted","metaCounterKeys","onMentionReceived","addChannelHandler","removeChannelHandler","MessageListParams","getMessagesByTimestamp","messageListParams_1","prevResultSize","isInclusive","includeReplies","includeReactions","Object","keys","key","Date","getTime","hasMore_1","lastMessageTimestamp_1","useCallback","callback","hasMore_2","lastMessageTimestamp_2","handleSendMessage","value","createParamsDefualt","txt","trim","toString","params","UserMessageParams","createCustomParams","pendingMessage","sendUserMessage","handleFileUpload","file","file_","FileMessageParams","sendFileMessage","URL","createObjectURL","updateUserMessage","failedMessage","resendUserMessage","resendFileMessage","console","handleClickScrollDownButton","promise","Promise","resolve","PlaceHolderTypes","NO_CHANNELS","LOADING","WRONG","SHEVRON_DOWN","CONTENT","name","participantCount","OPEN_CHANNEL_CONVERSATION__TITLE_PARTICIPANTS","coverUrl","FrozenChannelNotification","withSendbirdContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/OpenChannelSettings.js b/dist/esm/OpenChannelSettings.js index 6ba23ec..89c512c 100644 --- a/dist/esm/OpenChannelSettings.js +++ b/dist/esm/OpenChannelSettings.js @@ -1,14 +1,14 @@ import { e as LocalizationContext, d as __spreadArrays, w as withSendbirdContext } from './LocalizationContext-619bafba.js'; import React, { useContext, useMemo, useRef, useState, useEffect } from 'react'; import 'prop-types'; -import { A as Avatar, M as Modal, T as Type, f as TextButton, b as Label, c as LabelTypography, d as LabelColors, I as Icon, a as IconTypes, g as IconColors, B as Button, w as Size, n as UserProfileContext, C as ContextMenu, h as MenuItems, o as UserProfile, P as PlaceHolder, m as PlaceHolderTypes, F as selectors, l as UserProfileProvider } from './index-0c67ae90.js'; +import { A as Avatar, M as Modal, T as Type, f as TextButton, b as Label, c as LabelTypography, d as LabelColors, I as Icon, a as IconTypes, g as IconColors, B as Button, w as Size, n as UserProfileContext, C as ContextMenu, h as MenuItems, o as UserProfile, P as PlaceHolder, m as PlaceHolderTypes, F as selectors, l as UserProfileProvider } from './index-ec3bf9fe.js'; import { d as getOpenChannelAvatar, n as noop } from './utils-53ba1773.js'; import 'date-fns/format'; import './type-0296584d.js'; import 'react-dom'; -import { I as InputLabel, a as Input, U as UserListItem$1 } from './index-73379213.js'; +import { I as InputLabel, a as Input, U as UserListItem$1 } from './index-aa89d60a.js'; import { c as copyToClipboard } from './utils-d7f59026.js'; -import { a as Accordion, A as AccordionGroup } from './index-7bc4a9f7.js'; +import { a as Accordion, A as AccordionGroup } from './index-8abf69b8.js'; function ChannelAvatar(_a) { var channel = _a.channel, diff --git a/dist/esm/SendbirdProvider.css b/dist/esm/SendbirdProvider.css deleted file mode 100644 index 585ef25..0000000 --- a/dist/esm/SendbirdProvider.css +++ /dev/null @@ -1,3843 +0,0 @@ -.sendbird-openchannel-conversation { - position: relative; - display: flex; - flex-direction: column; - height: 100%; - width: 100%; } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { - position: absolute; - display: flex; - align-items: center; - justify-content: center; - bottom: 96px; - left: calc(50% - 20px); - width: 40px; - height: 40px; - border-radius: 24px; - z-index: 1; } - .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { - background-color: var(--sendbird-light-primary-500); } - .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll { - overflow-y: auto; - flex: 1 1 0; - order: 2; - width: 100%; } - .sendbird-openchannel-conversation .sendbird-openchannel-footer { - order: 3; - padding: 12px 24px 24px 24px; } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container { - display: flex; - height: 100%; - overflow-y: auto; - overflow-x: hidden; - flex-direction: column; } - .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container .sendbird-openchannel-conversation-scroll-padding { - flex: 1 1 0; } - -.sendbird-openchannel-settings { - height: 100%; - width: 320px; - display: inline-block; - overflow-y: scroll; - position: relative; } - .sendbird-theme--light .sendbird-openchannel-settings { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-settings { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-settings .sendbird-participants-accordion__footer { - text-align: left; - padding-top: 16px; - padding-left: 16px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__accordion-icon, - .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-icon__delete { - position: absolute; - left: 16px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__participant { - height: 100%; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__participants-list { - padding-top: 64px; - height: calc(100% - 64px); - overflow-y: scroll; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { - display: block; - width: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 1; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { - background-color: var(--sendbird-dark-background-600); } - .sendbird-openchannel-settings .sendbird-participants-accordion, - .sendbird-openchannel-settings .sendbird-openchannel-settings__delete-channel { - text-align: left; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__members .sendbird-badge__text { - margin-top: -2px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__header { - height: 64px; - min-height: 64px; - position: relative; - padding: 20px 24px; - box-sizing: border-box; - text-align: left; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__header { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__header { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon { - cursor: pointer; - position: absolute; - top: 20px; - right: 16px; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-openchannel-settings .sendbird-openchannel-settings__placeholder { - margin-top: 40%; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url { - padding: 16px; - box-sizing: border-box; - position: relative; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url:hover .sendbird-openchannel-settings__copy-icon { - display: inline-block; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__copy-icon { - cursor: pointer; - position: absolute; - display: none; - top: 10px; - right: 18px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value { - margin-top: 8px; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value, - .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-label { - text-align: left; - display: block; - word-wrap: break-word; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__url { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__url { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { - display: block; - cursor: pointer; - box-sizing: border-box; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item:focus { - outline: none; } - .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { - cursor: not-allowed; } - .sendbird-openchannel-settings .sendbird-participants-accordion__member { - position: relative; - padding: 12px 0px 12px 56px; - height: 40px; - box-sizing: border-box; - text-align: left; } - .sendbird-openchannel-settings .sendbird-participants-accordion__member .sendbird-label { - max-width: 240px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-openchannel-settings .sendbird-participants-accordion__member-avatar { - position: absolute; - left: 16px; - top: 10px; - cursor: pointer; } - -.sendbird-openchannel-conversation-header { - position: relative; - min-height: 64px; } - .sendbird-theme--light .sendbird-openchannel-conversation-header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-conversation-header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-conversation-header .sendbird-openchannel-conversation-header__left__title { - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; - max-width: calc(100% - 120px); } - .sendbird-openchannel-conversation-header__left [class*=sendbird-openchannel-conversation-header__left__cover-image] { - position: absolute; - left: 20px; - top: 16px; } - .sendbird-openchannel-conversation-header__left__title { - position: absolute; - left: 60px; - top: 12px; } - .sendbird-openchannel-conversation-header__left__sub-title { - position: absolute; - left: 60px; - top: 36px; } - .sendbird-openchannel-conversation-header__right { - position: absolute; - top: 0px; - right: 0px; - width: 64px; - height: 64px; } - .sendbird-openchannel-conversation-header__right__trigger { - position: absolute; - top: 16px; - right: 16px; - display: flex; - align-items: center; - justify-content: center; } - -.sendbird-frozen-channel-notification { - position: relative; - margin-top: 8px; - margin-right: 24px; - margin-left: 24px; - height: 32px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 4px; } - .sendbird-theme--light .sendbird-frozen-channel-notification { - background-color: var(--sendbird-light-information-100); } - .sendbird-theme--dark .sendbird-frozen-channel-notification { - background-color: var(--sendbird-dark-information-100); } - -.sendbird-avatar { - display: inline-block; - overflow: hidden; - border-radius: 50%; - position: relative; } - .sendbird-avatar:focus { - outline: none; } - .sendbird-avatar .sendbird-avatar-img { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); } - .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:first-child { - transform: translate(2%, -50%); } - .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:last-child { - transform: translate(-102%, -50%); } - .sendbird-avatar .sendbird-avatar--inner__three-child--upper .sendbird-avatar-img:first-child { - transform: translate(-50%, -102%); } - .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:first-child { - transform: translate(-77%, -23%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:last-child { - transform: translate(-23%, -23%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:first-child { - transform: translate(-77%, -77%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(2) { - transform: translate(-23%, -77%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(3) { - transform: translate(-77%, -23%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:last-child { - transform: translate(-23%, -23%) scale(0.5); } - -.sendbird-accordion { - padding: 8px 0px 16px 0px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-accordion { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-accordion { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-accordion .sendbird-accordion__member { - position: relative; - padding: 12px 0px 12px 44px; - height: 40px; - box-sizing: border-box; } - .sendbird-accordion .sendbird-accordion__footer { - display: flex; - justify-content: flex-start; - margin-top: 8px; } - -.sendbird-accordion__panel-heder { - cursor: pointer; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-accordion__panel-heder { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-accordion__panel-heder { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-accordion__panel-heder:focus { - outline: none; } - .sendbird-accordion__panel-heder.sendbird-accordion__panel-item__disabled { - cursor: not-allowed; } - -.sendbird-accordion__panel-icon-left, -.sendbird-accordion__panel-icon-right { - position: absolute; - top: 10px; } - -.sendbird-accordion__panel-icon-left { - left: 16px; } - -.sendbird-accordion__panel-icon-right { - right: 16px; } - -.sendbird-accordion__panel-icon--open { - transform: rotate(90deg); } - -.sendbird-theme--light .sendbird-accordion__panel-icon--chevron path { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-accordion__panel-icon--chevron path { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-accordion__panel-icon__leave path { - fill: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-accordion__panel-icon__leave path { - fill: var(--sendbird-dark-error-300); } - -.sendbird__user-profile { - width: 320px; - border-radius: 4px; - padding: 24px; - box-sizing: border-box; - text-align: center; } - .sendbird-theme--light .sendbird__user-profile { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird__user-profile { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird__user-profile .sendbird__user-profile-avatar { - margin: 8px 0px; } - .sendbird__user-profile .sendbird__user-profile-name { - max-width: 270px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; } - .sendbird__user-profile .sendbird__user-profile-message { - margin-top: 20px; } - .sendbird__user-profile .sendbird__user-profile-message button { - width: 272px; } - .sendbird__user-profile .sendbird__user-profile-seperator { - margin: 24px 0px; - height: 1px; } - .sendbird-theme--light .sendbird__user-profile .sendbird__user-profile-seperator { - background-color: var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird__user-profile .sendbird__user-profile-seperator { - background-color: var(--sendbird-dark-ondark-04); } - .sendbird__user-profile .sendbird__user-profile-userId--label, - .sendbird__user-profile .sendbird__user-profile-userId--value { - display: block; - text-align: left; } - .sendbird__user-profile .sendbird__user-profile-userId--label { - margin-bottom: 8px; } - -.sendbird-openchannel-profile { - position: relative; - text-align: center; - padding: 32px 40px 27px 40px; } - .sendbird-theme--light .sendbird-openchannel-profile { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-openchannel-profile { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-openchannel-profile .sendbird-openchannel-profile--inner { - height: 116px; } - .sendbird-openchannel-profile .sendbird-openchannel-profile__avatar { - margin-bottom: 16px; - text-align: center; } - .sendbird-openchannel-profile .sendbird-openchannel-profile__title { - max-width: 240px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; - height: 18px; } - .sendbird-openchannel-profile .sendbird-openchannel-profile__edit { - position: absolute; - top: 10px; - right: 16px; } - -.sendbird-openchannel-conversation-scroll { - position: relative; - width: 100%; } - .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container { - position: absolute; - width: 100%; } - .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding { - height: 8px; } - -.sendbird-openchannel-admin-message { - position: relative; - margin: 16px 24px; - padding: 12px 16px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-openchannel-admin-message { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-admin-message { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-admin-message .sendbird-openchannel-admin-message__text { - word-wrap: break-word; } - -.sendbird-openchannel-user-message { - position: relative; - display: flex; - flex-direction: row; - width: 100%; } - .sendbird-theme--light .sendbird-openchannel-user-message:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-user-message:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-user-message:hover .sendbird-openchannel-user-message__context-menu { - display: block; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left { - position: relative; - display: flex; - width: 52px; - min-width: 52px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left .sendbird-openchannel-user-message__left__avatar { - position: relative; - display: flex; - margin-top: 8px; - margin-left: 24px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - margin: 8px 24px 8px 12px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top { - position: relative; - display: flex; - margin-bottom: 2px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sender-name { - position: relative; - display: flex; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sent-at { - position: relative; - display: flex; - margin-left: 4px; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom { - position: relative; - display: flex; - width: 100%; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom .sendbird-openchannel-user-message__right__bottom__message { - position: relative; - word-break: break-all; } - .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu { - position: absolute; - right: 16px; - display: none; } - .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { - background-color: var(--sendbird-light-background-300); } - .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-openchannel-og-message { - position: relative; - display: flex; - flex-direction: column; - width: 100%; } - .sendbird-theme--light .sendbird-openchannel-og-message:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-og-message:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-og-message:hover .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { - display: block; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top { - box-sizing: border-box; - position: relative; - display: flex; - flex-direction: row; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left { - position: relative; - display: flex; - width: 52px; - min-width: 52px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left .sendbird-openchannel-og-message__top__left__avatar { - position: absolute; - display: flex; - top: 8px; - left: 24px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right { - position: relative; - display: flex; - box-sizing: border-box; - flex-direction: column; - margin: 8px 24px 8px 12px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title { - position: relative; - display: flex; - margin-bottom: 2px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sender-name { - position: relative; - display: flex; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sent-at { - position: relative; - display: flex; - margin-left: 4px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__description .sendbird-openchannel-og-message__top__right__description__message { - position: relative; - display: inline; - white-space: pre-wrap; - word-break: break-all; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { - position: absolute; - right: 16px; - display: none; } - .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { - background-color: var(--sendbird-light-background-300); } - .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom { - position: relative; - display: inline; - margin-bottom: 8px; - width: 100%; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { - position: relative; - display: inline-block; - box-sizing: border-box; - width: calc(100% - 64px); - max-width: 360px; - left: 64px; - padding: 12px 12px 4px 12px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { - border: solid 1px var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { - border: solid 1px var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__url { - position: relative; - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - margin-bottom: 8px; - max-width: 336px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title { - position: relative; - display: inline-block; - white-space: pre-wrap; - overflow-wrap: normal; - margin-bottom: 8px; - max-width: 336px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { - color: var(--sendbird-dark-primary-200); } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__description { - position: relative; - display: block; - white-space: pre-wrap; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - max-height: 32px; - margin-bottom: 8px; - width: 100%; - max-width: 336px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail { - box-sizing: border-box; - position: relative; - display: block; - margin-top: 4px; - margin-bottom: 8px; - width: 100%; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail:hover { - cursor: pointer; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image { - border-radius: 8px; - width: 100%; - min-width: 200px; - max-width: 336px; } - .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image--placeholder { - border-radius: 8px; - width: 100%; - min-width: 200px; - max-width: 336px; } - -.sendbird-openchannel-og-message--word { - display: inline; - margin: 0px 2px; - word-break: break-all; } - -.sendbird-theme--light .sendbird-openchannel-og-message--word--link { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-openchannel-og-message--word--link { - color: var(--sendbird-dark-primary-200); } - -.sendbird-app__wrap { - width: 100%; - height: 100%; - display: flex; } - .sendbird-app__wrap .sendbird-app__conversation-wrap { - flex: 1; - position: relative; } - .sendbird-app__wrap .sendbird-app__channellist-wrap { - max-width: 320px; } - .sendbird-theme--light .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { - background-color: var(--sendbird-dark-background-700); } - .sendbird-app__wrap .sendbird-channel-settings { - border-left: none; } - .sendbird-app__wrap .sendbird-channel-settings .sendbird-channel-settings__header { - height: 65px; } - -.sendbird-openchannel-file-message { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-openchannel-file-message:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-file-message:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-file-message:hover .sendbird-openchannel-file-message__context-menu { - display: block; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left { - position: relative; - display: flex; - width: 52px; - min-width: 52px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left .sendbird-openchannel-file-message__left__avatar { - position: absolute; - display: block; - margin-top: 8px; - margin-left: 24px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right { - position: relative; - display: flex; - flex-direction: column; - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title { - position: relative; - display: flex; - margin-top: 8px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sender-name { - position: relative; - display: flex; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sent-at { - position: relative; - display: flex; - margin-left: 4px; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { - position: relative; - display: flex; - margin-top: 4px; - margin-bottom: 4px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { - position: relative; - display: inline-block; - margin: 8px; - border-radius: 8.6px; } - .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { - background-color: var(--sendbird-dark-background-600); } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__file-name { - position: relative; - display: flex; - margin-top: 22px; - margin-right: 16px; - margin-left: 4px; - overflow: hidden; - height: 20px; - max-height: 20px; - text-overflow: ellipsis; } - .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu { - position: absolute; - display: none; - top: 8px; - right: 16px; } - .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { - background-color: var(--sendbird-light-background-300); } - .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-openchannel-thumbnail-message { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu { - display: block; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { - background-color: var(--sendbird-light-background-300); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left { - position: relative; - display: flex; - width: 52px; - min-width: 52px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left .sendbird-openchannel-thumbnail-message__left__avatar { - position: absolute; - display: inline; - margin-top: 8px; - margin-left: 28px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right { - position: relative; - display: flex; - flex-direction: column; - margin-top: 8px; - margin-bottom: 8px; - margin-left: 12px; - width: calc(100% - 64px); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title { - position: relative; - display: inline; - margin-bottom: 4px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sender-name { - position: relative; - display: inline; - margin-right: 4px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sent-at { - position: relative; - display: inline; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body { - position: relative; - display: inline; - border-radius: 8px; - width: 100%; - max-width: 360px; - height: 100%; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body:hover .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { - opacity: 1; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap { - position: relative; - width: 100%; - height: 100%; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - max-width: 360px; - top: 0px; - left: 0px; - border-radius: 8px; - cursor: pointer; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video { - max-width: 360px; - height: 270px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video:hover { - cursor: pointer; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__video { - max-width: 360px; - height: 270px; - border-radius: 8px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { - padding: 107px 152px 107px 152px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image { - border-radius: 8px; - max-width: 360px; } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { - padding: 107px 152px 107px 152px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { - padding: 107px 152px 107px 152px; - border-radius: 8px; } - .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { - background-color: var(--sendbird-dark-background-500); } - .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__context-menu { - position: absolute; - display: none; - top: 8px; - right: 16px; } - -.sendbird__edit-user-profile section { - margin-top: 16px; } - .sendbird__edit-user-profile section .sendbird-input-label { - display: block; - margin-bottom: 12px; } - -.sendbird__edit-user-profile .sendbird__edit-user-profile__img .sendbird-input-label { - margin-bottom: 12px; } - -.sendbird__edit-user-profile__img { - position: relative; } - -.sendbird__edit-user__avatar-button { - position: absolute; - top: 50px; - left: 96px; } - -.sendbird__edit-user__theme-icon .sendbird-icon { - cursor: pointer; } - -.sendbird-channel-list { - width: 320px; - height: 100%; - display: flex; - flex-direction: column; } - .sendbird-theme--light .sendbird-channel-list { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-list { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-channel-list__header { - height: 64px; - min-height: 64px; } - -.sendbird-channel-list__body { - flex: 1 1 0; - -ms-flex: 1; - overflow-y: auto; - overflow-x: hidden; } - -.sendbird-conversation { - display: flex; - flex-direction: column; - height: 100%; } - .sendbird-theme--light .sendbird-conversation { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-conversation { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-conversation__messages { - overflow-y: auto; - flex: 1 1 0; - order: 2; } - -.sendbird-conversation__messages-list { - display: flex; - flex-direction: column; - height: 100%; - justify-content: flex-end; } - -.sendbird-conversation__footer { - order: 3; - padding: 0px 24px 24px 24px; } - -.sendbird-conversation__scroll-container { - display: flex; - height: 100%; - overflow-y: auto; - overflow-x: hidden; - flex-direction: column; } - .sendbird-conversation__scroll-container .sendbird-conversation__padding { - flex: 1 1 0; } - -.sendbird-conversation__footer { - position: relative; } - .sendbird-conversation__footer .sendbird-conversation__typing-indicator { - position: absolute; - bottom: 8px; } - -.sendbird-channel-settings { - height: 100%; - width: 320px; - display: inline-block; } - .sendbird-theme--light .sendbird-channel-settings { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__header-icon { - cursor: pointer; - position: absolute; - top: 18px; - right: 21px; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-channel-settings .sendbird-channel-settings__members .sendbird-badge__text { - margin-top: -2px; } - .sendbird-channel-settings .sendbird-channel-settings__header { - height: 64px; - min-height: 64px; - position: relative; - padding: 20px 24px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__scroll-area { - display: flex; - flex-grow: 1; - flex-direction: column; - height: calc(100% - 64px); - overflow-y: auto; } - .sendbird-channel-settings .sendbird-channel-settings__panel-item { - cursor: pointer; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-item { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-item { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__panel-item:focus { - outline: none; } - .sendbird-channel-settings .sendbird-channel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { - cursor: not-allowed; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left, - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { - position: absolute; - top: 10px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left { - left: 16px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { - right: 16px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon--open { - transform: rotate(90deg); } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { - fill: var(--sendbird-light-error-300); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { - fill: var(--sendbird-dark-error-300); } - -.sendbird-notification { - margin-top: 8px; - margin-left: 24px; - margin-right: 24px; - border-radius: 4px; - padding: 0px 2px; - height: 32px; - display: flex; - align-items: center; - justify-content: center; } - .sendbird-theme--light .sendbird-notification { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-notification { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-notification:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-notification:hover { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-notification:hover { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen { - background-color: var(--sendbird-light-information-100); } - .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen { - background-color: var(--sendbird-dark-information-100); } - .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { - color: var(--sendbird-dark-onlight-01); } - .sendbird-notification .sendbird-notification__text { - display: flex; - align-items: center; - justify-content: center; - margin-right: 8px; } - -.sendbird-muted-avatar { - border-radius: 50%; - display: inline-block; } - .sendbird-muted-avatar .sendbird-muted-avatar__icon { - position: relative; } - .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon { - position: absolute; - top: 4px; - left: 4px; } - .sendbird-muted-avatar .sendbird-muted-avatar__bg { - opacity: .5; - position: absolute; - border-radius: 50%; - top: 0; - left: 0; } - .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg { - background-color: var(--sendbird-dark-primary-300); } - -.sendbird-place-holder { - display: flex; - justify-content: center; - align-items: center; - height: 100%; } - .sendbird-place-holder .sendbird-place-holder__body { - display: flex; - flex-direction: column; - height: 104px; - align-items: center; } - .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__icon { - margin-bottom: 10px; } - .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__text { - margin-top: 10px; } - .sendbird-place-holder .sendbird-place-holder__body__reconnect { - margin-top: 18px; - display: flex; - flex-direction: row; - cursor: pointer; } - .sendbird-place-holder .sendbird-place-holder__body__reconnect .sendbird-place-holder__body__reconnect__icon { - margin-right: 4px; } - -.sendbird-channel-settings__operator .sendbird-channel-settings__accordion-icon { - position: absolute; - left: 14px; } - -.sendbird-channel-settings__operator .sendbird-accordion__panel-heder { - position: relative; } - -.sendbird-channel-settings__empty-list { - text-align: center; - margin-top: 12px; - margin-bottom: 4px; - display: block; } - -.sendbird-channel-settings-accordion__footer { - padding-top: 16px; - display: flex; - justify-content: left; - padding-left: 12px; } - .sendbird-channel-settings-accordion__footer .sendbird-button:nth-child(2) { - margin-left: 8px; } - -.sendbird-channel-settings__freeze { - max-width: 320px; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-channel-settings__freeze { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings__freeze { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-channel-settings__frozen-icon { - position: absolute; - right: 20px; - top: 12px; } - .sendbird-channel-settings__frozen-icon .sendbird-icon { - cursor: pointer; } - -.sendbird-channel-settings__members-list .sendbird-badge, -.sendbird-channel-settings__members .sendbird-badge { - position: absolute; - right: 44px; - top: 12px; } - .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--light - .sendbird-channel-settings__members .sendbird-badge { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--dark - .sendbird-channel-settings__members .sendbird-badge { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--light - .sendbird-channel-settings__members .sendbird-badge .sendbird-label { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--dark - .sendbird-channel-settings__members .sendbird-badge .sendbird-label { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-user-list-item--small { - display: block; - position: relative; - box-sizing: border-box; - height: 40px; } - .sendbird-user-list-item--small__avatar { - cursor: pointer; - position: absolute; - top: 10px; - left: 12px; } - .sendbird-user-list-item--small .sendbird-muted-avatar { - position: absolute; - top: 10px; - left: 12px; - z-index: 2; - pointer-events: none; } - .sendbird-user-list-item--small__title { - position: absolute; - top: 10px; - left: 54px; - width: 160px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item--small__subtitle { - position: absolute; - top: 23px; - left: 140px; - max-width: 237px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item--small__checkbox { - position: absolute; - top: 16px; - right: 16px; } - .sendbird-user-list-item--small__action { - display: none; - position: absolute; - right: 10px; - top: 4px; } - .sendbird-user-list-item--small__operator { - position: absolute; - right: 24px; - top: 10px; } - .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed { - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action { - display: block; } - .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator { - display: none; } - .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { - background-color: var(--sendbird-dark-background-700); } - -.sendbird-iconbutton { - color: var(--sendbird-iconbutton-color); - display: inline-block; - padding: 3px; - background-color: transparent; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid transparent; - border-radius: 4px; - outline: 0px; } - .sendbird-theme--light .sendbird-iconbutton .sendbird-iconbutton__inner svg { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-iconbutton .sendbird-iconbutton__inner svg { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-iconbutton:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-iconbutton:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-theme--light .sendbird-iconbutton:focus { - box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } - .sendbird-theme--dark .sendbird-iconbutton:focus { - box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } - .sendbird-theme--light .sendbird-iconbutton:active { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-iconbutton:active { - background-color: var(--sendbird-dark-background-400); } - .sendbird-iconbutton:disabled { - cursor: not-allowed !important; } - .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { - fill: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { - fill: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-iconbutton--pressed { - background-color: var(--sendbird-light-primary-100); } - -.sendbird-theme--dark .sendbird-iconbutton--pressed { - background-color: var(--sendbird-dark-background-700); } - -[class*=sendbird-label] { - font-family: var(--sendbird-font-family-default); } - -.sendbird-label--h-1 { - font-size: 20px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.4; - letter-spacing: -0.2px; } - -.sendbird-label--h-2 { - font-size: 18px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: normal; - letter-spacing: -0.2px; } - -.sendbird-label--subtitle-1 { - font-size: 16px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.38; - letter-spacing: -0.2px; } - -.sendbird-label--subtitle-2 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.14; - letter-spacing: -0.2px; } - -.sendbird-label--body-1 { - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--body-2 { - font-size: 12px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.33; - letter-spacing: normal; } - -.sendbird-label--button-1 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--button-2 { - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--caption-1 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--caption-2 { - font-size: 12px; - font-weight: bold; - font-style: normal; - line-height: 1; - letter-spacing: normal; } - -.sendbird-label--caption-3 { - font-size: 12px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1; - letter-spacing: normal; } - -.sendbird-theme--light .sendbird-label--color-onbackground-1 { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-1 { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-label--color-onbackground-2 { - color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-2 { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-label--color-onbackground-3 { - color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-3 { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-label--color-oncontent-1 { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-1 { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-label--color-oncontent-2 { - color: var(--sendbird-light-ondark-02); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-2 { - color: var(--sendbird-dark-onlight-02); } - -.sendbird-theme--light .sendbird-label--color-primary { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-label--color-primary { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-label--color-error { - color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-label--color-error { - color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-label--color-secondary-3 { - color: var(--sendbird-light-secondary-300); } - -.sendbird-theme--dark .sendbird-label--color-secondary-3 { - color: var(--sendbird-dark-secondary-200); } - -.sendbird-icon { - display: inline-block; } - .sendbird-icon:focus { - outline: none; } - -.sendbird-theme--light .sendbird-color--primary [class*='fill'] { - fill: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary [class*='fill'] { - fill: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--primary [class*='stroke'] { - stroke: var(--sendbird-light-primary-300); - stroke-width: 2px; - stroke-linejoin: round; } - -.sendbird-theme--dark .sendbird-color--primary [class*='stroke'] { - stroke: var(--sendbird-dark-primary-200); - stroke-width: 2px; - stroke-linejoin: round; } - -.sendbird-theme--light .sendbird-color--secondary [class*='fill'] { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--secondary [class*='fill'] { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--content [class*='fill'] { - fill: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--content [class*='fill'] { - fill: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--content-inverse [class*='fill'] { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--content-inverse [class*='fill'] { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-color--white [class*='fill'] { - fill: #ffffff; } - -.sendbird-theme--light .sendbird-color--sent [class*='fill'] { - fill: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--sent [class*='fill'] { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--read [class*='fill'] { - fill: var(--sendbird-light-secondary-300); } - -.sendbird-theme--dark .sendbird-color--read [class*='fill'] { - fill: var(--sendbird-dark-secondary-200); } - -.sendbird-theme--light .sendbird-color--on-background-2 [class*='fill'] { - fill: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-color--on-background-2 [class*='fill'] { - fill: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-color--on-background-3 [class*='fill'] { - fill: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--on-background-3 [class*='fill'] { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--background-3 [class*='fill'] { - fill: var(--sendbird-light-background-300); } - -.sendbird-theme--dark .sendbird-color--background-3 [class*='fill'] { - fill: var(--sendbird-dark-background-400); } - -.sendbird-textbutton { - text-decoration: underline; - cursor: pointer; } - -.sendbird-textbutton--not-underline { - text-decoration: none; - cursor: pointer; } - -.sendbird-textbutton--disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-textbutton--disabled { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-textbutton--disabled { - color: var(--sendbird-dark-ondark-03); } - -.sendbird__offline .sendbird-dropdown__menu .sendbird-dropdown__menu-item { - cursor: not-allowed; } - -.sendbird-dropdown__menu { - z-index: 99999; - position: absolute; - top: 100%; - left: 0; - min-width: 140px; - margin: 0px; - padding: 8px 0px; - border-radius: 4px; - list-style: none; } - .sendbird-theme--light .sendbird-dropdown__menu { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-dropdown__menu { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird-dropdown__menu .sendbird-dropdown__menu-item { - cursor: pointer; - white-space: nowrap; - padding: 8px 16px; } - .sendbird-theme--light .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-dropdown__reaction-bar { - position: absolute; - top: 100%; - left: 0; - min-width: 44px; - max-width: 352px; - max-height: 208px; - overflow-y: scroll; - margin: 0px; - padding: 8px; - border-radius: 8px; - list-style: none; } - .sendbird-theme--light .sendbird-dropdown__reaction-bar { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-dropdown__reaction-bar { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button, .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button--selected { - margin: 4px; } - -.sendbird-dropdown__menu-backdrop { - background-color: transparent; - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; } - -.sendbird-reactions--pressed { - display: block !important; } - -.sendbird-icon--pressed { - display: block !important; } - -.sendbird-message-input { - display: inline-block; - width: 100%; - position: relative; } - .sendbird-message-input .sendbird-message-input--textarea { - width: 100%; - border-radius: 4px; - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - height: 56px; - overflow-y: hidden; - letter-spacing: normal; - padding: 18px 64px 18px 16px; - box-sizing: border-box; - resize: none; - font-family: var(--sendbird-font-family-default); - background-color: inherit; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea { - color: var(--sendbird-light-onlight-01); - caret-color: var(--sendbird-light-primary-300); - border: solid 1px var(--sendbird-light-onlight-03); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea { - color: var(--sendbird-dark-ondark-01); - caret-color: var(--sendbird-dark-primary-200); - border: solid 1px var(--sendbird-dark-ondark-03); - background-color: var(--sendbird-dark-background-500); } - .sendbird-message-input .sendbird-message-input--textarea:focus { - outline: none; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:focus { - color: var(--sendbird-light-onlight-01); - border: solid 1px var(--sendbird-light-primary-300); - box-shadow: var(--sendbird-light-shadow-message-input); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:focus { - color: var(--sendbird-dark-ondark-01); - border: solid 1px var(--sendbird-dark-primary-200); - box-shadow: var(--sendbird-dark-shadow-message-input); } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:active { - border: solid 1px var(--sendbird-message-input-border-active); - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:active { - border: solid 1px var(--sendbird-message-input-border-active); - color: var(--sendbird-dark-ondark-01); } - .sendbird-message-input .sendbird-message-input--placeholder { - position: absolute; - pointer-events: none; - top: 18px; - left: 16px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - line-height: 1.43; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--placeholder { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--placeholder { - color: var(--sendbird-dark-ondark-03); } - .sendbird-message-input .sendbird-message-input--attach { - position: absolute; - right: 12px; - bottom: 18px; - padding: 6px; } - .sendbird-message-input .sendbird-message-input--send { - position: absolute; - padding: 6px; - right: 16px; - bottom: 16px; } - .sendbird-message-input .sendbird-message-input--attach-input { - display: none; } - -.sendbird-message-input__edit { - padding: 16px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-message-input__edit { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-message-input__edit { - background-color: var(--sendbird-dark-background-700); } - -.sendbird-message-input--edit-action { - text-align: right; - margin-top: 4px; } - .sendbird-message-input--edit-action button:last-child { - margin-left: 8px; } - .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - width: 80px; } - .sendbird-theme--light .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - border: solid 1px var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - border: solid 1px var(--sendbird-dark-ondark-03); } - .sendbird-message-input--edit-action .sendbird-message-input--edit-action__save { - width: 80px; } - -.sendbird-message-input-form__disabled { - cursor: not-allowed; } - -.sendbird-message-input__disabled { - pointer-events: none; - cursor: disabled; } - .sendbird-theme--light .sendbird-message-input__disabled .sendbird-message-input--textarea { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-message-input__disabled .sendbird-message-input--textarea { - background-color: var(--sendbird-dark-background-500); } - .sendbird-theme--light .sendbird-message-input__disabled svg { - fill: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input__disabled svg { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-image-renderer--hidden-placeholder { - display: none; } - -.sendbird-separator { - width: 100%; - display: flex; - align-items: center; } - .sendbird-separator .sendbird-separator__left { - border: none; - height: 1px; - display: inline-block; - width: 100%; } - .sendbird-separator .sendbird-separator__right { - border: none; - height: 1px; - display: inline-block; - width: 100%; } - .sendbird-separator .sendbird-separator__text { - margin: 0px 16px; - display: flex; - white-space: nowrap; } - -.sendbird-modal { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; } - -.sendbird-modal-content { - width: 480px; - border-radius: 4px; - z-index: 10001; - padding: 18px 24px 24px 24px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-modal-content { - background-color: var(--sendbird-light-background-50); - box-shadow: var(--sendbird-light-shadow-04); } - .sendbird-theme--dark .sendbird-modal-content { - background-color: var(--sendbird-dark-background-500); - box-shadow: var(--sendbird-dark-shadow-04); } - .sendbird-modal-content .sendbird-modal-close { - position: absolute; - top: 16px; - right: 16px; - cursor: pointer; } - .sendbird-theme--light .sendbird-modal-content .sendbird-modal-close path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-modal-content .sendbird-modal-close path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-modal-content .sendbird-modal-header { - margin-bottom: 16px; } - .sendbird-modal-content .sendbird-modal-footer { - margin-top: 32px; - text-align: right; } - .sendbird-modal-content .sendbird-modal-footer .sendbird-button:last-child { - margin-left: 8px; - width: 80px; - height: 40px; } - -.sendbird-modal-backdrop { - position: fixed; - z-index: 10000; - height: 100%; - width: 100%; - top: 0; - left: 0; } - .sendbird-theme--light .sendbird-modal-backdrop { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-modal-backdrop { - background-color: var(--sendbird-dark-overlay); } - -.sendbird-fileviewer { - width: 100%; - height: 100%; - position: fixed; - top: 0; - left: 0; - z-index: 100000; } - .sendbird-theme--light .sendbird-fileviewer { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-fileviewer { - background-color: var(--sendbird-dark-background-600); } - -.sendbird-fileviewer__header { - height: 64px; - min-height: 64px; - box-sizing: border-box; - display: flex; - justify-content: space-between; } - .sendbird-theme--light .sendbird-fileviewer__header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-fileviewer__header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-fileviewer__header .sendbird-fileviewer__header-left { - padding: 16px 0px 16px 20px; - display: flex; - flex: 1; } - .sendbird-fileviewer__header .sendbird-fileviewer__header-right { - display: flex; - width: 160px; - justify-content: flex-end; } - .sendbird-fileviewer__header .sendbird-fileviewer__header-download, - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete, - .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - width: 64px; - padding: 21px; - box-sizing: border-box; - cursor: pointer; } - .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--light - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--light - .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--dark - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--dark - .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - border-left: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - border-left: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-fileviewer__header-avatar { - margin-right: 8px; } - -.sendbird-fileviewer__header-actions { - right: 0; - display: flex; - flex-direction: row; } - -.sendbird-fileviewer__header-filename { - max-width: 500px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - padding-top: 2px; } - -.sendbird-fileviewer__header-sendername { - max-width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - margin-left: 8px; - padding-top: 5px; } - -.sendbird-fileviewer__content { - height: calc(100% - 72px); - margin-top: 8px; - overflow-y: auto; - display: flex; - align-items: center; - justify-content: center; } - .sendbird-fileviewer__content .sendbird-fileviewer__video { - max-width: 100%; - max-height: 100%; } - .sendbird-fileviewer__content .sendbird-fileviewer__img { - max-width: 90%; - max-height: 90%; } - .sendbird-fileviewer__content .sendbird-fileviewer__unsupported { - max-width: 100%; - max-height: 100%; - display: flex; - justify-content: center; - align-items: center; } - -.sendbird-input { - display: inline-block; - width: 100%; - height: 40px; - position: relative; } - .sendbird-input .sendbird-input--input { - width: 100%; - height: 100%; - border-radius: 4px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; - padding: 10px 16px; - box-sizing: border-box; - background-color: inherit; } - .sendbird-theme--light .sendbird-input .sendbird-input--input { - color: var(--sendbird-light-onlight-01); - caret-color: var(--sendbird-light-primary-300); - border: solid 1px var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input { - color: var(--sendbird-dark-ondark-01); - caret-color: var(--sendbird-dark-primary-200); - border: solid 1px var(--sendbird-dark-ondark-03); } - .sendbird-input .sendbird-input--input:focus { - outline: none; } - .sendbird-theme--light .sendbird-input .sendbird-input--input:focus { - box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-light-onlight-01); - border: solid 2px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:focus { - box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-dark-ondark-01); - border: solid 2px var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-input .sendbird-input--input:active { - box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-light-onlight-01); - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:active { - box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-dark-ondark-01); - border: solid 1px var(--sendbird-dark-primary-200); } - .sendbird-input .sendbird-input--input:disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-input .sendbird-input--input:disabled { - background-color: var(--sendbird-light-background-100); - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:disabled { - background-color: var(--sendbird-dark-background-500); - color: var(--sendbird-dark-ondark-03); } - .sendbird-input .sendbird-input--placeholder { - position: absolute; - pointer-events: none; - top: 10px; - left: 16px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - line-height: 1.43; } - .sendbird-theme--light .sendbird-input .sendbird-input--placeholder { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--placeholder { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-input-label { - margin: 4px 0; } - -.sendbird-user-list-item { - display: block; - position: relative; - box-sizing: border-box; - width: 432px; - height: 56px; } - .sendbird-theme--light .sendbird-user-list-item { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-user-list-item { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-list-item__avatar { - position: absolute; - top: 8px; - left: 0px; - z-index: 1; - cursor: pointer; } - .sendbird-user-list-item .sendbird-muted-avatar { - position: absolute; - top: 8px; - left: 0px; - z-index: 2; - pointer-events: none; } - .sendbird-user-list-item__title { - position: absolute; - top: 17px; - left: 56px; - max-width: 280px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item__subtitle { - position: absolute; - top: 23px; - left: 140px; - max-width: 237px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item__checkbox { - position: absolute; - top: 16px; - right: 16px; } - .sendbird-user-list-item__action { - position: absolute; - right: 0; - top: 10px; } - .sendbird-user-list-item__operator { - position: absolute; - right: 40px; - top: 22px; } - -.sendbird__offline .sendbird-channel-preview { - cursor: not-allowed; } - -.sendbird-channel-preview { - position: relative; - cursor: pointer; - box-sizing: border-box; - width: 320px; - height: 80px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - padding: 12px 16px 12px 16px; } - .sendbird-theme--light .sendbird-channel-preview { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-preview { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-channel-preview .sendbird-channel-preview__frozen-icon { - padding-left: 4px; } - .sendbird-channel-preview .sendbird-channel-preview__broadcast-icon { - padding-right: 4px; } - .sendbird-channel-preview:focus { - outline: none; } - .sendbird-channel-preview .sendbird-channel-preview__avatar { - width: 56px; - height: 56px; } - .sendbird-channel-preview .sendbird-channel-preview__content { - width: 100%; - height: 100%; - margin-left: 16px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper { - display: flex; - justify-content: space-between; - width: 216px; - height: 16px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header { - display: flex; - justify-content: flex-start; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__channel-name { - overflow: hidden; - text-overflow: ellipsis; - max-width: 128px; - word-break: break-all; - white-space: nowrap; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__total-members { - margin-top: 2px; - margin-left: 4px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__last-message-at { - margin-left: 4px; - margin-bottom: 4px; - white-space: nowrap; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower { - margin-top: 8px; - width: 216px; - height: 32px; - display: flex; - justify-content: space-between; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__last-message { - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__unread-message-count { - margin-left: 8px; - margin-bottom: 12px; } - .sendbird-channel-preview .sendbird-channel-preview__action { - position: absolute; - top: 12px; - right: 12px; - display: inline-block; } - .sendbird-channel-preview .sendbird-channel-preview__action .sendbird-iconbutton { - display: none; } - .sendbird-theme--light .sendbird-channel-preview:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-channel-preview:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-channel-preview:hover .sendbird-channel-preview__action .sendbird-iconbutton { - display: inline-block; } - .sendbird-channel-preview:hover .sendbird-channel-preview__content__upper__last-message-at { - display: none; } - .sendbird-channel-preview:hover .sendbird-channel-preview__content__lower__unread-message-count { - display: none; } - -.sendbird-channel-preview--active { - padding: 12px 16px 12px 12px; } - .sendbird-theme--light .sendbird-channel-preview--active { - border-left: solid 4px var(--sendbird-light-primary-300); - border-bottom: solid 1px var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-channel-preview--active { - border-left: solid 4px var(--sendbird-dark-primary-200); - border-bottom: solid 1px var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-700); } - .sendbird-theme--light .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { - color: var(--sendbird-dark-primary-200); } - -.sendbird-link-label { - text-decoration: unset; } - .sendbird-link-label:hover { - cursor: pointer; - text-decoration: underline; } - .sendbird-link-label:focus { - outline: none; } - .sendbird-link-label__label { - display: inline; } - -.sendbird-theme--light .sendbird-label--color-onbackground-1 { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-1 { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-label--color-onbackground-2 { - color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-2 { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-label--color-onbackground-3 { - color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-3 { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-label--color-oncontent-1 { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-1 { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-label--color-oncontent-2 { - color: var(--sendbird-light-ondark-02); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-2 { - color: var(--sendbird-dark-onlight-02); } - -.sendbird-theme--light .sendbird-label--color-primary { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-label--color-primary { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-label--color-error { - color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-label--color-error { - color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-label--color-secondary-3 { - color: var(--sendbird-light-secondary-300); } - -.sendbird-theme--dark .sendbird-label--color-secondary-3 { - color: var(--sendbird-dark-secondary-200); } - -.sendbird-add-channel__rectangle-wrap { - margin-top: 26px; } - -.sendbird-add-channel__rectangle-footer { - text-align: right; - margin-top: 32px; } - -.sendbird-add-channel__rectangle { - width: 432px; - height: 72px; - border-radius: 4px; - margin-bottom: 8px; - padding: 25px 72px; - position: relative; - box-sizing: border-box; - cursor: pointer; } - .sendbird-theme--light .sendbird-add-channel__rectangle { - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-add-channel__rectangle { - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-add-channel__rectangle .sendbird-icon { - position: absolute; - left: 22px; - top: 24px; } - -.sendbird-channel-header { - position: relative; - height: 64px; - min-height: 64px; - width: 320px; - padding: 8px 64px 8px 8px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-channel-header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-channel-header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-channel-header.sendbird-channel-header--allow-edit .sendbird-channel-header__title { - cursor: pointer; } - .sendbird-channel-header .sendbird-channel-header__title { - display: flex; - flex-direction: row; - width: 260px; - height: 48px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:hover { - background: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:hover { - background: var(--sendbird-dark-background-500); } - .sendbird-channel-header .sendbird-channel-header__title:focus { - outline: none; } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:focus { - background: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:focus { - background: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:active { - border: solid 2px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:active { - border: solid 2px var(--sendbird-dark-primary-200); } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--left { - width: 48px; - padding: 8px; - box-sizing: border-box; } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--right { - margin-left: 4px; - padding-top: 8px; } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--name, - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--user-id { - display: block; - max-width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-header .sendbird-channel-header__right-icon { - position: absolute; - right: 16px; - top: 16px; } - -.sendbird-conversation__messages .sendbird-conversation__messages-padding { - padding-left: 24px; - padding-right: 24px; } - -.sendbird-conversation__messages .sendbird-separator, -.sendbird-conversation__messages .sendbird-admin-message { - padding-top: 8px; - padding-bottom: 8px; } - -.sendbird-conversation__connection-status { - display: flex; - align-items: center; - padding-top: 5px; } - -.sendbird-badge { - height: 20px; - min-width: 20px; - border-radius: 10px; - display: inline-block; } - .sendbird-theme--light .sendbird-badge { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-badge { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-badge .sendbird-badge__text { - margin: 0px 6px; } - -.sendbird-chat-header { - position: relative; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - height: 64px; - min-height: 64px; - padding-left: 20px; - padding-right: 16px; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-theme--light .sendbird-chat-header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-chat-header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-chat-header__left { - margin-right: 24px; } - .sendbird-chat-header__left, .sendbird-chat-header__right { - overflow: hidden; - display: flex; - flex-direction: row; - align-items: center; } - .sendbird-chat-header .sendbird-chat-header__title { - margin-left: 8px; - margin-right: 16px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - max-width: 780px; } - .sendbird-chat-header .sendbird-chat-header__subtitle { - max-width: 240px; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-chat-header .sendbird-chat-header__active { - margin-right: 4px; - width: 8px; - height: 8px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-chat-header .sendbird-chat-header__active { - background-color: var(--sendbird-light-secondary-300); } - .sendbird-theme--dark .sendbird-chat-header .sendbird-chat-header__active { - background-color: var(--sendbird-dark-secondary-200); } - .sendbird-chat-header .sendbird-chat-header__mute { - margin-right: 26px; } - .sendbird-chat-header .sendbird-iconbutton--pressed { - background-color: inherit; } - -.sendbird-channel-profile { - position: relative; - text-align: center; - padding: 32px 40px 27px 40px; } - .sendbird-theme--light .sendbird-channel-profile { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-channel-profile { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-channel-profile .sendbird-channel-profile--inner { - height: 92px; } - .sendbird-channel-profile .sendbird-channel-profile__avatar { - margin-bottom: 16px; - text-align: center; } - .sendbird-channel-profile .sendbird-channel-profile__title { - max-width: 240px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; - height: 18px; } - .sendbird-channel-profile .sendbird-channel-profile__edit { - position: absolute; - top: 10px; - right: 16px; } - -.channel-profile-form .channel-profile-form__img-section { - position: relative; } - -.channel-profile-form .channel-profile-form__avatar-button { - position: absolute; - top: 54px; - left: 96px; } - -.channel-profile-form .channel-profile-form__avatar { - margin-top: 16px; } - -.channel-profile-form .channel-profile-form__name-section { - margin-top: 12px; } - .channel-profile-form .channel-profile-form__name-section .sendbird-input { - height: 40px; } - -.sendbird-loader { - display: inline-block; - -webkit-animation: 1s infinite linear; - animation: 1s infinite linear; - -webkit-animation-name: rotate; - animation-name: rotate; } - -@-webkit-keyframes rotate { - from { - transform: rotate(0); } - to { - transform: rotate(360deg); } } - -@keyframes rotate { - from { - transform: rotate(0); } - to { - transform: rotate(360deg); } } - -.sendbird-button { - display: inline-block; - box-shadow: none; - border-radius: 4px; - padding: 0px; - font-family: var(--sendbird-font-family-default); - cursor: pointer; } - .sendbird-button:hover { - box-shadow: none; } - .sendbird-button:focus { - outline: none; } - .sendbird-button:active { - box-shadow: none; } - .sendbird-button.sendbird-button__disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-button.sendbird-button__disabled { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button.sendbird-button__disabled { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button.sendbird-button__disabled:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button.sendbird-button__disabled:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-button--big { - height: 40px; } - .sendbird-button--big .sendbird-button__text { - margin: 10px 16px; } - -.sendbird-button--small { - height: 32px; } - .sendbird-button--small .sendbird-button__text { - margin: 6px 16px; } - -.sendbird-theme--light .sendbird-button--primary { - border: 1px solid var(--sendbird-light-primary-300); - background-color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-button--primary { - border: 1px solid var(--sendbird-dark-primary-200); - background-color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-button--primary .sendbird-button__text { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-button--primary .sendbird-button__text { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-button--primary:hover { - background-color: var(--sendbird-light-primary-400); - border-color: var(--sendbird-light-primary-400); } - -.sendbird-theme--dark .sendbird-button--primary:hover { - background-color: var(--sendbird-dark-primary-300); - border-color: var(--sendbird-dark-primary-300); } - -.sendbird-theme--light .sendbird-button--primary:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); - border: 1px solid var(--sendbird-button-border-focus); } - -.sendbird-theme--dark .sendbird-button--primary:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); - border: 1px solid var(--sendbird-button-border-focus); } - -.sendbird-theme--light .sendbird-button--primary:active { - background-color: var(--sendbird-light-primary-500); } - -.sendbird-theme--dark .sendbird-button--primary:active { - background-color: var(--sendbird-dark-primary-400); } - -.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:hover { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-400); } - -.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:hover { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-300); } - -.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:active { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-500); } - -.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:active { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-400); } - -.sendbird-button--secondary { - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary { - border: 1px solid var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-button--secondary { - border: 1px solid var(--sendbird-dark-ondark-03); } - .sendbird-theme--light .sendbird-button--secondary .sendbird-button__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-button--secondary .sendbird-button__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-button--secondary:hover { - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary:hover { - border: 1px solid var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover { - border: 1px solid var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - .sendbird-button--secondary.sendbird-button__disabled { - cursor: not-allowed; - border: none; } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { - color: var(--sendbird-dark-ondark-02); } - .sendbird-button--secondary.sendbird-button__disabled:hover { - border: none; } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { - color: var(--sendbird-dark-ondark-02); } - .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - .sendbird-button--secondary:focus { - border: 1px solid transparent; - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary:focus { - box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } - .sendbird-theme--dark .sendbird-button--secondary:focus { - box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } - .sendbird-theme--light .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-button--secondary:active { - box-shadow: none; } - .sendbird-theme--light .sendbird-button--secondary:active { - border: 1px solid var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:active { - border: 1px solid var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-button--secondary:active .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:active .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-button--danger { - border: 1px solid var(--sendbird-light-error-300); - background-color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-button--danger { - border: 1px solid var(--sendbird-dark-error-300); - background-color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-button--danger .sendbird-button__text { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-button--danger .sendbird-button__text { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-button--danger:hover { - background-color: var(--sendbird-light-error-400); - border-color: var(--sendbird-light-error-400); } - -.sendbird-theme--dark .sendbird-button--danger:hover { - background-color: var(--sendbird-dark-error-400); - border-color: var(--sendbird-dark-error-400); } - -.sendbird-theme--light .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-300); - border-color: var(--sendbird-button-border-focus); } - -.sendbird-theme--dark .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-300); - border-color: var(--sendbird-button-border-focus); } - -.sendbird-button--danger:active { - box-shadow: none; } - .sendbird-theme--light .sendbird-button--danger:active { - background-color: var(--sendbird-light-error-500); } - .sendbird-theme--dark .sendbird-button--danger:active { - background-color: var(--sendbird-dark-error-500); } - -.sendbird-theme--light .sendbird-button--danger:hover .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-400); } - -.sendbird-theme--dark .sendbird-button--danger:hover .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-400); } - -.sendbird-theme--light .sendbird-button--danger:active .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-500); } - -.sendbird-theme--dark .sendbird-button--danger:active .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-500); } - -.sendbird-button--disabled { - border: 1px solid transparent; - cursor: not-allowed; } - .sendbird-theme--light .sendbird-button--disabled { - background-color: var(--sendbird-light-background-200); - color: var(--sendbird-light-ondark-01); } - .sendbird-theme--dark .sendbird-button--disabled { - background-color: var(--sendbird-dark-background-400); - color: var(--sendbird-dark-onlight-01); } - -.sendbird-members-accordion { - padding: 8px 16px 16px 16px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-members-accordion { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-members-accordion { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-members-accordion .sendbird-members-accordion__member { - position: relative; - padding: 12px 0px 12px 44px; - height: 40px; - box-sizing: border-box; } - .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label { - max-width: 240px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-members-accordion .sendbird-members-accordion__member-avatar { - position: absolute; - left: 0; - top: 10px; - cursor: pointer; } - .sendbird-members-accordion .sendbird-members-accordion__footer { - display: flex; - justify-content: flex-start; - margin-top: 8px; } - .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members { - margin-right: 16px; } - -.sendbird-more-members__popup-scroll { - max-height: 420px; - overflow-y: auto; } - -.sendbird-create-channel--content { - width: 480px; - max-height: 552px; } - -.sendbird-create-channel--scroll { - height: 360px; - overflow-y: auto; } - -.sendbird-reaction-button { - border-radius: 8px; - display: inline-block; - border: solid 1px transparent; - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-button:hover { - border: solid 1px var(--sendbird-light-background-100); - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-button:hover { - border: solid 1px var(--sendbird-dark-background-400); - background-color: var(--sendbird-dark-background-400); } - .sendbird-reaction-button__inner { - margin: 3px; } - -.sendbird-reaction-button--selected { - cursor: pointer; - border-radius: 8px; - display: inline-block; } - .sendbird-theme--light .sendbird-reaction-button--selected { - border: solid 1px var(--sendbird-light-primary-100); - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-reaction-button--selected { - border: solid 1px var(--sendbird-dark-primary-400); - background-color: var(--sendbird-dark-primary-400); } - .sendbird-reaction-button--selected:hover { - border: solid 1px var(--sendbird-selected-reaction-button-border-hover); } - .sendbird-reaction-button--selected__inner { - margin: 3px; } - .sendbird-reaction-button--selected.sendbird-reactions--pressed { - display: block !important; } - -.sendbird-sort-by-row { - display: flex; - justify-content: flex-start; - align-items: center; } - -.sendbird-checkbox { - display: block; - position: relative; - padding-left: 35px; - margin-bottom: 12px; - cursor: pointer; - font-size: 22px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.sendbird-checkbox input { - position: absolute; - opacity: 0; - cursor: pointer; - height: 0; - width: 0; } - -.sendbird-checkbox--checkmark { - position: absolute; - top: 0; - left: 0; - height: 18px; - width: 18px; - border-radius: 2px; - background-color: inherit; } - .sendbird-theme--light .sendbird-checkbox--checkmark { - border: 2px solid var(--sendbird-light-background-400); } - .sendbird-theme--dark .sendbird-checkbox--checkmark { - border: 2px solid var(--sendbird-dark-background-300); } - -.sendbird-theme--light .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { - background-color: var(--sendbird-light-primary-300); - border: 2px solid var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { - background-color: var(--sendbird-dark-primary-200); - border: 2px solid var(--sendbird-dark-primary-200); } - -.sendbird-checkbox--checkmark:after { - content: ""; - position: absolute; - display: none; } - -.sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark:after { - display: block; } - -.sendbird-theme--light .sendbird-checkbox .sendbird-checkbox--checkmark:after { - left: 5px; - top: -0.5px; - width: 7px; - height: 12px; - border: solid var(--sendbird-light-background-50); - border-width: 0 2px 2px 0; - transform: rotate(45deg); } - -.sendbird-theme--dark .sendbird-checkbox .sendbird-checkbox--checkmark:after { - left: 5px; - top: -0.5px; - width: 7px; - height: 12px; - border: solid var(--sendbird-dark-background-600); - border-width: 0 2px 2px 0; - transform: rotate(45deg); } - -.sendbird-theme--light .sendbird-color--onbackground-1 { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--onbackground-1 { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--onbackground-1--background-color { - background-color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--onbackground-1--background-color { - background-color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--onbackground-2 { - color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-color--onbackground-2 { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-color--onbackground-2--background-color { - background-color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-color--onbackground-2--background-color { - background-color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-color--onbackground-3 { - color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--onbackground-3 { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--onbackground-3--background-color { - background-color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--onbackground-3--background-color { - background-color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--onbackground-4 { - color: var(--sendbird-light-onlight-04); } - -.sendbird-theme--dark .sendbird-color--onbackground-4 { - color: var(--sendbird-dark-ondark-04); } - -.sendbird-theme--light .sendbird-color--onbackground-4--background-color { - background-color: var(--sendbird-light-onlight-04); } - -.sendbird-theme--dark .sendbird-color--onbackground-4--background-color { - background-color: var(--sendbird-dark-ondark-04); } - -.sendbird-theme--light .sendbird-color--oncontent-1 { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--oncontent-1 { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--oncontent-1--background-color { - background-color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--oncontent-1--background-color { - background-color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--primary { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--primary--background-color { - background-color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary--background-color { - background-color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--error { - color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-color--error { - color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-color--error--background-color { - background-color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-color--error--background-color { - background-color: var(--sendbird-dark-error-300); } - -.sendbird-message { - position: relative; - line-height: 0; } - .sendbird-message--outgoing { - text-align: right; } - .sendbird-message--incoming { - text-align: left; } - -.sendbird-user-message--copy { - cursor: pointer !important; } - -.sendbird-user-message--outgoing { - position: relative; - right: 0px; - display: inline-block; - max-width: 496px; - text-align: right; } - .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-user-message--outgoing:hover .sendbird-user-message__left-padding .sendbird-user-message__more { - display: block; } - .sendbird-user-message--outgoing .sendbird-user-message--inner { - display: flex; - flex-direction: row; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding { - position: relative; - width: 68px; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more { - display: none; - position: absolute; - right: 4px; - top: 2px; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more[class*='--pressed'] { - display: block !important; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__status { - position: absolute; - bottom: 2px; - right: 4px; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; - text-align: left; } - .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { - display: flex; - flex-direction: column; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { - padding: 8px 12px; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - display: inline; - white-space: pre-wrap; - overflow-wrap: normal; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - position: relative; - bottom: 0px; } - .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-300); } - -.sendbird-user-message--incoming { - position: relative; - left: 0px; - display: inline-block; - padding-left: 40px; - max-width: 536px; - text-align: left; } - .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__more { - display: block; } - .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__sent-at { - display: none; } - .sendbird-user-message--incoming .sendbird-user-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-user-message--incoming .sendbird-user-message--body { - display: flex; - flex-direction: column; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding { - position: relative; - width: 68px; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__sent-at { - position: absolute; - left: 4px; - bottom: 2px; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__more { - position: absolute; - display: none; - top: 18px; - left: 4px; } - .sendbird-user-message--incoming .sendbird-user-message__avatar { - position: absolute; - bottom: 4px; - left: -40px; - cursor: pointer; } - .sendbird-user-message--incoming .sendbird-user-message__sender-name { - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - margin-top: 4px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { - display: flex; - flex-direction: column; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { - padding: 8px 12px; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - display: inline; - white-space: pre-wrap; - overflow-wrap: normal; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - position: relative; - bottom: 0px; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - -.sendbird-user-message__text-balloon__inner__text-place__text { - word-break: break-word; - display: flex; - flex-direction: row; - flex-wrap: wrap; } - -.sendbird-user-message__text-balloon { - display: inline-block; } - -.sendbird-user-message-word { - display: inline; - margin: 0px 2px; } - -.sendbird-admin-message { - display: flex; - justify-content: center; - align-items: center; } - .sendbird-admin-message .sendbird-admin-message__text { - display: flex; } - -.sendbird-file-message--outgoing { - text-align: right; } - -.sendbird-file-message--incoming { - text-align: left; } - -.sendbird-file-message__outgoing { - position: relative; - right: 0px; - display: inline-block; - max-width: 496px; - text-align: right; - line-height: 0px; } - .sendbird-file-message__outgoing .sendbird-file-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__more { - display: block; } - .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__status { - display: none; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding { - position: relative; - width: 68px; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__more { - display: none; - position: absolute; - right: 4px; - top: 2px; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__status { - position: absolute; - text-align: right; - right: 4px; - bottom: 4px; } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - display: flex; - flex-direction: column; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { - display: flex; - flex: row; - padding: 8px 12px; - text-align: left; } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - border-radius: 10px; - margin-right: 8px; - background-color: var(--sendbird-file-message-icon-background); } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { - white-space: nowrap; - overflow-wrap: break-word; - margin: 4px 0px; - cursor: pointer; } - .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-300); } - -.sendbird-file-message__incoming { - position: relative; - left: 0px; - display: inline-block; - padding-left: 40px; - max-width: 536px; - text-align: left; - line-height: 0px; } - .sendbird-file-message__incoming .sendbird-file-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding { - position: relative; - width: 68px; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__more { - position: absolute; - display: none; - left: 4px; - top: 18px; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - .sendbird-file-message__incoming:hover .sendbird-file-message__right-padding .sendbird-file-message__more { - display: block; } - .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-file-message__incoming .sendbird-file-message__avatar { - position: absolute; - bottom: 2px; - left: -40px; - cursor: pointer; } - .sendbird-file-message__incoming .sendbird-file-message__sender-name { - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-file-message__incoming .sendbird-file-message__tooltip { - display: flex; - flex-direction: column; - margin-top: 4px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-background-500); } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { - display: flex; - flex-direction: row; - padding: 8px 12px; } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - border-radius: 10px; - margin-right: 8px; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - background-color: var(--sendbird-dark-background-600); } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { - white-space: nowrap; - overflow-wrap: normal; - margin: 4px 0px; - cursor: pointer; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - -.sendbird-unknown-message { - position: relative; - line-height: 0px; } - .sendbird-unknown-message--outgoing { - text-align: right; } - .sendbird-unknown-message--incoming { - text-align: left; } - -.sendbird-outgoing-unknown-message { - position: relative; - right: 0px; - display: inline-block; - text-align: right; - padding-left: 36px; - box-sizing: border-box; } - .sendbird-outgoing-unknown-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__more { - display: block; } - .sendbird-outgoing-unknown-message--left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__more { - display: none; - position: absolute; - top: 4px; - right: 4px; } - .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__message-status { - position: absolute; - text-align: right; - right: 4px; - bottom: 4px; } - .sendbird-outgoing-unknown-message__body { - display: flex; - flex-direction: column; } - .sendbird-outgoing-unknown-message__body__text-balloon { - box-sizing: border-box; - text-align: left; - border-radius: 16px; - padding: 8px 12px; - width: 198px; - height: 56px; } - .sendbird-theme--light .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - -.sendbird-incoming-unknown-message { - position: relative; - left: 0px; - display: flex; - flex-direction: row; - text-align: left; } - .sendbird-incoming-unknown-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-incoming-unknown-message__left { - width: 38px; } - .sendbird-incoming-unknown-message__left__sender-profile-image { - position: absolute; - bottom: 4px; } - .sendbird-incoming-unknown-message__body { - width: 198px; - display: flex; - flex-direction: column; } - .sendbird-incoming-unknown-message__body__sender-name { - margin-left: 10px; - margin-bottom: 4px; } - .sendbird-incoming-unknown-message__body__text-balloon { - width: 198px; - height: 56px; - border-radius: 16px; - text-align: left; - padding: 8px 12px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-unknown-message--right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-unknown-message--right-padding .sendbird-incoming-unknown-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - -.sendbird-message-status { - display: inline; - text-align: right; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again { - text-decoration: underline; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again:hover { - cursor: pointer; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete { - text-decoration: underline; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete:hover { - cursor: pointer; } - -.sendbird-emoji-reactions { - display: inline-block; - border-radius: 16px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - min-height: 24px; - padding: 7px 5px 3px 5px; } - .sendbird-theme--light .sendbird-emoji-reactions { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-emoji-reactions { - background-color: var(--sendbird-dark-background-600); } - .sendbird-emoji-reactions .sendbird-emoji-reactions--inner { - display: flex; - flex-wrap: wrap; } - .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction { - margin-left: 2px; - margin-right: 2px; - margin-bottom: 4px; } - .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction-add { - width: 36px; - height: 24px; } - .sendbird-emoji-reactions:focus { - outline: none; } - -.sendbird-tooltip { - position: relative; - display: inline-flex; - justify-content: center; - max-width: 200px; - border-radius: 8px; - padding: 8px 16px; - background-color: var(--sendbird-tooltip-background); } - .sendbird-tooltip::after { - content: ''; - position: absolute; - bottom: -4px; - width: 8px; - height: 8px; - transform: rotate(45deg); - background-color: var(--sendbird-tooltip-background); } - .sendbird-tooltip__text { - font-family: var(--sendbird-font-family-default); - font-size: 12px; - font-weight: bold; - font-stretch: normal; - font-style: normal; - line-height: 1.33; - letter-spacing: normal; - color: var(--sendbird-tooltip-text-color); } - -.sendbird-tooltip-wrapper { - position: relative; - display: inline-flex; } - .sendbird-tooltip-wrapper__hover-tooltip { - position: absolute; - display: inline-flex; - width: 200px; } - .sendbird-tooltip-wrapper__hover-tooltip__inner__tooltip-container { - position: relative; - display: inline-flex; } - -.sendbird-reaction-badge { - display: inline-block; - border-radius: 15px; - width: 50px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-badge { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-reaction-badge:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-badge:hover { - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-reaction-badge:hover { - border: solid 1px var(--sendbird-dark-primary-200); } - -.sendbird-reaction-badge--is-add { - display: inline-block; - border-radius: 15px; - width: 36px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge--is-add { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-badge--is-add { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-reaction-badge--is-add:hover { - cursor: pointer; - border: solid 1px var(--sendbird-add-reaction-button-border-hover); } - .sendbird-reaction-badge--is-add .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { - left: 8px; } - -.sendbird-reaction-badge--selected { - display: inline-block; - border-radius: 15px; - width: 50px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge--selected { - background-color: var(--sendbird-light-primary-100); - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-reaction-badge--selected { - background-color: var(--sendbird-dark-primary-400); - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-reaction-badge--selected:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-badge--selected:hover { - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-reaction-badge--selected:hover { - border: solid 1px var(--sendbird-dark-primary-200); } - -.sendbird-reaction-badge__inner { - position: relative; - display: flex; - height: 24px; - flex-direction: row; - align-items: center; - justify-content: center; - padding-left: 20px; - padding-right: 4px; } - .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { - position: absolute; - top: 2px; - left: 4px; } - .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__count { - margin-left: 4px; } - -.sendbird-thumbnail { - text-align: right; - position: relative; } - .sendbird-thumbnail .sendbird-thumbnail__body { - position: relative; - display: inline-block; } - .sendbird-thumbnail .sendbird-thumbnail__more { - display: none; - position: absolute; - top: 10px; } - .sendbird-thumbnail:hover .sendbird-thumbnail__more { - display: block; } - .sendbird-thumbnail .sendbird-thumbnail__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; - margin: 8px 0px; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-thumbnail .sendbird-thumbnail__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner { - cursor: pointer; } - .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0; - left: 0; - border-radius: 16px; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-thumbnail .sendbird-thumbnail__avatar { - position: absolute; - bottom: 30px; - left: 0px; } - .sendbird-thumbnail .sendbird-thumbnail__sender-name { - margin-left: 12px; } - .sendbird-thumbnail.sendbird-thumbnail--incoming { - text-align: left; - padding-left: 40px; - box-sizing: border-box; } - .sendbird-thumbnail .sendbird-thumbnail__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-thumbnail .sendbird-thumbnail__video, - .sendbird-thumbnail .sendbird-thumbnail__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - -.sendbird-outgoing-thumbnail-message { - position: relative; - text-align: right; - line-height: 0px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message--inner { - display: inline-flex; - flex-direction: row; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { - display: none; - position: absolute; - top: 4px; - right: 4px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__status { - position: absolute; - right: 4px; - bottom: 4px; } - .sendbird-outgoing-thumbnail-message:hover .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { - display: block; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body { - position: relative; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner { - cursor: pointer; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0; - left: 0; - border-radius: 16px; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video, - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - -.sendbird-incoming-thumbnail-message { - position: relative; - text-align: left; - padding-left: 40px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__sender-name { - position: relative; - box-sizing: border-box; - left: 12px; - height: 12px; - margin-bottom: 4px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__avatar { - position: absolute; - left: -40px; - bottom: 4px; - cursor: pointer; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message--inner { - display: flex; - flex-direction: row; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body { - position: relative; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner { - cursor: pointer; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0px; - left: 0px; - border-radius: 16px; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video, - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { - position: absolute; - left: 4px; - top: 4px; - display: none; } - .sendbird-incoming-thumbnail-message:hover .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { - display: block; } - -.sendbird-og-message { - position: relative; } - .sendbird-og-message--outgoing { - text-align: right; - line-height: 0px; } - .sendbird-og-message--incoming { - text-align: left; } - -.sendbird-outgoing-og-message { - position: relative; - right: 0px; - display: inline-block; - box-sizing: border-box; - text-align: right; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message__og-tag__url { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - display: inline-block; - width: 296px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-400); } - .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { - display: block; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { - display: none; - position: absolute; - top: 2px; - right: 4px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more[class*='--pressed'] { - display: block !important; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__message-status { - position: absolute; - right: 4px; - bottom: 4px; - text-align: right; } - .sendbird-outgoing-og-message__text-balloon { - box-sizing: border-box; - width: 320px; - padding: 8px 12px; - border-radius: 16px 16px 0px 0px; - word-break: break-all; - text-align: left; } - .sendbird-theme--light .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-outgoing-og-message__thumbnail--disabled:hover { - cursor: not-allowed !important; } - .sendbird-outgoing-og-message__thumbnail { - width: 320px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-outgoing-og-message__thumbnail { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__thumbnail { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__thumbnail__image__placeholder { - width: 320px; - height: 160px; - display: flex; - justify-content: center; - align-items: center; } - .sendbird-outgoing-og-message__thumbnail:hover { - cursor: pointer; } - .sendbird-outgoing-og-message__thumbnail:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag--disabled:hover { - cursor: not-allowed !important; } - .sendbird-outgoing-og-message__og-tag { - padding: 8px 12px 12px 12px; - border-radius: 0px 0px 16px 16px; - text-align: left; - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__og-tag__title { - max-height: 150px; - overflow-y: hidden; - margin-bottom: 4px; } - .sendbird-outgoing-og-message__og-tag__description { - margin-bottom: 8px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-outgoing-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions--wrapper:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions { - margin: 8px -12px -12px -12px; - width: 320px; } - .sendbird-theme--light .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__og-tag__emoji-reactions:hover { - cursor: default; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag:hover { - cursor: pointer; } - .sendbird-outgoing-og-message__og-tag:focus { - outline: none; } - -.sendbird-og-message-word { - display: inline; - margin: 0px 2px; } - -.sendbird-incoming-og-message { - position: relative; - left: 0px; - display: inline-block; - box-sizing: border-box; - text-align: left; - padding-left: 40px; } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-400); } - .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { - display: block; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body { - position: relative; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__avatar { - position: absolute; - bottom: 4px; - left: -40px; - cursor: pointer; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__sender-name { - margin-left: 12px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - box-sizing: border-box; - max-width: 320px; - padding: 8px 12px; - border-radius: 16px 16px 0px 0px; - word-break: break-all; - text-align: left; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail--disabled:hover { - cursor: not-allowed !important; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail .sendbird-incoming-og-message__thumbnail__image__placeholder { - width: 320px; - height: 160px; - display: flex; - justify-content: center; - align-items: center; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:hover { - cursor: pointer; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag--disabled:hover { - cursor: not-allowed !important; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - padding: 8px 12px 12px 12px; - border-radius: 0px 0px 16px 16px; - text-align: left; - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__title { - max-height: 150px; - overflow-y: hidden; - margin-bottom: 4px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__description { - margin-bottom: 8px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__url .sendbird-incoming-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - display: inline-block; - width: 296px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - margin: 8px -12px -12px -12px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:hover { - cursor: default; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__sent-at { - position: absolute; - bottom: 4px; - left: 4px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { - position: absolute; - top: 18px; - left: 4px; - display: none; } - -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap"); -:root { - --sendbird-light-primary-500: #4d2aa6; - --sendbird-light-primary-400: #6440C4; - --sendbird-light-primary-300: #7B53EF; - --sendbird-light-primary-200: #9E8CF5; - --sendbird-light-primary-100: #E2DFFF; - --sendbird-light-secondary-500: #007A7A; - --sendbird-light-secondary-400: #189A8D; - --sendbird-light-secondary-300: #2EBA9F; - --sendbird-light-secondary-200: #6FD6BE; - --sendbird-light-secondary-100: #AEF2DC; - --sendbird-light-information-100: #b2d9ff; - --sendbird-light-error-500: #A30E2D; - --sendbird-light-error-400: #C11F41; - --sendbird-light-error-300: #E53157; - --sendbird-light-error-200: #FF6183; - --sendbird-light-error-100: #FFABBD; - --sendbird-light-background-700: #000000; - --sendbird-light-background-600: #161616; - --sendbird-light-background-500: #2C2C2C; - --sendbird-light-background-400: #393939; - --sendbird-light-background-300: #A8A8A8; - --sendbird-light-background-200: #D9D9D9; - --sendbird-light-background-100: #F0F0F0; - --sendbird-light-background-50: #FFFFFF; - --sendbird-light-overlay: rgba(0, 0, 0, 0.32); - --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88); - --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50); - --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38); - --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12); - --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88); - --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50); - --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38); - --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12); - --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - --sendbird-light-theme-surface-2: #EAEAEA; } - -:root { - --sendbird-dark-primary-500: #4d2aa6; - --sendbird-dark-primary-400: #6440C4; - --sendbird-dark-primary-300: #7B53EF; - --sendbird-dark-primary-200: #9E8CF5; - --sendbird-dark-primary-100: #E2DFFF; - --sendbird-dark-secondary-500: #007A7A; - --sendbird-dark-secondary-400: #189A8D; - --sendbird-dark-secondary-300: #2EBA9F; - --sendbird-dark-secondary-200: #6FD6BE; - --sendbird-dark-secondary-100: #AEF2DC; - --sendbird-dark-information-100: #b2d9ff; - --sendbird-dark-error-500: #A30E2D; - --sendbird-dark-error-400: #C11F41; - --sendbird-dark-error-300: #E53157; - --sendbird-dark-error-200: #FF6183; - --sendbird-dark-error-100: #FFABBD; - --sendbird-dark-background-700: #000000; - --sendbird-dark-background-600: #161616; - --sendbird-dark-background-500: #2C2C2C; - --sendbird-dark-background-400: #393939; - --sendbird-dark-background-300: #A8A8A8; - --sendbird-dark-background-200: #D9D9D9; - --sendbird-dark-background-100: #F0F0F0; - --sendbird-dark-background-50: #FFFFFF; - --sendbird-dark-overlay: rgba(0, 0, 0, 0.32); - --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88); - --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50); - --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38); - --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12); - --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88); - --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50); - --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38); - --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12); - --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } - -:root { - --sendbird-iconbutton-color: #825eeb; - --sendbird-message-input-border-active: #7B53EF; - --sendbird-selected-reaction-button-border-hover: #9E8CF5; - --sendbird-add-reaction-button-border-hover: #9E8CF5; - --sendbird-tooltip-background: #000000; - --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88); - --sendbird-button-border-focus: #FFFFFF; - --sendbird-file-message-icon-background: #FFFFFF; - --sendbird-font-family-default: 'Open Sans', sans-serif; - --sendbird-message-balloon-width: 404px; } - -/*# sourceMappingURL=SendbirdProvider.css.map */ \ No newline at end of file diff --git a/dist/esm/SendbirdProvider.css.map b/dist/esm/SendbirdProvider.css.map deleted file mode 100644 index ead2079..0000000 --- a/dist/esm/SendbirdProvider.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.scss","frozen-notification.scss","channel-profile.scss","openchannel-conversation-scroll.scss","notification.scss","muted-avatar-overlay.scss","user-list-item.scss","add-channel.scss","conversation-scroll.scss","members-accordion.scss","color.scss"],"names":[],"mappings":"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","file":"SendbirdProvider.css","sourcesContent":["@import url(\"https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap\");\n:root {\n --sendbird-light-primary-500: #4d2aa6;\n --sendbird-light-primary-400: #6440C4;\n --sendbird-light-primary-300: #7B53EF;\n --sendbird-light-primary-200: #9E8CF5;\n --sendbird-light-primary-100: #E2DFFF;\n --sendbird-light-secondary-500: #007A7A;\n --sendbird-light-secondary-400: #189A8D;\n --sendbird-light-secondary-300: #2EBA9F;\n --sendbird-light-secondary-200: #6FD6BE;\n --sendbird-light-secondary-100: #AEF2DC;\n --sendbird-light-information-100: #b2d9ff;\n --sendbird-light-error-500: #A30E2D;\n --sendbird-light-error-400: #C11F41;\n --sendbird-light-error-300: #E53157;\n --sendbird-light-error-200: #FF6183;\n --sendbird-light-error-100: #FFABBD;\n --sendbird-light-background-700: #000000;\n --sendbird-light-background-600: #161616;\n --sendbird-light-background-500: #2C2C2C;\n --sendbird-light-background-400: #393939;\n --sendbird-light-background-300: #A8A8A8;\n --sendbird-light-background-200: #D9D9D9;\n --sendbird-light-background-100: #F0F0F0;\n --sendbird-light-background-50: #FFFFFF;\n --sendbird-light-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-theme-surface-2: #EAEAEA; }\n\n:root {\n --sendbird-dark-primary-500: #4d2aa6;\n --sendbird-dark-primary-400: #6440C4;\n --sendbird-dark-primary-300: #7B53EF;\n --sendbird-dark-primary-200: #9E8CF5;\n --sendbird-dark-primary-100: #E2DFFF;\n --sendbird-dark-secondary-500: #007A7A;\n --sendbird-dark-secondary-400: #189A8D;\n --sendbird-dark-secondary-300: #2EBA9F;\n --sendbird-dark-secondary-200: #6FD6BE;\n --sendbird-dark-secondary-100: #AEF2DC;\n --sendbird-dark-information-100: #b2d9ff;\n --sendbird-dark-error-500: #A30E2D;\n --sendbird-dark-error-400: #C11F41;\n --sendbird-dark-error-300: #E53157;\n --sendbird-dark-error-200: #FF6183;\n --sendbird-dark-error-100: #FFABBD;\n --sendbird-dark-background-700: #000000;\n --sendbird-dark-background-600: #161616;\n --sendbird-dark-background-500: #2C2C2C;\n --sendbird-dark-background-400: #393939;\n --sendbird-dark-background-300: #A8A8A8;\n --sendbird-dark-background-200: #D9D9D9;\n --sendbird-dark-background-100: #F0F0F0;\n --sendbird-dark-background-50: #FFFFFF;\n --sendbird-dark-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }\n\n:root {\n --sendbird-iconbutton-color: #825eeb;\n --sendbird-message-input-border-active: #7B53EF;\n --sendbird-selected-reaction-button-border-hover: #9E8CF5;\n --sendbird-add-reaction-button-border-hover: #9E8CF5;\n --sendbird-tooltip-background: #000000;\n --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88);\n --sendbird-button-border-focus: #FFFFFF;\n --sendbird-file-message-icon-background: #FFFFFF;\n --sendbird-font-family-default: 'Open Sans', sans-serif;\n --sendbird-message-balloon-width: 404px; }\n",".sendbird-frozen-channel-notification {\n position: relative;\n margin-top: 8px;\n margin-right: 24px;\n margin-left: 24px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px; }\n .sendbird-theme--light .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-dark-information-100); }\n",".sendbird-channel-profile {\n position: relative;\n text-align: center;\n padding: 32px 40px 27px 40px; }\n .sendbird-theme--light .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-channel-profile .sendbird-channel-profile--inner {\n height: 92px; }\n .sendbird-channel-profile .sendbird-channel-profile__avatar {\n margin-bottom: 16px;\n text-align: center; }\n .sendbird-channel-profile .sendbird-channel-profile__title {\n max-width: 240px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 18px; }\n .sendbird-channel-profile .sendbird-channel-profile__edit {\n position: absolute;\n top: 10px;\n right: 16px; }\n\n.channel-profile-form .channel-profile-form__img-section {\n position: relative; }\n\n.channel-profile-form .channel-profile-form__avatar-button {\n position: absolute;\n top: 54px;\n left: 96px; }\n\n.channel-profile-form .channel-profile-form__avatar {\n margin-top: 16px; }\n\n.channel-profile-form .channel-profile-form__name-section {\n margin-top: 12px; }\n .channel-profile-form .channel-profile-form__name-section .sendbird-input {\n height: 40px; }\n",".sendbird-openchannel-conversation-scroll {\n position: relative;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container {\n position: absolute;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding {\n height: 8px; }\n",".sendbird-notification {\n margin-top: 8px;\n margin-left: 24px;\n margin-right: 24px;\n border-radius: 4px;\n padding: 0px 2px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center; }\n .sendbird-theme--light .sendbird-notification {\n background-color: var(--sendbird-light-primary-300); }\n .sendbird-theme--dark .sendbird-notification {\n background-color: var(--sendbird-dark-primary-200); }\n .sendbird-notification:hover {\n cursor: pointer; }\n .sendbird-theme--light .sendbird-notification:hover {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-notification:hover {\n background-color: var(--sendbird-dark-primary-300); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-dark-information-100); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-light-onlight-01); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-dark-onlight-01); }\n .sendbird-notification .sendbird-notification__text {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 8px; }\n",".sendbird-muted-avatar {\n border-radius: 50%;\n display: inline-block; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon {\n position: relative; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon {\n position: absolute;\n top: 4px;\n left: 4px; }\n .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n opacity: .5;\n position: absolute;\n border-radius: 50%;\n top: 0;\n left: 0; }\n .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-dark-primary-300); }\n",".sendbird-user-list-item--small {\n display: block;\n position: relative;\n box-sizing: border-box;\n height: 40px; }\n .sendbird-user-list-item--small__avatar {\n cursor: pointer;\n position: absolute;\n top: 10px;\n left: 12px; }\n .sendbird-user-list-item--small .sendbird-muted-avatar {\n position: absolute;\n top: 10px;\n left: 12px;\n z-index: 2;\n pointer-events: none; }\n .sendbird-user-list-item--small__title {\n position: absolute;\n top: 10px;\n left: 54px;\n width: 160px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__subtitle {\n position: absolute;\n top: 23px;\n left: 140px;\n max-width: 237px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__checkbox {\n position: absolute;\n top: 16px;\n right: 16px; }\n .sendbird-user-list-item--small__action {\n display: none;\n position: absolute;\n right: 10px;\n top: 4px; }\n .sendbird-user-list-item--small__operator {\n position: absolute;\n right: 24px;\n top: 10px; }\n .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-light-background-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-dark-background-500); }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action {\n display: block; }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator {\n display: none; }\n .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-light-primary-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-dark-background-700); }\n",".sendbird-add-channel__rectangle-wrap {\n margin-top: 26px; }\n\n.sendbird-add-channel__rectangle-footer {\n text-align: right;\n margin-top: 32px; }\n\n.sendbird-add-channel__rectangle {\n width: 432px;\n height: 72px;\n border-radius: 4px;\n margin-bottom: 8px;\n padding: 25px 72px;\n position: relative;\n box-sizing: border-box;\n cursor: pointer; }\n .sendbird-theme--light .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-light-onlight-04); }\n .sendbird-theme--dark .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-dark-ondark-04); }\n .sendbird-add-channel__rectangle .sendbird-icon {\n position: absolute;\n left: 22px;\n top: 24px; }\n",".sendbird-conversation__messages .sendbird-conversation__messages-padding {\n padding-left: 24px;\n padding-right: 24px; }\n\n.sendbird-conversation__messages .sendbird-separator,\n.sendbird-conversation__messages .sendbird-admin-message {\n padding-top: 8px;\n padding-bottom: 8px; }\n",".sendbird-members-accordion {\n padding: 8px 16px 16px 16px;\n position: relative;\n box-sizing: border-box; }\n .sendbird-theme--light .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-members-accordion .sendbird-members-accordion__member {\n position: relative;\n padding: 12px 0px 12px 44px;\n height: 40px;\n box-sizing: border-box; }\n .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label {\n max-width: 240px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-members-accordion .sendbird-members-accordion__member-avatar {\n position: absolute;\n left: 0;\n top: 10px;\n cursor: pointer; }\n .sendbird-members-accordion .sendbird-members-accordion__footer {\n display: flex;\n justify-content: flex-start;\n margin-top: 8px; }\n .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members {\n margin-right: 16px; }\n\n.sendbird-more-members__popup-scroll {\n max-height: 420px;\n overflow-y: auto; }\n",".sendbird-theme--light .sendbird-color--onbackground-1 {\n color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1 {\n color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2 {\n color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2 {\n color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3 {\n color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3 {\n color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4 {\n color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4 {\n color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1 {\n color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1 {\n color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--primary {\n color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary {\n color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--primary--background-color {\n background-color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary--background-color {\n background-color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--error {\n color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error {\n color: var(--sendbird-dark-error-300); }\n\n.sendbird-theme--light .sendbird-color--error--background-color {\n background-color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error--background-color {\n background-color: var(--sendbird-dark-error-300); }\n"]} \ No newline at end of file diff --git a/dist/esm/index-0c67ae90.js.map b/dist/esm/index-0c67ae90.js.map deleted file mode 100644 index f1208b3..0000000 --- a/dist/esm/index-0c67ae90.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-0c67ae90.js","sources":["../../../src/lib/UserProfileContext.jsx","../../../src/ui/ImageRenderer/index.jsx","../../../src/ui/Icon/type.js","../../../src/ui/Icon/index.jsx","../../../src/ui/Avatar/index.tsx","../../../src/ui/Label/types.js","../../../src/ui/Label/utils.js","../../../src/ui/Label/index.jsx","../../../src/ui/IconButton/index.jsx","../../../src/hooks/useModal/ModalRoot/index.jsx","../../../src/ui/Button/type.js","../../../src/ui/Button/utils.js","../../../src/ui/Button/index.jsx","../../../src/ui/Modal/index.jsx","../../../src/utils/color.js","../../../src/ui/TextButton/index.jsx","../../../src/ui/PlaceHolder/type.js","../../../src/lib/pubSub/topics.js","../../../src/lib/selectors.js","../../../src/ui/UserProfile/index.tsx","../../../src/ui/ContextMenu/items/MenuItems.jsx","../../../src/ui/SortByRow/index.jsx","../../../src/ui/ContextMenu/items/EmojiListItems.jsx","../../../src/ui/ContextMenu/index.jsx","../../../src/ui/Loader/index.jsx","../../../src/ui/PlaceHolder/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst UserProfileContext = React.createContext({\n disableUserProfile: true,\n isOpenChannel: false,\n renderUserProfile: null,\n});\n\nconst UserProfileProvider = (props) => {\n const { children, className } = props;\n return (\n \n
\n {children}\n
\n
\n );\n};\n\nUserProfileProvider.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n isOpenChannel: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n disableUserProfile: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n renderUserProfile: PropTypes.func,\n className: PropTypes.string,\n};\n\nUserProfileProvider.defaultProps = {\n className: null,\n isOpenChannel: false,\n disableUserProfile: false,\n renderUserProfile: null,\n};\n\nexport { UserProfileContext, UserProfileProvider };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\n/*\n ImageRenderer displays image with url or source\n it checks if the source exist with img tag first\n if it exists onLoad is called, if not onError is called\n and those properties switch img tag to real purposing element\n*/\n\nexport default function ImageRenderer({\n alt,\n url,\n width,\n height,\n className,\n defaultComponent,\n circle,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-image-renderer');\n const [realElement, setRealElement] = useState(null);\n useEffect(() => {\n setRealElement(null);\n }, [url]);\n return (\n realElement || (\n {\n setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent);\n }}\n onLoad={() => {\n setRealElement((\n \n ));\n }}\n />\n )\n );\n}\n\nImageRenderer.propTypes = {\n alt: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n defaultComponent: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n circle: PropTypes.bool,\n};\nImageRenderer.defaultProps = {\n alt: '',\n className: '',\n circle: false,\n defaultComponent: null,\n width: null,\n height: null,\n};\n","export default {\n ADD: 'ADD',\n ATTACH: 'ATTACH',\n ARROW_LEFT: 'ARROW_LEFT',\n AVATAR_DARK: 'AVATAR_DARK',\n AVATAR_LIGHT: 'AVATAR_LIGHT',\n AVATAR_NO_IMAGE: 'AVATAR_NO_IMAGE',\n BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK',\n BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT',\n BROADCAST_DARK: 'BROADCAST_DARK',\n BROADCAST_LIGHT: 'BROADCAST_LIGHT',\n BROADCAST: 'BROADCAST',\n FROZEN_DARK: 'FROZEN_DARK',\n FROZEN_LIGHT: 'FROZEN_LIGHT',\n CAMERA: 'CAMERA',\n MORE: 'MORE',\n MUTE: 'MUTE',\n NO_THUMBNAIL: 'NO_THUMBNAIL',\n CHECKBOX: 'CHECKBOX',\n CHECKBOX_OFF: 'CHECKBOX_OFF',\n CLOSE: 'CLOSE',\n COPY: 'COPY',\n CHAT: 'CHAT',\n CREATE: 'CREATE',\n DELETE: 'DELETE',\n DISCONNECTED: 'DISCONNECTED',\n DUMMY: 'DUMMY',\n EDIT: 'EDIT',\n ERROR: 'ERROR',\n ERROR_FILLED: 'ERROR_FILLED',\n EMOJI_FAILED: 'EMOJI_FAILED',\n EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD',\n EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY',\n DELIVERED: 'DELIVERED',\n DOCUMENT: 'DOCUMENT',\n DOWNLOAD: 'DOWNLOAD',\n FILE_AUDIO: 'FILE_AUDIO',\n FILE_DOCUMENT: 'FILE_DOCUMENT',\n GIF: 'GIF',\n INFO: 'INFO',\n LEAVE: 'LEAVE',\n MEMBERS: 'MEMBERS',\n NOTIFICATIONS: 'NOTIFICATIONS',\n PHOTO: 'PHOTO',\n PLAY: 'PLAY',\n PLUS: 'PLUS',\n READ: 'READ',\n REFRESH: 'REFRESH',\n SEND: 'SEND',\n SENT: 'SENT',\n SUPER_GROUP: 'SUPER_GROUP',\n SHEVRON: 'SHEVRON',\n SHEVRON_DOWN: 'SHEVRON_DOWN',\n SPINNER: 'SPINNER',\n SPINNER_LARGE: 'SPINNER_LARGE',\n USER: 'USER',\n ICON_OPERATOR: 'ICON_OPERATOR',\n ICON_BANNED: 'ICON_BANNED',\n ICON_FREEZE: 'ICON_FREEZE',\n ICON_MUTED: 'ICON_MUTED',\n ICON_MUTED_FG: 'ICON_MUTED_FG',\n TOGGLE_ON: 'TOGGLE_ON',\n TOGGLE_OFF: 'TOGGLE_OFF',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Type from './type';\n\nimport IconAdd from '../../svgs/icon-add.svg';\nimport IconAttach from '../../svgs/icon-attach.svg';\nimport IconArrowLeft from '../../svgs/icon-arrow-left.svg';\nimport IconAvatarDark from '../../svgs/icon-avatar-dark.svg';\nimport IconAvatarLight from '../../svgs/icon-avatar-light.svg';\nimport IconAvatarNoImage from '../../svgs/avatar-no-image-light.svg';\nimport BroadcastLargeDark from '../../svgs/icon-broadcast-lrg-dark.svg';\nimport BroadcastLargeLight from '../../svgs/icon-broadcast-lrg-light.svg';\nimport BroadcastDark from '../../svgs/icon-broadcast-dark.svg';\nimport BroadcastLight from '../../svgs/icon-broadcast-light.svg';\nimport Broadcast from '../../svgs/icon-broadcast.svg';\nimport FrozenDark from '../../svgs/frozen-dark.svg';\nimport FrozenLight from '../../svgs/frozen-light.svg';\nimport IconCamera from '../../svgs/icon-camera.svg';\nimport IconMore from '../../svgs/icon-more.svg';\nimport IconMute from '../../svgs/icon-mute.svg';\nimport IconNoThumbnail from '../../svgs/icon-no-thumbnail.svg';\nimport IconCheckbox from '../../svgs/icon-checkbox.svg';\nimport IconCheckboxOff from '../../svgs/icon-checkbox-off.svg';\nimport IconClose from '../../svgs/icon-close.svg';\nimport IconCopy from '../../svgs/icon-copy.svg';\nimport IconChat from '../../svgs/icon-chat.svg';\nimport IconSupergroup from '../../svgs/icon-supergroup.svg';\nimport IconCreate from '../../svgs/icon-create.svg';\nimport IconDelete from '../../svgs/icon-delete.svg';\nimport IconDummy from '../../svgs/icon-dummy.svg';\nimport IconEdit from '../../svgs/icon-edit.svg';\nimport IconError from '../../svgs/icon-error.svg';\nimport IconErrorFilled from '../../svgs/icon-error-filled.svg';\nimport IconEmojiFailed from '../../svgs/emoji-fail.svg';\nimport IconEmojiReactionsAdd from '../../svgs/icon-reactions-add.svg';\nimport IconEmojiReactionsAddGray from '../../svgs/icon-emoji-reactions-add.svg';\nimport IconDelivered from '../../svgs/icon-delivered.svg';\nimport IconDisconnected from '../../svgs/icon-disconnected.svg';\nimport IconDocument from '../../svgs/icon-document.svg';\nimport IconDownload from '../../svgs/icon-download.svg';\nimport IconFileAudio from '../../svgs/icon-file-audio.svg';\nimport IconFileDocument from '../../svgs/icon-file-document.svg';\nimport IconGif from '../../svgs/icon-gif.svg';\nimport IconInfo from '../../svgs/icon-info.svg';\nimport IconLeave from '../../svgs/icon-leave.svg';\nimport IconMembers from '../../svgs/icon-members.svg';\nimport IconNotifications from '../../svgs/icon-notifications.svg';\nimport IconPhoto from '../../svgs/icon-photo.svg';\nimport IconPlay from '../../svgs/icon-play.svg';\nimport IconPlus from '../../svgs/icon-plus.svg';\nimport IconRead from '../../svgs/icon-read.svg';\nimport IconRefresh from '../../svgs/icon-refresh.svg';\nimport IconSend from '../../svgs/icon-send.svg';\nimport IconSent from '../../svgs/icon-sent.svg';\nimport IconShevron from '../../svgs/icon-shevron.svg';\nimport IconShevronDown from '../../svgs/icon-shevron-down.svg';\nimport IconSpinner from '../../svgs/icon-spinner-small.svg';\nimport IconSpinnerLarge from '../../svgs/icon-spinner-large.svg';\nimport IconUser from '../../svgs/icon-user.svg';\nimport IconOperator from '../../svgs/icon-operator.svg';\nimport IconBanned from '../../svgs/icon-banned.svg';\nimport IconMuted from '../../svgs/icon-muted.svg';\nimport IconMutedFg from '../../svgs/icon-muted-foreground.svg';\nimport IconFreeze from '../../svgs/icon-freeze.svg';\nimport ToggleOn from '../../svgs/icon-toggleon.svg';\nimport ToggleOff from '../../svgs/icon-toggleoff.svg';\n\nconst Colors = {\n DEFAULT: 'DEFAULT',\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n CONTENT: 'CONTENT',\n CONTENT_INVERSE: 'CONTENT_INVERSE',\n WHITE: 'WHITE',\n SENT: 'SENT',\n READ: 'READ',\n ON_BACKGROUND_2: 'ON_BACKGROUND_2',\n ON_BACKGROUND_3: 'ON_BACKGROUND_3',\n BACKGROUND_3: 'BACKGROUND_3',\n};\n\nfunction changeColorToClassName(color) {\n switch (color) {\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.SECONDARY: return 'sendbird-color--secondary';\n case Colors.CONTENT: return 'sendbird-color--content';\n case Colors.CONTENT_INVERSE: return 'sendbird-color--content-inverse';\n case Colors.WHITE: return 'sendbird-color--white';\n case Colors.SENT: return 'sendbird-color--sent';\n case Colors.READ: return 'sendbird-color--read';\n case Colors.ON_BACKGROUND_2: return 'sendbird-color--on-background-2';\n case Colors.ON_BACKGROUND_3: return 'sendbird-color--on-background-3';\n case Colors.BACKGROUND_3: return 'sendbird-color--background-3';\n default: return '';\n }\n}\n\nfunction changeTypeToIconComponent(type) {\n switch (type) {\n case Type.ADD: return ;\n case Type.ARROW_LEFT: return ;\n case Type.CAMERA: return ;\n case Type.ATTACH: return ;\n case Type.AVATAR_DARK: return ;\n case Type.AVATAR_LIGHT: return ;\n case Type.AVATAR_NO_IMAGE: return ;\n case Type.BROADCAST_LARGE_DARK: return ;\n case Type.BROADCAST_LARGE_LIGHT: return ;\n case Type.BROADCAST_DARK: return ;\n case Type.BROADCAST_LIGHT: return ;\n case Type.BROADCAST: return ;\n case Type.FROZEN_DARK: return ;\n case Type.FROZEN_LIGHT: return ;\n case Type.MORE: return ;\n case Type.MUTE: return ;\n case Type.NO_THUMBNAIL: return ;\n case Type.CHECKBOX: return ;\n case Type.CHECKBOX_OFF: return ;\n case Type.CLOSE: return ;\n case Type.COPY: return ;\n case Type.CHAT: return ;\n case Type.SUPER_GROUP: return ;\n case Type.CREATE: return ;\n case Type.DELETE: return ;\n case Type.DISCONNECTED: return ;\n case Type.DUMMY: return ;\n case Type.EDIT: return ;\n case Type.ERROR: return ;\n case Type.ERROR_FILLED: return ;\n case Type.EMOJI_FAILED: return ;\n case Type.EMOJI_REACTIONS_ADD: return ;\n case Type.EMOJI_REACTIONS_ADD_GRAY: return ;\n case Type.DELIVERED: return ;\n case Type.DOCUMENT: return ;\n case Type.DOWNLOAD: return ;\n case Type.FILE_AUDIO: return ;\n case Type.FILE_DOCUMENT: return ;\n case Type.GIF: return ;\n case Type.INFO: return ;\n case Type.LEAVE: return ;\n case Type.MEMBERS: return ;\n case Type.NOTIFICATIONS: return ;\n case Type.PHOTO: return ;\n case Type.PLAY: return ;\n case Type.PLUS: return ;\n case Type.READ: return ;\n case Type.REFRESH: return ;\n case Type.SEND: return ;\n case Type.SENT: return ;\n case Type.SHEVRON: return ;\n case Type.SHEVRON_DOWN: return ;\n case Type.SPINNER: return ;\n case Type.SPINNER_LARGE: return ;\n case Type.USER: return ;\n case Type.ICON_OPERATOR: return ;\n case Type.ICON_BANNED: return ;\n case Type.ICON_MUTED: return ;\n case Type.ICON_MUTED_FG: return ;\n case Type.ICON_FREEZE: return ;\n case Type.TOGGLE_ON: return ;\n case Type.TOGGLE_OFF: return ;\n default: return null;\n }\n}\n\nexport default function Icon({\n type,\n width,\n height,\n children,\n className,\n onClick,\n fillColor,\n}) {\n const iconStyle = {\n width: typeof width === 'string' ? width : `${width}px`,\n minWidth: typeof width === 'string' ? width : `${width}px`,\n height: typeof height === 'string' ? height : `${height}px`,\n minHeight: typeof height === 'string' ? height : `${height}px`,\n };\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {\n children || changeTypeToIconComponent(type)\n }\n \n );\n}\n\nIcon.propTypes = {\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(Type)),\n PropTypes.string,\n ]).isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n onClick: PropTypes.func,\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n fillColor: PropTypes.oneOf(Object.keys(Colors)),\n};\n\nIcon.defaultProps = {\n onClick: () => { },\n width: 26,\n height: 26,\n children: null,\n className: '',\n fillColor: Colors.DEFAULT,\n};\n\nexport const IconTypes = Type;\nexport const IconColors = Colors;\n","import React, { ReactElement } from 'react';\n\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes } from '../Icon';\n\nimport './index.scss';\nimport { uuidv4 } from '../../utils/uuid';\n\nconst imageRendererClassName = 'sendbird-avatar-img';\n\ninterface DefaultComponentProps {\n width: string | number,\n height: string | number,\n}\n\nconst defaultComponent = (\n {\n width,\n height,\n }: DefaultComponentProps\n) => (): ReactElement => (\n document.querySelector('.sendbird-theme--dark')\n ? \n : \n);\n\ninterface AvatarInnerProps {\n height: string | number,\n width: string | number,\n src?: string | string[],\n alt?: string,\n}\n\nexport const AvatarInner = ({\n src = '',\n alt = '',\n height,\n width,\n}: AvatarInnerProps): ReactElement => {\n if (typeof src === 'string') {\n return (\n \n );\n }\n\n if (src && src.length) {\n if (src.length === 1) {\n return (\n \n );\n }\n\n if (src.length === 2) {\n return (\n
\n \n \n
\n );\n }\n\n if (src.length === 3) {\n return (\n <>\n
\n \n
\n
\n \n \n
\n \n );\n }\n\n return (\n
\n {\n src.slice(0, 4)\n .map((i) => (\n \n ))\n }\n
\n );\n }\n // default img\n return (\n \n );\n};\n\ninterface AvatarProps {\n height?: string | number,\n width?: string | number,\n src?: string | string[],\n alt?: string,\n onClick?(): void,\n className?: string | string[],\n}\n\nfunction Avatar(\n {\n src = '',\n alt = '',\n width = '56px',\n height = '56px',\n onClick,\n className = '',\n }: AvatarProps,\n ref: React.Ref,\n): ReactElement {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n \n \n );\n}\n\nexport default React.forwardRef(Avatar);\n","export const Typography = {\n H_1: 'H_1',\n H_2: 'H_2',\n SUBTITLE_1: 'SUBTITLE_1',\n SUBTITLE_2: 'SUBTITLE_2',\n BODY_1: 'BODY_1',\n BODY_2: 'BODY_2',\n BUTTON_1: 'BUTTON_1',\n BUTTON_2: 'BUTTON_2',\n CAPTION_1: 'CAPTION_1',\n CAPTION_2: 'CAPTION_2',\n CAPTION_3: 'CAPTION_3',\n};\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONCONTENT_1: 'ONCONTENT_1',\n ONCONTENT_2: 'ONCONTENT_2',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n SECONDARY_3: 'SECONDARY_3',\n};\n","import { Typography, Colors } from './types';\n\nexport function changeTypographyToClassName(type) {\n switch (type) {\n case Typography.H_1: return 'sendbird-label--h-1';\n case Typography.H_2: return 'sendbird-label--h-2';\n case Typography.SUBTITLE_1: return 'sendbird-label--subtitle-1';\n case Typography.SUBTITLE_2: return 'sendbird-label--subtitle-2';\n case Typography.BODY_1: return 'sendbird-label--body-1';\n case Typography.BODY_2: return 'sendbird-label--body-2';\n case Typography.BUTTON_1: return 'sendbird-label--button-1';\n case Typography.BUTTON_2: return 'sendbird-label--button-2';\n case Typography.CAPTION_1: return 'sendbird-label--caption-1';\n case Typography.CAPTION_2: return 'sendbird-label--caption-2';\n case Typography.CAPTION_3: return 'sendbird-label--caption-3';\n default: return null;\n }\n}\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-label--color-onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-label--color-onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-label--color-onbackground-3';\n case Colors.ONCONTENT_1: return 'sendbird-label--color-oncontent-1';\n case Colors.ONCONTENT_2: return 'sendbird-label--color-oncontent-2';\n case Colors.PRIMARY: return 'sendbird-label--color-primary'; // should be Primary-3 fix me\n case Colors.ERROR: return 'sendbird-label--color-error';\n case Colors.SECONDARY_3: return 'sendbird-label--color-secondary-3';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { Typography, Colors } from './types';\nimport { changeTypographyToClassName, changeColorToClassName } from './utils';\nimport getStringSet from './stringSet';\n\nconst CLASS_NAME = 'sendbird-label';\n\nexport default function Label({\n type,\n color,\n children,\n className,\n}) {\n const injectingClassName = (Array.isArray(className))\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n if (type) {\n injectingClassName.push(changeTypographyToClassName(type));\n }\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n\n return (\n \n {children}\n \n );\n}\n\nLabel.propTypes = {\n type: PropTypes.oneOf([...Object.keys(Typography), '']),\n color: PropTypes.oneOf([...Object.keys(Colors), '']),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.element,\n PropTypes.any,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nLabel.defaultProps = {\n type: '',\n color: '',\n className: [],\n children: null,\n};\n\nconst LabelTypography = Typography;\nconst LabelColors = Colors;\nconst LabelStringSet = getStringSet('en');\nexport { LabelTypography, LabelColors, LabelStringSet };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-iconbutton';\n\nconst IconButton = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n disabled = false,\n type,\n height,\n width,\n onClick,\n onBlur,\n style,\n } = props;\n\n const [pressed, setPressed] = useState('');\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n // eslint-disable-next-line react/button-has-type\n {\n if (disabled) { return; }\n setPressed('sendbird-iconbutton--pressed');\n onClick(e);\n }}\n onBlur={(e) => {\n setPressed('');\n onBlur(e);\n }}\n >\n \n {children}\n \n \n );\n});\n\nIconButton.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nIconButton.defaultProps = {\n height: '56px',\n width: '56px',\n className: '',\n type: 'button',\n disabled: false,\n onClick: () => { },\n onBlur: () => { },\n style: {},\n};\n\nexport default IconButton;\n","// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n
\n);\n","export const Type = {\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n DANGER: 'DANGER',\n DISABLED: 'DISABLED',\n};\n\nexport const Size = {\n BIG: 'BIG',\n SMALL: 'SMALL',\n};\n","import { Type, Size } from './type';\n\nexport function changeTypeToClassName(type) {\n switch (type) {\n case Type.PRIMARY: return 'sendbird-button--primary';\n case Type.SECONDARY: return 'sendbird-button--secondary';\n case Type.DANGER: return 'sendbird-button--danger';\n case Type.DISABLED: return 'sendbird-button--disabled';\n default: return null;\n }\n}\n\nexport function changeSizeToClassName(size) {\n switch (size) {\n case Size.BIG: return 'sendbird-button--big';\n case Size.SMALL: return 'sendbird-button--small';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { Type, Size } from './type';\nimport { changeTypeToClassName, changeSizeToClassName } from './utils';\n\nexport default function Button({\n type,\n size,\n children,\n disabled,\n onClick,\n className,\n}) {\n const injectingClassNames = [\n 'sendbird-button',\n (disabled ? 'sendbird-button__disabled' : ''),\n changeTypeToClassName(type),\n changeSizeToClassName(size),\n ...((Array.isArray(className)) ? className : [className]),\n ].join(' ');\n\n return (\n \n );\n}\n\nButton.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n disabled: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(Type)),\n size: PropTypes.oneOf(Object.keys(Size)),\n onClick: PropTypes.func,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nButton.defaultProps = {\n children: 'Button',\n type: Type.PRIMARY,\n disabled: false,\n size: Size.BIG,\n onClick: () => { },\n className: '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport const ModalHeader = ({ titleText }) => (\n
\n \n
\n);\nModalHeader.propTypes = {\n titleText: PropTypes.string.isRequired,\n};\n\nexport const ModalBody = ({ children }) => (\n
{children}
\n);\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element.isRequired,\n PropTypes.arrayOf(PropTypes.element.isRequired),\n ]),\n};\nModalBody.defaultProps = {\n children: null,\n};\n\nexport const ModalFooter = ({\n onSubmit,\n onCancel,\n disabled = false,\n submitText,\n type,\n}) => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n \n
\n );\n};\n\nModalFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModalFooter.defaultProps = {\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nfunction Modal(props) {\n const {\n children,\n onCancel,\n onSubmit,\n disabled,\n submitText,\n titleText,\n hideFooter,\n type,\n } = props;\n return createPortal((\n
\n
\n \n {children}\n {\n !hideFooter && (\n \n )\n }\n
\n \n \n \n
\n
\n
\n
\n ), document.getElementById(MODAL_ROOT));\n}\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n hideFooter: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModal.defaultProps = {\n children: null,\n hideFooter: false,\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nexport default Modal;\n","import './color.scss';\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONBACKGROUND_4: 'ONBACKGROUND_4',\n ONCONTENT_1: 'ONCONTENT_1',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-color--onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-color--onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-color--onbackground-3';\n case Colors.ONBACKGROUND_4: return 'sendbird-color--onbackground-4';\n case Colors.ONCONTENT_1: return 'sendbird-color--oncontent-1';\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.ERROR: return 'sendbird-color--error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\n\nexport default function TextButton({\n color,\n children,\n disabled,\n className,\n onClick,\n notUnderline,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nTextButton.propTypes = {\n color: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClick: PropTypes.func,\n notUnderline: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nTextButton.defaultProps = {\n color: Colors.ONBACKGROUND_1,\n className: '',\n onClick: () => { },\n notUnderline: false,\n disabled: false,\n};\n","export function Types() {\n return {\n LOADING: 'LOADING',\n NO_CHANNELS: 'NO_CHANNELS',\n WRONG: 'WRONG',\n };\n}\n\nexport default Types();\n","export const USER_UPDATED = 'USER_UPDATED';\nexport const SEND_MESSAGE_START = 'SEND_MESSAGE_START';\nexport const SEND_USER_MESSAGE = 'SEND_USER_MESSAGE';\nexport const SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE';\nexport const UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE';\nexport const DELETE_MESSAGE = 'DELETE_MESSAGE';\nexport const LEAVE_CHANNEL = 'LEAVE_CHANNEL';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\n","import * as topics from './pubSub/topics';\n\nexport const getSdk = (store) => {\n const { stores = {} } = store;\n const { sdkStore = {} } = stores;\n const { sdk } = sdkStore;\n return sdk;\n};\n\nexport const getPubSub = (store) => {\n const { config = {} } = store;\n const { pubSub } = config;\n return pubSub;\n};\n\n// SendBird disconnect. Invalidates currentUser\n// eslint-disable-next-line max-len\nexport const getConnect = (store) => (userId, accessToken) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n if (!accessToken) {\n sdk.connect(userId)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n } else {\n sdk.connect(userId, accessToken)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n }\n});\n\n// SendBird disconnect. Invalidates currentUser\nexport const getDisconnect = (store) => () => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.disconnect()\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\n// Using the updateCurrentUserInfo() method\n// you can update a user's nickname and profile image with a URL\n// eslint-disable-next-line max-len\nexport const getUpdateUserInfo = (store) => (nickName, profileUrl) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.updateCurrentUserInfo(nickName, profileUrl)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\nexport const getSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\nexport const getDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nexport const getResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getCreateChannel = (store) => (params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n pubsub.publish(\n topics.CREATE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n });\n};\n\nexport const getLeaveChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.leave()\n .then(() => {\n resolve(channel);\n pubsub.publish(\n topics.LEAVE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.freeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getUnFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.unfreeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport default {\n getSdk,\n getConnect,\n getDisconnect,\n getUpdateUserInfo,\n getSendUserMessage,\n getSendFileMessage,\n getUpdateUserMessage,\n getDeleteMessage,\n getResendUserMessage,\n getResendFileMessage,\n getFreezeChannel,\n getUnFreezeChannel,\n getCreateChannel,\n getLeaveChannel,\n};\n","import React, { ReactElement, useContext } from 'react';\nimport { SendbirdTypes } from '../../types';\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { getSdk, getCreateChannel } from '../../lib/selectors';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\n\ninterface Logger {\n info?(message: string, channel: SendbirdTypes['GroupChannel']): void;\n}\n\ninterface Props {\n user: SendbirdTypes['User'];\n currentUserId?: string;\n sdk?: SendbirdTypes['SendBirdInstance'];\n logger?: Logger;\n disableMessaging?: boolean;\n createChannel?(params: SendbirdTypes['GroupChannelParams']): Promise;\n onSuccess?(): void;\n}\n\nfunction UserProfile({\n user,\n currentUserId,\n sdk,\n logger,\n disableMessaging = false,\n createChannel,\n onSuccess,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n
\n
\n \n
\n {\n (user.userId !== currentUserId) && !disableMessaging && (\n
\n {\n const params = new sdk.GroupChannelParams();\n params.isDistinct = true;\n params.addUserIds([user.userId]);\n onSuccess();\n createChannel(params)\n .then((groupChannel) => {\n logger.info('UserProfile, channel create', groupChannel);\n });\n }}\n >\n {stringSet.USER_PROFILE__MESSAGE}\n \n
\n )\n }\n
\n
\n \n {stringSet.USER_PROFILE__USER_ID}\n \n \n {user.userId}\n \n
\n
\n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n createChannel: getCreateChannel(store),\n logger: store.config.logger,\n pubsub: store.config.pubSub,\n});\n\nconst ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps);\n\nexport default ConnectedUserProfile;\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class MenuItems extends Component {\n constructor(props) {\n super(props);\n this.menuRef = React.createRef();\n this.state = {\n menuStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getMenuPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-icon--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-icon--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { menuRef } = this;\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getMenuPosition = () => {\n const { parentRef, openLeft } = this.props;\n const parentRect = parentRef.current.getBoundingClientRect();\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n const menuStyle = {\n top: y,\n left: x,\n };\n\n if (!this.menuRef.current) return menuStyle;\n\n const { innerWidth, innerHeight } = window;\n const rect = this.menuRef.current.getBoundingClientRect();\n if (y + rect.height > innerHeight) {\n menuStyle.top -= rect.height;\n }\n\n if (x + rect.width > innerWidth && !openLeft) {\n menuStyle.left -= rect.width;\n }\n\n if (menuStyle.top < 0) {\n menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;\n }\n\n if (menuStyle.left < 0) {\n menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;\n }\n\n menuStyle.top += 32;\n if (openLeft) {\n const padding = Number.isNaN(rect.width - 30)\n ? 108 // default\n : rect.width - 30;\n menuStyle.left -= padding;\n }\n\n return this.setState({ menuStyle });\n }\n\n render() {\n const { menuStyle } = this.state;\n const { children, style } = this.props;\n return (\n createPortal(\n (\n <>\n
\n \n {children}\n \n \n ),\n document.getElementById('sendbird-dropdown-portal'),\n )\n );\n }\n}\nMenuItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n style: PropTypes.shape({}),\n // https://stackoverflow.com/a/51127130\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n openLeft: PropTypes.bool,\n};\nMenuItems.defaultProps = {\n style: {},\n openLeft: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst componentClassName = 'sendbird-sort-by-row';\nexport default function SortByRow({\n className,\n maxItemCount,\n itemWidth,\n itemHeight,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(componentClassName);\n\n if (children.length > maxItemCount) {\n const result = [];\n for (let i = 0; i < children.length; i += maxItemCount) {\n result.push(\n \n {\n children.slice(i, i + maxItemCount)\n }\n
,\n );\n }\n\n return result;\n }\n return (\n \n {children}\n
\n );\n}\n\nSortByRow.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n maxItemCount: PropTypes.number.isRequired,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]).isRequired,\n};\n\nSortByRow.defaultProps = {\n className: '',\n};\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport SortByRow from '../../SortByRow';\n\nexport default class EmojiListItems extends Component {\n constructor(props) {\n super(props);\n this.reactionRef = React.createRef();\n this.state = {\n reactionStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getBarPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-reactions--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-reactions--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { reactionRef } = this;\n const handleClickOutside = (event) => {\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getBarPosition = () => {\n const {\n parentRef,\n spaceFromTrigger,\n } = this.props;\n const spaceFromTriggerX = spaceFromTrigger.x || 0;\n const spaceFromTriggerY = spaceFromTrigger.y || 0;\n\n const parentRect = parentRef.current.getBoundingClientRect();\n\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n\n const reactionStyle = {\n top: y,\n left: x,\n };\n\n if (!this.reactionRef.current) return reactionStyle;\n const rect = this.reactionRef.current.getBoundingClientRect();\n // const childRect = this.reactionRef.current.children[0].getBoundingClientRect();\n\n if (reactionStyle.top < rect.height) {\n reactionStyle.top += parentRect.height;\n reactionStyle.top += spaceFromTriggerY;\n } else {\n reactionStyle.top -= rect.height;\n reactionStyle.top -= spaceFromTriggerY;\n }\n\n reactionStyle.left -= (rect.width / 2);\n reactionStyle.left += (parentRect.height / 2) - 2;\n reactionStyle.left += spaceFromTriggerX;\n\n const maximumLeft = (window.innerWidth - rect.width);\n if (maximumLeft < reactionStyle.left) {\n reactionStyle.left = maximumLeft;\n }\n if (reactionStyle.left < 0) {\n reactionStyle.left = 0;\n }\n\n return this.setState({ reactionStyle });\n }\n\n render() {\n const { reactionStyle } = this.state;\n const { children } = this.props;\n return (\n createPortal(\n <>\n
\n \n \n {children}\n \n \n ,\n document.getElementById('sendbird-emoji-list-portal'),\n )\n );\n }\n}\nEmojiListItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n spaceFromTrigger: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n};\nEmojiListItems.defaultProps = {\n spaceFromTrigger: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport MenuItems_ from './items/MenuItems';\nimport EmojiListItems_ from './items/EmojiListItems';\n\nconst ENTER = 13;\n\nexport const MenuItems = MenuItems_;\nexport const EmojiListItems = EmojiListItems_;\n\nexport const MenuItem = ({ children, onClick, className }) => {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n {\n if (e.keyCode === ENTER) {\n onClick(e);\n }\n }}\n role=\"menuitem\"\n >\n \n {children}\n \n \n );\n};\n\nMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n};\n\nMenuItem.defaultProps = {\n className: '',\n};\n\nexport const MenuRoot = () => (\n
\n);\n\nexport const EmojiReactionListRoot = () => (\n
\n);\n\nexport default function ContextMenu({ menuTrigger, menuItems }) {\n const [showMenu, setShowMenu] = useState(false);\n\n return (\n
\n {menuTrigger(() => setShowMenu(!showMenu))}\n {showMenu && menuItems(() => setShowMenu(false))}\n
\n );\n}\n\nContextMenu.propTypes = {\n menuTrigger: PropTypes.func.isRequired,\n menuItems: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes } from '../Icon';\n\nexport default function Loader({\n children,\n className,\n width,\n height,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nLoader.propTypes = {\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nLoader.defaultProps = {\n children: ,\n className: '',\n width: '26px',\n height: '26px',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Loader from '../Loader';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport _PlaceHolderTypes from './type';\n\nexport const PlaceHolderTypes = _PlaceHolderTypes;\n\nexport default function PlaceHolder({\n className,\n type,\n retryToConnect,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n {\n type === PlaceHolderTypes.LOADING\n ? (\n \n \n \n )\n : null\n }\n {\n type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG\n ? (\n
\n {\n type === PlaceHolderTypes.NO_CHANNELS && (\n \n )\n }\n {\n type === PlaceHolderTypes.WRONG && (\n \n )\n }\n \n {\n retryToConnect\n ? (\n \n \n \n
\n )\n : null\n }\n
\n )\n : null\n }\n
\n );\n}\n\nPlaceHolder.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(PlaceHolderTypes)),\n PropTypes.string,\n ]).isRequired,\n retryToConnect: PropTypes.func,\n};\n\nPlaceHolder.defaultProps = {\n className: '',\n retryToConnect: null,\n};\n"],"names":["UserProfileContext","React","createContext","disableUserProfile","isOpenChannel","renderUserProfile","UserProfileProvider","props","children","className","propTypes","PropTypes","oneOfType","element","arrayOf","any","isRequired","bool","func","string","defaultProps","ImageRenderer","alt","url","width","height","defaultComponent","circle","injectingClassName","Array","isArray","unshift","useState","realElement","setRealElement","useEffect","join","backgroundRepeat","backgroundPosition","backgroundSize","backgroundImage","borderRadius","number","ADD","ATTACH","ARROW_LEFT","AVATAR_DARK","AVATAR_LIGHT","AVATAR_NO_IMAGE","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","BROADCAST_DARK","BROADCAST_LIGHT","BROADCAST","FROZEN_DARK","FROZEN_LIGHT","CAMERA","MORE","MUTE","NO_THUMBNAIL","CHECKBOX","CHECKBOX_OFF","CLOSE","COPY","CHAT","CREATE","DELETE","DISCONNECTED","DUMMY","EDIT","ERROR","ERROR_FILLED","EMOJI_FAILED","EMOJI_REACTIONS_ADD","EMOJI_REACTIONS_ADD_GRAY","DELIVERED","DOCUMENT","DOWNLOAD","FILE_AUDIO","FILE_DOCUMENT","GIF","INFO","LEAVE","MEMBERS","NOTIFICATIONS","PHOTO","PLAY","PLUS","READ","REFRESH","SEND","SENT","SUPER_GROUP","SHEVRON","SHEVRON_DOWN","SPINNER","SPINNER_LARGE","USER","ICON_OPERATOR","ICON_BANNED","ICON_FREEZE","ICON_MUTED","ICON_MUTED_FG","TOGGLE_ON","TOGGLE_OFF","Colors","DEFAULT","PRIMARY","SECONDARY","CONTENT","CONTENT_INVERSE","WHITE","ON_BACKGROUND_2","ON_BACKGROUND_3","BACKGROUND_3","changeColorToClassName","color","changeTypeToIconComponent","type","Type","IconAdd","IconArrowLeft","IconCamera","IconAttach","IconAvatarDark","IconAvatarLight","IconAvatarNoImage","BroadcastLargeDark","BroadcastLargeLight","BroadcastDark","BroadcastLight","Broadcast","FrozenDark","FrozenLight","IconMore","IconMute","IconNoThumbnail","IconCheckbox","IconCheckboxOff","IconClose","IconCopy","IconChat","IconSupergroup","IconCreate","IconDelete","IconDisconnected","IconDummy","IconEdit","IconError","IconErrorFilled","IconEmojiFailed","IconEmojiReactionsAdd","IconEmojiReactionsAddGray","IconDelivered","IconDocument","IconDownload","IconFileAudio","IconFileDocument","IconGif","IconInfo","IconLeave","IconMembers","IconNotifications","IconPhoto","IconPlay","IconPlus","IconRead","IconRefresh","IconSend","IconSent","IconShevron","IconShevronDown","IconSpinner","IconSpinnerLarge","IconUser","IconOperator","IconBanned","IconMuted","IconMutedFg","IconFreeze","ToggleOn","ToggleOff","Icon","onClick","fillColor","iconStyle","minWidth","minHeight","oneOf","Object","keys","IconTypes","IconColors","imageRendererClassName","_a","document","querySelector","AvatarInner","_b","src","_c","length","slice","map","i","uuidv4","Avatar","ref","_d","_e","_f","__spreadArrays","forwardRef","Typography","H_1","H_2","SUBTITLE_1","SUBTITLE_2","BODY_1","BODY_2","BUTTON_1","BUTTON_2","CAPTION_1","CAPTION_2","CAPTION_3","ONBACKGROUND_1","ONBACKGROUND_2","ONBACKGROUND_3","ONCONTENT_1","ONCONTENT_2","SECONDARY_3","changeTypographyToClassName","CLASS_NAME","Label","push","LabelTypography","LabelColors","LabelStringSet","getStringSet","IconButton","disabled","onBlur","style","pressed","setPressed","e","shape","MODAL_ROOT","DANGER","DISABLED","Size","BIG","SMALL","changeTypeToClassName","changeSizeToClassName","size","Button","injectingClassNames","ModalHeader","titleText","ModalBody","ModalFooter","onSubmit","onCancel","submitText","useContext","LocalizationContext","stringSet","ButtonTypes","BUTTON__CANCEL","Modal","hideFooter","createPortal","getElementById","ONBACKGROUND_4","TextButton","notUnderline","Types","LOADING","NO_CHANNELS","WRONG","SEND_MESSAGE_START","SEND_USER_MESSAGE","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","DELETE_MESSAGE","LEAVE_CHANNEL","CREATE_CHANNEL","getSdk","store","stores","sdkStore","sdk","getPubSub","config","pubSub","getConnect","userId","accessToken","Promise","resolve","reject","Error","connect","then","res","catch","err","getDisconnect","disconnect","getUpdateUserInfo","nickName","profileUrl","updateCurrentUserInfo","getSendUserMessage","channelUrl","userMessageParams","pubsub","GroupChannel","getChannel","channel","promisify","pendingMsg","pendingPromise","resolve_","reject_","sendUserMessage","swapParams","getErrorFirstCallback","message","error","publish","topics","get","getSendFileMessage","fileMessageParams","sendFileMessage","file","localUrl","URL","createObjectURL","fileUrl","requestState","getUpdateUserMessage","messageId","params","updateUserMessage","fromSelector","getDeleteMessage","deleteMessage","getResendUserMessage","failedMessage","resendUserMessage","getResendFileMessage","resendFileMessage","getCreateChannel","createChannel","getLeaveChannel","leave","getFreezeChannel","freeze","getUnFreezeChannel","unfreeze","UserProfile","user","currentUserId","logger","disableMessaging","onSuccess","nickname","NO_NAME","GroupChannelParams","isDistinct","addUserIds","groupChannel","info","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","mapStoreToProps","ConnectedUserProfile","withSendbirdContext","MenuItems","parentContainRef","current","classList","add","remove","closeDropdown","menuRef","handleClickOutside","event","contains","target","setState","addEventListener","state","removeEventListener","parentRef","openLeft","parentRect","getBoundingClientRect","x","left","y","top","menuStyle","window","innerWidth","innerHeight","rect","padding","Number","isNaN","createRef","setupEvents","getMenuPosition","showParent","cleanUpEvents","hideParent","display","position","Math","round","Component","instanceOf","Element","componentClassName","SortByRow","maxItemCount","itemWidth","itemHeight","result","EmojiListItems","reactionRef","spaceFromTrigger","spaceFromTriggerX","spaceFromTriggerY","reactionStyle","maximumLeft","getBarPosition","ENTER","MenuItems_","EmojiListItems_","MenuItem","keyCode","ContextMenu","menuTrigger","menuItems","showMenu","setShowMenu","Loader","PlaceHolderTypes","_PlaceHolderTypes","PlaceHolder","retryToConnect","PLACE_HOLDER__NO_CHANNEL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqEA,IAAMC,MAAM,GAAG;AACbC,EAAAA,OAAO,EAAE,SADI;AAEbC,EAAAA,OAAO,EA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"} \ No newline at end of file diff --git a/dist/esm/index-1cf7b066.js b/dist/esm/index-19f570c9.js similarity index 98% rename from dist/esm/index-1cf7b066.js rename to dist/esm/index-19f570c9.js index 0670927..6bb40d6 100644 --- a/dist/esm/index-1cf7b066.js +++ b/dist/esm/index-19f570c9.js @@ -1,7 +1,7 @@ import { c as _toConsumableArray, e as LocalizationContext, b as _slicedToArray } from './LocalizationContext-619bafba.js'; import React, { useContext, useRef, useState, useEffect } from 'react'; import PropTypes from 'prop-types'; -import { b as Label, c as LabelTypography, d as LabelColors, u as Colors, v as changeColorToClassName, e as IconButton, I as Icon, a as IconTypes, g as IconColors, B as Button, T as Type, w as Size, A as Avatar, x as MODAL_ROOT, y as changeColorToClassName$1 } from './index-0c67ae90.js'; +import { b as Label, c as LabelTypography, d as LabelColors, u as Colors, v as changeColorToClassName, e as IconButton, I as Icon, a as IconTypes, g as IconColors, B as Button, T as Type, w as Size, A as Avatar, x as MODAL_ROOT, y as changeColorToClassName$1 } from './index-ec3bf9fe.js'; import { createPortal } from 'react-dom'; // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types @@ -196,7 +196,7 @@ var MessageInput = React.forwardRef(function (props, ref) { fillColor: IconColors.PRIMARY, width: "20px", height: "20px" - })), !isEdit && !inputValue && !(inputValue.trim().length > 0) && React.createElement(IconButton, { + })), !isEdit && (!inputValue || !(inputValue.trim().length > 0)) && React.createElement(IconButton, { className: "sendbird-message-input--attach", height: "32px", width: "32px", @@ -428,4 +428,4 @@ LinkLabel.defaultProps = { }; export { DateSeparator as D, FileViewer as F, LinkLabel as L, MessageInput as M, isVideo as a, compareIds as c, isImage as i, unSupported as u }; -//# sourceMappingURL=index-1cf7b066.js.map +//# sourceMappingURL=index-19f570c9.js.map diff --git a/dist/esm/index-19f570c9.js.map b/dist/esm/index-19f570c9.js.map new file mode 100644 index 0000000..d50cb90 --- /dev/null +++ b/dist/esm/index-19f570c9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-19f570c9.js","sources":["../../../src/ui/FileViewer/types.js","../../../src/utils/compareIds.js","../../../src/ui/DateSeparator/index.jsx","../../../src/ui/MessageInput/index.jsx","../../../src/ui/FileViewer/index.jsx","../../../src/ui/LinkLabel/index.jsx"],"sourcesContent":["// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const isImage = (type) => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type) => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const unSupported = (type) => !(isImage(type) || isVideo(type));\n\nexport default SUPPORTED_MIMES;\n","const isEmpty = (val) => (val === null || val === undefined);\n\n// Some Ids return string and number inconsistently\n// only use to comapre IDs\nexport default function (a, b) {\n if (isEmpty(a) || isEmpty(b)) {\n return false;\n }\n const aString = a.toString();\n const bString = b.toString();\n return aString === bString;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport default function DateSeparator({\n className,\n children,\n separatorColor,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n
\n
{children}
\n
\n
\n );\n}\n\nDateSeparator.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.element,\n ]),\n separatorColor: PropTypes.string,\n};\n\nDateSeparator.defaultProps = {\n className: '',\n children: (\n \n ),\n separatorColor: Colors.ONBACKGROUND_4,\n};\n","import React, {\n useState,\n useRef,\n useEffect,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport IconButton from '../IconButton';\nimport Button from '../Button';\nimport { Type, Size } from '../Button/type';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n// import IconSend from '../../svgs/icon-send.svg';\n// import IconAttach from '../../svgs/icon-attach.svg';\n\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst KeyCode = {\n SHIFT: 16,\n ENTER: 13,\n};\n\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n isEdit,\n disabled,\n value,\n name,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onCancelEdit,\n onStartTyping,\n } = props;\n\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [inputValue, setInputValue] = useState(value);\n const [isShiftPressed, setIsShiftPressed] = useState(false);\n\n const setHeight = () => {\n const elem = ref.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n };\n\n // after setHeight called twice, the textarea goes to the initialized\n useEffect(() => {\n setHeight();\n return setHeight;\n }, [inputValue]);\n\n const sendMessage = () => {\n if (inputValue && inputValue.trim().length > 0) {\n const trimmedInputValue = inputValue.trim();\n if (isEdit) {\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n } else {\n onSendMessage(trimmedInputValue);\n setInputValue('');\n }\n }\n };\n\n return (\n \n \n {\n setInputValue(e.target.value);\n onStartTyping();\n }}\n onKeyDown={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(true);\n }\n if (!isShiftPressed && e.keyCode === KeyCode.ENTER) {\n e.preventDefault();\n sendMessage();\n }\n }}\n onKeyUp={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(false);\n }\n }}\n />\n {/* placeholder */}\n {!inputValue && (\n \n {placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER}\n \n )}\n {/* send icon */}\n {\n (!isEdit && inputValue && inputValue.trim().length > 0) && (\n \n \n \n )\n }\n {/* upload icon */}\n {\n (!isEdit && (!inputValue || !(inputValue.trim().length > 0))) && (\n {\n // todo: clear previous input\n fileInputRef.current.click();\n }}\n >\n \n \n \n )\n }\n
\n {/* Edit */}\n {\n isEdit && (\n
\n \n {stringSet.BUTTON__CANCEL}\n \n {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n }\n }}\n >\n {stringSet.BUTTON__SAVE}\n \n
\n )\n }\n \n );\n});\n\nMessageInput.propTypes = {\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isEdit: PropTypes.bool,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n value: PropTypes.string,\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n value: '',\n onSendMessage: noop,\n name: 'sendbird-message-input',\n isEdit: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n};\n\nexport default MessageInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes } from '../Icon';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, unSupported } from './types';\n\nexport const FileViewerComponent = ({\n profileUrl,\n nickname,\n type,\n url,\n name,\n onClose,\n onDelete,\n isByMe,\n}) => (\n
\n
\n
\n
\n \n
\n \n {name}\n \n \n {nickname}\n \n
\n
\n {\n !unSupported(type) && (\n
\n \n \n \n {\n onDelete && isByMe && (\n
\n \n
\n )\n }\n
\n )\n }\n
\n \n
\n
\n
\n
\n {isVideo(type) && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n \n )}\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n \n
\n )\n }\n
\n
\n);\n\nFileViewerComponent.propTypes = {\n profileUrl: PropTypes.string.isRequired,\n nickname: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewerComponent.defaultProps = {\n isByMe: true,\n};\n\nexport default function FileViewer(props) {\n const {\n onClose,\n message,\n onDelete,\n isByMe,\n } = props;\n const {\n sender,\n type,\n url,\n name = '',\n } = message;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n \n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nFileViewer.propTypes = {\n onClose: PropTypes.func.isRequired,\n message: PropTypes.shape({\n sender: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }),\n type: PropTypes.string,\n url: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewer.defaultProps = {\n isByMe: true,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { changeColorToClassName } from '../Label/utils';\nimport './index.scss';\n\nconst LINK_LABEL = 'sendbird-link-label';\nconst http = /https?:\\/\\//;\n\nexport default function LinkLabel({\n className,\n src,\n type,\n color,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n const url = (http.test(src)) ? src : `http://${src}`;\n\n return (\n \n \n \n );\n}\n\nLinkLabel.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n src: PropTypes.string.isRequired,\n type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired,\n color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired,\n};\n\nLinkLabel.defaultProps = {\n className: '',\n};\n\nexport const LinkLabelTypography = LabelTypography;\nexport const LinkLabelColors = LabelColors;\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","isImage","type","indexOf","isVideo","unSupported","isEmpty","val","undefined","a","b","aString","toString","bString","DateSeparator","className","children","separatorColor","injectingClassName","Array","isArray","join","changeColorToClassName","propTypes","PropTypes","oneOfType","string","arrayOf","element","defaultProps","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","Colors","ONBACKGROUND_4","LINE_HEIGHT","noop","KeyCode","SHIFT","ENTER","handleUploadFile","callback","event","target","files","value","MessageInput","React","forwardRef","props","ref","isEdit","disabled","name","placeholder","maxLength","onFileUpload","onSendMessage","onCancelEdit","onStartTyping","useContext","LocalizationContext","stringSet","fileInputRef","useRef","useState","inputValue","setInputValue","isShiftPressed","setIsShiftPressed","setHeight","elem","current","MAX_HEIGHT","window","document","body","offsetHeight","scrollHeight","style","height","useEffect","sendMessage","trim","length","trimmedInputValue","e","keyCode","preventDefault","BODY_1","ONBACKGROUND_3","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","IconTypes","SEND","IconColors","PRIMARY","click","ATTACH","Type","SECONDARY","Size","SMALL","BUTTON__CANCEL","BUTTON__SAVE","bool","number","func","FileViewerComponent","profileUrl","nickname","url","onClose","onDelete","isByMe","H_2","ONBACKGROUND_1","DOWNLOAD","DELETE","CLOSE","H_1","isRequired","FileViewer","message","sender","createPortal","getElementById","MODAL_ROOT","shape","LINK_LABEL","http","LinkLabel","src","color","push","test","oneOf","Object","keys"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/index-1cf7b066.js.map b/dist/esm/index-1cf7b066.js.map deleted file mode 100644 index 7f61aa6..0000000 --- a/dist/esm/index-1cf7b066.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-1cf7b066.js","sources":["../../../src/ui/FileViewer/types.js","../../../src/utils/compareIds.js","../../../src/ui/DateSeparator/index.jsx","../../../src/ui/MessageInput/index.jsx","../../../src/ui/FileViewer/index.jsx","../../../src/ui/LinkLabel/index.jsx"],"sourcesContent":["// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const isImage = (type) => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type) => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const unSupported = (type) => !(isImage(type) || isVideo(type));\n\nexport default SUPPORTED_MIMES;\n","const isEmpty = (val) => (val === null || val === undefined);\n\n// Some Ids return string and number inconsistently\n// only use to comapre IDs\nexport default function (a, b) {\n if (isEmpty(a) || isEmpty(b)) {\n return false;\n }\n const aString = a.toString();\n const bString = b.toString();\n return aString === bString;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport default function DateSeparator({\n className,\n children,\n separatorColor,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n
\n
{children}
\n
\n
\n );\n}\n\nDateSeparator.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.element,\n ]),\n separatorColor: PropTypes.string,\n};\n\nDateSeparator.defaultProps = {\n className: '',\n children: (\n \n ),\n separatorColor: Colors.ONBACKGROUND_4,\n};\n","import React, {\n useState,\n useRef,\n useEffect,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport IconButton from '../IconButton';\nimport Button from '../Button';\nimport { Type, Size } from '../Button/type';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n// import IconSend from '../../svgs/icon-send.svg';\n// import IconAttach from '../../svgs/icon-attach.svg';\n\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst KeyCode = {\n SHIFT: 16,\n ENTER: 13,\n};\n\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n isEdit,\n disabled,\n value,\n name,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onCancelEdit,\n onStartTyping,\n } = props;\n\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [inputValue, setInputValue] = useState(value);\n const [isShiftPressed, setIsShiftPressed] = useState(false);\n\n const setHeight = () => {\n const elem = ref.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n };\n\n // after setHeight called twice, the textarea goes to the initialized\n useEffect(() => {\n setHeight();\n return setHeight;\n }, [inputValue]);\n\n const sendMessage = () => {\n if (inputValue && inputValue.trim().length > 0) {\n const trimmedInputValue = inputValue.trim();\n if (isEdit) {\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n } else {\n onSendMessage(trimmedInputValue);\n setInputValue('');\n }\n }\n };\n\n return (\n \n \n {\n setInputValue(e.target.value);\n onStartTyping();\n }}\n onKeyDown={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(true);\n }\n if (!isShiftPressed && e.keyCode === KeyCode.ENTER) {\n e.preventDefault();\n sendMessage();\n }\n }}\n onKeyUp={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(false);\n }\n }}\n />\n {/* placeholder */}\n {!inputValue && (\n \n {placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER}\n \n )}\n {/* send icon */}\n {\n (!isEdit && inputValue && inputValue.trim().length > 0) && (\n \n \n \n )\n }\n {/* upload icon */}\n {\n (!isEdit && !inputValue && !(inputValue.trim().length > 0)) && (\n {\n // todo: clear previous input\n fileInputRef.current.click();\n }}\n >\n \n \n \n )\n }\n
\n {/* Edit */}\n {\n isEdit && (\n
\n \n {stringSet.BUTTON__CANCEL}\n \n {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n }\n }}\n >\n {stringSet.BUTTON__SAVE}\n \n
\n )\n }\n \n );\n});\n\nMessageInput.propTypes = {\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isEdit: PropTypes.bool,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n value: PropTypes.string,\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n value: '',\n onSendMessage: noop,\n name: 'sendbird-message-input',\n isEdit: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n};\n\nexport default MessageInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes } from '../Icon';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, unSupported } from './types';\n\nexport const FileViewerComponent = ({\n profileUrl,\n nickname,\n type,\n url,\n name,\n onClose,\n onDelete,\n isByMe,\n}) => (\n
\n
\n
\n
\n \n
\n \n {name}\n \n \n {nickname}\n \n
\n
\n {\n !unSupported(type) && (\n
\n \n \n \n {\n onDelete && isByMe && (\n
\n \n
\n )\n }\n
\n )\n }\n
\n \n
\n
\n
\n
\n {isVideo(type) && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n \n )}\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n \n
\n )\n }\n
\n
\n);\n\nFileViewerComponent.propTypes = {\n profileUrl: PropTypes.string.isRequired,\n nickname: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewerComponent.defaultProps = {\n isByMe: true,\n};\n\nexport default function FileViewer(props) {\n const {\n onClose,\n message,\n onDelete,\n isByMe,\n } = props;\n const {\n sender,\n type,\n url,\n name = '',\n } = message;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n \n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nFileViewer.propTypes = {\n onClose: PropTypes.func.isRequired,\n message: PropTypes.shape({\n sender: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }),\n type: PropTypes.string,\n url: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewer.defaultProps = {\n isByMe: true,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { changeColorToClassName } from '../Label/utils';\nimport './index.scss';\n\nconst LINK_LABEL = 'sendbird-link-label';\nconst http = /https?:\\/\\//;\n\nexport default function LinkLabel({\n className,\n src,\n type,\n color,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n const url = (http.test(src)) ? src : `http://${src}`;\n\n return (\n \n \n \n );\n}\n\nLinkLabel.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n src: PropTypes.string.isRequired,\n type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired,\n color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired,\n};\n\nLinkLabel.defaultProps = {\n className: '',\n};\n\nexport const LinkLabelTypography = LabelTypography;\nexport const LinkLabelColors = LabelColors;\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","isImage","type","indexOf","isVideo","unSupported","isEmpty","val","undefined","a","b","aString","toString","bString","DateSeparator","className","children","separatorColor","injectingClassName","Array","isArray","join","changeColorToClassName","propTypes","PropTypes","oneOfType","string","arrayOf","element","defaultProps","LabelTypography","CAPTION_2","LabelColors","ONBACKGROUND_2","Colors","ONBACKGROUND_4","LINE_HEIGHT","noop","KeyCode","SHIFT","ENTER","handleUploadFile","callback","event","target","files","value","MessageInput","React","forwardRef","props","ref","isEdit","disabled","name","placeholder","maxLength","onFileUpload","onSendMessage","onCancelEdit","onStartTyping","useContext","LocalizationContext","stringSet","fileInputRef","useRef","useState","inputValue","setInputValue","isShiftPressed","setIsShiftPressed","setHeight","elem","current","MAX_HEIGHT","window","document","body","offsetHeight","scrollHeight","style","height","useEffect","sendMessage","trim","length","trimmedInputValue","e","keyCode","preventDefault","BODY_1","ONBACKGROUND_3","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","IconTypes","SEND","IconColors","PRIMARY","click","ATTACH","Type","SECONDARY","Size","SMALL","BUTTON__CANCEL","BUTTON__SAVE","bool","number","func","FileViewerComponent","profileUrl","nickname","url","onClose","onDelete","isByMe","H_2","ONBACKGROUND_1","DOWNLOAD","DELETE","CLOSE","H_1","isRequired","FileViewer","message","sender","createPortal","getElementById","MODAL_ROOT","shape","LINK_LABEL","http","LinkLabel","src","color","push","test","oneOf","Object","keys"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/index-7bc4a9f7.js b/dist/esm/index-8abf69b8.js similarity index 95% rename from dist/esm/index-7bc4a9f7.js rename to dist/esm/index-8abf69b8.js index 4245469..b9925e5 100644 --- a/dist/esm/index-7bc4a9f7.js +++ b/dist/esm/index-8abf69b8.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { I as Icon, a as IconTypes } from './index-0c67ae90.js'; +import { I as Icon, a as IconTypes } from './index-ec3bf9fe.js'; import { n as noop } from './utils-53ba1773.js'; var Context = React.createContext({ @@ -83,4 +83,4 @@ function Accordion(_a) { var AccordionGroup$1 = AccordionGroup; export { AccordionGroup$1 as A, Accordion as a }; -//# sourceMappingURL=index-7bc4a9f7.js.map +//# sourceMappingURL=index-8abf69b8.js.map diff --git a/dist/esm/index-7bc4a9f7.js.map b/dist/esm/index-8abf69b8.js.map similarity index 98% rename from dist/esm/index-7bc4a9f7.js.map rename to dist/esm/index-8abf69b8.js.map index 573cd38..ee5e334 100644 --- a/dist/esm/index-7bc4a9f7.js.map +++ b/dist/esm/index-8abf69b8.js.map @@ -1 +1 @@ -{"version":3,"file":"index-7bc4a9f7.js","sources":["../../../src/ui/Accordion/context.ts","../../../src/ui/Accordion/AccordionGroup.tsx","../../../src/ui/Accordion/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { noop } from '../../utils/utils';\n\ninterface ContextValue {\n setOpened(accordion: string): void;\n opened: string;\n}\n\nconst Context = React.createContext({\n opened: '', // mock default value\n setOpened: noop,\n});\n\nexport const Consumer = Context.Consumer;\nexport const Provider = Context.Provider;\n","// Wraps all the accordions in an accordion set\n// keep one accordion open at a time\nimport React, { ReactElement, useState } from 'react';\n\nimport { Provider } from './context';\n\ninterface Props {\n children: ReactElement[] | ReactElement;\n defaultOpened?: string;\n className?: string;\n}\n\nexport default function AccordionGroup({\n children,\n className = '',\n}: Props): ReactElement {\n const [opened, setOpened] = useState('');\n return (\n \n
{ children }
\n
\n )\n}\n","import './index.scss';\n\nimport React, { ReactElement, useState } from 'react';\n\nimport AccordionGroup_ from './AccordionGroup';\nimport { Consumer } from './context';\n\nimport Icon, {\n IconTypes,\n} from '../Icon';\n\ninterface Props {\n id: string;\n className?: string;\n renderTitle(): ReactElement;\n renderContent(): ReactElement;\n renderFooter?(): ReactElement;\n}\n\nexport default function Accordion({\n id,\n renderTitle,\n renderContent,\n renderFooter,\n className,\n}: Props): ReactElement {\n const [showAccordion, setShowAccordion] = useState(false);\n return (\n \n {\n (value) => {\n const { opened, setOpened } = value;\n if (id === opened) {\n setShowAccordion(true);\n } else {\n setShowAccordion(false);\n }\n const handleClick = () => {\n if (showAccordion) {\n setOpened('');\n } else {\n setOpened(id);\n }\n }\n return (\n <>\n \n { renderTitle() }\n \n
\n {\n showAccordion && (\n
\n
\n { renderContent() }\n
\n {\n renderFooter && (\n
\n { renderFooter() }\n
\n )\n }\n
\n )\n }\n );\n }\n }\n \n )\n}\n\nexport const AccordionGroup = AccordionGroup_;\n"],"names":["Context","React","createContext","opened","setOpened","noop","Consumer","Provider","AccordionGroup","_a","children","_b","className","_c","useState","Accordion","id","renderTitle","renderContent","renderFooter","showAccordion","setShowAccordion","value","handleClick","IconTypes","SHEVRON","join","AccordionGroup_"],"mappings":";;;;AASA,IAAMA,OAAO,GAAGC,KAAK,CAACC,aAAN,CAAkC;AAChDC,EAAAA,MAAM,EAAE,EADwC;AAEhDC,EAAAA,SAAS,EAAEC;AAFqC,CAAlC,CAAhB;AAKO,IAAMC,QAAQ,GAAGN,OAAO,CAACM,QAAzB;AACA,IAAMC,QAAQ,GAAGP,OAAO,CAACO,QAAzB;;ACfP;AACA,SAWwBC,eAAeC;MACrCC,QAAQ;MACRC;MAAAC,SAAS,mBAAG;;AAEN,MAAAC,KAAsBC,QAAQ,CAAC,EAAD,CAA9B;AAAA,MAACX,MAAM,QAAP;AAAA,MAASC,SAAS,QAAlB;;AACN,SACE,oBAAC,QAAD;AAAU,IAAA,KAAK,EAAE;AAAED,MAAAA,MAAM,QAAR;AAAUC,MAAAA,SAAS;AAAnB;AAAjB,KACE;AAAK,IAAA,SAAS,EAAEQ;AAAhB,KAA6BF,QAA7B,CADF,CADF;AAKD;;SCHuBK,UAAUN;MAChCO,EAAE;MACFC,WAAW;MACXC,aAAa;MACbC,YAAY;MACZP,SAAS;;AAEH,MAAAD,KAAoCG,QAAQ,CAAC,KAAD,CAA5C;AAAA,MAACM,aAAa,QAAd;AAAA,MAAgBC,gBAAgB,QAAhC;;AACN,SACE,oBAAC,QAAD,QAEI,UAACC,KAAD;AACU,QAAAnB,MAAM,GAAgBmB,KAAK,OAA3B;AAAA,QAAQlB,SAAS,GAAKkB,KAAK,UAA3B;;AACR,QAAIN,EAAE,KAAKb,MAAX,EAAmB;AACjBkB,MAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD,KAFD,MAEO;AACLA,MAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACD;;AACD,QAAME,WAAW,GAAG,SAAdA,WAAc;AAClB,UAAIH,aAAJ,EAAmB;AACjBhB,QAAAA,SAAS,CAAC,EAAD,CAAT;AACD,OAFD,MAEO;AACLA,QAAAA,SAAS,CAACY,EAAD,CAAT;AACD;AACF,KAND;;AAOA,WACE,0CACE;AACE,MAAA,EAAE,EAAEA,EADN;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,sBAAc,KAHhB;AAIE,MAAA,QAAQ,EAAE,CAJZ;AAKE,MAAA,SAAS,EAAEO,WALb;AAME,MAAA,SAAS,EAAE,qCAAmCX,SANhD;AAOE,MAAA,OAAO,EAAEW;AAPX,OASIN,WAAW,EATf,EAUE,oBAAC,IAAD;AACE,MAAA,IAAI,EAAEO,SAAS,CAACC,OADlB;AAEE,MAAA,SAAS,EAAE,CACT,sCADS,EAET,yCAFS,EAGRL,aAAa,GAAG,sCAAH,GAA4C,EAHjD,EAITM,IAJS,CAIJ,GAJI,CAFb;AAOE,MAAA,MAAM,EAAC,MAPT;AAQE,MAAA,KAAK,EAAC;AARR,MAVF,CADF,EAuBIN,aAAa,IACX;AAAK,MAAA,SAAS,EAAC;AAAf,OACE;AAAK,MAAA,SAAS,EAAC;AAAf,OACIF,aAAa,EADjB,CADF,EAKIC,YAAY,IACV;AAAK,MAAA,SAAS,EAAC;AAAf,OACIA,YAAY,EADhB,CANN,CAxBN,CADF;AAwCD,GAxDL,CADF;AA6DD;AAED,IAAaX,gBAAc,GAAGmB;;;;"} \ No newline at end of file +{"version":3,"file":"index-8abf69b8.js","sources":["../../../src/ui/Accordion/context.ts","../../../src/ui/Accordion/AccordionGroup.tsx","../../../src/ui/Accordion/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { noop } from '../../utils/utils';\n\ninterface ContextValue {\n setOpened(accordion: string): void;\n opened: string;\n}\n\nconst Context = React.createContext({\n opened: '', // mock default value\n setOpened: noop,\n});\n\nexport const Consumer = Context.Consumer;\nexport const Provider = Context.Provider;\n","// Wraps all the accordions in an accordion set\n// keep one accordion open at a time\nimport React, { ReactElement, useState } from 'react';\n\nimport { Provider } from './context';\n\ninterface Props {\n children: ReactElement[] | ReactElement;\n defaultOpened?: string;\n className?: string;\n}\n\nexport default function AccordionGroup({\n children,\n className = '',\n}: Props): ReactElement {\n const [opened, setOpened] = useState('');\n return (\n \n
{ children }
\n
\n )\n}\n","import './index.scss';\n\nimport React, { ReactElement, useState } from 'react';\n\nimport AccordionGroup_ from './AccordionGroup';\nimport { Consumer } from './context';\n\nimport Icon, {\n IconTypes,\n} from '../Icon';\n\ninterface Props {\n id: string;\n className?: string;\n renderTitle(): ReactElement;\n renderContent(): ReactElement;\n renderFooter?(): ReactElement;\n}\n\nexport default function Accordion({\n id,\n renderTitle,\n renderContent,\n renderFooter,\n className,\n}: Props): ReactElement {\n const [showAccordion, setShowAccordion] = useState(false);\n return (\n \n {\n (value) => {\n const { opened, setOpened } = value;\n if (id === opened) {\n setShowAccordion(true);\n } else {\n setShowAccordion(false);\n }\n const handleClick = () => {\n if (showAccordion) {\n setOpened('');\n } else {\n setOpened(id);\n }\n }\n return (\n <>\n \n { renderTitle() }\n \n
\n {\n showAccordion && (\n
\n
\n { renderContent() }\n
\n {\n renderFooter && (\n
\n { renderFooter() }\n
\n )\n }\n
\n )\n }\n );\n }\n }\n \n )\n}\n\nexport const AccordionGroup = AccordionGroup_;\n"],"names":["Context","React","createContext","opened","setOpened","noop","Consumer","Provider","AccordionGroup","_a","children","_b","className","_c","useState","Accordion","id","renderTitle","renderContent","renderFooter","showAccordion","setShowAccordion","value","handleClick","IconTypes","SHEVRON","join","AccordionGroup_"],"mappings":";;;;AASA,IAAMA,OAAO,GAAGC,KAAK,CAACC,aAAN,CAAkC;AAChDC,EAAAA,MAAM,EAAE,EADwC;AAEhDC,EAAAA,SAAS,EAAEC;AAFqC,CAAlC,CAAhB;AAKO,IAAMC,QAAQ,GAAGN,OAAO,CAACM,QAAzB;AACA,IAAMC,QAAQ,GAAGP,OAAO,CAACO,QAAzB;;ACfP;AACA,SAWwBC,eAAeC;MACrCC,QAAQ;MACRC;MAAAC,SAAS,mBAAG;;AAEN,MAAAC,KAAsBC,QAAQ,CAAC,EAAD,CAA9B;AAAA,MAACX,MAAM,QAAP;AAAA,MAASC,SAAS,QAAlB;;AACN,SACE,oBAAC,QAAD;AAAU,IAAA,KAAK,EAAE;AAAED,MAAAA,MAAM,QAAR;AAAUC,MAAAA,SAAS;AAAnB;AAAjB,KACE;AAAK,IAAA,SAAS,EAAEQ;AAAhB,KAA6BF,QAA7B,CADF,CADF;AAKD;;SCHuBK,UAAUN;MAChCO,EAAE;MACFC,WAAW;MACXC,aAAa;MACbC,YAAY;MACZP,SAAS;;AAEH,MAAAD,KAAoCG,QAAQ,CAAC,KAAD,CAA5C;AAAA,MAACM,aAAa,QAAd;AAAA,MAAgBC,gBAAgB,QAAhC;;AACN,SACE,oBAAC,QAAD,QAEI,UAACC,KAAD;AACU,QAAAnB,MAAM,GAAgBmB,KAAK,OAA3B;AAAA,QAAQlB,SAAS,GAAKkB,KAAK,UAA3B;;AACR,QAAIN,EAAE,KAAKb,MAAX,EAAmB;AACjBkB,MAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD,KAFD,MAEO;AACLA,MAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACD;;AACD,QAAME,WAAW,GAAG,SAAdA,WAAc;AAClB,UAAIH,aAAJ,EAAmB;AACjBhB,QAAAA,SAAS,CAAC,EAAD,CAAT;AACD,OAFD,MAEO;AACLA,QAAAA,SAAS,CAACY,EAAD,CAAT;AACD;AACF,KAND;;AAOA,WACE,0CACE;AACE,MAAA,EAAE,EAAEA,EADN;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,sBAAc,KAHhB;AAIE,MAAA,QAAQ,EAAE,CAJZ;AAKE,MAAA,SAAS,EAAEO,WALb;AAME,MAAA,SAAS,EAAE,qCAAmCX,SANhD;AAOE,MAAA,OAAO,EAAEW;AAPX,OASIN,WAAW,EATf,EAUE,oBAAC,IAAD;AACE,MAAA,IAAI,EAAEO,SAAS,CAACC,OADlB;AAEE,MAAA,SAAS,EAAE,CACT,sCADS,EAET,yCAFS,EAGRL,aAAa,GAAG,sCAAH,GAA4C,EAHjD,EAITM,IAJS,CAIJ,GAJI,CAFb;AAOE,MAAA,MAAM,EAAC,MAPT;AAQE,MAAA,KAAK,EAAC;AARR,MAVF,CADF,EAuBIN,aAAa,IACX;AAAK,MAAA,SAAS,EAAC;AAAf,OACE;AAAK,MAAA,SAAS,EAAC;AAAf,OACIF,aAAa,EADjB,CADF,EAKIC,YAAY,IACV;AAAK,MAAA,SAAS,EAAC;AAAf,OACIA,YAAY,EADhB,CANN,CAxBN,CADF;AAwCD,GAxDL,CADF;AA6DD;AAED,IAAaX,gBAAc,GAAGmB;;;;"} \ No newline at end of file diff --git a/dist/esm/index-73379213.js b/dist/esm/index-aa89d60a.js similarity index 99% rename from dist/esm/index-73379213.js rename to dist/esm/index-aa89d60a.js index 4e354f2..3673077 100644 --- a/dist/esm/index-73379213.js +++ b/dist/esm/index-aa89d60a.js @@ -1,7 +1,7 @@ import { b as _slicedToArray, e as LocalizationContext, c as _toConsumableArray } from './LocalizationContext-619bafba.js'; import React, { useState, useContext } from 'react'; import PropTypes from 'prop-types'; -import { b as Label, c as LabelTypography, d as LabelColors, I as Icon, g as IconColors, a as IconTypes, n as UserProfileContext, C as ContextMenu, A as Avatar, h as MenuItems, o as UserProfile } from './index-0c67ae90.js'; +import { b as Label, c as LabelTypography, d as LabelColors, I as Icon, g as IconColors, a as IconTypes, n as UserProfileContext, C as ContextMenu, A as Avatar, h as MenuItems, o as UserProfile } from './index-ec3bf9fe.js'; var InputLabel = function InputLabel(_ref) { var children = _ref.children; @@ -248,4 +248,4 @@ UserListItem.defaultProps = { }; export { InputLabel as I, MutedAvatarOverlay as M, UserListItem as U, Input as a }; -//# sourceMappingURL=index-73379213.js.map +//# sourceMappingURL=index-aa89d60a.js.map diff --git a/dist/esm/index-73379213.js.map b/dist/esm/index-aa89d60a.js.map similarity index 99% rename from dist/esm/index-73379213.js.map rename to dist/esm/index-aa89d60a.js.map index 382efb2..3fb0acf 100644 --- a/dist/esm/index-73379213.js.map +++ b/dist/esm/index-aa89d60a.js.map @@ -1 +1 @@ -{"version":3,"file":"index-73379213.js","sources":["../../../src/ui/Input/index.jsx","../../../src/ui/Avatar/MutedAvatarOverlay.tsx","../../../src/ui/Checkbox/index.jsx","../../../src/ui/UserListItem/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nexport const InputLabel = ({ children }) => (\n \n {children}\n \n);\n\nInputLabel.propTypes = {\n children: PropTypes.string.isRequired,\n};\n\n// future: add validations? onChange? more props etc etc\nconst Input = React.forwardRef((props, ref) => {\n const {\n value,\n placeHolder,\n disabled,\n name,\n required,\n } = props;\n const [inputValue, setInputValue] = useState(value);\n return (\n
\n {\n setInputValue(e.target.value);\n }}\n />\n {(placeHolder && !inputValue) && (\n \n {placeHolder}\n \n )}\n
\n );\n});\n\nInput.propTypes = {\n value: PropTypes.string,\n placeHolder: PropTypes.string,\n name: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n};\n\nInput.defaultProps = {\n value: '',\n placeHolder: '',\n disabled: false,\n required: false,\n};\n\nexport default Input;\n","import './muted-avatar-overlay.scss';\n\nimport React, { ReactElement } from 'react'\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\ninterface Props {\n height?: number;\n width?: number;\n}\n\nexport default function MutedAvatarOverlay(props: Props): ReactElement {\n const { height = 24, width = 24 } = props;\n return (\n \n
\n \n \n
\n \n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nexport default function Checkbox({\n id,\n checked,\n onChange,\n}) {\n const [isChecked, setCheck] = useState(checked);\n return (\n \n );\n}\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nCheckbox.defaultProps = {\n id: 'sendbird-checkbox-input',\n checked: false,\n onChange: () => { },\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport MutedAvatarOverlay from '../Avatar/MutedAvatarOverlay';\nimport Checkbox from '../Checkbox';\nimport UserProfile from '../UserProfile';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item';\n\nexport default function UserListItem({\n user,\n className,\n checkBox,\n disableMessaging = false,\n currentUser,\n checked,\n onChange,\n action,\n}) {\n const injectingClassNames = Array.isArray(className) ? className : [className];\n const uniqueKey = user.userId;\n const actionRef = React.useRef(null);\n const parentRef = React.useRef(null);\n const avatarRef = React.useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width=\"40px\"\n height=\"40px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n ' (You)'\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n checkBox && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n onChange(event)}\n />\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n \n );\n}\n\nUserListItem.propTypes = {\n user: PropTypes.shape({\n userId: PropTypes.string,\n role: PropTypes.string,\n isMuted: PropTypes.bool,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n disableMessaging: PropTypes.bool,\n currentUser: PropTypes.string,\n action: PropTypes.element,\n checkBox: PropTypes.bool,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nUserListItem.defaultProps = {\n className: '',\n currentUser: '',\n checkBox: false,\n disableMessaging: false,\n checked: false,\n action: null,\n onChange: () => { },\n};\n"],"names":["InputLabel","children","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_1","propTypes","PropTypes","string","isRequired","Input","React","forwardRef","props","ref","value","placeHolder","disabled","name","required","useState","inputValue","setInputValue","e","target","BODY_1","ONBACKGROUND_3","bool","defaultProps","MutedAvatarOverlay","_a","height","_b","width","IconColors","WHITE","IconTypes","ICON_MUTED","Checkbox","id","checked","onChange","isChecked","setCheck","func","COMPONENT_NAME","UserListItem","user","className","checkBox","disableMessaging","currentUser","action","injectingClassNames","Array","isArray","uniqueKey","userId","actionRef","useRef","parentRef","avatarRef","useContext","UserProfileContext","disableUserProfile","renderUserProfile","LocalizationContext","stringSet","join","isMuted","toggleDropdown","profileUrl","closeDropdown","paddingTop","paddingBottom","currentUserId","close","SUBTITLE_1","nickname","NO_NAME","ONBACKGROUND_2","event","role","SUBTITLE_2","shape","oneOfType","arrayOf","element"],"mappings":";;;;;IAMaA,UAAU,GAAG,SAAbA,UAAa;AAAA,MAAGC,QAAH,QAAGA,QAAH;AAAA,SACxB,oBAAC,KAAD;AACE,IAAA,IAAI,EAAEC,eAAe,CAACC,SADxB;AAEE,IAAA,KAAK,EAAEC,WAAW,CAACC,cAFrB;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGJ,QALH,CADwB;AAAA;AAU1BD,UAAU,CAACM,SAAX,GAAuB;AACrBL,EAAAA,QAAQ,EAAEM,SAAS,CAACC,MAAV,CAAiBC;AADN,CAAvB;;AAKA,IAAMC,KAAK,GAAGC,KAAK,CAACC,UAAN,CAAiB,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAE3CC,KAF2C,GAOzCF,KAPyC,CAE3CE,KAF2C;AAAA,MAG3CC,WAH2C,GAOzCH,KAPyC,CAG3CG,WAH2C;AAAA,MAI3CC,QAJ2C,GAOzCJ,KAPyC,CAI3CI,QAJ2C;AAAA,MAK3CC,IAL2C,GAOzCL,KAPyC,CAK3CK,IAL2C;AAAA,MAM3CC,QAN2C,GAOzCN,KAPyC,CAM3CM,QAN2C;;AAAA,kBAQTC,QAAQ,CAACL,KAAD,CARC;AAAA;AAAA,MAQtCM,UARsC;AAAA,MAQ1BC,aAR0B;;AAS7C,SACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AACE,IAAA,QAAQ,EAAEH,QADZ;AAEE,IAAA,GAAG,EAAEL,GAFP;AAGE,IAAA,IAAI,EAAEI,IAHR;AAIE,IAAA,QAAQ,EAAED,QAJZ;AAKE,IAAA,KAAK,EAAEI,UALT;AAME,IAAA,SAAS,EAAC,uBANZ;AAOE,IAAA,QAAQ,EAAE,kBAACE,CAAD,EAAO;AACfD,MAAAA,aAAa,CAACC,CAAC,CAACC,MAAF,CAAST,KAAV,CAAb;AACD;AATH,IADF,EAYIC,WAAW,IAAI,CAACK,UAAjB,IACC,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC,6BADZ;AAEE,IAAA,IAAI,EAAEnB,eAAe,CAACuB,MAFxB;AAGE,IAAA,KAAK,EAAErB,WAAW,CAACsB;AAHrB,KAKGV,WALH,CAbJ,CADF;AAwBD,CAjCa,CAAd;AAmCAN,KAAK,CAACJ,SAAN,GAAkB;AAChBS,EAAAA,KAAK,EAAER,SAAS,CAACC,MADD;AAEhBQ,EAAAA,WAAW,EAAET,SAAS,CAACC,MAFP;AAGhBU,EAAAA,IAAI,EAAEX,SAAS,CAACC,MAAV,CAAiBC,UAHP;AAIhBQ,EAAAA,QAAQ,EAAEV,SAAS,CAACoB,IAJJ;AAKhBR,EAAAA,QAAQ,EAAEZ,SAAS,CAACoB;AALJ,CAAlB;AAQAjB,KAAK,CAACkB,YAAN,GAAqB;AACnBb,EAAAA,KAAK,EAAE,EADY;AAEnBC,EAAAA,WAAW,EAAE,EAFM;AAGnBC,EAAAA,QAAQ,EAAE,KAHS;AAInBE,EAAAA,QAAQ,EAAE;AAJS,CAArB;;SCtDwBU,mBAAmBhB;AACjC,MAAAiB,KAA4BjB,KAAK,OAAjC;AAAA,MAAAkB,MAAM,mBAAG,OAAT;AAAA,MAAaC,KAAenB,KAAK,MAAjC;AAAA,MAAaoB,KAAK,mBAAG,OAArB;AACR,SACE;AACE,IAAA,SAAS,EAAC,uBADZ;AAEE,IAAA,KAAK,EAAE;AACLF,MAAAA,MAAM,EAAKA,MAAM,OADZ;AAELE,MAAAA,KAAK,EAAKA,KAAK;AAFV;AAFT,KAOE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AACE,IAAA,SAAS,EAAC,2BADZ;AAEE,IAAA,KAAK,EAAE;AACLF,MAAAA,MAAM,EAAKA,MAAM,OADZ;AAELE,MAAAA,KAAK,EAAKA,KAAK;AAFV;AAFT,IADF,EAQE,oBAAC,IAAD;AACE,IAAA,SAAS,EAAEC,UAAU,CAACC,KADxB;AAEE,IAAA,IAAI,EAAEC,SAAS,CAACC,UAFlB;AAGE,IAAA,KAAK,EAAKN,MAAM,GAAG,CAAT,OAHZ;AAIE,IAAA,MAAM,EAAKE,KAAK,GAAG,CAAR;AAJb,IARF,CAPF,CADF;AAyBD;;AChCc,SAASK,QAAT,OAIZ;AAAA,MAHDC,EAGC,QAHDA,EAGC;AAAA,MAFDC,OAEC,QAFDA,OAEC;AAAA,MADDC,QACC,QADDA,QACC;;AAAA,kBAC6BrB,QAAQ,CAACoB,OAAD,CADrC;AAAA;AAAA,MACME,SADN;AAAA,MACiBC,QADjB;;AAED,SACE;AAAO,IAAA,SAAS,EAAC,mBAAjB;AAAqC,IAAA,OAAO,EAAEJ;AAA9C,KACE;AACE,IAAA,EAAE,EAAEA,EADN;AAEE,IAAA,IAAI,EAAC,UAFP;AAGE,IAAA,OAAO,EAAEG,SAHX;AAIE,IAAA,OAAO,EAAE;AAAA,aAAMC,QAAQ,CAAC,CAACD,SAAF,CAAd;AAAA,KAJX;AAKE,IAAA,QAAQ,EAAED;AALZ,IADF,EAQE;AAAM,IAAA,SAAS,EAAC;AAAhB,IARF,CADF;AAYD;AAEDH,QAAQ,CAAChC,SAAT,GAAqB;AACnBiC,EAAAA,EAAE,EAAEhC,SAAS,CAACC,MADK;AAEnBgC,EAAAA,OAAO,EAAEjC,SAAS,CAACoB,IAFA;AAGnBc,EAAAA,QAAQ,EAAElC,SAAS,CAACqC;AAHD,CAArB;AAMAN,QAAQ,CAACV,YAAT,GAAwB;AACtBW,EAAAA,EAAE,EAAE,yBADkB;AAEtBC,EAAAA,OAAO,EAAE,KAFa;AAGtBC,EAAAA,QAAQ,EAAE,oBAAM;AAHM,CAAxB;;ACjBA,IAAMI,cAAc,GAAG,yBAAvB;AAEA,AAAe,SAASC,YAAT,OASZ;AAAA,MARDC,IAQC,QARDA,IAQC;AAAA,MAPDC,SAOC,QAPDA,SAOC;AAAA,MANDC,QAMC,QANDA,QAMC;AAAA,mCALDC,gBAKC;AAAA,MALDA,gBAKC,sCALkB,KAKlB;AAAA,MAJDC,WAIC,QAJDA,WAIC;AAAA,MAHDX,OAGC,QAHDA,OAGC;AAAA,MAFDC,SAEC,QAFDA,QAEC;AAAA,MADDW,MACC,QADDA,MACC;AACD,MAAMC,mBAAmB,GAAGC,KAAK,CAACC,OAAN,CAAcP,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CAAnE;AACA,MAAMQ,SAAS,GAAGT,IAAI,CAACU,MAAvB;AACA,MAAMC,SAAS,GAAG/C,KAAK,CAACgD,MAAN,CAAa,IAAb,CAAlB;AACA,MAAMC,SAAS,GAAGjD,KAAK,CAACgD,MAAN,CAAa,IAAb,CAAlB;AACA,MAAME,SAAS,GAAGlD,KAAK,CAACgD,MAAN,CAAa,IAAb,CAAlB;;AALC,oBASGG,UAAU,CAACC,kBAAD,CATb;AAAA,MAOCC,kBAPD,eAOCA,kBAPD;AAAA,MAQCC,iBARD,eAQCA,iBARD;;AAAA,qBAUqBH,UAAU,CAACI,mBAAD,CAV/B;AAAA,MAUOC,SAVP,gBAUOA,SAVP;;AAWD,SACE;AACE,IAAA,GAAG,EAAEP,SADP;AAEE,IAAA,SAAS,EAAE,CAACf,cAAD,4BAAoBQ,mBAApB,GAAyCe,IAAzC,CAA8C,GAA9C;AAFb,KAKIrB,IAAI,CAACsB,OAAL,IACE,oBAAC,kBAAD;AAAoB,IAAA,MAAM,EAAE,EAA5B;AAAgC,IAAA,KAAK,EAAE;AAAvC,IANN,EASE,oBAAC,WAAD;AACE,IAAA,WAAW,EAAE,qBAACC,cAAD;AAAA,aACX,oBAAC,MAAD;AACE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAI,CAACN,kBAAL,EAAyB;AACvBM,YAAAA,cAAc;AACf;AACF,SALH;AAME,QAAA,GAAG,EAAET,SANP;AAOE,QAAA,SAAS,YAAKhB,cAAL,aAPX;AAQE,QAAA,GAAG,EAAEE,IAAI,CAACwB,UARZ;AASE,QAAA,KAAK,EAAC,MATR;AAUE,QAAA,MAAM,EAAC;AAVT,QADW;AAAA,KADf;AAeE,IAAA,SAAS,EAAE,mBAACC,aAAD;AAAA,aACT,oBAAC,SAAD;AACE,QAAA,QAAQ,MADV;AAEE,QAAA,SAAS,EAAEX,SAFb;AAAA;AAIE,QAAA,gBAAgB,EAAEA,SAJpB;AAAA;AAME,QAAA,aAAa,EAAEW,aANjB;AAOE,QAAA,KAAK,EAAE;AAAEC,UAAAA,UAAU,EAAE,CAAd;AAAiBC,UAAAA,aAAa,EAAE;AAAhC;AAPT,SAUIT,iBAAiB,GACbA,iBAAiB,CAAC;AAClBlB,QAAAA,IAAI,EAAJA,IADkB;AAElB4B,QAAAA,aAAa,EAAExB,WAFG;AAGlByB,QAAAA,KAAK,EAAEJ;AAHW,OAAD,CADJ,GAOb,oBAAC,WAAD;AACE,QAAA,gBAAgB,EAAEtB,gBADpB;AAEE,QAAA,IAAI,EAAEH,IAFR;AAGE,QAAA,aAAa,EAAEI,WAHjB;AAIE,QAAA,SAAS,EAAEqB;AAJb,QAjBR,CADS;AAAA;AAfb,IATF,EAqDE,oBAAC,KAAD;AACE,IAAA,SAAS,YAAK3B,cAAL,YADX;AAEE,IAAA,IAAI,EAAE3C,eAAe,CAAC2E,UAFxB;AAGE,IAAA,KAAK,EAAEzE,WAAW,CAACC;AAHrB,KAKG0C,IAAI,CAAC+B,QAAL,IAAiBX,SAAS,CAACY,OAL9B,EAOK5B,WAAW,KAAKJ,IAAI,CAACU,MAAtB,IACE,QARN,CArDF;AAkEI,GAACV,IAAI,CAAC+B,QAAN,IACE,oBAAC,KAAD;AACE,IAAA,SAAS,YAAKjC,cAAL,eADX;AAEE,IAAA,IAAI,EAAE3C,eAAe,CAACC,SAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAAC4E;AAHrB,KAKGjC,IAAI,CAACU,MALR,CAnEN,EA6EIR,QAAQ;AAEN;AACE,IAAA,SAAS,YAAKJ,cAAL,eADX;AAEE,IAAA,OAAO,EAAEW;AAFX,KAIE,oBAAC,QAAD;AACE,IAAA,EAAE,EAAEA,SADN;AAEE,IAAA,OAAO,EAAEhB,OAFX;AAGE,IAAA,QAAQ,EAAE,kBAACyC,KAAD;AAAA,aAAWxC,SAAQ,CAACwC,KAAD,CAAnB;AAAA;AAHZ,IAJF,CA/EN,EA4FIlC,IAAI,CAACmC,IAAL,KAAc,UAAd,IACE,oBAAC,KAAD;AACE,IAAA,SAAS,YAAKrC,cAAL,eADX;AAEE,IAAA,IAAI,EAAE3C,eAAe,CAACiF,UAFxB;AAGE,IAAA,KAAK,EAAE/E,WAAW,CAAC4E;AAHrB,gBA7FN,EAuGI5B,MAAM,IACJ;AAAK,IAAA,GAAG,EAAEM,SAAV;AAAqB,IAAA,SAAS,YAAKb,cAAL;AAA9B,KACIO,MAAM,CAAC;AAAEM,IAAAA,SAAS,EAATA,SAAF;AAAaE,IAAAA,SAAS,EAATA;AAAb,GAAD,CADV,CAxGN,CADF;AAgHD;AAEDd,YAAY,CAACxC,SAAb,GAAyB;AACvByC,EAAAA,IAAI,EAAExC,SAAS,CAAC6E,KAAV,CAAgB;AACpB3B,IAAAA,MAAM,EAAElD,SAAS,CAACC,MADE;AAEpB0E,IAAAA,IAAI,EAAE3E,SAAS,CAACC,MAFI;AAGpB6D,IAAAA,OAAO,EAAE9D,SAAS,CAACoB,IAHC;AAIpBmD,IAAAA,QAAQ,EAAEvE,SAAS,CAACC,MAJA;AAKpB+D,IAAAA,UAAU,EAAEhE,SAAS,CAACC;AALF,GAAhB,EAMHC,UAPoB;AAQvBuC,EAAAA,SAAS,EAAEzC,SAAS,CAAC8E,SAAV,CAAoB,CAC7B9E,SAAS,CAACC,MADmB,EAE7BD,SAAS,CAAC+E,OAAV,CAAkB/E,SAAS,CAACC,MAA5B,CAF6B,CAApB,CARY;AAYvB0C,EAAAA,gBAAgB,EAAE3C,SAAS,CAACoB,IAZL;AAavBwB,EAAAA,WAAW,EAAE5C,SAAS,CAACC,MAbA;AAcvB4C,EAAAA,MAAM,EAAE7C,SAAS,CAACgF,OAdK;AAevBtC,EAAAA,QAAQ,EAAE1C,SAAS,CAACoB,IAfG;AAgBvBa,EAAAA,OAAO,EAAEjC,SAAS,CAACoB,IAhBI;AAiBvBc,EAAAA,QAAQ,EAAElC,SAAS,CAACqC;AAjBG,CAAzB;AAqBAE,YAAY,CAAClB,YAAb,GAA4B;AAC1BoB,EAAAA,SAAS,EAAE,EADe;AAE1BG,EAAAA,WAAW,EAAE,EAFa;AAG1BF,EAAAA,QAAQ,EAAE,KAHgB;AAI1BC,EAAAA,gBAAgB,EAAE,KAJQ;AAK1BV,EAAAA,OAAO,EAAE,KALiB;AAM1BY,EAAAA,MAAM,EAAE,IANkB;AAO1BX,EAAAA,QAAQ,EAAE,oBAAM;AAPU,CAA5B;;;;"} \ No newline at end of file +{"version":3,"file":"index-aa89d60a.js","sources":["../../../src/ui/Input/index.jsx","../../../src/ui/Avatar/MutedAvatarOverlay.tsx","../../../src/ui/Checkbox/index.jsx","../../../src/ui/UserListItem/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nexport const InputLabel = ({ children }) => (\n \n {children}\n \n);\n\nInputLabel.propTypes = {\n children: PropTypes.string.isRequired,\n};\n\n// future: add validations? onChange? more props etc etc\nconst Input = React.forwardRef((props, ref) => {\n const {\n value,\n placeHolder,\n disabled,\n name,\n required,\n } = props;\n const [inputValue, setInputValue] = useState(value);\n return (\n
\n {\n setInputValue(e.target.value);\n }}\n />\n {(placeHolder && !inputValue) && (\n \n {placeHolder}\n \n )}\n
\n );\n});\n\nInput.propTypes = {\n value: PropTypes.string,\n placeHolder: PropTypes.string,\n name: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n};\n\nInput.defaultProps = {\n value: '',\n placeHolder: '',\n disabled: false,\n required: false,\n};\n\nexport default Input;\n","import './muted-avatar-overlay.scss';\n\nimport React, { ReactElement } from 'react'\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\ninterface Props {\n height?: number;\n width?: number;\n}\n\nexport default function MutedAvatarOverlay(props: Props): ReactElement {\n const { height = 24, width = 24 } = props;\n return (\n \n
\n \n \n
\n \n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nexport default function Checkbox({\n id,\n checked,\n onChange,\n}) {\n const [isChecked, setCheck] = useState(checked);\n return (\n \n );\n}\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nCheckbox.defaultProps = {\n id: 'sendbird-checkbox-input',\n checked: false,\n onChange: () => { },\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport MutedAvatarOverlay from '../Avatar/MutedAvatarOverlay';\nimport Checkbox from '../Checkbox';\nimport UserProfile from '../UserProfile';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item';\n\nexport default function UserListItem({\n user,\n className,\n checkBox,\n disableMessaging = false,\n currentUser,\n checked,\n onChange,\n action,\n}) {\n const injectingClassNames = Array.isArray(className) ? className : [className];\n const uniqueKey = user.userId;\n const actionRef = React.useRef(null);\n const parentRef = React.useRef(null);\n const avatarRef = React.useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width=\"40px\"\n height=\"40px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n ' (You)'\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n checkBox && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n onChange(event)}\n />\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n \n );\n}\n\nUserListItem.propTypes = {\n user: PropTypes.shape({\n userId: PropTypes.string,\n role: PropTypes.string,\n isMuted: PropTypes.bool,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n disableMessaging: PropTypes.bool,\n currentUser: PropTypes.string,\n action: PropTypes.element,\n checkBox: PropTypes.bool,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nUserListItem.defaultProps = {\n className: '',\n currentUser: '',\n checkBox: false,\n disableMessaging: false,\n checked: false,\n action: null,\n onChange: () => { },\n};\n"],"names":["InputLabel","children","LabelTypography","CAPTION_3","LabelColors","ONBACKGROUND_1","propTypes","PropTypes","string","isRequired","Input","React","forwardRef","props","ref","value","placeHolder","disabled","name","required","useState","inputValue","setInputValue","e","target","BODY_1","ONBACKGROUND_3","bool","defaultProps","MutedAvatarOverlay","_a","height","_b","width","IconColors","WHITE","IconTypes","ICON_MUTED","Checkbox","id","checked","onChange","isChecked","setCheck","func","COMPONENT_NAME","UserListItem","user","className","checkBox","disableMessaging","currentUser","action","injectingClassNames","Array","isArray","uniqueKey","userId","actionRef","useRef","parentRef","avatarRef","useContext","UserProfileContext","disableUserProfile","renderUserProfile","LocalizationContext","stringSet","join","isMuted","toggleDropdown","profileUrl","closeDropdown","paddingTop","paddingBottom","currentUserId","close","SUBTITLE_1","nickname","NO_NAME","ONBACKGROUND_2","event","role","SUBTITLE_2","shape","oneOfType","arrayOf","element"],"mappings":"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"} \ No newline at end of file diff --git a/dist/esm/index-a199094e.js b/dist/esm/index-aebda3d2.js similarity index 96% rename from dist/esm/index-a199094e.js rename to dist/esm/index-aebda3d2.js index 5eaa7be..d3c7c98 100644 --- a/dist/esm/index-a199094e.js +++ b/dist/esm/index-aebda3d2.js @@ -1,5 +1,5 @@ import React, { useMemo } from 'react'; -import { I as Icon, a as IconTypes, A as Avatar } from './index-0c67ae90.js'; +import { I as Icon, a as IconTypes, A as Avatar } from './index-ec3bf9fe.js'; import { u as useDefaultAvatar, g as getChannelAvatarSource } from './utils-53ba1773.js'; function ChannelAvatar(_a) { @@ -40,4 +40,4 @@ function ChannelAvatar(_a) { } export { ChannelAvatar as C }; -//# sourceMappingURL=index-a199094e.js.map +//# sourceMappingURL=index-aebda3d2.js.map diff --git a/dist/esm/index-a199094e.js.map b/dist/esm/index-aebda3d2.js.map similarity index 98% rename from dist/esm/index-a199094e.js.map rename to dist/esm/index-aebda3d2.js.map index e27cee2..502669d 100644 --- a/dist/esm/index-a199094e.js.map +++ b/dist/esm/index-aebda3d2.js.map @@ -1 +1 @@ -{"version":3,"file":"index-a199094e.js","sources":["../../../src/ui/ChannelAvatar/index.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes } from '../Icon';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendBird.GroupChannel;\n userId: string;\n theme: string;\n height?: number,\n width?: number,\n}\n\nfunction ChannelAvatar({\n channel,\n userId,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { isBroadcast } = channel;\n const memoizedAvatar = useMemo(() => (\n isBroadcast\n ? (\n utils.useDefaultAvatar(channel)\n ? (\n theme === 'dark'\n ? (\n \n )\n : (\n \n )\n )\n : (\n \n )\n )\n : (\n \n )\n ),[channel.members, channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n"],"names":["ChannelAvatar","_a","channel","userId","theme","_b","height","_c","width","isBroadcast","memoizedAvatar","useMemo","utils","IconTypes","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","name","members","coverUrl"],"mappings":";;;;AAeA,SAASA,aAAT,CAAuBC,EAAvB;MACEC,OAAO;MACPC,MAAM;MACNC,KAAK;MACLC;MAAAC,MAAM,mBAAG;MACTC;MAAAC,KAAK,mBAAG;AAEA,MAAAC,WAAW,GAAKP,OAAO,YAAvB;AACR,MAAMQ,cAAc,GAAGC,OAAO,CAAC;AAAM,WACnCF,WAAW,GAEPG,gBAAA,CAAuBV,OAAvB,IAEIE,KAAK,KAAK,MAAV,GAEI,oBAAC,IAAD;AACE,MAAA,IAAI,EAAES,SAAS,CAACC,oBADlB;AAEE,MAAA,KAAK,EAAEN,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAFJ,GAUI,oBAAC,IAAD;AACE,MAAA,IAAI,EAAEO,SAAS,CAACE,qBADlB;AAEE,MAAA,KAAK,EAAEP,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAZR,GAqBI,oBAAC,MAAD;AACE,MAAA,SAAS,EAAC,iDADZ;AAEE,MAAA,GAAG,EAAEM,sBAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAEK,KAHT;AAIE,MAAA,MAAM,EAAEF,MAJV;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACc;AALf,MAvBG,GAiCP,oBAAC,MAAD;AACE,MAAA,SAAS,EAAC,6CADZ;AAEE,MAAA,GAAG,EAAEJ,sBAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAKK,KAAK,OAHjB;AAIE,MAAA,MAAM,EAAKF,MAAM,OAJnB;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACc;AALf,MAlC+B;AA0CpC,GA1C6B,EA0C5B,CAACd,OAAO,CAACe,OAAT,EAAkBf,OAAO,CAACgB,QAA1B,EAAoCd,KAApC,CA1C4B,CAA9B;AA2CA,SACE,0CAAIM,cAAJ,CADF;AAGD;;;;"} \ No newline at end of file +{"version":3,"file":"index-aebda3d2.js","sources":["../../../src/ui/ChannelAvatar/index.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes } from '../Icon';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendBird.GroupChannel;\n userId: string;\n theme: string;\n height?: number,\n width?: number,\n}\n\nfunction ChannelAvatar({\n channel,\n userId,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { isBroadcast } = channel;\n const memoizedAvatar = useMemo(() => (\n isBroadcast\n ? (\n utils.useDefaultAvatar(channel)\n ? (\n theme === 'dark'\n ? (\n \n )\n : (\n \n )\n )\n : (\n \n )\n )\n : (\n \n )\n ),[channel.members, channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n"],"names":["ChannelAvatar","_a","channel","userId","theme","_b","height","_c","width","isBroadcast","memoizedAvatar","useMemo","utils","IconTypes","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","name","members","coverUrl"],"mappings":";;;;AAeA,SAASA,aAAT,CAAuBC,EAAvB;MACEC,OAAO;MACPC,MAAM;MACNC,KAAK;MACLC;MAAAC,MAAM,mBAAG;MACTC;MAAAC,KAAK,mBAAG;AAEA,MAAAC,WAAW,GAAKP,OAAO,YAAvB;AACR,MAAMQ,cAAc,GAAGC,OAAO,CAAC;AAAM,WACnCF,WAAW,GAEPG,gBAAA,CAAuBV,OAAvB,IAEIE,KAAK,KAAK,MAAV,GAEI,oBAAC,IAAD;AACE,MAAA,IAAI,EAAES,SAAS,CAACC,oBADlB;AAEE,MAAA,KAAK,EAAEN,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAFJ,GAUI,oBAAC,IAAD;AACE,MAAA,IAAI,EAAEO,SAAS,CAACE,qBADlB;AAEE,MAAA,KAAK,EAAEP,KAFT;AAGE,MAAA,MAAM,EAAEF,MAHV;AAIE,MAAA,SAAS,EAAC;AAJZ,MAZR,GAqBI,oBAAC,MAAD;AACE,MAAA,SAAS,EAAC,iDADZ;AAEE,MAAA,GAAG,EAAEM,sBAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAEK,KAHT;AAIE,MAAA,MAAM,EAAEF,MAJV;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACc;AALf,MAvBG,GAiCP,oBAAC,MAAD;AACE,MAAA,SAAS,EAAC,6CADZ;AAEE,MAAA,GAAG,EAAEJ,sBAAA,CAA6BV,OAA7B,EAAsCC,MAAtC,CAFP;AAGE,MAAA,KAAK,EAAKK,KAAK,OAHjB;AAIE,MAAA,MAAM,EAAKF,MAAM,OAJnB;AAKE,MAAA,GAAG,EAAEJ,OAAO,CAACc;AALf,MAlC+B;AA0CpC,GA1C6B,EA0C5B,CAACd,OAAO,CAACe,OAAT,EAAkBf,OAAO,CAACgB,QAA1B,EAAoCd,KAApC,CA1C4B,CAA9B;AA2CA,SACE,0CAAIM,cAAJ,CADF;AAGD;;;;"} \ No newline at end of file diff --git a/dist/esm/index-0c67ae90.js b/dist/esm/index-ec3bf9fe.js similarity index 93% rename from dist/esm/index-0c67ae90.js rename to dist/esm/index-ec3bf9fe.js index bfe1482..386d38a 100644 --- a/dist/esm/index-0c67ae90.js +++ b/dist/esm/index-ec3bf9fe.js @@ -2686,6 +2686,315 @@ var getUnFreezeChannel = function getUnFreezeChannel(store) { }); }; }; + +var getCreateOpenChannel = function getCreateOpenChannel(store) { + return function (params) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.createChannel(params).then(function (channel) { + resolve(channel); + }).catch(reject); + }); + }; +}; + +var enterOpenChannel = function enterOpenChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl, function (openChannel, error) { + if (error) { + reject(new Error(error)); + return; + } + + openChannel.enter(function (response, enterError) { + if (error) { + reject(new Error(enterError)); + return; + } + + resolve(response); + }); + }); + }); + }; +}; + +var exitOpenChannel = function exitOpenChannel(store) { + return function (channelUrl) { + var sdk = getSdk(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl, function (openChannel, error) { + if (error) { + reject(new Error(error)); + return; + } + + openChannel.exit(function (response, exitError) { + if (error) { + reject(new Error(exitError)); + return; + } + + resolve(response); + }); + }); + }); + }; +}; + +var getOpenChannelSendUserMessage = function getOpenChannelSendUserMessage(store) { + return function (channelUrl, userMessageParams) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + var promisify = function promisify() { + var pendingMsg = null; + var pendingPromise = new Promise(function (resolve_, reject_) { + pendingMsg = channel.sendUserMessage(userMessageParams, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject_(error); + return; + } + + resolve_(message); + pubsub.publish(SEND_USER_MESSAGE, { + message: message, + channel: channel + }); + }); + pubsub.publish(SEND_MESSAGE_START, { + message: pendingMsg, + channel: channel + }); + }); + + pendingPromise.get = function () { + return pendingMsg; + }; + + return pendingPromise; + }; + + resolve(promisify()); + }).catch(reject); + }); + }; +}; + +var getOpenChannelSendFileMessage = function getOpenChannelSendFileMessage(store) { + return function (channelUrl, fileMessageParams) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + var promisify = function promisify() { + var pendingMsg = null; + var pendingPromise = new Promise(function (resolve_, reject_) { + pendingMsg = channel.sendFileMessage(fileMessageParams, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject_(error); + return; + } + + resolve_(message); + pubsub.publish(SEND_FILE_MESSAGE, { + message: message, + channel: channel + }); + }); + }); + + if (fileMessageParams.file) { + // keep the file's local version in pendingMsg.localUrl + // because promise doesnt allow overriding of pendingMsg.url + // eslint-disable-next-line no-param-reassign + pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file); + } + + if (fileMessageParams.fileUrl) { + // eslint-disable-next-line no-param-reassign + pendingMsg.localUrl = fileMessageParams.fileUrl; + } // eslint-disable-next-line no-param-reassign + + + pendingMsg.requestState = 'pending'; + pubsub.publish(SEND_MESSAGE_START, { + message: pendingMsg, + channel: channel + }); + + pendingPromise.get = function () { + return pendingMsg; + }; + + return pendingPromise; + }; + + resolve(promisify()); + }).catch(reject); + }); + }; +}; + +var getOpenChannelUpdateUserMessage = function getOpenChannelUpdateUserMessage(store) { + return function (channelUrl, messageId, params) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + channel.updateUserMessage(messageId, params, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var message = res; + var error = err; + + if (swapParams) { + message = err; + error = res; + } + + if (error) { + reject(error); + return; + } + + resolve(message); + pubsub.publish(UPDATE_USER_MESSAGE, { + message: message, + channel: channel, + // workaround for updating channelPreview on message-edit + // https://sendbird.atlassian.net/browse/UIKIT-268 + fromSelector: true + }); + }); + }).catch(reject); + }); + }; +}; + +var getOpenChannelDeleteMessage = function getOpenChannelDeleteMessage(store) { + return function (channelUrl, message) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { + var messageId = message.messageId; + channel.deleteMessage(message, function (res, err) { + var swapParams = sdk.getErrorFirstCallback(); + var error = err; + + if (swapParams) { + error = res; + } + + if (error) { + reject(error); + return; + } + + resolve(message); + pubsub.publish(DELETE_MESSAGE, { + messageId: messageId, + channel: channel + }); + }); + }).catch(reject); + }); + }; +}; + +var getOpenChannelResendUserMessage = function getOpenChannelResendUserMessage(store) { + return function (channelUrl, failedMessage) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + channel.resendUserMessage(failedMessage).then(function (message) { + resolve(message); + pubsub.publish(SEND_USER_MESSAGE, { + message: message, + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; + +var getOpenChannelResendFileMessage = function getOpenChannelResendFileMessage(store) { + return function (channelUrl, failedMessage) { + var sdk = getSdk(store); + var pubsub = getPubSub(store); + return new Promise(function (resolve, reject) { + if (!sdk) { + reject(new Error('Sdk not found')); + } + + sdk.OpenChannel.getChannel(channelUrl).then(function (channel) { + channel.resendFileMessage(failedMessage).then(function (message) { + resolve(message); + pubsub.publish(SEND_FILE_MESSAGE, { + message: message, + channel: channel + }); + }).catch(reject); + }).catch(reject); + }); + }; +}; + var selectors = { getSdk: getSdk, getConnect: getConnect, @@ -2700,7 +3009,16 @@ var selectors = { getFreezeChannel: getFreezeChannel, getUnFreezeChannel: getUnFreezeChannel, getCreateChannel: getCreateChannel, - getLeaveChannel: getLeaveChannel + getLeaveChannel: getLeaveChannel, + getCreateOpenChannel: getCreateOpenChannel, + enterOpenChannel: enterOpenChannel, + exitOpenChannel: exitOpenChannel, + getOpenChannelSendUserMessage: getOpenChannelSendUserMessage, + getOpenChannelSendFileMessage: getOpenChannelSendFileMessage, + getOpenChannelUpdateUserMessage: getOpenChannelUpdateUserMessage, + getOpenChannelDeleteMessage: getOpenChannelDeleteMessage, + getOpenChannelResendUserMessage: getOpenChannelResendUserMessage, + getOpenChannelResendFileMessage: getOpenChannelResendFileMessage }; function UserProfile(_a) { @@ -3297,4 +3615,4 @@ PlaceHolder.defaultProps = { }; export { Avatar$1 as A, Button as B, ContextMenu as C, DELETE_MESSAGE as D, EmojiListItems$1 as E, selectors as F, Icon as I, LabelStringSet as L, Modal as M, PlaceHolder as P, SEND_MESSAGE_START as S, Type$1 as T, UPDATE_USER_MESSAGE as U, IconTypes as a, Label as b, LabelTypography as c, LabelColors as d, IconButton as e, TextButton as f, IconColors as g, MenuItems$1 as h, MenuItem as i, CREATE_CHANNEL as j, LEAVE_CHANNEL as k, UserProfileProvider as l, PlaceHolderTypes as m, UserProfileContext as n, ConnectedUserProfile as o, SEND_USER_MESSAGE as p, SEND_FILE_MESSAGE as q, ImageRenderer as r, Loader as s, PlaceHolderTypes$1 as t, Colors$2 as u, changeColorToClassName$2 as v, Size as w, MODAL_ROOT as x, changeColorToClassName$1 as y, getSdk as z }; -//# sourceMappingURL=index-0c67ae90.js.map +//# sourceMappingURL=index-ec3bf9fe.js.map diff --git a/dist/esm/index-ec3bf9fe.js.map b/dist/esm/index-ec3bf9fe.js.map new file mode 100644 index 0000000..b4b4f52 --- /dev/null +++ b/dist/esm/index-ec3bf9fe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-ec3bf9fe.js","sources":["../../../src/lib/UserProfileContext.jsx","../../../src/ui/ImageRenderer/index.jsx","../../../src/ui/Icon/type.js","../../../src/ui/Icon/index.jsx","../../../src/ui/Avatar/index.tsx","../../../src/ui/Label/types.js","../../../src/ui/Label/utils.js","../../../src/ui/Label/index.jsx","../../../src/ui/IconButton/index.jsx","../../../src/hooks/useModal/ModalRoot/index.jsx","../../../src/ui/Button/type.js","../../../src/ui/Button/utils.js","../../../src/ui/Button/index.jsx","../../../src/ui/Modal/index.jsx","../../../src/utils/color.js","../../../src/ui/TextButton/index.jsx","../../../src/ui/PlaceHolder/type.js","../../../src/lib/pubSub/topics.js","../../../src/lib/selectors.js","../../../src/ui/UserProfile/index.tsx","../../../src/ui/ContextMenu/items/MenuItems.jsx","../../../src/ui/SortByRow/index.jsx","../../../src/ui/ContextMenu/items/EmojiListItems.jsx","../../../src/ui/ContextMenu/index.jsx","../../../src/ui/Loader/index.jsx","../../../src/ui/PlaceHolder/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst UserProfileContext = React.createContext({\n disableUserProfile: true,\n isOpenChannel: false,\n renderUserProfile: null,\n});\n\nconst UserProfileProvider = (props) => {\n const { children, className } = props;\n return (\n \n
\n {children}\n
\n
\n );\n};\n\nUserProfileProvider.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n isOpenChannel: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n disableUserProfile: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n renderUserProfile: PropTypes.func,\n className: PropTypes.string,\n};\n\nUserProfileProvider.defaultProps = {\n className: null,\n isOpenChannel: false,\n disableUserProfile: false,\n renderUserProfile: null,\n};\n\nexport { UserProfileContext, UserProfileProvider };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\n/*\n ImageRenderer displays image with url or source\n it checks if the source exist with img tag first\n if it exists onLoad is called, if not onError is called\n and those properties switch img tag to real purposing element\n*/\n\nexport default function ImageRenderer({\n alt,\n url,\n width,\n height,\n className,\n defaultComponent,\n circle,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-image-renderer');\n const [realElement, setRealElement] = useState(null);\n useEffect(() => {\n setRealElement(null);\n }, [url]);\n return (\n realElement || (\n {\n setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent);\n }}\n onLoad={() => {\n setRealElement((\n \n ));\n }}\n />\n )\n );\n}\n\nImageRenderer.propTypes = {\n alt: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n defaultComponent: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n circle: PropTypes.bool,\n};\nImageRenderer.defaultProps = {\n alt: '',\n className: '',\n circle: false,\n defaultComponent: null,\n width: null,\n height: null,\n};\n","export default {\n ADD: 'ADD',\n ATTACH: 'ATTACH',\n ARROW_LEFT: 'ARROW_LEFT',\n AVATAR_DARK: 'AVATAR_DARK',\n AVATAR_LIGHT: 'AVATAR_LIGHT',\n AVATAR_NO_IMAGE: 'AVATAR_NO_IMAGE',\n BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK',\n BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT',\n BROADCAST_DARK: 'BROADCAST_DARK',\n BROADCAST_LIGHT: 'BROADCAST_LIGHT',\n BROADCAST: 'BROADCAST',\n FROZEN_DARK: 'FROZEN_DARK',\n FROZEN_LIGHT: 'FROZEN_LIGHT',\n CAMERA: 'CAMERA',\n MORE: 'MORE',\n MUTE: 'MUTE',\n NO_THUMBNAIL: 'NO_THUMBNAIL',\n CHECKBOX: 'CHECKBOX',\n CHECKBOX_OFF: 'CHECKBOX_OFF',\n CLOSE: 'CLOSE',\n COPY: 'COPY',\n CHAT: 'CHAT',\n CREATE: 'CREATE',\n DELETE: 'DELETE',\n DISCONNECTED: 'DISCONNECTED',\n DUMMY: 'DUMMY',\n EDIT: 'EDIT',\n ERROR: 'ERROR',\n ERROR_FILLED: 'ERROR_FILLED',\n EMOJI_FAILED: 'EMOJI_FAILED',\n EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD',\n EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY',\n DELIVERED: 'DELIVERED',\n DOCUMENT: 'DOCUMENT',\n DOWNLOAD: 'DOWNLOAD',\n FILE_AUDIO: 'FILE_AUDIO',\n FILE_DOCUMENT: 'FILE_DOCUMENT',\n GIF: 'GIF',\n INFO: 'INFO',\n LEAVE: 'LEAVE',\n MEMBERS: 'MEMBERS',\n NOTIFICATIONS: 'NOTIFICATIONS',\n PHOTO: 'PHOTO',\n PLAY: 'PLAY',\n PLUS: 'PLUS',\n READ: 'READ',\n REFRESH: 'REFRESH',\n SEND: 'SEND',\n SENT: 'SENT',\n SUPER_GROUP: 'SUPER_GROUP',\n SHEVRON: 'SHEVRON',\n SHEVRON_DOWN: 'SHEVRON_DOWN',\n SPINNER: 'SPINNER',\n SPINNER_LARGE: 'SPINNER_LARGE',\n USER: 'USER',\n ICON_OPERATOR: 'ICON_OPERATOR',\n ICON_BANNED: 'ICON_BANNED',\n ICON_FREEZE: 'ICON_FREEZE',\n ICON_MUTED: 'ICON_MUTED',\n ICON_MUTED_FG: 'ICON_MUTED_FG',\n TOGGLE_ON: 'TOGGLE_ON',\n TOGGLE_OFF: 'TOGGLE_OFF',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Type from './type';\n\nimport IconAdd from '../../svgs/icon-add.svg';\nimport IconAttach from '../../svgs/icon-attach.svg';\nimport IconArrowLeft from '../../svgs/icon-arrow-left.svg';\nimport IconAvatarDark from '../../svgs/icon-avatar-dark.svg';\nimport IconAvatarLight from '../../svgs/icon-avatar-light.svg';\nimport IconAvatarNoImage from '../../svgs/avatar-no-image-light.svg';\nimport BroadcastLargeDark from '../../svgs/icon-broadcast-lrg-dark.svg';\nimport BroadcastLargeLight from '../../svgs/icon-broadcast-lrg-light.svg';\nimport BroadcastDark from '../../svgs/icon-broadcast-dark.svg';\nimport BroadcastLight from '../../svgs/icon-broadcast-light.svg';\nimport Broadcast from '../../svgs/icon-broadcast.svg';\nimport FrozenDark from '../../svgs/frozen-dark.svg';\nimport FrozenLight from '../../svgs/frozen-light.svg';\nimport IconCamera from '../../svgs/icon-camera.svg';\nimport IconMore from '../../svgs/icon-more.svg';\nimport IconMute from '../../svgs/icon-mute.svg';\nimport IconNoThumbnail from '../../svgs/icon-no-thumbnail.svg';\nimport IconCheckbox from '../../svgs/icon-checkbox.svg';\nimport IconCheckboxOff from '../../svgs/icon-checkbox-off.svg';\nimport IconClose from '../../svgs/icon-close.svg';\nimport IconCopy from '../../svgs/icon-copy.svg';\nimport IconChat from '../../svgs/icon-chat.svg';\nimport IconSupergroup from '../../svgs/icon-supergroup.svg';\nimport IconCreate from '../../svgs/icon-create.svg';\nimport IconDelete from '../../svgs/icon-delete.svg';\nimport IconDummy from '../../svgs/icon-dummy.svg';\nimport IconEdit from '../../svgs/icon-edit.svg';\nimport IconError from '../../svgs/icon-error.svg';\nimport IconErrorFilled from '../../svgs/icon-error-filled.svg';\nimport IconEmojiFailed from '../../svgs/emoji-fail.svg';\nimport IconEmojiReactionsAdd from '../../svgs/icon-reactions-add.svg';\nimport IconEmojiReactionsAddGray from '../../svgs/icon-emoji-reactions-add.svg';\nimport IconDelivered from '../../svgs/icon-delivered.svg';\nimport IconDisconnected from '../../svgs/icon-disconnected.svg';\nimport IconDocument from '../../svgs/icon-document.svg';\nimport IconDownload from '../../svgs/icon-download.svg';\nimport IconFileAudio from '../../svgs/icon-file-audio.svg';\nimport IconFileDocument from '../../svgs/icon-file-document.svg';\nimport IconGif from '../../svgs/icon-gif.svg';\nimport IconInfo from '../../svgs/icon-info.svg';\nimport IconLeave from '../../svgs/icon-leave.svg';\nimport IconMembers from '../../svgs/icon-members.svg';\nimport IconNotifications from '../../svgs/icon-notifications.svg';\nimport IconPhoto from '../../svgs/icon-photo.svg';\nimport IconPlay from '../../svgs/icon-play.svg';\nimport IconPlus from '../../svgs/icon-plus.svg';\nimport IconRead from '../../svgs/icon-read.svg';\nimport IconRefresh from '../../svgs/icon-refresh.svg';\nimport IconSend from '../../svgs/icon-send.svg';\nimport IconSent from '../../svgs/icon-sent.svg';\nimport IconShevron from '../../svgs/icon-shevron.svg';\nimport IconShevronDown from '../../svgs/icon-shevron-down.svg';\nimport IconSpinner from '../../svgs/icon-spinner-small.svg';\nimport IconSpinnerLarge from '../../svgs/icon-spinner-large.svg';\nimport IconUser from '../../svgs/icon-user.svg';\nimport IconOperator from '../../svgs/icon-operator.svg';\nimport IconBanned from '../../svgs/icon-banned.svg';\nimport IconMuted from '../../svgs/icon-muted.svg';\nimport IconMutedFg from '../../svgs/icon-muted-foreground.svg';\nimport IconFreeze from '../../svgs/icon-freeze.svg';\nimport ToggleOn from '../../svgs/icon-toggleon.svg';\nimport ToggleOff from '../../svgs/icon-toggleoff.svg';\n\nconst Colors = {\n DEFAULT: 'DEFAULT',\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n CONTENT: 'CONTENT',\n CONTENT_INVERSE: 'CONTENT_INVERSE',\n WHITE: 'WHITE',\n SENT: 'SENT',\n READ: 'READ',\n ON_BACKGROUND_2: 'ON_BACKGROUND_2',\n ON_BACKGROUND_3: 'ON_BACKGROUND_3',\n BACKGROUND_3: 'BACKGROUND_3',\n};\n\nfunction changeColorToClassName(color) {\n switch (color) {\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.SECONDARY: return 'sendbird-color--secondary';\n case Colors.CONTENT: return 'sendbird-color--content';\n case Colors.CONTENT_INVERSE: return 'sendbird-color--content-inverse';\n case Colors.WHITE: return 'sendbird-color--white';\n case Colors.SENT: return 'sendbird-color--sent';\n case Colors.READ: return 'sendbird-color--read';\n case Colors.ON_BACKGROUND_2: return 'sendbird-color--on-background-2';\n case Colors.ON_BACKGROUND_3: return 'sendbird-color--on-background-3';\n case Colors.BACKGROUND_3: return 'sendbird-color--background-3';\n default: return '';\n }\n}\n\nfunction changeTypeToIconComponent(type) {\n switch (type) {\n case Type.ADD: return ;\n case Type.ARROW_LEFT: return ;\n case Type.CAMERA: return ;\n case Type.ATTACH: return ;\n case Type.AVATAR_DARK: return ;\n case Type.AVATAR_LIGHT: return ;\n case Type.AVATAR_NO_IMAGE: return ;\n case Type.BROADCAST_LARGE_DARK: return ;\n case Type.BROADCAST_LARGE_LIGHT: return ;\n case Type.BROADCAST_DARK: return ;\n case Type.BROADCAST_LIGHT: return ;\n case Type.BROADCAST: return ;\n case Type.FROZEN_DARK: return ;\n case Type.FROZEN_LIGHT: return ;\n case Type.MORE: return ;\n case Type.MUTE: return ;\n case Type.NO_THUMBNAIL: return ;\n case Type.CHECKBOX: return ;\n case Type.CHECKBOX_OFF: return ;\n case Type.CLOSE: return ;\n case Type.COPY: return ;\n case Type.CHAT: return ;\n case Type.SUPER_GROUP: return ;\n case Type.CREATE: return ;\n case Type.DELETE: return ;\n case Type.DISCONNECTED: return ;\n case Type.DUMMY: return ;\n case Type.EDIT: return ;\n case Type.ERROR: return ;\n case Type.ERROR_FILLED: return ;\n case Type.EMOJI_FAILED: return ;\n case Type.EMOJI_REACTIONS_ADD: return ;\n case Type.EMOJI_REACTIONS_ADD_GRAY: return ;\n case Type.DELIVERED: return ;\n case Type.DOCUMENT: return ;\n case Type.DOWNLOAD: return ;\n case Type.FILE_AUDIO: return ;\n case Type.FILE_DOCUMENT: return ;\n case Type.GIF: return ;\n case Type.INFO: return ;\n case Type.LEAVE: return ;\n case Type.MEMBERS: return ;\n case Type.NOTIFICATIONS: return ;\n case Type.PHOTO: return ;\n case Type.PLAY: return ;\n case Type.PLUS: return ;\n case Type.READ: return ;\n case Type.REFRESH: return ;\n case Type.SEND: return ;\n case Type.SENT: return ;\n case Type.SHEVRON: return ;\n case Type.SHEVRON_DOWN: return ;\n case Type.SPINNER: return ;\n case Type.SPINNER_LARGE: return ;\n case Type.USER: return ;\n case Type.ICON_OPERATOR: return ;\n case Type.ICON_BANNED: return ;\n case Type.ICON_MUTED: return ;\n case Type.ICON_MUTED_FG: return ;\n case Type.ICON_FREEZE: return ;\n case Type.TOGGLE_ON: return ;\n case Type.TOGGLE_OFF: return ;\n default: return null;\n }\n}\n\nexport default function Icon({\n type,\n width,\n height,\n children,\n className,\n onClick,\n fillColor,\n}) {\n const iconStyle = {\n width: typeof width === 'string' ? width : `${width}px`,\n minWidth: typeof width === 'string' ? width : `${width}px`,\n height: typeof height === 'string' ? height : `${height}px`,\n minHeight: typeof height === 'string' ? height : `${height}px`,\n };\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {\n children || changeTypeToIconComponent(type)\n }\n \n );\n}\n\nIcon.propTypes = {\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(Type)),\n PropTypes.string,\n ]).isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n onClick: PropTypes.func,\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n fillColor: PropTypes.oneOf(Object.keys(Colors)),\n};\n\nIcon.defaultProps = {\n onClick: () => { },\n width: 26,\n height: 26,\n children: null,\n className: '',\n fillColor: Colors.DEFAULT,\n};\n\nexport const IconTypes = Type;\nexport const IconColors = Colors;\n","import React, { ReactElement } from 'react';\n\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes } from '../Icon';\n\nimport './index.scss';\nimport { uuidv4 } from '../../utils/uuid';\n\nconst imageRendererClassName = 'sendbird-avatar-img';\n\ninterface DefaultComponentProps {\n width: string | number,\n height: string | number,\n}\n\nconst defaultComponent = (\n {\n width,\n height,\n }: DefaultComponentProps\n) => (): ReactElement => (\n document.querySelector('.sendbird-theme--dark')\n ? \n : \n);\n\ninterface AvatarInnerProps {\n height: string | number,\n width: string | number,\n src?: string | string[],\n alt?: string,\n}\n\nexport const AvatarInner = ({\n src = '',\n alt = '',\n height,\n width,\n}: AvatarInnerProps): ReactElement => {\n if (typeof src === 'string') {\n return (\n \n );\n }\n\n if (src && src.length) {\n if (src.length === 1) {\n return (\n \n );\n }\n\n if (src.length === 2) {\n return (\n
\n \n \n
\n );\n }\n\n if (src.length === 3) {\n return (\n <>\n
\n \n
\n
\n \n \n
\n \n );\n }\n\n return (\n
\n {\n src.slice(0, 4)\n .map((i) => (\n \n ))\n }\n
\n );\n }\n // default img\n return (\n \n );\n};\n\ninterface AvatarProps {\n height?: string | number,\n width?: string | number,\n src?: string | string[],\n alt?: string,\n onClick?(): void,\n className?: string | string[],\n}\n\nfunction Avatar(\n {\n src = '',\n alt = '',\n width = '56px',\n height = '56px',\n onClick,\n className = '',\n }: AvatarProps,\n ref: React.Ref,\n): ReactElement {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n \n \n );\n}\n\nexport default React.forwardRef(Avatar);\n","export const Typography = {\n H_1: 'H_1',\n H_2: 'H_2',\n SUBTITLE_1: 'SUBTITLE_1',\n SUBTITLE_2: 'SUBTITLE_2',\n BODY_1: 'BODY_1',\n BODY_2: 'BODY_2',\n BUTTON_1: 'BUTTON_1',\n BUTTON_2: 'BUTTON_2',\n CAPTION_1: 'CAPTION_1',\n CAPTION_2: 'CAPTION_2',\n CAPTION_3: 'CAPTION_3',\n};\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONCONTENT_1: 'ONCONTENT_1',\n ONCONTENT_2: 'ONCONTENT_2',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n SECONDARY_3: 'SECONDARY_3',\n};\n","import { Typography, Colors } from './types';\n\nexport function changeTypographyToClassName(type) {\n switch (type) {\n case Typography.H_1: return 'sendbird-label--h-1';\n case Typography.H_2: return 'sendbird-label--h-2';\n case Typography.SUBTITLE_1: return 'sendbird-label--subtitle-1';\n case Typography.SUBTITLE_2: return 'sendbird-label--subtitle-2';\n case Typography.BODY_1: return 'sendbird-label--body-1';\n case Typography.BODY_2: return 'sendbird-label--body-2';\n case Typography.BUTTON_1: return 'sendbird-label--button-1';\n case Typography.BUTTON_2: return 'sendbird-label--button-2';\n case Typography.CAPTION_1: return 'sendbird-label--caption-1';\n case Typography.CAPTION_2: return 'sendbird-label--caption-2';\n case Typography.CAPTION_3: return 'sendbird-label--caption-3';\n default: return null;\n }\n}\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-label--color-onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-label--color-onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-label--color-onbackground-3';\n case Colors.ONCONTENT_1: return 'sendbird-label--color-oncontent-1';\n case Colors.ONCONTENT_2: return 'sendbird-label--color-oncontent-2';\n case Colors.PRIMARY: return 'sendbird-label--color-primary'; // should be Primary-3 fix me\n case Colors.ERROR: return 'sendbird-label--color-error';\n case Colors.SECONDARY_3: return 'sendbird-label--color-secondary-3';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { Typography, Colors } from './types';\nimport { changeTypographyToClassName, changeColorToClassName } from './utils';\nimport getStringSet from './stringSet';\n\nconst CLASS_NAME = 'sendbird-label';\n\nexport default function Label({\n type,\n color,\n children,\n className,\n}) {\n const injectingClassName = (Array.isArray(className))\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n if (type) {\n injectingClassName.push(changeTypographyToClassName(type));\n }\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n\n return (\n \n {children}\n \n );\n}\n\nLabel.propTypes = {\n type: PropTypes.oneOf([...Object.keys(Typography), '']),\n color: PropTypes.oneOf([...Object.keys(Colors), '']),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.element,\n PropTypes.any,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nLabel.defaultProps = {\n type: '',\n color: '',\n className: [],\n children: null,\n};\n\nconst LabelTypography = Typography;\nconst LabelColors = Colors;\nconst LabelStringSet = getStringSet('en');\nexport { LabelTypography, LabelColors, LabelStringSet };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-iconbutton';\n\nconst IconButton = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n disabled = false,\n type,\n height,\n width,\n onClick,\n onBlur,\n style,\n } = props;\n\n const [pressed, setPressed] = useState('');\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n // eslint-disable-next-line react/button-has-type\n {\n if (disabled) { return; }\n setPressed('sendbird-iconbutton--pressed');\n onClick(e);\n }}\n onBlur={(e) => {\n setPressed('');\n onBlur(e);\n }}\n >\n \n {children}\n \n \n );\n});\n\nIconButton.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nIconButton.defaultProps = {\n height: '56px',\n width: '56px',\n className: '',\n type: 'button',\n disabled: false,\n onClick: () => { },\n onBlur: () => { },\n style: {},\n};\n\nexport default IconButton;\n","// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n
\n);\n","export const Type = {\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n DANGER: 'DANGER',\n DISABLED: 'DISABLED',\n};\n\nexport const Size = {\n BIG: 'BIG',\n SMALL: 'SMALL',\n};\n","import { Type, Size } from './type';\n\nexport function changeTypeToClassName(type) {\n switch (type) {\n case Type.PRIMARY: return 'sendbird-button--primary';\n case Type.SECONDARY: return 'sendbird-button--secondary';\n case Type.DANGER: return 'sendbird-button--danger';\n case Type.DISABLED: return 'sendbird-button--disabled';\n default: return null;\n }\n}\n\nexport function changeSizeToClassName(size) {\n switch (size) {\n case Size.BIG: return 'sendbird-button--big';\n case Size.SMALL: return 'sendbird-button--small';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { Type, Size } from './type';\nimport { changeTypeToClassName, changeSizeToClassName } from './utils';\n\nexport default function Button({\n type,\n size,\n children,\n disabled,\n onClick,\n className,\n}) {\n const injectingClassNames = [\n 'sendbird-button',\n (disabled ? 'sendbird-button__disabled' : ''),\n changeTypeToClassName(type),\n changeSizeToClassName(size),\n ...((Array.isArray(className)) ? className : [className]),\n ].join(' ');\n\n return (\n \n );\n}\n\nButton.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n disabled: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(Type)),\n size: PropTypes.oneOf(Object.keys(Size)),\n onClick: PropTypes.func,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nButton.defaultProps = {\n children: 'Button',\n type: Type.PRIMARY,\n disabled: false,\n size: Size.BIG,\n onClick: () => { },\n className: '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport const ModalHeader = ({ titleText }) => (\n
\n \n
\n);\nModalHeader.propTypes = {\n titleText: PropTypes.string.isRequired,\n};\n\nexport const ModalBody = ({ children }) => (\n
{children}
\n);\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element.isRequired,\n PropTypes.arrayOf(PropTypes.element.isRequired),\n ]),\n};\nModalBody.defaultProps = {\n children: null,\n};\n\nexport const ModalFooter = ({\n onSubmit,\n onCancel,\n disabled = false,\n submitText,\n type,\n}) => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n \n
\n );\n};\n\nModalFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModalFooter.defaultProps = {\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nfunction Modal(props) {\n const {\n children,\n onCancel,\n onSubmit,\n disabled,\n submitText,\n titleText,\n hideFooter,\n type,\n } = props;\n return createPortal((\n
\n
\n \n {children}\n {\n !hideFooter && (\n \n )\n }\n
\n \n \n \n
\n
\n
\n
\n ), document.getElementById(MODAL_ROOT));\n}\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n hideFooter: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModal.defaultProps = {\n children: null,\n hideFooter: false,\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nexport default Modal;\n","import './color.scss';\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONBACKGROUND_4: 'ONBACKGROUND_4',\n ONCONTENT_1: 'ONCONTENT_1',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-color--onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-color--onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-color--onbackground-3';\n case Colors.ONBACKGROUND_4: return 'sendbird-color--onbackground-4';\n case Colors.ONCONTENT_1: return 'sendbird-color--oncontent-1';\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.ERROR: return 'sendbird-color--error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\n\nexport default function TextButton({\n color,\n children,\n disabled,\n className,\n onClick,\n notUnderline,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nTextButton.propTypes = {\n color: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClick: PropTypes.func,\n notUnderline: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nTextButton.defaultProps = {\n color: Colors.ONBACKGROUND_1,\n className: '',\n onClick: () => { },\n notUnderline: false,\n disabled: false,\n};\n","export function Types() {\n return {\n LOADING: 'LOADING',\n NO_CHANNELS: 'NO_CHANNELS',\n WRONG: 'WRONG',\n };\n}\n\nexport default Types();\n","export const USER_UPDATED = 'USER_UPDATED';\nexport const SEND_MESSAGE_START = 'SEND_MESSAGE_START';\nexport const SEND_USER_MESSAGE = 'SEND_USER_MESSAGE';\nexport const SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE';\nexport const UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE';\nexport const DELETE_MESSAGE = 'DELETE_MESSAGE';\nexport const LEAVE_CHANNEL = 'LEAVE_CHANNEL';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\n","import * as topics from './pubSub/topics';\n\nexport const getSdk = (store) => {\n const { stores = {} } = store;\n const { sdkStore = {} } = stores;\n const { sdk } = sdkStore;\n return sdk;\n};\n\nexport const getPubSub = (store) => {\n const { config = {} } = store;\n const { pubSub } = config;\n return pubSub;\n};\n\n// SendBird disconnect. Invalidates currentUser\n// eslint-disable-next-line max-len\nexport const getConnect = (store) => (userId, accessToken) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n if (!accessToken) {\n sdk.connect(userId)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n } else {\n sdk.connect(userId, accessToken)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n }\n});\n\n// SendBird disconnect. Invalidates currentUser\nexport const getDisconnect = (store) => () => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.disconnect()\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\n// Using the updateCurrentUserInfo() method\n// you can update a user's nickname and profile image with a URL\n// eslint-disable-next-line max-len\nexport const getUpdateUserInfo = (store) => (nickName, profileUrl) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.updateCurrentUserInfo(nickName, profileUrl)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\nexport const getSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\nexport const getDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nexport const getResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getCreateChannel = (store) => (params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n pubsub.publish(\n topics.CREATE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n });\n};\n\nexport const getLeaveChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.leave()\n .then(() => {\n resolve(channel);\n pubsub.publish(\n topics.LEAVE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.freeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getUnFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.unfreeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nconst getCreateOpenChannel = (store) => (params) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n })\n .catch(reject);\n });\n};\nconst enterOpenChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (error) {\n reject(new Error(error));\n return;\n }\n\n openChannel.enter((response, enterError) => {\n if (error) {\n reject(new Error(enterError));\n return;\n }\n resolve(response);\n });\n });\n });\n};\n\nconst exitOpenChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl, (openChannel, error) => {\n if (error) {\n reject(new Error(error));\n return;\n }\n\n openChannel.exit((response, exitError) => {\n if (error) {\n reject(new Error(exitError));\n return;\n }\n resolve(response);\n });\n });\n });\n};\n\nconst getOpenChannelSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nconst getOpenChannelResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.OpenChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport default {\n getSdk,\n getConnect,\n getDisconnect,\n getUpdateUserInfo,\n getSendUserMessage,\n getSendFileMessage,\n getUpdateUserMessage,\n getDeleteMessage,\n getResendUserMessage,\n getResendFileMessage,\n getFreezeChannel,\n getUnFreezeChannel,\n getCreateChannel,\n getLeaveChannel,\n getCreateOpenChannel,\n enterOpenChannel,\n exitOpenChannel,\n getOpenChannelSendUserMessage,\n getOpenChannelSendFileMessage,\n getOpenChannelUpdateUserMessage,\n getOpenChannelDeleteMessage,\n getOpenChannelResendUserMessage,\n getOpenChannelResendFileMessage,\n};\n","import React, { ReactElement, useContext } from 'react';\nimport { SendbirdTypes } from '../../types';\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { getSdk, getCreateChannel } from '../../lib/selectors';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\n\ninterface Logger {\n info?(message: string, channel: SendbirdTypes['GroupChannel']): void;\n}\n\ninterface Props {\n user: SendbirdTypes['User'];\n currentUserId?: string;\n sdk?: SendbirdTypes['SendBirdInstance'];\n logger?: Logger;\n disableMessaging?: boolean;\n createChannel?(params: SendbirdTypes['GroupChannelParams']): Promise;\n onSuccess?(): void;\n}\n\nfunction UserProfile({\n user,\n currentUserId,\n sdk,\n logger,\n disableMessaging = false,\n createChannel,\n onSuccess,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n
\n
\n \n
\n {\n (user.userId !== currentUserId) && !disableMessaging && (\n
\n {\n const params = new sdk.GroupChannelParams();\n params.isDistinct = true;\n params.addUserIds([user.userId]);\n onSuccess();\n createChannel(params)\n .then((groupChannel) => {\n logger.info('UserProfile, channel create', groupChannel);\n });\n }}\n >\n {stringSet.USER_PROFILE__MESSAGE}\n \n
\n )\n }\n
\n
\n \n {stringSet.USER_PROFILE__USER_ID}\n \n \n {user.userId}\n \n
\n
\n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n createChannel: getCreateChannel(store),\n logger: store.config.logger,\n pubsub: store.config.pubSub,\n});\n\nconst ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps);\n\nexport default ConnectedUserProfile;\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class MenuItems extends Component {\n constructor(props) {\n super(props);\n this.menuRef = React.createRef();\n this.state = {\n menuStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getMenuPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-icon--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-icon--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { menuRef } = this;\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getMenuPosition = () => {\n const { parentRef, openLeft } = this.props;\n const parentRect = parentRef.current.getBoundingClientRect();\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n const menuStyle = {\n top: y,\n left: x,\n };\n\n if (!this.menuRef.current) return menuStyle;\n\n const { innerWidth, innerHeight } = window;\n const rect = this.menuRef.current.getBoundingClientRect();\n if (y + rect.height > innerHeight) {\n menuStyle.top -= rect.height;\n }\n\n if (x + rect.width > innerWidth && !openLeft) {\n menuStyle.left -= rect.width;\n }\n\n if (menuStyle.top < 0) {\n menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;\n }\n\n if (menuStyle.left < 0) {\n menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;\n }\n\n menuStyle.top += 32;\n if (openLeft) {\n const padding = Number.isNaN(rect.width - 30)\n ? 108 // default\n : rect.width - 30;\n menuStyle.left -= padding;\n }\n\n return this.setState({ menuStyle });\n }\n\n render() {\n const { menuStyle } = this.state;\n const { children, style } = this.props;\n return (\n createPortal(\n (\n <>\n
\n \n {children}\n \n \n ),\n document.getElementById('sendbird-dropdown-portal'),\n )\n );\n }\n}\nMenuItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n style: PropTypes.shape({}),\n // https://stackoverflow.com/a/51127130\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n openLeft: PropTypes.bool,\n};\nMenuItems.defaultProps = {\n style: {},\n openLeft: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst componentClassName = 'sendbird-sort-by-row';\nexport default function SortByRow({\n className,\n maxItemCount,\n itemWidth,\n itemHeight,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(componentClassName);\n\n if (children.length > maxItemCount) {\n const result = [];\n for (let i = 0; i < children.length; i += maxItemCount) {\n result.push(\n \n {\n children.slice(i, i + maxItemCount)\n }\n
,\n );\n }\n\n return result;\n }\n return (\n \n {children}\n
\n );\n}\n\nSortByRow.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n maxItemCount: PropTypes.number.isRequired,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]).isRequired,\n};\n\nSortByRow.defaultProps = {\n className: '',\n};\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport SortByRow from '../../SortByRow';\n\nexport default class EmojiListItems extends Component {\n constructor(props) {\n super(props);\n this.reactionRef = React.createRef();\n this.state = {\n reactionStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getBarPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-reactions--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-reactions--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { reactionRef } = this;\n const handleClickOutside = (event) => {\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getBarPosition = () => {\n const {\n parentRef,\n spaceFromTrigger,\n } = this.props;\n const spaceFromTriggerX = spaceFromTrigger.x || 0;\n const spaceFromTriggerY = spaceFromTrigger.y || 0;\n\n const parentRect = parentRef.current.getBoundingClientRect();\n\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n\n const reactionStyle = {\n top: y,\n left: x,\n };\n\n if (!this.reactionRef.current) return reactionStyle;\n const rect = this.reactionRef.current.getBoundingClientRect();\n // const childRect = this.reactionRef.current.children[0].getBoundingClientRect();\n\n if (reactionStyle.top < rect.height) {\n reactionStyle.top += parentRect.height;\n reactionStyle.top += spaceFromTriggerY;\n } else {\n reactionStyle.top -= rect.height;\n reactionStyle.top -= spaceFromTriggerY;\n }\n\n reactionStyle.left -= (rect.width / 2);\n reactionStyle.left += (parentRect.height / 2) - 2;\n reactionStyle.left += spaceFromTriggerX;\n\n const maximumLeft = (window.innerWidth - rect.width);\n if (maximumLeft < reactionStyle.left) {\n reactionStyle.left = maximumLeft;\n }\n if (reactionStyle.left < 0) {\n reactionStyle.left = 0;\n }\n\n return this.setState({ reactionStyle });\n }\n\n render() {\n const { reactionStyle } = this.state;\n const { children } = this.props;\n return (\n createPortal(\n <>\n
\n \n \n {children}\n \n \n ,\n document.getElementById('sendbird-emoji-list-portal'),\n )\n );\n }\n}\nEmojiListItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n spaceFromTrigger: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n};\nEmojiListItems.defaultProps = {\n spaceFromTrigger: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport MenuItems_ from './items/MenuItems';\nimport EmojiListItems_ from './items/EmojiListItems';\n\nconst ENTER = 13;\n\nexport const MenuItems = MenuItems_;\nexport const EmojiListItems = EmojiListItems_;\n\nexport const MenuItem = ({ children, onClick, className }) => {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n {\n if (e.keyCode === ENTER) {\n onClick(e);\n }\n }}\n role=\"menuitem\"\n >\n \n {children}\n \n \n );\n};\n\nMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n};\n\nMenuItem.defaultProps = {\n className: '',\n};\n\nexport const MenuRoot = () => (\n
\n);\n\nexport const EmojiReactionListRoot = () => (\n
\n);\n\nexport default function ContextMenu({ menuTrigger, menuItems }) {\n const [showMenu, setShowMenu] = useState(false);\n\n return (\n
\n {menuTrigger(() => setShowMenu(!showMenu))}\n {showMenu && menuItems(() => setShowMenu(false))}\n
\n );\n}\n\nContextMenu.propTypes = {\n menuTrigger: PropTypes.func.isRequired,\n menuItems: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes } from '../Icon';\n\nexport default function Loader({\n children,\n className,\n width,\n height,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nLoader.propTypes = {\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nLoader.defaultProps = {\n children: ,\n className: '',\n width: '26px',\n height: '26px',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Loader from '../Loader';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport _PlaceHolderTypes from './type';\n\nexport const PlaceHolderTypes = _PlaceHolderTypes;\n\nexport default function PlaceHolder({\n className,\n type,\n retryToConnect,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n {\n type === PlaceHolderTypes.LOADING\n ? (\n \n \n \n )\n : null\n }\n {\n type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG\n ? (\n
\n {\n type === PlaceHolderTypes.NO_CHANNELS && (\n \n )\n }\n {\n type === PlaceHolderTypes.WRONG && (\n \n )\n }\n \n {\n retryToConnect\n ? (\n \n \n \n
\n )\n : null\n }\n
\n )\n : null\n }\n
\n );\n}\n\nPlaceHolder.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(PlaceHolderTypes)),\n PropTypes.string,\n ]).isRequired,\n retryToConnect: PropTypes.func,\n};\n\nPlaceHolder.defaultProps = {\n className: '',\n retryToConnect: null,\n};\n"],"names":["UserProfileContext","React","createContext","disableUserProfile","isOpenChannel","renderUserProfile","UserProfileProvider","props","children","className","propTypes","PropTypes","oneOfType","element","arrayOf","any","isRequired","bool","func","string","defaultProps","ImageRenderer","alt","url","width","height","defaultComponent","circle","injectingClassName","Array","isArray","unshift","useState","realElement","setRealElement","useEffect","join","backgroundRepeat","backgroundPosition","backgroundSize","backgroundImage","borderRadius","number","ADD","ATTACH","ARROW_LEFT","AVATAR_DARK","AVATAR_LIGHT","AVATAR_NO_IMAGE","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","BROADCAST_DARK","BROADCAST_LIGHT","BROADCAST","FROZEN_DARK","FROZEN_LIGHT","CAMERA","MORE","MUTE","NO_THUMBNAIL","CHECKBOX","CHECKBOX_OFF","CLOSE","COPY","CHAT","CREATE","DELETE","DISCONNECTED","DUMMY","EDIT","ERROR","ERROR_FILLED","EMOJI_FAILED","EMOJI_REACTIONS_ADD","EMOJI_REACTIONS_ADD_GRAY","DELIVERED","DOCUMENT","DOWNLOAD","FILE_AUDIO","FILE_DOCUMENT","GIF","INFO","LEAVE","MEMBERS","NOTIFICATIONS","PHOTO","PLAY","PLUS","READ","REFRESH","SEND","SENT","SUPER_GROUP","SHEVRON","SHEVRON_DOWN","SPINNER","SPINNER_LARGE","USER","ICON_OPERATOR","ICON_BANNED","ICON_FREEZE","ICON_MUTED","ICON_MUTED_FG","TOGGLE_ON","TOGGLE_OFF","Colors","DEFAULT","PRIMARY","SECONDARY","CONTENT","CONTENT_INVERSE","WHITE","ON_BACKGROUND_2","ON_BACKGROUND_3","BACKGROUND_3","changeColorToClassName","color","changeTypeToIconComponent","type","Type","IconAdd","IconArrowLeft","IconCamera","IconAttach","IconAvatarDark","IconAvatarLight","IconAvatarNoImage","BroadcastLargeDark","BroadcastLargeLight","BroadcastDark","BroadcastLight","Broadcast","FrozenDark","FrozenLight","IconMore","IconMute","IconNoThumbnail","IconCheckbox","IconCheckboxOff","IconClose","IconCopy","IconChat","IconSupergroup","IconCreate","IconDelete","IconDisconnected","IconDummy","IconEdit","IconError","IconErrorFilled","IconEmojiFailed","IconEmojiReactionsAdd","IconEmojiReactionsAddGray","IconDelivered","IconDocument","IconDownload","IconFileAudio","IconFileDocument","IconGif","IconInfo","IconLeave","IconMembers","IconNotifications","IconPhoto","IconPlay","IconPlus","IconRead","IconRefresh","IconSend","IconSent","IconShevron","IconShevronDown","IconSpinner","IconSpinnerLarge","IconUser","IconOperator","IconBanned","IconMuted","IconMutedFg","IconFreeze","ToggleOn","ToggleOff","Icon","onClick","fillColor","iconStyle","minWidth","minHeight","oneOf","Object","keys","IconTypes","IconColors","imageRendererClassName","_a","document","querySelector","AvatarInner","_b","src","_c","length","slice","map","i","uuidv4","Avatar","ref","_d","_e","_f","__spreadArrays","forwardRef","Typography","H_1","H_2","SUBTITLE_1","SUBTITLE_2","BODY_1","BODY_2","BUTTON_1","BUTTON_2","CAPTION_1","CAPTION_2","CAPTION_3","ONBACKGROUND_1","ONBACKGROUND_2","ONBACKGROUND_3","ONCONTENT_1","ONCONTENT_2","SECONDARY_3","changeTypographyToClassName","CLASS_NAME","Label","push","LabelTypography","LabelColors","LabelStringSet","getStringSet","IconButton","disabled","onBlur","style","pressed","setPressed","e","shape","MODAL_ROOT","DANGER","DISABLED","Size","BIG","SMALL","changeTypeToClassName","changeSizeToClassName","size","Button","injectingClassNames","ModalHeader","titleText","ModalBody","ModalFooter","onSubmit","onCancel","submitText","useContext","LocalizationContext","stringSet","ButtonTypes","BUTTON__CANCEL","Modal","hideFooter","createPortal","getElementById","ONBACKGROUND_4","TextButton","notUnderline","Types","LOADING","NO_CHANNELS","WRONG","SEND_MESSAGE_START","SEND_USER_MESSAGE","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","DELETE_MESSAGE","LEAVE_CHANNEL","CREATE_CHANNEL","getSdk","store","stores","sdkStore","sdk","getPubSub","config","pubSub","getConnect","userId","accessToken","Promise","resolve","reject","Error","connect","then","res","catch","err","getDisconnect","disconnect","getUpdateUserInfo","nickName","profileUrl","updateCurrentUserInfo","getSendUserMessage","channelUrl","userMessageParams","pubsub","GroupChannel","getChannel","channel","promisify","pendingMsg","pendingPromise","resolve_","reject_","sendUserMessage","swapParams","getErrorFirstCallback","message","error","publish","topics","get","getSendFileMessage","fileMessageParams","sendFileMessage","file","localUrl","URL","createObjectURL","fileUrl","requestState","getUpdateUserMessage","messageId","params","updateUserMessage","fromSelector","getDeleteMessage","deleteMessage","getResendUserMessage","failedMessage","resendUserMessage","getResendFileMessage","resendFileMessage","getCreateChannel","createChannel","getLeaveChannel","leave","getFreezeChannel","freeze","getUnFreezeChannel","unfreeze","getCreateOpenChannel","OpenChannel","enterOpenChannel","openChannel","enter","response","enterError","exitOpenChannel","exit","exitError","getOpenChannelSendUserMessage","getOpenChannelSendFileMessage","getOpenChannelUpdateUserMessage","getOpenChannelDeleteMessage","getOpenChannelResendUserMessage","getOpenChannelResendFileMessage","UserProfile","user","currentUserId","logger","disableMessaging","onSuccess","nickname","NO_NAME","GroupChannelParams","isDistinct","addUserIds","groupChannel","info","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","mapStoreToProps","ConnectedUserProfile","withSendbirdContext","MenuItems","parentContainRef","current","classList","add","remove","closeDropdown","menuRef","handleClickOutside","event","contains","target","setState","addEventListener","state","removeEventListener","parentRef","openLeft","parentRect","getBoundingClientRect","x","left","y","top","menuStyle","window","innerWidth","innerHeight","rect","padding","Number","isNaN","createRef","setupEvents","getMenuPosition","showParent","cleanUpEvents","hideParent","display","position","Math","round","Component","instanceOf","Element","componentClassName","SortByRow","maxItemCount","itemWidth","itemHeight","result","EmojiListItems","reactionRef","spaceFromTrigger","spaceFromTriggerX","spaceFromTriggerY","reactionStyle","maximumLeft","getBarPosition","ENTER","MenuItems_","EmojiListItems_","MenuItem","keyCode","ContextMenu","menuTrigger","menuItems","showMenu","setShowMenu","Loader","PlaceHolderTypes","_PlaceHolderTypes","PlaceHolder","retryToConnect","PLACE_HOLDER__NO_CHANNEL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqEA,IAAMC,MAAM,GAAG;AACbC,EAAAA,OAAO,EAAE,SADI;AAEbC,EAAAA,OAAO,EA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"} \ No newline at end of file diff --git a/dist/esm/index.js b/dist/esm/index.js index 1a77450..2bcf83d 100644 --- a/dist/esm/index.js +++ b/dist/esm/index.js @@ -5,25 +5,25 @@ import 'prop-types'; import 'sendbird'; import './actionTypes-a85c0eaa.js'; import 'css-vars-ponyfill'; -export { F as sendBirdSelectors } from './index-0c67ae90.js'; +export { F as sendBirdSelectors } from './index-ec3bf9fe.js'; export { default as ChannelList } from './ChannelList.js'; import './utils-53ba1773.js'; -import './index-a199094e.js'; -import './LeaveChannel-fcc0bfc3.js'; +import './index-aebda3d2.js'; +import './LeaveChannel-da8b5d0b.js'; import 'date-fns/isToday'; import 'date-fns/format'; import 'date-fns/isYesterday'; import './type-0296584d.js'; import './utils-cfdeb084.js'; import 'react-dom'; -import './index-73379213.js'; +import './index-aa89d60a.js'; export { default as Channel, getAllEmojisFromEmojiContainer, getEmojiCategoriesFromEmojiContainer, getEmojisFromEmojiContainer } from './Channel.js'; -import './index-1cf7b066.js'; +import './index-19f570c9.js'; import 'date-fns/isSameDay'; import './utils-d7f59026.js'; import 'date-fns/formatDistanceToNowStrict'; export { default as ChannelSettings } from './ChannelSettings.js'; -import './index-7bc4a9f7.js'; +import './index-8abf69b8.js'; export { default as App } from './App.js'; export { default as OpenChannel } from './OpenChannel.js'; export { default as OpenChannelSettings } from './OpenChannelSettings.js'; diff --git a/dist/index.css b/dist/index.css index 1c55668..90b1d15 100644 --- a/dist/index.css +++ b/dist/index.css @@ -1,258 +1,286 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap"); -:root { - --sendbird-light-primary-500: #4d2aa6; - --sendbird-light-primary-400: #6440C4; - --sendbird-light-primary-300: #7B53EF; - --sendbird-light-primary-200: #9E8CF5; - --sendbird-light-primary-100: #E2DFFF; - --sendbird-light-secondary-500: #007A7A; - --sendbird-light-secondary-400: #189A8D; - --sendbird-light-secondary-300: #2EBA9F; - --sendbird-light-secondary-200: #6FD6BE; - --sendbird-light-secondary-100: #AEF2DC; - --sendbird-light-information-100: #b2d9ff; - --sendbird-light-error-500: #A30E2D; - --sendbird-light-error-400: #C11F41; - --sendbird-light-error-300: #E53157; - --sendbird-light-error-200: #FF6183; - --sendbird-light-error-100: #FFABBD; - --sendbird-light-background-700: #000000; - --sendbird-light-background-600: #161616; - --sendbird-light-background-500: #2C2C2C; - --sendbird-light-background-400: #393939; - --sendbird-light-background-300: #A8A8A8; - --sendbird-light-background-200: #D9D9D9; - --sendbird-light-background-100: #F0F0F0; - --sendbird-light-background-50: #FFFFFF; - --sendbird-light-overlay: rgba(0, 0, 0, 0.32); - --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88); - --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50); - --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38); - --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12); - --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88); - --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50); - --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38); - --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12); - --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - --sendbird-light-theme-surface-2: #EAEAEA; } +.sendbird-openchannel-conversation { + position: relative; + display: flex; + flex-direction: column; + height: 100%; + width: 100%; } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + bottom: 96px; + left: calc(50% - 20px); + width: 40px; + height: 40px; + border-radius: 24px; + z-index: 1; } + .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { + background-color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom { + background-color: var(--sendbird-dark-primary-200); } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { + background-color: var(--sendbird-light-primary-400); } + .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:hover { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-theme--light .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { + background-color: var(--sendbird-light-primary-500); } + .sendbird-theme--dark .sendbird-openchannel-conversation .sendbird-openchannel-conversation__go-to-bottom:active { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll { + overflow-y: auto; + flex: 1 1 0; + order: 2; + width: 100%; } + .sendbird-openchannel-conversation .sendbird-openchannel-footer { + order: 3; + padding: 12px 24px 24px 24px; } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container { + display: flex; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + flex-direction: column; } + .sendbird-openchannel-conversation .sendbird-openchannel-conversation-scroll-container .sendbird-openchannel-conversation-scroll-padding { + flex: 1 1 0; } -:root { - --sendbird-dark-primary-500: #4d2aa6; - --sendbird-dark-primary-400: #6440C4; - --sendbird-dark-primary-300: #7B53EF; - --sendbird-dark-primary-200: #9E8CF5; - --sendbird-dark-primary-100: #E2DFFF; - --sendbird-dark-secondary-500: #007A7A; - --sendbird-dark-secondary-400: #189A8D; - --sendbird-dark-secondary-300: #2EBA9F; - --sendbird-dark-secondary-200: #6FD6BE; - --sendbird-dark-secondary-100: #AEF2DC; - --sendbird-dark-information-100: #b2d9ff; - --sendbird-dark-error-500: #A30E2D; - --sendbird-dark-error-400: #C11F41; - --sendbird-dark-error-300: #E53157; - --sendbird-dark-error-200: #FF6183; - --sendbird-dark-error-100: #FFABBD; - --sendbird-dark-background-700: #000000; - --sendbird-dark-background-600: #161616; - --sendbird-dark-background-500: #2C2C2C; - --sendbird-dark-background-400: #393939; - --sendbird-dark-background-300: #A8A8A8; - --sendbird-dark-background-200: #D9D9D9; - --sendbird-dark-background-100: #F0F0F0; - --sendbird-dark-background-50: #FFFFFF; - --sendbird-dark-overlay: rgba(0, 0, 0, 0.32); - --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88); - --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50); - --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38); - --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12); - --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88); - --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50); - --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38); - --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12); - --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } +.sendbird-openchannel-settings { + height: 100%; + width: 320px; + display: inline-block; + overflow-y: scroll; + position: relative; } + .sendbird-theme--light .sendbird-openchannel-settings { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-participants-accordion__footer { + text-align: left; + padding-top: 16px; + padding-left: 16px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__accordion-icon, + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-icon__delete { + position: absolute; + left: 16px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__participant { + height: 100%; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__participants-list { + padding-top: 64px; + height: calc(100% - 64px); + overflow-y: scroll; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { + display: block; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 1; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__participant .sendbird-openchannel-settings__header { + background-color: var(--sendbird-dark-background-600); } + .sendbird-openchannel-settings .sendbird-participants-accordion, + .sendbird-openchannel-settings .sendbird-openchannel-settings__delete-channel { + text-align: left; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__members .sendbird-badge__text { + margin-top: -2px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__header { + height: 64px; + min-height: 64px; + position: relative; + padding: 20px 24px; + box-sizing: border-box; + text-align: left; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__header { + border-bottom: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__header { + border-bottom: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon { + cursor: pointer; + position: absolute; + top: 20px; + right: 16px; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__close-icon path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__placeholder { + margin-top: 40%; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url { + padding: 16px; + box-sizing: border-box; + position: relative; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url:hover .sendbird-openchannel-settings__copy-icon { + display: inline-block; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__copy-icon { + cursor: pointer; + position: absolute; + display: none; + top: 10px; + right: 18px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value { + margin-top: 8px; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-value, + .sendbird-openchannel-settings .sendbird-openchannel-settings__url .sendbird-openchannel-settings__url-label { + text-align: left; + display: block; + word-wrap: break-word; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__url { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__url { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { + display: block; + cursor: pointer; + box-sizing: border-box; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item:focus { + outline: none; } + .sendbird-openchannel-settings .sendbird-openchannel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { + cursor: not-allowed; } + .sendbird-openchannel-settings .sendbird-participants-accordion__member { + position: relative; + padding: 12px 0px 12px 56px; + height: 40px; + box-sizing: border-box; + text-align: left; } + .sendbird-openchannel-settings .sendbird-participants-accordion__member .sendbird-label { + max-width: 240px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-openchannel-settings .sendbird-participants-accordion__member-avatar { + position: absolute; + left: 16px; + top: 10px; + cursor: pointer; } -:root { - --sendbird-iconbutton-color: #825eeb; - --sendbird-message-input-border-active: #7B53EF; - --sendbird-selected-reaction-button-border-hover: #9E8CF5; - --sendbird-add-reaction-button-border-hover: #9E8CF5; - --sendbird-tooltip-background: #000000; - --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88); - --sendbird-button-border-focus: #FFFFFF; - --sendbird-file-message-icon-background: #FFFFFF; - --sendbird-font-family-default: 'Open Sans', sans-serif; - --sendbird-message-balloon-width: 404px; } +.sendbird-accordion { + padding: 8px 0px 16px 0px; + position: relative; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-accordion { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-accordion { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-accordion .sendbird-accordion__member { + position: relative; + padding: 12px 0px 12px 44px; + height: 40px; + box-sizing: border-box; } + .sendbird-accordion .sendbird-accordion__footer { + display: flex; + justify-content: flex-start; + margin-top: 8px; } -.sendbird__offline .sendbird-channel-preview { - cursor: not-allowed; } +.sendbird-accordion__panel-heder { + cursor: pointer; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-accordion__panel-heder { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-accordion__panel-heder { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-accordion__panel-heder:focus { + outline: none; } + .sendbird-accordion__panel-heder.sendbird-accordion__panel-item__disabled { + cursor: not-allowed; } -.sendbird-channel-preview { +.sendbird-accordion__panel-icon-left, +.sendbird-accordion__panel-icon-right { + position: absolute; + top: 10px; } + +.sendbird-accordion__panel-icon-left { + left: 16px; } + +.sendbird-accordion__panel-icon-right { + right: 16px; } + +.sendbird-accordion__panel-icon--open { + transform: rotate(90deg); } + +.sendbird-theme--light .sendbird-accordion__panel-icon--chevron path { + fill: var(--sendbird-light-onlight-01); } + +.sendbird-theme--dark .sendbird-accordion__panel-icon--chevron path { + fill: var(--sendbird-dark-ondark-01); } + +.sendbird-theme--light .sendbird-accordion__panel-icon__leave path { + fill: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-accordion__panel-icon__leave path { + fill: var(--sendbird-dark-error-300); } + +.sendbird-openchannel-conversation-header { position: relative; - cursor: pointer; - box-sizing: border-box; - width: 320px; - height: 80px; + min-height: 64px; } + .sendbird-theme--light .sendbird-openchannel-conversation-header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-conversation-header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-conversation-header .sendbird-openchannel-conversation-header__left__title { + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + max-width: calc(100% - 120px); } + .sendbird-openchannel-conversation-header__left [class*=sendbird-openchannel-conversation-header__left__cover-image] { + position: absolute; + left: 20px; + top: 16px; } + .sendbird-openchannel-conversation-header__left__title { + position: absolute; + left: 60px; + top: 12px; } + .sendbird-openchannel-conversation-header__left__sub-title { + position: absolute; + left: 60px; + top: 36px; } + .sendbird-openchannel-conversation-header__right { + position: absolute; + top: 0px; + right: 0px; + width: 64px; + height: 64px; } + .sendbird-openchannel-conversation-header__right__trigger { + position: absolute; + top: 16px; + right: 16px; + display: flex; + align-items: center; + justify-content: center; } + +.sendbird-frozen-channel-notification { + position: relative; + margin-top: 8px; + margin-right: 24px; + margin-left: 24px; + height: 32px; display: flex; - flex-direction: row; align-items: center; justify-content: center; - padding: 12px 16px 12px 16px; } - .sendbird-theme--light .sendbird-channel-preview { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-preview { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-channel-preview .sendbird-channel-preview__frozen-icon { - padding-left: 4px; } - .sendbird-channel-preview .sendbird-channel-preview__broadcast-icon { - padding-right: 4px; } - .sendbird-channel-preview:focus { - outline: none; } - .sendbird-channel-preview .sendbird-channel-preview__avatar { - width: 56px; - height: 56px; } - .sendbird-channel-preview .sendbird-channel-preview__content { - width: 100%; - height: 100%; - margin-left: 16px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper { - display: flex; - justify-content: space-between; - width: 216px; - height: 16px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header { - display: flex; - justify-content: flex-start; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__channel-name { - overflow: hidden; - text-overflow: ellipsis; - max-width: 128px; - word-break: break-all; - white-space: nowrap; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__total-members { - margin-top: 2px; - margin-left: 4px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__last-message-at { - margin-left: 4px; - margin-bottom: 4px; - white-space: nowrap; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower { - margin-top: 8px; - width: 216px; - height: 32px; - display: flex; - justify-content: space-between; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__last-message { - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__unread-message-count { - margin-left: 8px; - margin-bottom: 12px; } - .sendbird-channel-preview .sendbird-channel-preview__action { - position: absolute; - top: 12px; - right: 12px; - display: inline-block; } - .sendbird-channel-preview .sendbird-channel-preview__action .sendbird-iconbutton { - display: none; } - .sendbird-theme--light .sendbird-channel-preview:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-channel-preview:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-channel-preview:hover .sendbird-channel-preview__action .sendbird-iconbutton { - display: inline-block; } - .sendbird-channel-preview:hover .sendbird-channel-preview__content__upper__last-message-at { - display: none; } - .sendbird-channel-preview:hover .sendbird-channel-preview__content__lower__unread-message-count { - display: none; } - -.sendbird-channel-preview--active { - padding: 12px 16px 12px 12px; } - .sendbird-theme--light .sendbird-channel-preview--active { - border-left: solid 4px var(--sendbird-light-primary-300); - border-bottom: solid 1px var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-channel-preview--active { - border-left: solid 4px var(--sendbird-dark-primary-200); - border-bottom: solid 1px var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-700); } - .sendbird-theme--light .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { - color: var(--sendbird-dark-primary-200); } - -.sendbird-image-renderer--hidden-placeholder { - display: none; } - -.sendbird-icon { - display: inline-block; } - .sendbird-icon:focus { - outline: none; } - -.sendbird-theme--light .sendbird-color--primary [class*='fill'] { - fill: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary [class*='fill'] { - fill: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--primary [class*='stroke'] { - stroke: var(--sendbird-light-primary-300); - stroke-width: 2px; - stroke-linejoin: round; } - -.sendbird-theme--dark .sendbird-color--primary [class*='stroke'] { - stroke: var(--sendbird-dark-primary-200); - stroke-width: 2px; - stroke-linejoin: round; } - -.sendbird-theme--light .sendbird-color--secondary [class*='fill'] { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--secondary [class*='fill'] { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--content [class*='fill'] { - fill: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--content [class*='fill'] { - fill: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--content-inverse [class*='fill'] { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--content-inverse [class*='fill'] { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-color--white [class*='fill'] { - fill: #ffffff; } - -.sendbird-theme--light .sendbird-color--sent [class*='fill'] { - fill: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--sent [class*='fill'] { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--read [class*='fill'] { - fill: var(--sendbird-light-secondary-300); } - -.sendbird-theme--dark .sendbird-color--read [class*='fill'] { - fill: var(--sendbird-dark-secondary-200); } - -.sendbird-theme--light .sendbird-color--on-background [class*='fill'] { - fill: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--on-background [class*='fill'] { - fill: var(--sendbird-dark-ondark-03); } + border-radius: 4px; } + .sendbird-theme--light .sendbird-frozen-channel-notification { + background-color: var(--sendbird-light-information-100); } + .sendbird-theme--dark .sendbird-frozen-channel-notification { + background-color: var(--sendbird-dark-information-100); } .sendbird-avatar { display: inline-block; @@ -285,245 +313,579 @@ .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:last-child { transform: translate(-23%, -23%) scale(0.5); } -.sendbird-badge { - height: 20px; - min-width: 20px; - border-radius: 10px; - display: inline-block; } - .sendbird-theme--light .sendbird-badge { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-badge { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-badge .sendbird-badge__text { - margin: 0px 6px; } - -[class*=sendbird-label] { - font-family: var(--sendbird-font-family-default); } - -.sendbird-label--h-1 { - font-size: 20px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.4; - letter-spacing: -0.2px; } - -.sendbird-label--h-2 { - font-size: 18px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: normal; - letter-spacing: -0.2px; } - -.sendbird-label--subtitle-1 { - font-size: 16px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.38; - letter-spacing: -0.2px; } - -.sendbird-label--subtitle-2 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.14; - letter-spacing: -0.2px; } - -.sendbird-label--body-1 { - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } +.sendbird__user-profile { + width: 320px; + border-radius: 4px; + padding: 24px; + box-sizing: border-box; + text-align: center; } + .sendbird-theme--light .sendbird__user-profile { + box-shadow: var(--sendbird-light-shadow-02); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird__user-profile { + box-shadow: var(--sendbird-dark-shadow-02); + background-color: var(--sendbird-dark-background-500); } + .sendbird__user-profile .sendbird__user-profile-avatar { + margin: 8px 0px; } + .sendbird__user-profile .sendbird__user-profile-name { + max-width: 270px; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; } + .sendbird__user-profile .sendbird__user-profile-message { + margin-top: 20px; } + .sendbird__user-profile .sendbird__user-profile-message button { + width: 272px; } + .sendbird__user-profile .sendbird__user-profile-seperator { + margin: 24px 0px; + height: 1px; } + .sendbird-theme--light .sendbird__user-profile .sendbird__user-profile-seperator { + background-color: var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird__user-profile .sendbird__user-profile-seperator { + background-color: var(--sendbird-dark-ondark-04); } + .sendbird__user-profile .sendbird__user-profile-userId--label, + .sendbird__user-profile .sendbird__user-profile-userId--value { + display: block; + text-align: left; } + .sendbird__user-profile .sendbird__user-profile-userId--label { + margin-bottom: 8px; } -.sendbird-label--body-2 { - font-size: 12px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.33; - letter-spacing: normal; } +.sendbird-openchannel-conversation-scroll { + position: relative; + width: 100%; } + .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container { + position: absolute; + width: 100%; } + .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding { + height: 8px; } -.sendbird-label--button-1 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--button-2 { - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--caption-1 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--caption-2 { - font-size: 12px; - font-weight: bold; - font-style: normal; - line-height: 1; - letter-spacing: normal; } - -.sendbird-label--caption-3 { - font-size: 12px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1; - letter-spacing: normal; } - -.sendbird-theme--light .sendbird-label--color-onbackground-1 { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-1 { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-label--color-onbackground-2 { - color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-2 { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-label--color-onbackground-3 { - color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-3 { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-label--color-oncontent-1 { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-1 { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-label--color-oncontent-2 { - color: var(--sendbird-light-ondark-02); } +.sendbird-openchannel-og-message { + position: relative; + display: flex; + flex-direction: column; + width: 100%; } + .sendbird-theme--light .sendbird-openchannel-og-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-og-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-og-message:hover .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { + display: block; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top { + box-sizing: border-box; + position: relative; + display: flex; + flex-direction: row; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__left .sendbird-openchannel-og-message__top__left__avatar { + position: absolute; + display: flex; + top: 8px; + left: 24px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right { + position: relative; + display: flex; + box-sizing: border-box; + flex-direction: column; + margin: 8px 24px 8px 12px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title { + position: relative; + display: flex; + margin-bottom: 2px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sender-name { + position: relative; + display: flex; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__title .sendbird-openchannel-og-message__top__right__title__sent-at { + position: relative; + display: flex; + margin-left: 4px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__right .sendbird-openchannel-og-message__top__right__description .sendbird-openchannel-og-message__top__right__description__message { + position: relative; + display: inline; + white-space: pre-wrap; + word-break: break-all; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu { + position: absolute; + right: 16px; + display: none; } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__top .sendbird-openchannel-og-message__top__context-menu .sendbird-openchannel-og-message__top__context-menu--icon:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom { + position: relative; + display: inline; + margin-bottom: 8px; + width: 100%; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { + position: relative; + display: inline-block; + box-sizing: border-box; + width: calc(100% - 64px); + max-width: 360px; + left: 64px; + padding: 12px 12px 4px 12px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { + border: solid 1px var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag { + border: solid 1px var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__url { + position: relative; + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-bottom: 8px; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title { + position: relative; + display: inline-block; + white-space: pre-wrap; + overflow-wrap: normal; + margin-bottom: 8px; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__title:hover { + color: var(--sendbird-dark-primary-200); } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__description { + position: relative; + display: block; + white-space: pre-wrap; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + max-height: 32px; + margin-bottom: 8px; + width: 100%; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail { + box-sizing: border-box; + position: relative; + display: block; + margin-top: 4px; + margin-bottom: 8px; + width: 100%; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail:hover { + cursor: pointer; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image { + border-radius: 8px; + width: 100%; + min-width: 200px; + max-width: 336px; } + .sendbird-openchannel-og-message .sendbird-openchannel-og-message__bottom .sendbird-openchannel-og-message__bottom__og-tag .sendbird-openchannel-og-message__bottom__og-tag__thumbnail .sendbird-openchannel-og-message__bottom__og-tag__thumbnail__image--placeholder { + border-radius: 8px; + width: 100%; + min-width: 200px; + max-width: 336px; } -.sendbird-theme--dark .sendbird-label--color-oncontent-2 { - color: var(--sendbird-dark-onlight-02); } +.sendbird-openchannel-og-message--word { + display: inline; + margin: 0px 2px; + word-break: break-all; } -.sendbird-theme--light .sendbird-label--color-primary { +.sendbird-theme--light .sendbird-openchannel-og-message--word--link { color: var(--sendbird-light-primary-300); } -.sendbird-theme--dark .sendbird-label--color-primary { +.sendbird-theme--dark .sendbird-openchannel-og-message--word--link { color: var(--sendbird-dark-primary-200); } -.sendbird-theme--light .sendbird-label--color-error { - color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-label--color-error { - color: var(--sendbird-dark-error-300); } - -.sendbird-iconbutton { - color: var(--sendbird-iconbutton-color); - display: inline-block; - padding: 3px; - background-color: transparent; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid transparent; - border-radius: 4px; - outline: 0px; } - .sendbird-theme--light .sendbird-iconbutton .sendbird-iconbutton__inner svg { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-iconbutton .sendbird-iconbutton__inner svg { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-iconbutton:hover { +.sendbird-openchannel-user-message { + position: relative; + display: flex; + flex-direction: row; + width: 100%; } + .sendbird-theme--light .sendbird-openchannel-user-message:hover { background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-iconbutton:hover { + .sendbird-theme--dark .sendbird-openchannel-user-message:hover { background-color: var(--sendbird-dark-background-500); } - .sendbird-theme--light .sendbird-iconbutton:focus { - box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } - .sendbird-theme--dark .sendbird-iconbutton:focus { - box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } - .sendbird-theme--light .sendbird-iconbutton:active { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-iconbutton:active { - background-color: var(--sendbird-dark-background-400); } - .sendbird-iconbutton:disabled { - cursor: not-allowed !important; } - .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { - fill: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { - fill: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-iconbutton--pressed { - background-color: var(--sendbird-light-primary-100); } + .sendbird-openchannel-user-message:hover .sendbird-openchannel-user-message__context-menu { + display: block; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__left .sendbird-openchannel-user-message__left__avatar { + position: relative; + display: flex; + margin-top: 8px; + margin-left: 24px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + margin: 8px 24px 8px 12px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top { + position: relative; + display: flex; + margin-bottom: 2px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sender-name { + position: relative; + display: flex; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__top .sendbird-openchannel-user-message__right__top__sent-at { + position: relative; + display: flex; + margin-left: 4px; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom { + position: relative; + display: flex; + width: 100%; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__right .sendbird-openchannel-user-message__right__bottom .sendbird-openchannel-user-message__right__bottom__message { + position: relative; + word-break: break-all; } + .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu { + position: absolute; + right: 16px; + display: none; } + .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-user-message .sendbird-openchannel-user-message__context-menu .sendbird-openchannel-user-message__context-menu--icon:hover { + background-color: var(--sendbird-dark-background-400); } -.sendbird-theme--dark .sendbird-iconbutton--pressed { - background-color: var(--sendbird-dark-background-700); } +.sendbird-openchannel-thumbnail-message { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu { + display: block; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message:hover .sendbird-openchannel-thumbnail-message__context-menu .sendbird-openchannel-thumbnail-message__context-menu--icon:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__left .sendbird-openchannel-thumbnail-message__left__avatar { + position: absolute; + display: inline; + margin-top: 8px; + margin-left: 28px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right { + position: relative; + display: flex; + flex-direction: column; + margin-top: 8px; + margin-bottom: 8px; + margin-left: 12px; + width: calc(100% - 64px); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title { + position: relative; + display: inline; + margin-bottom: 4px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sender-name { + position: relative; + display: inline; + margin-right: 4px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__title .sendbird-openchannel-thumbnail-message__right__title__sent-at { + position: relative; + display: inline; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body { + position: relative; + display: inline; + border-radius: 8px; + width: 100%; + max-width: 360px; + height: 100%; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body:hover .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + opacity: 1; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap { + position: relative; + width: 100%; + height: 100%; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + max-width: 360px; + top: 0px; + left: 0px; + border-radius: 8px; + cursor: pointer; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video { + max-width: 360px; + height: 270px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video:hover { + cursor: pointer; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__video { + max-width: 360px; + height: 270px; + border-radius: 8px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video .sendbird-openchannel-thumbnail-message__right__body__wrap__video__icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { + padding: 107px 152px 107px 152px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__video--icon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image { + border-radius: 8px; + max-width: 360px; } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { + padding: 107px 152px 107px 152px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__image--icon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { + padding: 107px 152px 107px 152px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__right .sendbird-openchannel-thumbnail-message__right__body .sendbird-openchannel-thumbnail-message__right__body__wrap .sendbird-openchannel-thumbnail-message__right__body__wrap__unknown { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-thumbnail-message .sendbird-openchannel-thumbnail-message__context-menu { + position: absolute; + display: none; + top: 8px; + right: 16px; } -.sendbird-channel-header { +.sendbird-openchannel-profile { position: relative; - height: 64px; - min-height: 64px; - width: 320px; - padding: 8px 64px 8px 8px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-channel-header { + text-align: center; + padding: 32px 40px 27px 40px; } + .sendbird-theme--light .sendbird-openchannel-profile { border-bottom: 1px solid var(--sendbird-light-onlight-04); background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-channel-header { + .sendbird-theme--dark .sendbird-openchannel-profile { border-bottom: 1px solid var(--sendbird-dark-ondark-04); background-color: var(--sendbird-dark-background-600); } - .sendbird-channel-header.sendbird-channel-header--allow-edit .sendbird-channel-header__title { - cursor: pointer; } - .sendbird-channel-header .sendbird-channel-header__title { - display: flex; - flex-direction: row; - width: 260px; - height: 48px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:hover { - background: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:hover { - background: var(--sendbird-dark-background-500); } - .sendbird-channel-header .sendbird-channel-header__title:focus { - outline: none; } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:focus { - background: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:focus { - background: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:active { - border: solid 2px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:active { - border: solid 2px var(--sendbird-dark-primary-200); } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--left { - width: 48px; - padding: 8px; - box-sizing: border-box; } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--right { - margin-left: 4px; - padding-top: 8px; } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--name, - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--user-id { + .sendbird-openchannel-profile .sendbird-openchannel-profile--inner { + height: 116px; } + .sendbird-openchannel-profile .sendbird-openchannel-profile__avatar { + margin-bottom: 16px; + text-align: center; } + .sendbird-openchannel-profile .sendbird-openchannel-profile__title { + max-width: 240px; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + height: 18px; } + .sendbird-openchannel-profile .sendbird-openchannel-profile__edit { + position: absolute; + top: 10px; + right: 16px; } + +.sendbird-openchannel-admin-message { + position: relative; + margin: 16px 24px; + padding: 12px 16px; + border-radius: 4px; } + .sendbird-theme--light .sendbird-openchannel-admin-message { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-admin-message { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-admin-message .sendbird-openchannel-admin-message__text { + word-wrap: break-word; } + +.sendbird-openchannel-file-message { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-openchannel-file-message:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-openchannel-file-message:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-openchannel-file-message:hover .sendbird-openchannel-file-message__context-menu { + display: block; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left { + position: relative; + display: flex; + width: 52px; + min-width: 52px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__left .sendbird-openchannel-file-message__left__avatar { + position: absolute; display: block; - max-width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-header .sendbird-channel-header__right-icon { + margin-top: 8px; + margin-left: 24px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right { + position: relative; + display: flex; + flex-direction: column; + margin-left: 12px; + margin-bottom: 4px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title { + position: relative; + display: flex; + margin-top: 8px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sender-name { + position: relative; + display: flex; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__title .sendbird-openchannel-file-message__right__title__sent-at { + position: relative; + display: flex; + margin-left: 4px; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { + position: relative; + display: flex; + margin-top: 4px; + margin-bottom: 4px; + border-radius: 8px; } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { + background-color: var(--sendbird-light-background-100); + border: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body { + background-color: var(--sendbird-dark-background-500); + border: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { + position: relative; + display: inline-block; + margin: 8px; + border-radius: 8.6px; } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__icon { + background-color: var(--sendbird-dark-background-600); } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__right .sendbird-openchannel-file-message__right__body .sendbird-openchannel-file-message__right__body__file-name { + position: relative; + display: flex; + margin-top: 22px; + margin-right: 16px; + margin-left: 4px; + overflow: hidden; + height: 20px; + max-height: 20px; + text-overflow: ellipsis; } + .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu { position: absolute; - right: 16px; - top: 16px; } + display: none; + top: 8px; + right: 16px; } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { + background-color: var(--sendbird-light-background-300); } + .sendbird-theme--dark .sendbird-openchannel-file-message .sendbird-openchannel-file-message__context-menu .sendbird-openchannel-file-message__context-menu__icon:hover { + background-color: var(--sendbird-dark-background-400); } + +.sendbird-channel-settings { + height: 100%; + width: 320px; + display: inline-block; } + .sendbird-theme--light .sendbird-channel-settings { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-channel-settings .sendbird-channel-settings__header-icon { + cursor: pointer; + position: absolute; + top: 18px; + right: 21px; } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-channel-settings .sendbird-channel-settings__members .sendbird-badge__text { + margin-top: -2px; } + .sendbird-channel-settings .sendbird-channel-settings__header { + height: 64px; + min-height: 64px; + position: relative; + padding: 20px 24px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header { + border-bottom: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header { + border-bottom: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-channel-settings .sendbird-channel-settings__scroll-area { + display: flex; + flex-grow: 1; + flex-direction: column; + height: calc(100% - 64px); + overflow-y: auto; } + .sendbird-channel-settings .sendbird-channel-settings__panel-item { + cursor: pointer; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-item { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-item { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-channel-settings .sendbird-channel-settings__panel-item:focus { + outline: none; } + .sendbird-channel-settings .sendbird-channel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { + cursor: not-allowed; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left, + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { + position: absolute; + top: 10px; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left { + left: 16px; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { + right: 16px; } + .sendbird-channel-settings .sendbird-channel-settings__panel-icon--open { + transform: rotate(90deg); } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { + fill: var(--sendbird-light-error-300); } + .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { + fill: var(--sendbird-dark-error-300); } + +.sendbird-muted-avatar { + border-radius: 50%; + display: inline-block; } + .sendbird-muted-avatar .sendbird-muted-avatar__icon { + position: relative; } + .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon { + position: absolute; + top: 4px; + left: 4px; } + .sendbird-muted-avatar .sendbird-muted-avatar__bg { + opacity: .5; + position: absolute; + border-radius: 50%; + top: 0; + left: 0; } + .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg { + background-color: var(--sendbird-light-primary-400); } + .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg { + background-color: var(--sendbird-dark-primary-300); } .sendbird__edit-user-profile section { margin-top: 16px; } @@ -545,598 +907,690 @@ .sendbird__edit-user__theme-icon .sendbird-icon { cursor: pointer; } -.sendbird-modal { - position: fixed; - top: 0; - left: 0; - width: 100%; +.sendbird-channel-list { + width: 320px; height: 100%; display: flex; - align-items: center; - justify-content: center; } - -.sendbird-modal-content { - width: 480px; - border-radius: 4px; - z-index: 10001; - padding: 18px 24px 24px 24px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-modal-content { + flex-direction: column; } + .sendbird-theme--light .sendbird-channel-list { background-color: var(--sendbird-light-background-50); - box-shadow: var(--sendbird-light-shadow-04); } - .sendbird-theme--dark .sendbird-modal-content { - background-color: var(--sendbird-dark-background-500); - box-shadow: var(--sendbird-dark-shadow-04); } - .sendbird-modal-content .sendbird-modal-close { - position: absolute; - top: 16px; - right: 16px; - cursor: pointer; } - .sendbird-theme--light .sendbird-modal-content .sendbird-modal-close path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-modal-content .sendbird-modal-close path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-modal-content .sendbird-modal-header { - margin-bottom: 16px; } - .sendbird-modal-content .sendbird-modal-footer { - margin-top: 32px; - text-align: right; } - .sendbird-modal-content .sendbird-modal-footer .sendbird-button:last-child { - margin-left: 8px; - width: 80px; - height: 40px; } + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-list { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } -.sendbird-modal-backdrop { - position: fixed; - z-index: 10000; - height: 100%; - width: 100%; - top: 0; - left: 0; } - .sendbird-theme--light .sendbird-modal-backdrop { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-modal-backdrop { - background-color: var(--sendbird-dark-overlay); } +.sendbird-channel-list__header { + height: 64px; + min-height: 64px; } -.sendbird-button { - display: inline-block; - box-shadow: none; - border-radius: 4px; - padding: 0px; - font-family: var(--sendbird-font-family-default); - cursor: pointer; } - .sendbird-button:hover { - box-shadow: none; } - .sendbird-button:focus { - outline: none; } - .sendbird-button:active { - box-shadow: none; } - .sendbird-button.sendbird-button__disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-button.sendbird-button__disabled { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button.sendbird-button__disabled { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button.sendbird-button__disabled:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button.sendbird-button__disabled:hover { - background-color: var(--sendbird-dark-background-400); } +.sendbird-channel-list__body { + flex: 1 1 0; + -ms-flex: 1; + overflow-y: auto; + overflow-x: hidden; } -.sendbird-button--big { +.sendbird-user-list-item--small { + display: block; + position: relative; + box-sizing: border-box; height: 40px; } - .sendbird-button--big .sendbird-button__text { - margin: 10px 16px; } - -.sendbird-button--small { - height: 32px; } - .sendbird-button--small .sendbird-button__text { - margin: 6px 16px; } - -.sendbird-theme--light .sendbird-button--primary { - border: 1px solid var(--sendbird-light-primary-300); - background-color: var(--sendbird-light-primary-300); } + .sendbird-user-list-item--small__avatar { + cursor: pointer; + position: absolute; + top: 10px; + left: 12px; } + .sendbird-user-list-item--small .sendbird-muted-avatar { + position: absolute; + top: 10px; + left: 12px; + z-index: 2; + pointer-events: none; } + .sendbird-user-list-item--small__title { + position: absolute; + top: 10px; + left: 54px; + width: 160px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item--small__subtitle { + position: absolute; + top: 23px; + left: 140px; + max-width: 237px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item--small__checkbox { + position: absolute; + top: 16px; + right: 16px; } + .sendbird-user-list-item--small__action { + display: none; + position: absolute; + right: 10px; + top: 4px; } + .sendbird-user-list-item--small__operator { + position: absolute; + right: 24px; + top: 10px; } + .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed { + background-color: var(--sendbird-dark-background-500); } + .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action { + display: block; } + .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator { + display: none; } + .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { + background-color: var(--sendbird-dark-background-700); } -.sendbird-theme--dark .sendbird-button--primary { - border: 1px solid var(--sendbird-dark-primary-200); - background-color: var(--sendbird-dark-primary-200); } +.sendbird-app__wrap { + width: 100%; + height: 100%; + display: flex; } + .sendbird-app__wrap .sendbird-app__conversation-wrap { + flex: 1; + position: relative; } + .sendbird-app__wrap .sendbird-app__channellist-wrap { + max-width: 320px; } + .sendbird-theme--light .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { + background-color: var(--sendbird-dark-background-700); } + .sendbird-app__wrap .sendbird-channel-settings { + border-left: none; } + .sendbird-app__wrap .sendbird-channel-settings .sendbird-channel-settings__header { + height: 65px; } -.sendbird-theme--light .sendbird-button--primary .sendbird-button__text { - color: var(--sendbird-light-ondark-01); } +.sendbird-icon { + display: inline-block; } + .sendbird-icon:focus { + outline: none; } -.sendbird-theme--dark .sendbird-button--primary .sendbird-button__text { - color: var(--sendbird-dark-onlight-01); } +.sendbird-theme--light .sendbird-color--primary [class*='fill'] { + fill: var(--sendbird-light-primary-300); } -.sendbird-theme--light .sendbird-button--primary:hover { - background-color: var(--sendbird-light-primary-400); - border-color: var(--sendbird-light-primary-400); } +.sendbird-theme--dark .sendbird-color--primary [class*='fill'] { + fill: var(--sendbird-dark-primary-200); } -.sendbird-theme--dark .sendbird-button--primary:hover { - background-color: var(--sendbird-dark-primary-300); - border-color: var(--sendbird-dark-primary-300); } +.sendbird-theme--light .sendbird-color--primary [class*='stroke'] { + stroke: var(--sendbird-light-primary-300); + stroke-width: 2px; + stroke-linejoin: round; } -.sendbird-theme--light .sendbird-button--primary:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); - border: 1px solid var(--sendbird-button-border-focus); } +.sendbird-theme--dark .sendbird-color--primary [class*='stroke'] { + stroke: var(--sendbird-dark-primary-200); + stroke-width: 2px; + stroke-linejoin: round; } -.sendbird-theme--dark .sendbird-button--primary:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); - border: 1px solid var(--sendbird-button-border-focus); } +.sendbird-theme--light .sendbird-color--secondary [class*='fill'] { + fill: var(--sendbird-light-onlight-01); } -.sendbird-theme--light .sendbird-button--primary:active { - background-color: var(--sendbird-light-primary-500); } +.sendbird-theme--dark .sendbird-color--secondary [class*='fill'] { + fill: var(--sendbird-dark-ondark-01); } -.sendbird-theme--dark .sendbird-button--primary:active { - background-color: var(--sendbird-dark-primary-400); } +.sendbird-theme--light .sendbird-color--content [class*='fill'] { + fill: var(--sendbird-light-ondark-01); } -.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:hover { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-400); } +.sendbird-theme--dark .sendbird-color--content [class*='fill'] { + fill: var(--sendbird-dark-onlight-01); } -.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:hover { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-300); } +.sendbird-theme--light .sendbird-color--content-inverse [class*='fill'] { + fill: var(--sendbird-light-onlight-01); } -.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:active { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-500); } +.sendbird-theme--dark .sendbird-color--content-inverse [class*='fill'] { + fill: var(--sendbird-dark-ondark-01); } -.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:active { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-400); } +.sendbird-color--white [class*='fill'] { + fill: #ffffff; } -.sendbird-button--secondary { - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary { - border: 1px solid var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-button--secondary { - border: 1px solid var(--sendbird-dark-ondark-03); } - .sendbird-theme--light .sendbird-button--secondary .sendbird-button__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-button--secondary .sendbird-button__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-button--secondary:hover { - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary:hover { - border: 1px solid var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover { - border: 1px solid var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - .sendbird-button--secondary.sendbird-button__disabled { - cursor: not-allowed; - border: none; } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { - color: var(--sendbird-dark-ondark-02); } - .sendbird-button--secondary.sendbird-button__disabled:hover { - border: none; } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { - color: var(--sendbird-dark-ondark-02); } - .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - .sendbird-button--secondary:focus { - border: 1px solid transparent; - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary:focus { - box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } - .sendbird-theme--dark .sendbird-button--secondary:focus { - box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } - .sendbird-theme--light .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-button--secondary:active { - box-shadow: none; } - .sendbird-theme--light .sendbird-button--secondary:active { - border: 1px solid var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:active { - border: 1px solid var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-button--secondary:active .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:active .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } +.sendbird-theme--light .sendbird-color--sent [class*='fill'] { + fill: var(--sendbird-light-onlight-03); } -.sendbird-theme--light .sendbird-button--danger { - border: 1px solid var(--sendbird-light-error-300); - background-color: var(--sendbird-light-error-300); } +.sendbird-theme--dark .sendbird-color--sent [class*='fill'] { + fill: var(--sendbird-dark-ondark-03); } -.sendbird-theme--dark .sendbird-button--danger { - border: 1px solid var(--sendbird-dark-error-300); - background-color: var(--sendbird-dark-error-300); } +.sendbird-theme--light .sendbird-color--read [class*='fill'] { + fill: var(--sendbird-light-secondary-300); } -.sendbird-theme--light .sendbird-button--danger .sendbird-button__text { - color: var(--sendbird-light-ondark-01); } +.sendbird-theme--dark .sendbird-color--read [class*='fill'] { + fill: var(--sendbird-dark-secondary-200); } -.sendbird-theme--dark .sendbird-button--danger .sendbird-button__text { - color: var(--sendbird-dark-onlight-01); } +.sendbird-theme--light .sendbird-color--on-background-2 [class*='fill'] { + fill: var(--sendbird-light-onlight-02); } -.sendbird-theme--light .sendbird-button--danger:hover { - background-color: var(--sendbird-light-error-400); - border-color: var(--sendbird-light-error-400); } +.sendbird-theme--dark .sendbird-color--on-background-2 [class*='fill'] { + fill: var(--sendbird-dark-ondark-02); } -.sendbird-theme--dark .sendbird-button--danger:hover { - background-color: var(--sendbird-dark-error-400); - border-color: var(--sendbird-dark-error-400); } +.sendbird-theme--light .sendbird-color--on-background-3 [class*='fill'] { + fill: var(--sendbird-light-onlight-03); } -.sendbird-theme--light .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-300); - border-color: var(--sendbird-button-border-focus); } +.sendbird-theme--dark .sendbird-color--on-background-3 [class*='fill'] { + fill: var(--sendbird-dark-ondark-03); } -.sendbird-theme--dark .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-300); - border-color: var(--sendbird-button-border-focus); } +.sendbird-theme--light .sendbird-color--background-3 [class*='fill'] { + fill: var(--sendbird-light-background-300); } -.sendbird-button--danger:active { - box-shadow: none; } - .sendbird-theme--light .sendbird-button--danger:active { - background-color: var(--sendbird-light-error-500); } - .sendbird-theme--dark .sendbird-button--danger:active { - background-color: var(--sendbird-dark-error-500); } +.sendbird-theme--dark .sendbird-color--background-3 [class*='fill'] { + fill: var(--sendbird-dark-background-400); } -.sendbird-theme--light .sendbird-button--danger:hover .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-400); } +.sendbird-channel-settings__operator .sendbird-channel-settings__accordion-icon { + position: absolute; + left: 14px; } -.sendbird-theme--dark .sendbird-button--danger:hover .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-400); } +.sendbird-channel-settings__operator .sendbird-accordion__panel-heder { + position: relative; } -.sendbird-theme--light .sendbird-button--danger:active .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-500); } +.sendbird-channel-settings__empty-list { + text-align: center; + margin-top: 12px; + margin-bottom: 4px; + display: block; } -.sendbird-theme--dark .sendbird-button--danger:active .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-500); } +.sendbird-channel-settings-accordion__footer { + padding-top: 16px; + display: flex; + justify-content: left; + padding-left: 12px; } + .sendbird-channel-settings-accordion__footer .sendbird-button:nth-child(2) { + margin-left: 8px; } -.sendbird-button--disabled { - border: 1px solid transparent; - cursor: not-allowed; } - .sendbird-theme--light .sendbird-button--disabled { - background-color: var(--sendbird-light-background-200); - color: var(--sendbird-light-ondark-01); } - .sendbird-theme--dark .sendbird-button--disabled { - background-color: var(--sendbird-dark-background-400); +.sendbird-channel-settings__freeze { + max-width: 320px; + position: relative; + padding: 12px 22px 10px 56px; } + .sendbird-theme--light .sendbird-channel-settings__freeze { + background-color: var(--sendbird-light-background-50); + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-settings__freeze { + background-color: var(--sendbird-dark-background-600); + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-channel-settings__frozen-icon { + position: absolute; + right: 20px; + top: 12px; } + .sendbird-channel-settings__frozen-icon .sendbird-icon { + cursor: pointer; } + +.sendbird-channel-settings__members-list .sendbird-badge, +.sendbird-channel-settings__members .sendbird-badge { + position: absolute; + right: 44px; + top: 12px; } + .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--light + .sendbird-channel-settings__members .sendbird-badge { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--dark + .sendbird-channel-settings__members .sendbird-badge { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--light + .sendbird-channel-settings__members .sendbird-badge .sendbird-label { + color: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--dark + .sendbird-channel-settings__members .sendbird-badge .sendbird-label { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-place-holder { + display: flex; + justify-content: center; + align-items: center; + height: 100%; } + .sendbird-place-holder .sendbird-place-holder__body { + display: flex; + flex-direction: column; + height: 104px; + align-items: center; } + .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__icon { + margin-bottom: 10px; } + .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__text { + margin-top: 10px; } + .sendbird-place-holder .sendbird-place-holder__body__reconnect { + margin-top: 18px; + display: flex; + flex-direction: row; + cursor: pointer; } + .sendbird-place-holder .sendbird-place-holder__body__reconnect .sendbird-place-holder__body__reconnect__icon { + margin-right: 4px; } + +.sendbird-conversation { + display: flex; + flex-direction: column; + height: 100%; } + .sendbird-theme--light .sendbird-conversation { + background-color: var(--sendbird-light-background-50); + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-conversation { + background-color: var(--sendbird-dark-background-600); + border: 1px solid var(--sendbird-dark-ondark-04); } + +.sendbird-conversation__messages { + overflow-y: auto; + flex: 1 1 0; + order: 2; } + +.sendbird-conversation__messages-list { + display: flex; + flex-direction: column; + height: 100%; + justify-content: flex-end; } + +.sendbird-conversation__footer { + order: 3; + padding: 0px 24px 24px 24px; } + +.sendbird-conversation__scroll-container { + display: flex; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + flex-direction: column; } + .sendbird-conversation__scroll-container .sendbird-conversation__padding { + flex: 1 1 0; } + +.sendbird-conversation__footer { + position: relative; } + .sendbird-conversation__footer .sendbird-conversation__typing-indicator { + position: absolute; + bottom: 8px; } + +.sendbird-notification { + margin-top: 8px; + margin-left: 24px; + margin-right: 24px; + border-radius: 4px; + padding: 0px 2px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; } + .sendbird-theme--light .sendbird-notification { + background-color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-notification { + background-color: var(--sendbird-dark-primary-200); } + .sendbird-notification:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-notification:hover { + background-color: var(--sendbird-light-primary-400); } + .sendbird-theme--dark .sendbird-notification:hover { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen { + background-color: var(--sendbird-light-information-100); } + .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen { + background-color: var(--sendbird-dark-information-100); } + .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { color: var(--sendbird-dark-onlight-01); } + .sendbird-notification .sendbird-notification__text { + display: flex; + align-items: center; + justify-content: center; + margin-right: 8px; } -.sendbird-input { +.sendbird-iconbutton { + color: var(--sendbird-iconbutton-color); + display: inline-block; + padding: 3px; + background-color: transparent; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 1px solid transparent; + border-radius: 4px; + outline: 0px; } + .sendbird-theme--light .sendbird-iconbutton .sendbird-iconbutton__inner svg { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-iconbutton .sendbird-iconbutton__inner svg { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-theme--light .sendbird-iconbutton:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-iconbutton:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-theme--light .sendbird-iconbutton:focus { + box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } + .sendbird-theme--dark .sendbird-iconbutton:focus { + box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } + .sendbird-theme--light .sendbird-iconbutton:active { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-iconbutton:active { + background-color: var(--sendbird-dark-background-400); } + .sendbird-iconbutton:disabled { + cursor: not-allowed !important; } + .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { + fill: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { + fill: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-iconbutton--pressed { + background-color: var(--sendbird-light-primary-100); } + +.sendbird-theme--dark .sendbird-iconbutton--pressed { + background-color: var(--sendbird-dark-background-700); } + +.sendbird-message-input { display: inline-block; width: 100%; - height: 40px; position: relative; } - .sendbird-input .sendbird-input--input { + .sendbird-message-input .sendbird-message-input--textarea { width: 100%; - height: 100%; border-radius: 4px; - font-family: var(--sendbird-font-family-default); font-size: 14px; font-weight: normal; font-stretch: normal; font-style: normal; line-height: 1.43; + height: 56px; + overflow-y: hidden; letter-spacing: normal; - padding: 10px 16px; + padding: 18px 64px 18px 16px; box-sizing: border-box; + resize: none; + font-family: var(--sendbird-font-family-default); background-color: inherit; } - .sendbird-theme--light .sendbird-input .sendbird-input--input { + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea { color: var(--sendbird-light-onlight-01); caret-color: var(--sendbird-light-primary-300); - border: solid 1px var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input { + border: solid 1px var(--sendbird-light-onlight-03); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea { color: var(--sendbird-dark-ondark-01); caret-color: var(--sendbird-dark-primary-200); - border: solid 1px var(--sendbird-dark-ondark-03); } - .sendbird-input .sendbird-input--input:focus { + border: solid 1px var(--sendbird-dark-ondark-03); + background-color: var(--sendbird-dark-background-500); } + .sendbird-message-input .sendbird-message-input--textarea:focus { outline: none; } - .sendbird-theme--light .sendbird-input .sendbird-input--input:focus { - box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:focus { color: var(--sendbird-light-onlight-01); - border: solid 2px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:focus { - box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + border: solid 1px var(--sendbird-light-primary-300); + box-shadow: var(--sendbird-light-shadow-message-input); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:focus { color: var(--sendbird-dark-ondark-01); - border: solid 2px var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-input .sendbird-input--input:active { - box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-light-onlight-01); - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:active { - box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-dark-ondark-01); - border: solid 1px var(--sendbird-dark-primary-200); } - .sendbird-input .sendbird-input--input:disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-input .sendbird-input--input:disabled { - background-color: var(--sendbird-light-background-100); - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:disabled { - background-color: var(--sendbird-dark-background-500); - color: var(--sendbird-dark-ondark-03); } - .sendbird-input .sendbird-input--placeholder { + border: solid 1px var(--sendbird-dark-primary-200); + box-shadow: var(--sendbird-dark-shadow-message-input); } + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:active { + border: solid 1px var(--sendbird-message-input-border-active); + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:active { + border: solid 1px var(--sendbird-message-input-border-active); + color: var(--sendbird-dark-ondark-01); } + .sendbird-message-input .sendbird-message-input--placeholder { position: absolute; pointer-events: none; - top: 10px; + top: 18px; left: 16px; font-family: var(--sendbird-font-family-default); font-size: 14px; line-height: 1.43; } - .sendbird-theme--light .sendbird-input .sendbird-input--placeholder { + .sendbird-theme--light .sendbird-message-input .sendbird-message-input--placeholder { color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--placeholder { + .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--placeholder { color: var(--sendbird-dark-ondark-03); } + .sendbird-message-input .sendbird-message-input--attach { + position: absolute; + right: 12px; + bottom: 18px; + padding: 6px; } + .sendbird-message-input .sendbird-message-input--send { + position: absolute; + padding: 6px; + right: 16px; + bottom: 16px; } + .sendbird-message-input .sendbird-message-input--attach-input { + display: none; } -.sendbird-input-label { - margin: 4px 0; } - -.sendbird-textbutton { - text-decoration: underline; - cursor: pointer; } +.sendbird-message-input__edit { + padding: 16px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-message-input__edit { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-message-input__edit { + background-color: var(--sendbird-dark-background-700); } -.sendbird-textbutton--not-underline { - text-decoration: none; - cursor: pointer; } +.sendbird-message-input--edit-action { + text-align: right; + margin-top: 4px; } + .sendbird-message-input--edit-action button:last-child { + margin-left: 8px; } + .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { + width: 80px; } + .sendbird-theme--light .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { + border: solid 1px var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { + border: solid 1px var(--sendbird-dark-ondark-03); } + .sendbird-message-input--edit-action .sendbird-message-input--edit-action__save { + width: 80px; } -.sendbird-textbutton--disabled { +.sendbird-message-input-form__disabled { cursor: not-allowed; } - .sendbird-theme--light .sendbird-textbutton--disabled { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-textbutton--disabled { - color: var(--sendbird-dark-ondark-03); } -.sendbird-theme--light .sendbird-color--onbackground-1 { - color: var(--sendbird-light-onlight-01); } +.sendbird-message-input__disabled { + pointer-events: none; + cursor: disabled; } + .sendbird-theme--light .sendbird-message-input__disabled .sendbird-message-input--textarea { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-message-input__disabled .sendbird-message-input--textarea { + background-color: var(--sendbird-dark-background-500); } + .sendbird-theme--light .sendbird-message-input__disabled svg { + fill: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-message-input__disabled svg { + fill: var(--sendbird-dark-ondark-03); } -.sendbird-theme--dark .sendbird-color--onbackground-1 { - color: var(--sendbird-dark-ondark-01); } +[class*=sendbird-label] { + font-family: var(--sendbird-font-family-default); } -.sendbird-theme--light .sendbird-color--onbackground-1--background-color { - background-color: var(--sendbird-light-onlight-01); } +.sendbird-label--h-1 { + font-size: 20px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.4; + letter-spacing: -0.2px; } -.sendbird-theme--dark .sendbird-color--onbackground-1--background-color { - background-color: var(--sendbird-dark-ondark-01); } +.sendbird-label--h-2 { + font-size: 18px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: -0.2px; } -.sendbird-theme--light .sendbird-color--onbackground-2 { - color: var(--sendbird-light-onlight-02); } +.sendbird-label--subtitle-1 { + font-size: 16px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.38; + letter-spacing: -0.2px; } -.sendbird-theme--dark .sendbird-color--onbackground-2 { - color: var(--sendbird-dark-ondark-02); } +.sendbird-label--subtitle-2 { + font-size: 14px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.14; + letter-spacing: -0.2px; } -.sendbird-theme--light .sendbird-color--onbackground-2--background-color { - background-color: var(--sendbird-light-onlight-02); } +.sendbird-label--body-1 { + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } -.sendbird-theme--dark .sendbird-color--onbackground-2--background-color { - background-color: var(--sendbird-dark-ondark-02); } +.sendbird-label--body-2 { + font-size: 12px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.33; + letter-spacing: normal; } -.sendbird-theme--light .sendbird-color--onbackground-3 { - color: var(--sendbird-light-onlight-03); } +.sendbird-label--button-1 { + font-size: 14px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } -.sendbird-theme--dark .sendbird-color--onbackground-3 { - color: var(--sendbird-dark-ondark-03); } +.sendbird-label--button-2 { + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } -.sendbird-theme--light .sendbird-color--onbackground-3--background-color { - background-color: var(--sendbird-light-onlight-03); } +.sendbird-label--caption-1 { + font-size: 14px; + font-weight: 600; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; } -.sendbird-theme--dark .sendbird-color--onbackground-3--background-color { - background-color: var(--sendbird-dark-ondark-03); } +.sendbird-label--caption-2 { + font-size: 12px; + font-weight: bold; + font-style: normal; + line-height: 1; + letter-spacing: normal; } -.sendbird-theme--light .sendbird-color--onbackground-4 { - color: var(--sendbird-light-onlight-04); } +.sendbird-label--caption-3 { + font-size: 12px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; } -.sendbird-theme--dark .sendbird-color--onbackground-4 { - color: var(--sendbird-dark-ondark-04); } +.sendbird-theme--light .sendbird-label--color-onbackground-1 { + color: var(--sendbird-light-onlight-01); } -.sendbird-theme--light .sendbird-color--onbackground-4--background-color { - background-color: var(--sendbird-light-onlight-04); } +.sendbird-theme--dark .sendbird-label--color-onbackground-1 { + color: var(--sendbird-dark-ondark-01); } -.sendbird-theme--dark .sendbird-color--onbackground-4--background-color { - background-color: var(--sendbird-dark-ondark-04); } +.sendbird-theme--light .sendbird-label--color-onbackground-2 { + color: var(--sendbird-light-onlight-02); } -.sendbird-theme--light .sendbird-color--oncontent-1 { +.sendbird-theme--dark .sendbird-label--color-onbackground-2 { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-label--color-onbackground-3 { + color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-3 { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-label--color-oncontent-1 { color: var(--sendbird-light-ondark-01); } -.sendbird-theme--dark .sendbird-color--oncontent-1 { +.sendbird-theme--dark .sendbird-label--color-oncontent-1 { color: var(--sendbird-dark-onlight-01); } -.sendbird-theme--light .sendbird-color--oncontent-1--background-color { - background-color: var(--sendbird-light-ondark-01); } +.sendbird-theme--light .sendbird-label--color-oncontent-2 { + color: var(--sendbird-light-ondark-02); } -.sendbird-theme--dark .sendbird-color--oncontent-1--background-color { - background-color: var(--sendbird-dark-onlight-01); } +.sendbird-theme--dark .sendbird-label--color-oncontent-2 { + color: var(--sendbird-dark-onlight-02); } -.sendbird-theme--light .sendbird-color--primary { +.sendbird-theme--light .sendbird-label--color-primary { color: var(--sendbird-light-primary-300); } -.sendbird-theme--dark .sendbird-color--primary { +.sendbird-theme--dark .sendbird-label--color-primary { color: var(--sendbird-dark-primary-200); } -.sendbird-theme--light .sendbird-color--primary--background-color { - background-color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary--background-color { - background-color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--error { +.sendbird-theme--light .sendbird-label--color-error { color: var(--sendbird-light-error-300); } -.sendbird-theme--dark .sendbird-color--error { +.sendbird-theme--dark .sendbird-label--color-error { color: var(--sendbird-dark-error-300); } -.sendbird-theme--light .sendbird-color--error--background-color { - background-color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-color--error--background-color { - background-color: var(--sendbird-dark-error-300); } - -.sendbird-add-channel__rectangle-wrap { - margin-top: 26px; } +.sendbird-theme--light .sendbird-label--color-secondary-3 { + color: var(--sendbird-light-secondary-300); } -.sendbird-add-channel__rectangle-footer { - text-align: right; - margin-top: 32px; } +.sendbird-theme--dark .sendbird-label--color-secondary-3 { + color: var(--sendbird-dark-secondary-200); } -.sendbird-add-channel__rectangle { - width: 432px; - height: 72px; - border-radius: 4px; - margin-bottom: 8px; - padding: 25px 72px; - position: relative; - box-sizing: border-box; +.sendbird-textbutton { + text-decoration: underline; cursor: pointer; } - .sendbird-theme--light .sendbird-add-channel__rectangle { - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-add-channel__rectangle { - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-add-channel__rectangle .sendbird-icon { - position: absolute; - left: 22px; - top: 24px; } -.sendbird-create-channel--content { - width: 480px; - max-height: 552px; } +.sendbird-textbutton--not-underline { + text-decoration: none; + cursor: pointer; } -.sendbird-create-channel--scroll { - height: 360px; - overflow-y: auto; } +.sendbird-textbutton--disabled { + cursor: not-allowed; } + .sendbird-theme--light .sendbird-textbutton--disabled { + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-textbutton--disabled { + color: var(--sendbird-dark-ondark-03); } -.sendbird-muted-avatar { - border-radius: 50%; - display: inline-block; } - .sendbird-muted-avatar .sendbird-muted-avatar__icon { - position: relative; } - .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon { - position: absolute; - top: 4px; - left: 4px; } - .sendbird-muted-avatar .sendbird-muted-avatar__bg { - opacity: .5; - position: absolute; - border-radius: 50%; - top: 0; - left: 0; } - .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg { - background-color: var(--sendbird-dark-primary-300); } - -.sendbird-checkbox { - display: block; - position: relative; - padding-left: 35px; - margin-bottom: 12px; - cursor: pointer; - font-size: 22px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.sendbird-checkbox input { - position: absolute; - opacity: 0; - cursor: pointer; - height: 0; - width: 0; } - -.sendbird-checkbox--checkmark { - position: absolute; +.sendbird-modal { + position: fixed; top: 0; left: 0; - height: 18px; - width: 18px; - border-radius: 2px; - background-color: inherit; } - .sendbird-theme--light .sendbird-checkbox--checkmark { - border: 2px solid var(--sendbird-light-background-400); } - .sendbird-theme--dark .sendbird-checkbox--checkmark { - border: 2px solid var(--sendbird-dark-background-300); } - -.sendbird-theme--light .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); } + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; } -.sendbird-theme--light .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { - background-color: var(--sendbird-light-primary-300); - border: 2px solid var(--sendbird-light-primary-300); } +.sendbird-modal-content { + width: 480px; + border-radius: 4px; + z-index: 10001; + padding: 18px 24px 24px 24px; + position: relative; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-modal-content { + background-color: var(--sendbird-light-background-50); + box-shadow: var(--sendbird-light-shadow-04); } + .sendbird-theme--dark .sendbird-modal-content { + background-color: var(--sendbird-dark-background-500); + box-shadow: var(--sendbird-dark-shadow-04); } + .sendbird-modal-content .sendbird-modal-close { + position: absolute; + top: 16px; + right: 16px; + cursor: pointer; } + .sendbird-theme--light .sendbird-modal-content .sendbird-modal-close path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-modal-content .sendbird-modal-close path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-modal-content .sendbird-modal-header { + margin-bottom: 16px; } + .sendbird-modal-content .sendbird-modal-footer { + margin-top: 32px; + text-align: right; } + .sendbird-modal-content .sendbird-modal-footer .sendbird-button:last-child { + margin-left: 8px; + width: 80px; + height: 40px; } -.sendbird-theme--dark .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { - background-color: var(--sendbird-dark-primary-200); - border: 2px solid var(--sendbird-dark-primary-200); } +.sendbird-modal-backdrop { + position: fixed; + z-index: 10000; + height: 100%; + width: 100%; + top: 0; + left: 0; } + .sendbird-theme--light .sendbird-modal-backdrop { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-modal-backdrop { + background-color: var(--sendbird-dark-overlay); } -.sendbird-checkbox--checkmark:after { - content: ""; - position: absolute; +.sendbird-image-renderer--hidden-placeholder { display: none; } -.sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark:after { - display: block; } - -.sendbird-theme--light .sendbird-checkbox .sendbird-checkbox--checkmark:after { - left: 5px; - top: -0.5px; - width: 7px; - height: 12px; - border: solid var(--sendbird-light-background-50); - border-width: 0 2px 2px 0; - transform: rotate(45deg); } - -.sendbird-theme--dark .sendbird-checkbox .sendbird-checkbox--checkmark:after { - left: 5px; - top: -0.5px; - width: 7px; - height: 12px; - border: solid var(--sendbird-dark-background-600); - border-width: 0 2px 2px 0; - transform: rotate(45deg); } - -.sendbird__user-profile { - width: 320px; - border-radius: 4px; - padding: 24px; - box-sizing: border-box; - text-align: center; } - .sendbird-theme--light .sendbird__user-profile { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird__user-profile { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird__user-profile .sendbird__user-profile-avatar { - margin: 8px 0px; } - .sendbird__user-profile .sendbird__user-profile-name { - max-width: 270px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; } - .sendbird__user-profile .sendbird__user-profile-message { - margin-top: 20px; } - .sendbird__user-profile .sendbird__user-profile-message button { - width: 272px; } - .sendbird__user-profile .sendbird__user-profile-seperator { - margin: 24px 0px; - height: 1px; } - .sendbird-theme--light .sendbird__user-profile .sendbird__user-profile-seperator { - background-color: var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird__user-profile .sendbird__user-profile-seperator { - background-color: var(--sendbird-dark-ondark-04); } - .sendbird__user-profile .sendbird__user-profile-userId--label, - .sendbird__user-profile .sendbird__user-profile-userId--value { - display: block; - text-align: left; } - .sendbird__user-profile .sendbird__user-profile-userId--label { - margin-bottom: 8px; } - .sendbird__offline .sendbird-dropdown__menu .sendbird-dropdown__menu-item { cursor: not-allowed; } @@ -1200,1916 +1654,2190 @@ .sendbird-icon--pressed { display: block !important; } -.sendbird-sort-by-row { +.sendbird-separator { + width: 100%; display: flex; - justify-content: flex-start; align-items: center; } + .sendbird-separator .sendbird-separator__left { + border: none; + height: 1px; + display: inline-block; + width: 100%; } + .sendbird-separator .sendbird-separator__right { + border: none; + height: 1px; + display: inline-block; + width: 100%; } + .sendbird-separator .sendbird-separator__text { + margin: 0px 16px; + display: flex; + white-space: nowrap; } -.sendbird-user-list-item { - display: block; - position: relative; - box-sizing: border-box; - width: 432px; - height: 56px; } - .sendbird-theme--light .sendbird-user-list-item { - border-bottom: 1px solid var(--sendbird-light-onlight-04); +.sendbird-fileviewer { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 100000; } + .sendbird-theme--light .sendbird-fileviewer { background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-user-list-item { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-list-item__avatar { - position: absolute; - top: 8px; - left: 0px; - z-index: 1; - cursor: pointer; } - .sendbird-user-list-item .sendbird-muted-avatar { - position: absolute; - top: 8px; - left: 0px; - z-index: 2; - pointer-events: none; } - .sendbird-user-list-item__title { - position: absolute; - top: 17px; - left: 56px; - max-width: 280px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item__subtitle { - position: absolute; - top: 23px; - left: 140px; - max-width: 237px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item__checkbox { - position: absolute; - top: 16px; - right: 16px; } - .sendbird-user-list-item__action { - position: absolute; - right: 0; - top: 10px; } - .sendbird-user-list-item__operator { - position: absolute; - right: 40px; - top: 22px; } + .sendbird-theme--dark .sendbird-fileviewer { + background-color: var(--sendbird-dark-background-600); } -.sendbird-place-holder { +.sendbird-fileviewer__header { + height: 64px; + min-height: 64px; + box-sizing: border-box; display: flex; - justify-content: center; - align-items: center; - height: 100%; } - .sendbird-place-holder .sendbird-place-holder__body { + justify-content: space-between; } + .sendbird-theme--light .sendbird-fileviewer__header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-fileviewer__header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-fileviewer__header .sendbird-fileviewer__header-left { + padding: 16px 0px 16px 20px; display: flex; - flex-direction: column; - height: 104px; - align-items: center; } - .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__icon { - margin-bottom: 10px; } - .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__text { - margin-top: 10px; } - .sendbird-place-holder .sendbird-place-holder__body__reconnect { - margin-top: 18px; + flex: 1; } + .sendbird-fileviewer__header .sendbird-fileviewer__header-right { display: flex; - flex-direction: row; + width: 160px; + justify-content: flex-end; } + .sendbird-fileviewer__header .sendbird-fileviewer__header-download, + .sendbird-fileviewer__header .sendbird-fileviewer__header-delete, + .sendbird-fileviewer__header .sendbird-fileviewer__header-close { + width: 64px; + padding: 21px; + box-sizing: border-box; cursor: pointer; } - .sendbird-place-holder .sendbird-place-holder__body__reconnect .sendbird-place-holder__body__reconnect__icon { - margin-right: 4px; } - -.sendbird-loader { - display: inline-block; - -webkit-animation: 1s infinite linear; - animation: 1s infinite linear; - -webkit-animation-name: rotate; - animation-name: rotate; } - -@-webkit-keyframes rotate { - from { - transform: rotate(0); } - to { - transform: rotate(360deg); } } + .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--light + .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--light + .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { + fill: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--dark + .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--dark + .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { + fill: var(--sendbird-dark-ondark-01); } + .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-close { + border-left: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-close { + border-left: 1px solid var(--sendbird-dark-ondark-04); } -@keyframes rotate { - from { - transform: rotate(0); } - to { - transform: rotate(360deg); } } +.sendbird-fileviewer__header-avatar { + margin-right: 8px; } -.sendbird-channel-list { - width: 320px; - height: 100%; +.sendbird-fileviewer__header-actions { + right: 0; display: flex; - flex-direction: column; } - .sendbird-theme--light .sendbird-channel-list { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-list { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-channel-list__header { - height: 64px; - min-height: 64px; } + flex-direction: row; } -.sendbird-channel-list__body { - flex: 1 1 0; - -ms-flex: 1; - overflow-y: auto; - overflow-x: hidden; } +.sendbird-fileviewer__header-filename { + max-width: 500px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: inline-block; + padding-top: 2px; } -.sendbird-conversation { - display: flex; - flex-direction: column; - height: 100%; } - .sendbird-theme--light .sendbird-conversation { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-conversation { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } +.sendbird-fileviewer__header-sendername { + max-width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: inline-block; + margin-left: 8px; + padding-top: 5px; } -.sendbird-conversation__messages { +.sendbird-fileviewer__content { + height: calc(100% - 72px); + margin-top: 8px; overflow-y: auto; - flex: 1 1 0; - order: 2; } - -.sendbird-conversation__messages-list { - display: flex; - flex-direction: column; - height: 100%; - justify-content: flex-end; } - -.sendbird-conversation__footer { - order: 3; - padding: 0px 24px 24px 24px; } - -.sendbird-conversation__scroll-container { display: flex; - height: 100%; - overflow-y: auto; - overflow-x: hidden; - flex-direction: column; } - .sendbird-conversation__scroll-container .sendbird-conversation__padding { - flex: 1 1 0; } + align-items: center; + justify-content: center; } + .sendbird-fileviewer__content .sendbird-fileviewer__video { + max-width: 100%; + max-height: 100%; } + .sendbird-fileviewer__content .sendbird-fileviewer__img { + max-width: 90%; + max-height: 90%; } + .sendbird-fileviewer__content .sendbird-fileviewer__unsupported { + max-width: 100%; + max-height: 100%; + display: flex; + justify-content: center; + align-items: center; } -.sendbird-conversation__footer { - position: relative; } - .sendbird-conversation__footer .sendbird-conversation__typing-indicator { +.sendbird-user-list-item { + display: block; + position: relative; + box-sizing: border-box; + width: 432px; + height: 56px; } + .sendbird-theme--light .sendbird-user-list-item { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-user-list-item { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-500); } + .sendbird-user-list-item__avatar { position: absolute; - bottom: 8px; } + top: 8px; + left: 0px; + z-index: 1; + cursor: pointer; } + .sendbird-user-list-item .sendbird-muted-avatar { + position: absolute; + top: 8px; + left: 0px; + z-index: 2; + pointer-events: none; } + .sendbird-user-list-item__title { + position: absolute; + top: 17px; + left: 56px; + max-width: 280px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item__subtitle { + position: absolute; + top: 23px; + left: 140px; + max-width: 237px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-user-list-item__checkbox { + position: absolute; + top: 16px; + right: 16px; } + .sendbird-user-list-item__action { + position: absolute; + right: 0; + top: 10px; } + .sendbird-user-list-item__operator { + position: absolute; + right: 40px; + top: 22px; } -.sendbird-reaction-button { - border-radius: 8px; +.sendbird-input { display: inline-block; - border: solid 1px transparent; - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-button:hover { - border: solid 1px var(--sendbird-light-background-100); - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-button:hover { - border: solid 1px var(--sendbird-dark-background-400); - background-color: var(--sendbird-dark-background-400); } - .sendbird-reaction-button__inner { - margin: 3px; } - -.sendbird-reaction-button--selected { - cursor: pointer; - border-radius: 8px; - display: inline-block; } - .sendbird-theme--light .sendbird-reaction-button--selected { - border: solid 1px var(--sendbird-light-primary-100); - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-reaction-button--selected { - border: solid 1px var(--sendbird-dark-primary-400); - background-color: var(--sendbird-dark-primary-400); } - .sendbird-reaction-button--selected:hover { - border: solid 1px var(--sendbird-selected-reaction-button-border-hover); } - .sendbird-reaction-button--selected__inner { - margin: 3px; } - .sendbird-reaction-button--selected.sendbird-reactions--pressed { - display: block !important; } - -.sendbird-conversation__messages .sendbird-conversation__messages-padding { - padding-left: 24px; - padding-right: 24px; } - -.sendbird-conversation__messages .sendbird-separator, -.sendbird-conversation__messages .sendbird-admin-message { - padding-top: 8px; - padding-bottom: 8px; } - -.sendbird-message { - position: relative; - line-height: 0; } - .sendbird-message--outgoing { - text-align: right; } - .sendbird-message--incoming { - text-align: left; } - -.sendbird-user-message--copy { - cursor: pointer !important; } - -.sendbird-user-message--outgoing { - position: relative; - right: 0px; - display: inline-block; - max-width: 496px; - text-align: right; } - .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-user-message--outgoing:hover .sendbird-user-message__left-padding .sendbird-user-message__more { - display: block; } - .sendbird-user-message--outgoing .sendbird-user-message--inner { - display: flex; - flex-direction: row; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding { - position: relative; - width: 68px; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more { - display: none; - position: absolute; - right: 4px; - top: 2px; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more[class*='--pressed'] { - display: block !important; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__status { - position: absolute; - bottom: 2px; - right: 4px; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - max-width: var(--sendbird-message-balloon-width); + width: 100%; + height: 40px; + position: relative; } + .sendbird-input .sendbird-input--input { + width: 100%; + height: 100%; + border-radius: 4px; + font-family: var(--sendbird-font-family-default); + font-size: 14px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; + padding: 10px 16px; box-sizing: border-box; - border-radius: 16px; - text-align: left; } - .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { - display: flex; - flex-direction: column; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { - padding: 8px 12px; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - display: inline; - white-space: pre-wrap; - overflow-wrap: normal; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - position: relative; - bottom: 0px; } - .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-300); } + background-color: inherit; } + .sendbird-theme--light .sendbird-input .sendbird-input--input { + color: var(--sendbird-light-onlight-01); + caret-color: var(--sendbird-light-primary-300); + border: solid 1px var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input { + color: var(--sendbird-dark-ondark-01); + caret-color: var(--sendbird-dark-primary-200); + border: solid 1px var(--sendbird-dark-ondark-03); } + .sendbird-input .sendbird-input--input:focus { + outline: none; } + .sendbird-theme--light .sendbird-input .sendbird-input--input:focus { + box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-light-onlight-01); + border: solid 2px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input:focus { + box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-dark-ondark-01); + border: solid 2px var(--sendbird-dark-primary-200); } + .sendbird-theme--light .sendbird-input .sendbird-input--input:active { + box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-light-onlight-01); + border: solid 1px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input:active { + box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); + color: var(--sendbird-dark-ondark-01); + border: solid 1px var(--sendbird-dark-primary-200); } + .sendbird-input .sendbird-input--input:disabled { + cursor: not-allowed; } + .sendbird-theme--light .sendbird-input .sendbird-input--input:disabled { + background-color: var(--sendbird-light-background-100); + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-input .sendbird-input--input:disabled { + background-color: var(--sendbird-dark-background-500); + color: var(--sendbird-dark-ondark-03); } + .sendbird-input .sendbird-input--placeholder { + position: absolute; + pointer-events: none; + top: 10px; + left: 16px; + font-family: var(--sendbird-font-family-default); + font-size: 14px; + line-height: 1.43; } + .sendbird-theme--light .sendbird-input .sendbird-input--placeholder { + color: var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-input .sendbird-input--placeholder { + color: var(--sendbird-dark-ondark-03); } -.sendbird-user-message--incoming { +.sendbird-input-label { + margin: 4px 0; } + +.sendbird-channel-profile { position: relative; - left: 0px; - display: inline-block; - padding-left: 40px; - max-width: 536px; - text-align: left; } - .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__more { - display: block; } - .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__sent-at { - display: none; } - .sendbird-user-message--incoming .sendbird-user-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-user-message--incoming .sendbird-user-message--body { - display: flex; - flex-direction: column; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding { - position: relative; - width: 68px; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__sent-at { - position: absolute; - left: 4px; - bottom: 2px; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__more { - position: absolute; - display: none; - top: 18px; - left: 4px; } - .sendbird-user-message--incoming .sendbird-user-message__avatar { + text-align: center; + padding: 32px 40px 27px 40px; } + .sendbird-theme--light .sendbird-channel-profile { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-channel-profile { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-channel-profile .sendbird-channel-profile--inner { + height: 92px; } + .sendbird-channel-profile .sendbird-channel-profile__avatar { + margin-bottom: 16px; + text-align: center; } + .sendbird-channel-profile .sendbird-channel-profile__title { + max-width: 240px; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + height: 18px; } + .sendbird-channel-profile .sendbird-channel-profile__edit { position: absolute; - bottom: 4px; - left: -40px; - cursor: pointer; } - .sendbird-user-message--incoming .sendbird-user-message__sender-name { - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - margin-top: 4px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { - display: flex; - flex-direction: column; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { - padding: 8px 12px; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - display: inline; - white-space: pre-wrap; - overflow-wrap: normal; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - position: relative; - bottom: 0px; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } + top: 10px; + right: 16px; } -.sendbird-user-message__text-balloon__inner__text-place__text { - word-break: break-word; - display: flex; - flex-direction: row; - flex-wrap: wrap; } +.channel-profile-form .channel-profile-form__img-section { + position: relative; } -.sendbird-user-message__text-balloon { - display: inline-block; } +.channel-profile-form .channel-profile-form__avatar-button { + position: absolute; + top: 54px; + left: 96px; } -.sendbird-user-message-word { - display: inline; - margin: 0px 2px; } +.channel-profile-form .channel-profile-form__avatar { + margin-top: 16px; } -.sendbird-message-status { - display: inline; - text-align: right; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again { - text-decoration: underline; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again:hover { - cursor: pointer; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete { - text-decoration: underline; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete:hover { - cursor: pointer; } +.channel-profile-form .channel-profile-form__name-section { + margin-top: 12px; } + .channel-profile-form .channel-profile-form__name-section .sendbird-input { + height: 40px; } -.sendbird-emoji-reactions { - display: inline-block; - border-radius: 16px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - min-height: 24px; - padding: 7px 5px 3px 5px; } - .sendbird-theme--light .sendbird-emoji-reactions { +.sendbird-badge { + height: 20px; + min-width: 20px; + border-radius: 10px; + display: inline-block; } + .sendbird-theme--light .sendbird-badge { + background-color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-badge { + background-color: var(--sendbird-dark-primary-200); } + .sendbird-badge .sendbird-badge__text { + margin: 0px 6px; } + +.sendbird-members-accordion { + padding: 8px 16px 16px 16px; + position: relative; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-members-accordion { + border-bottom: 1px solid var(--sendbird-light-onlight-04); background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-emoji-reactions { + .sendbird-theme--dark .sendbird-members-accordion { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); background-color: var(--sendbird-dark-background-600); } - .sendbird-emoji-reactions .sendbird-emoji-reactions--inner { + .sendbird-members-accordion .sendbird-members-accordion__member { + position: relative; + padding: 12px 0px 12px 44px; + height: 40px; + box-sizing: border-box; } + .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label { + max-width: 240px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-members-accordion .sendbird-members-accordion__member-avatar { + position: absolute; + left: 0; + top: 10px; + cursor: pointer; } + .sendbird-members-accordion .sendbird-members-accordion__footer { display: flex; - flex-wrap: wrap; } - .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction { - margin-left: 2px; - margin-right: 2px; - margin-bottom: 4px; } - .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction-add { - width: 36px; - height: 24px; } - .sendbird-emoji-reactions:focus { - outline: none; } + justify-content: flex-start; + margin-top: 8px; } + .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members { + margin-right: 16px; } -.sendbird-reaction-badge { - display: inline-block; - border-radius: 15px; - width: 50px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-badge { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-reaction-badge:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-badge:hover { - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-reaction-badge:hover { - border: solid 1px var(--sendbird-dark-primary-200); } +.sendbird-more-members__popup-scroll { + max-height: 420px; + overflow-y: auto; } -.sendbird-reaction-badge--is-add { - display: inline-block; - border-radius: 15px; - width: 36px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge--is-add { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-badge--is-add { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-reaction-badge--is-add:hover { +.sendbird-link-label { + text-decoration: unset; } + .sendbird-link-label:hover { cursor: pointer; - border: solid 1px var(--sendbird-add-reaction-button-border-hover); } - .sendbird-reaction-badge--is-add .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { - left: 8px; } + text-decoration: underline; } + .sendbird-link-label:focus { + outline: none; } + .sendbird-link-label__label { + display: inline; } -.sendbird-reaction-badge--selected { - display: inline-block; - border-radius: 15px; - width: 50px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge--selected { - background-color: var(--sendbird-light-primary-100); - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-reaction-badge--selected { - background-color: var(--sendbird-dark-primary-400); - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-reaction-badge--selected:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-badge--selected:hover { - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-reaction-badge--selected:hover { - border: solid 1px var(--sendbird-dark-primary-200); } +.sendbird-theme--light .sendbird-label--color-onbackground-1 { + color: var(--sendbird-light-onlight-01); } -.sendbird-reaction-badge__inner { - position: relative; - display: flex; - height: 24px; - flex-direction: row; - align-items: center; - justify-content: center; - padding-left: 20px; - padding-right: 4px; } - .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { - position: absolute; - top: 2px; - left: 4px; } - .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__count { - margin-left: 4px; } +.sendbird-theme--dark .sendbird-label--color-onbackground-1 { + color: var(--sendbird-dark-ondark-01); } -.sendbird-tooltip { - position: relative; - display: inline-flex; - justify-content: center; - max-width: 200px; - border-radius: 8px; - padding: 8px 16px; - background-color: var(--sendbird-tooltip-background); } - .sendbird-tooltip::after { - content: ''; - position: absolute; - bottom: -4px; - width: 8px; - height: 8px; - transform: rotate(45deg); - background-color: var(--sendbird-tooltip-background); } - .sendbird-tooltip__text { - font-family: var(--sendbird-font-family-default); - font-size: 12px; - font-weight: bold; - font-stretch: normal; - font-style: normal; - line-height: 1.33; - letter-spacing: normal; - color: var(--sendbird-tooltip-text-color); } +.sendbird-theme--light .sendbird-label--color-onbackground-2 { + color: var(--sendbird-light-onlight-02); } -.sendbird-tooltip-wrapper { +.sendbird-theme--dark .sendbird-label--color-onbackground-2 { + color: var(--sendbird-dark-ondark-02); } + +.sendbird-theme--light .sendbird-label--color-onbackground-3 { + color: var(--sendbird-light-onlight-03); } + +.sendbird-theme--dark .sendbird-label--color-onbackground-3 { + color: var(--sendbird-dark-ondark-03); } + +.sendbird-theme--light .sendbird-label--color-oncontent-1 { + color: var(--sendbird-light-ondark-01); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-1 { + color: var(--sendbird-dark-onlight-01); } + +.sendbird-theme--light .sendbird-label--color-oncontent-2 { + color: var(--sendbird-light-ondark-02); } + +.sendbird-theme--dark .sendbird-label--color-oncontent-2 { + color: var(--sendbird-dark-onlight-02); } + +.sendbird-theme--light .sendbird-label--color-primary { + color: var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-label--color-primary { + color: var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-label--color-error { + color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-label--color-error { + color: var(--sendbird-dark-error-300); } + +.sendbird-theme--light .sendbird-label--color-secondary-3 { + color: var(--sendbird-light-secondary-300); } + +.sendbird-theme--dark .sendbird-label--color-secondary-3 { + color: var(--sendbird-dark-secondary-200); } + +.sendbird-add-channel__rectangle-wrap { + margin-top: 26px; } + +.sendbird-add-channel__rectangle-footer { + text-align: right; + margin-top: 32px; } + +.sendbird-add-channel__rectangle { + width: 432px; + height: 72px; + border-radius: 4px; + margin-bottom: 8px; + padding: 25px 72px; position: relative; - display: inline-flex; } - .sendbird-tooltip-wrapper__hover-tooltip { + box-sizing: border-box; + cursor: pointer; } + .sendbird-theme--light .sendbird-add-channel__rectangle { + border: 1px solid var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-add-channel__rectangle { + border: 1px solid var(--sendbird-dark-ondark-04); } + .sendbird-add-channel__rectangle .sendbird-icon { position: absolute; - display: inline-flex; - width: 200px; } - .sendbird-tooltip-wrapper__hover-tooltip__inner__tooltip-container { - position: relative; - display: inline-flex; } + left: 22px; + top: 24px; } -.sendbird-admin-message { +.sendbird__offline .sendbird-channel-preview { + cursor: not-allowed; } + +.sendbird-channel-preview { + position: relative; + cursor: pointer; + box-sizing: border-box; + width: 320px; + height: 80px; display: flex; + flex-direction: row; + align-items: center; justify-content: center; - align-items: center; } - .sendbird-admin-message .sendbird-admin-message__text { - display: flex; } - -.sendbird-thumbnail { - text-align: right; - position: relative; } - .sendbird-thumbnail .sendbird-thumbnail__body { - position: relative; - display: inline-block; } - .sendbird-thumbnail .sendbird-thumbnail__more { - display: none; - position: absolute; - top: 10px; } - .sendbird-thumbnail:hover .sendbird-thumbnail__more { - display: block; } - .sendbird-thumbnail .sendbird-thumbnail__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; - margin: 8px 0px; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-thumbnail .sendbird-thumbnail__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner { - cursor: pointer; } - .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0; - left: 0; - border-radius: 16px; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-thumbnail .sendbird-thumbnail__avatar { - position: absolute; - bottom: 30px; - left: 0px; } - .sendbird-thumbnail .sendbird-thumbnail__sender-name { - margin-left: 12px; } - .sendbird-thumbnail.sendbird-thumbnail--incoming { - text-align: left; - padding-left: 40px; - box-sizing: border-box; } - .sendbird-thumbnail .sendbird-thumbnail__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-thumbnail .sendbird-thumbnail__video, - .sendbird-thumbnail .sendbird-thumbnail__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - -.sendbird-outgoing-thumbnail-message { - position: relative; - text-align: right; - line-height: 0px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message--inner { - display: inline-flex; - flex-direction: row; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { - display: none; - position: absolute; - top: 4px; - right: 4px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__status { - position: absolute; - right: 4px; - bottom: 4px; } - .sendbird-outgoing-thumbnail-message:hover .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { - display: block; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body { - position: relative; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - position: relative; + padding: 12px 16px 12px 16px; } + .sendbird-theme--light .sendbird-channel-preview { + border-bottom: solid 1px var(--sendbird-light-onlight-04); } + .sendbird-theme--dark .sendbird-channel-preview { + border-bottom: solid 1px var(--sendbird-dark-ondark-04); } + .sendbird-channel-preview .sendbird-channel-preview__frozen-icon { + padding-left: 4px; } + .sendbird-channel-preview .sendbird-channel-preview__broadcast-icon { + padding-right: 4px; } + .sendbird-channel-preview:focus { + outline: none; } + .sendbird-channel-preview .sendbird-channel-preview__avatar { + width: 56px; + height: 56px; } + .sendbird-channel-preview .sendbird-channel-preview__content { + width: 100%; + height: 100%; + margin-left: 16px; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper { display: flex; - flex-direction: column; - border-radius: 16px; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner { - cursor: pointer; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0; - left: 0; - border-radius: 16px; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video, - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video-icon { + justify-content: space-between; + width: 216px; + height: 16px; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header { + display: flex; + justify-content: flex-start; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__channel-name { + overflow: hidden; + text-overflow: ellipsis; + max-width: 128px; + word-break: break-all; + white-space: nowrap; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__total-members { + margin-top: 2px; + margin-left: 4px; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__last-message-at { + margin-left: 4px; + margin-bottom: 4px; + white-space: nowrap; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower { + margin-top: 8px; + width: 216px; + height: 32px; + display: flex; + justify-content: space-between; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__last-message { + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__unread-message-count { + margin-left: 8px; + margin-bottom: 12px; } + .sendbird-channel-preview .sendbird-channel-preview__action { position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } + top: 12px; + right: 12px; + display: inline-block; } + .sendbird-channel-preview .sendbird-channel-preview__action .sendbird-iconbutton { + display: none; } + .sendbird-theme--light .sendbird-channel-preview:hover { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-channel-preview:hover { + background-color: var(--sendbird-dark-background-500); } + .sendbird-channel-preview:hover .sendbird-channel-preview__action .sendbird-iconbutton { + display: inline-block; } + .sendbird-channel-preview:hover .sendbird-channel-preview__content__upper__last-message-at { + display: none; } + .sendbird-channel-preview:hover .sendbird-channel-preview__content__lower__unread-message-count { + display: none; } -.sendbird-incoming-thumbnail-message { +.sendbird-channel-preview--active { + padding: 12px 16px 12px 12px; } + .sendbird-theme--light .sendbird-channel-preview--active { + border-left: solid 4px var(--sendbird-light-primary-300); + border-bottom: solid 1px var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-channel-preview--active { + border-left: solid 4px var(--sendbird-dark-primary-200); + border-bottom: solid 1px var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-700); } + .sendbird-theme--light .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { + color: var(--sendbird-dark-primary-200); } + +.sendbird-conversation__messages .sendbird-conversation__messages-padding { + padding-left: 24px; + padding-right: 24px; } + +.sendbird-conversation__messages .sendbird-separator, +.sendbird-conversation__messages .sendbird-admin-message { + padding-top: 8px; + padding-bottom: 8px; } + +.sendbird-conversation__connection-status { + display: flex; + align-items: center; + padding-top: 5px; } + +.sendbird-chat-header { position: relative; - text-align: left; - padding-left: 40px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__sender-name { - position: relative; - box-sizing: border-box; - left: 12px; - height: 12px; - margin-bottom: 4px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__avatar { - position: absolute; - left: -40px; - bottom: 4px; - cursor: pointer; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message--inner { - display: flex; - flex-direction: row; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body { - position: relative; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner { - cursor: pointer; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0px; - left: 0px; - border-radius: 16px; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video, - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video-icon { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + height: 64px; + min-height: 64px; + padding-left: 20px; + padding-right: 16px; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-theme--light .sendbird-chat-header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-chat-header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-chat-header__left { + margin-right: 24px; } + .sendbird-chat-header__left, .sendbird-chat-header__right { + overflow: hidden; + display: flex; + flex-direction: row; + align-items: center; } + .sendbird-chat-header .sendbird-chat-header__title { + margin-left: 8px; + margin-right: 16px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: 780px; } + .sendbird-chat-header .sendbird-chat-header__subtitle { + max-width: 240px; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-chat-header .sendbird-chat-header__active { + margin-right: 4px; + width: 8px; + height: 8px; + border-radius: 4px; } + .sendbird-theme--light .sendbird-chat-header .sendbird-chat-header__active { + background-color: var(--sendbird-light-secondary-300); } + .sendbird-theme--dark .sendbird-chat-header .sendbird-chat-header__active { + background-color: var(--sendbird-dark-secondary-200); } + .sendbird-chat-header .sendbird-chat-header__mute { + margin-right: 26px; } + .sendbird-chat-header .sendbird-iconbutton--pressed { + background-color: inherit; } + +.sendbird-channel-header { + position: relative; + height: 64px; + min-height: 64px; + width: 320px; + padding: 8px 64px 8px 8px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-channel-header { + border-bottom: 1px solid var(--sendbird-light-onlight-04); + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-channel-header { + border-bottom: 1px solid var(--sendbird-dark-ondark-04); + background-color: var(--sendbird-dark-background-600); } + .sendbird-channel-header.sendbird-channel-header--allow-edit .sendbird-channel-header__title { + cursor: pointer; } + .sendbird-channel-header .sendbird-channel-header__title { + display: flex; + flex-direction: row; + width: 260px; + height: 48px; + border-radius: 4px; } + .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:hover { + background: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:hover { + background: var(--sendbird-dark-background-500); } + .sendbird-channel-header .sendbird-channel-header__title:focus { + outline: none; } + .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:focus { + background: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:focus { + background: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:active { + border: solid 2px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:active { + border: solid 2px var(--sendbird-dark-primary-200); } + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--left { + width: 48px; + padding: 8px; + box-sizing: border-box; } + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--right { + margin-left: 4px; + padding-top: 8px; } + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--name, + .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--user-id { + display: block; + max-width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .sendbird-channel-header .sendbird-channel-header__right-icon { position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { - position: absolute; - left: 4px; - top: 4px; - display: none; } - .sendbird-incoming-thumbnail-message:hover .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { - display: block; } + right: 16px; + top: 16px; } -.sendbird-file-message--outgoing { - text-align: right; } +.sendbird-loader { + display: inline-block; + -webkit-animation: 1s infinite linear; + animation: 1s infinite linear; + -webkit-animation-name: rotate; + animation-name: rotate; } -.sendbird-file-message--incoming { - text-align: left; } +@-webkit-keyframes rotate { + from { + transform: rotate(0); } + to { + transform: rotate(360deg); } } -.sendbird-file-message__outgoing { - position: relative; - right: 0px; - display: inline-block; - max-width: 496px; - text-align: right; - line-height: 0px; } - .sendbird-file-message__outgoing .sendbird-file-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__more { - display: block; } - .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__status { - display: none; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding { - position: relative; - width: 68px; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__more { - display: none; - position: absolute; - right: 4px; - top: 2px; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__status { - position: absolute; - text-align: right; - right: 4px; - bottom: 4px; } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - display: flex; - flex-direction: column; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { - display: flex; - flex: row; - padding: 8px 12px; - text-align: left; } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - border-radius: 10px; - margin-right: 8px; - background-color: var(--sendbird-file-message-icon-background); } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { - white-space: nowrap; - overflow-wrap: break-word; - margin: 4px 0px; - cursor: pointer; } - .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-300); } +@keyframes rotate { + from { + transform: rotate(0); } + to { + transform: rotate(360deg); } } -.sendbird-file-message__incoming { - position: relative; - left: 0px; +.sendbird-button { display: inline-block; - padding-left: 40px; - max-width: 536px; - text-align: left; - line-height: 0px; } - .sendbird-file-message__incoming .sendbird-file-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding { - position: relative; - width: 68px; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__more { - position: absolute; - display: none; - left: 4px; - top: 18px; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - .sendbird-file-message__incoming:hover .sendbird-file-message__right-padding .sendbird-file-message__more { - display: block; } - .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-file-message__incoming .sendbird-file-message__avatar { - position: absolute; - bottom: 2px; - left: -40px; - cursor: pointer; } - .sendbird-file-message__incoming .sendbird-file-message__sender-name { - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-file-message__incoming .sendbird-file-message__tooltip { - display: flex; - flex-direction: column; - margin-top: 4px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-background-500); } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { - display: flex; - flex-direction: row; - padding: 8px 12px; } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - border-radius: 10px; - margin-right: 8px; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - background-color: var(--sendbird-dark-background-600); } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { - white-space: nowrap; - overflow-wrap: normal; - margin: 4px 0px; - cursor: pointer; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } + box-shadow: none; + border-radius: 4px; + padding: 0px; + font-family: var(--sendbird-font-family-default); + cursor: pointer; } + .sendbird-button:hover { + box-shadow: none; } + .sendbird-button:focus { + outline: none; } + .sendbird-button:active { + box-shadow: none; } + .sendbird-button.sendbird-button__disabled { + cursor: not-allowed; } + .sendbird-theme--light .sendbird-button.sendbird-button__disabled { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button.sendbird-button__disabled { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-button.sendbird-button__disabled:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button.sendbird-button__disabled:hover { + background-color: var(--sendbird-dark-background-400); } -.sendbird-separator { - width: 100%; - display: flex; - align-items: center; } - .sendbird-separator .sendbird-separator__left { - border: none; - height: 1px; - display: inline-block; - width: 100%; } - .sendbird-separator .sendbird-separator__right { - border: none; - height: 1px; - display: inline-block; - width: 100%; } - .sendbird-separator .sendbird-separator__text { - margin: 0px 16px; - display: flex; - white-space: nowrap; } +.sendbird-button--big { + height: 40px; } + .sendbird-button--big .sendbird-button__text { + margin: 10px 16px; } -.sendbird-message-input { - display: inline-block; - width: 100%; - position: relative; } - .sendbird-message-input .sendbird-message-input--textarea { - width: 100%; - border-radius: 4px; - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - height: 56px; - overflow-y: hidden; - letter-spacing: normal; - padding: 18px 64px 18px 16px; - box-sizing: border-box; - resize: none; - font-family: var(--sendbird-font-family-default); - background-color: inherit; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea { - color: var(--sendbird-light-onlight-01); - caret-color: var(--sendbird-light-primary-300); - border: solid 1px var(--sendbird-light-onlight-03); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea { - color: var(--sendbird-dark-ondark-01); - caret-color: var(--sendbird-dark-primary-200); - border: solid 1px var(--sendbird-dark-ondark-03); - background-color: var(--sendbird-dark-background-500); } - .sendbird-message-input .sendbird-message-input--textarea:focus { - outline: none; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:focus { - color: var(--sendbird-light-onlight-01); - border: solid 1px var(--sendbird-light-primary-300); - box-shadow: var(--sendbird-light-shadow-message-input); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:focus { - color: var(--sendbird-dark-ondark-01); - border: solid 1px var(--sendbird-dark-primary-200); - box-shadow: var(--sendbird-dark-shadow-message-input); } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:active { - border: solid 1px var(--sendbird-message-input-border-active); - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:active { - border: solid 1px var(--sendbird-message-input-border-active); - color: var(--sendbird-dark-ondark-01); } - .sendbird-message-input .sendbird-message-input--placeholder { - position: absolute; - pointer-events: none; - top: 18px; - left: 16px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - line-height: 1.43; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--placeholder { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--placeholder { - color: var(--sendbird-dark-ondark-03); } - .sendbird-message-input .sendbird-message-input--attach { - position: absolute; - right: 12px; - bottom: 18px; - padding: 6px; } - .sendbird-message-input .sendbird-message-input--send { - position: absolute; - padding: 6px; - right: 16px; - bottom: 16px; } - .sendbird-message-input .sendbird-message-input--attach-input { - display: none; } +.sendbird-button--small { + height: 32px; } + .sendbird-button--small .sendbird-button__text { + margin: 6px 16px; } -.sendbird-message-input__edit { - padding: 16px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-message-input__edit { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-message-input__edit { - background-color: var(--sendbird-dark-background-700); } +.sendbird-theme--light .sendbird-button--primary { + border: 1px solid var(--sendbird-light-primary-300); + background-color: var(--sendbird-light-primary-300); } -.sendbird-message-input--edit-action { - text-align: right; - margin-top: 4px; } - .sendbird-message-input--edit-action button:last-child { - margin-left: 8px; } - .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - width: 80px; } - .sendbird-theme--light .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - border: solid 1px var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - border: solid 1px var(--sendbird-dark-ondark-03); } - .sendbird-message-input--edit-action .sendbird-message-input--edit-action__save { - width: 80px; } +.sendbird-theme--dark .sendbird-button--primary { + border: 1px solid var(--sendbird-dark-primary-200); + background-color: var(--sendbird-dark-primary-200); } -.sendbird-message-input-form__disabled { - cursor: not-allowed; } +.sendbird-theme--light .sendbird-button--primary .sendbird-button__text { + color: var(--sendbird-light-ondark-01); } -.sendbird-message-input__disabled { - pointer-events: none; - cursor: disabled; } - .sendbird-theme--light .sendbird-message-input__disabled .sendbird-message-input--textarea { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-message-input__disabled .sendbird-message-input--textarea { - background-color: var(--sendbird-dark-background-500); } - .sendbird-theme--light .sendbird-message-input__disabled svg { - fill: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input__disabled svg { - fill: var(--sendbird-dark-ondark-03); } +.sendbird-theme--dark .sendbird-button--primary .sendbird-button__text { + color: var(--sendbird-dark-onlight-01); } -.sendbird-fileviewer { - width: 100%; - height: 100%; - position: fixed; - top: 0; - left: 0; - z-index: 100000; } - .sendbird-theme--light .sendbird-fileviewer { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-fileviewer { - background-color: var(--sendbird-dark-background-600); } +.sendbird-theme--light .sendbird-button--primary:hover { + background-color: var(--sendbird-light-primary-400); + border-color: var(--sendbird-light-primary-400); } -.sendbird-fileviewer__header { - height: 64px; - min-height: 64px; - box-sizing: border-box; - display: flex; - justify-content: space-between; } - .sendbird-theme--light .sendbird-fileviewer__header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-fileviewer__header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-fileviewer__header .sendbird-fileviewer__header-left { - padding: 16px 0px 16px 20px; - display: flex; - flex: 1; } - .sendbird-fileviewer__header .sendbird-fileviewer__header-right { - display: flex; - width: 160px; - justify-content: flex-end; } - .sendbird-fileviewer__header .sendbird-fileviewer__header-download, - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete, - .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - width: 64px; - padding: 21px; - box-sizing: border-box; - cursor: pointer; } - .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--light - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--light - .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--dark - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--dark - .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - border-left: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - border-left: 1px solid var(--sendbird-dark-ondark-04); } +.sendbird-theme--dark .sendbird-button--primary:hover { + background-color: var(--sendbird-dark-primary-300); + border-color: var(--sendbird-dark-primary-300); } -.sendbird-fileviewer__header-avatar { - margin-right: 8px; } +.sendbird-theme--light .sendbird-button--primary:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); + border: 1px solid var(--sendbird-button-border-focus); } -.sendbird-fileviewer__header-actions { - right: 0; - display: flex; - flex-direction: row; } +.sendbird-theme--dark .sendbird-button--primary:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); + border: 1px solid var(--sendbird-button-border-focus); } -.sendbird-fileviewer__header-filename { - max-width: 500px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - padding-top: 2px; } +.sendbird-theme--light .sendbird-button--primary:active { + background-color: var(--sendbird-light-primary-500); } -.sendbird-fileviewer__header-sendername { - max-width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - margin-left: 8px; - padding-top: 5px; } +.sendbird-theme--dark .sendbird-button--primary:active { + background-color: var(--sendbird-dark-primary-400); } -.sendbird-fileviewer__content { - height: calc(100% - 72px); - margin-top: 8px; - overflow-y: auto; - display: flex; - align-items: center; - justify-content: center; } - .sendbird-fileviewer__content .sendbird-fileviewer__video { - max-width: 100%; - max-height: 100%; } - .sendbird-fileviewer__content .sendbird-fileviewer__img { - max-width: 90%; - max-height: 90%; } - .sendbird-fileviewer__content .sendbird-fileviewer__unsupported { - max-width: 100%; - max-height: 100%; - display: flex; - justify-content: center; - align-items: center; } +.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:hover { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-400); } -.sendbird-unknown-message { - position: relative; - line-height: 0px; } - .sendbird-unknown-message--outgoing { - text-align: right; } - .sendbird-unknown-message--incoming { - text-align: left; } +.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:hover { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-300); } -.sendbird-outgoing-unknown-message { - position: relative; - right: 0px; - display: inline-block; - text-align: right; - padding-left: 36px; - box-sizing: border-box; } - .sendbird-outgoing-unknown-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__more { - display: block; } - .sendbird-outgoing-unknown-message--left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__more { - display: none; - position: absolute; - top: 4px; - right: 4px; } - .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__message-status { - position: absolute; - text-align: right; - right: 4px; - bottom: 4px; } - .sendbird-outgoing-unknown-message__body { - display: flex; - flex-direction: column; } - .sendbird-outgoing-unknown-message__body__text-balloon { - box-sizing: border-box; - text-align: left; - border-radius: 16px; - padding: 8px 12px; - width: 198px; - height: 56px; } - .sendbird-theme--light .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-primary-300); } +.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:active { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-500); } -.sendbird-incoming-unknown-message { - position: relative; - left: 0px; - display: flex; - flex-direction: row; - text-align: left; } - .sendbird-incoming-unknown-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-incoming-unknown-message__left { - width: 38px; } - .sendbird-incoming-unknown-message__left__sender-profile-image { - position: absolute; - bottom: 4px; } - .sendbird-incoming-unknown-message__body { - width: 198px; - display: flex; - flex-direction: column; } - .sendbird-incoming-unknown-message__body__sender-name { - margin-left: 10px; - margin-bottom: 4px; } - .sendbird-incoming-unknown-message__body__text-balloon { - width: 198px; - height: 56px; - border-radius: 16px; - text-align: left; - padding: 8px 12px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-unknown-message--right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-unknown-message--right-padding .sendbird-incoming-unknown-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } +.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:active { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-400); } -.sendbird-theme--light .sendbird-link-label { - color: var(--sendbird-light-onlight-01); } +.sendbird-button--secondary { + background-color: transparent; } + .sendbird-theme--light .sendbird-button--secondary { + border: 1px solid var(--sendbird-light-onlight-03); } + .sendbird-theme--dark .sendbird-button--secondary { + border: 1px solid var(--sendbird-dark-ondark-03); } + .sendbird-theme--light .sendbird-button--secondary .sendbird-button__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-button--secondary .sendbird-button__text { + color: var(--sendbird-dark-ondark-01); } + .sendbird-button--secondary:hover { + background-color: transparent; } + .sendbird-theme--light .sendbird-button--secondary:hover { + border: 1px solid var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:hover { + border: 1px solid var(--sendbird-dark-primary-200); } + .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button__text { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button__text { + color: var(--sendbird-dark-primary-200); } + .sendbird-button--secondary.sendbird-button__disabled { + cursor: not-allowed; + border: none; } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { + color: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { + color: var(--sendbird-dark-ondark-02); } + .sendbird-button--secondary.sendbird-button__disabled:hover { + border: none; } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { + color: var(--sendbird-light-onlight-02); } + .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { + color: var(--sendbird-dark-ondark-02); } + .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-dark-primary-200); } + .sendbird-button--secondary:focus { + border: 1px solid transparent; + background-color: transparent; } + .sendbird-theme--light .sendbird-button--secondary:focus { + box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } + .sendbird-theme--dark .sendbird-button--secondary:focus { + box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } + .sendbird-theme--light .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-button--secondary:focus .sendbird-button__text { + color: var(--sendbird-dark-ondark-01); } + .sendbird-button--secondary:active { + box-shadow: none; } + .sendbird-theme--light .sendbird-button--secondary:active { + border: 1px solid var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:active { + border: 1px solid var(--sendbird-dark-primary-200); } + .sendbird-theme--light .sendbird-button--secondary:active .sendbird-button__text { + color: var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-button--secondary:active .sendbird-button__text { + color: var(--sendbird-dark-primary-200); } -.sendbird-theme--dark .sendbird-link-label { - color: var(--sendbird-dark-ondark-01); } +.sendbird-theme--light .sendbird-button--danger { + border: 1px solid var(--sendbird-light-error-300); + background-color: var(--sendbird-light-error-300); } -.sendbird-theme--light .sendbird-link-label:active, .sendbird-theme--light .sendbird-link-label:visited, .sendbird-theme--light .sendbird-link-label:focus { - color: var(--sendbird-light-onlight-01); } +.sendbird-theme--dark .sendbird-button--danger { + border: 1px solid var(--sendbird-dark-error-300); + background-color: var(--sendbird-dark-error-300); } -.sendbird-theme--dark .sendbird-link-label:active, .sendbird-theme--dark .sendbird-link-label:visited, .sendbird-theme--dark .sendbird-link-label:focus { - color: var(--sendbird-dark-ondark-01); } +.sendbird-theme--light .sendbird-button--danger .sendbird-button__text { + color: var(--sendbird-light-ondark-01); } -.sendbird-link-label:focus { - outline: none; } +.sendbird-theme--dark .sendbird-button--danger .sendbird-button__text { + color: var(--sendbird-dark-onlight-01); } -.sendbird-link-label__label { - display: inline; } +.sendbird-theme--light .sendbird-button--danger:hover { + background-color: var(--sendbird-light-error-400); + border-color: var(--sendbird-light-error-400); } -.sendbird-og-message { - position: relative; } - .sendbird-og-message--outgoing { - text-align: right; - line-height: 0px; } - .sendbird-og-message--incoming { - text-align: left; } +.sendbird-theme--dark .sendbird-button--danger:hover { + background-color: var(--sendbird-dark-error-400); + border-color: var(--sendbird-dark-error-400); } -.sendbird-outgoing-og-message { - position: relative; - right: 0px; - display: inline-block; - box-sizing: border-box; - text-align: right; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message__og-tag__url .sendbird-outgoing-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - display: inline-block; - width: 296px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-400); } - .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { - display: block; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { - display: none; - position: absolute; - top: 2px; - right: 4px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more[class*='--pressed'] { - display: block !important; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__message-status { - position: absolute; - right: 4px; - bottom: 4px; - text-align: right; } - .sendbird-outgoing-og-message__text-balloon { - box-sizing: border-box; - width: 320px; - padding: 8px 12px; - border-radius: 16px 16px 0px 0px; - word-break: break-all; - text-align: left; } - .sendbird-theme--light .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-outgoing-og-message__thumbnail--disabled:hover { - cursor: not-allowed !important; } - .sendbird-outgoing-og-message__thumbnail { - width: 320px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-outgoing-og-message__thumbnail { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__thumbnail { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__thumbnail__image__placeholder { - width: 320px; - height: 160px; - display: flex; - justify-content: center; - align-items: center; } - .sendbird-outgoing-og-message__thumbnail:hover { - cursor: pointer; } - .sendbird-outgoing-og-message__thumbnail:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag--disabled:hover { - cursor: not-allowed !important; } - .sendbird-outgoing-og-message__og-tag { - padding: 8px 12px 12px 12px; - border-radius: 0px 0px 16px 16px; - text-align: left; - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__og-tag__title { - max-height: 150px; - overflow-y: hidden; - margin-bottom: 4px; } - .sendbird-outgoing-og-message__og-tag__description { - margin-bottom: 8px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-outgoing-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions--wrapper:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions { - margin: 8px -12px -12px -12px; - width: 320px; } - .sendbird-theme--light .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__og-tag__emoji-reactions:hover { - cursor: default; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag:hover { - cursor: pointer; } - .sendbird-outgoing-og-message__og-tag:focus { - outline: none; } +.sendbird-theme--light .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-300); + border-color: var(--sendbird-button-border-focus); } -.sendbird-og-message-word { - display: inline; - margin: 0px 2px; } +.sendbird-theme--dark .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-300); + border-color: var(--sendbird-button-border-focus); } -.sendbird-incoming-og-message { +.sendbird-button--danger:active { + box-shadow: none; } + .sendbird-theme--light .sendbird-button--danger:active { + background-color: var(--sendbird-light-error-500); } + .sendbird-theme--dark .sendbird-button--danger:active { + background-color: var(--sendbird-dark-error-500); } + +.sendbird-theme--light .sendbird-button--danger:hover .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-400); } + +.sendbird-theme--dark .sendbird-button--danger:hover .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-400); } + +.sendbird-theme--light .sendbird-button--danger:active .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-500); } + +.sendbird-theme--dark .sendbird-button--danger:active .sendbird-button--danger:focus { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-500); } + +.sendbird-button--disabled { + border: 1px solid transparent; + cursor: not-allowed; } + .sendbird-theme--light .sendbird-button--disabled { + background-color: var(--sendbird-light-background-200); + color: var(--sendbird-light-ondark-01); } + .sendbird-theme--dark .sendbird-button--disabled { + background-color: var(--sendbird-dark-background-400); + color: var(--sendbird-dark-onlight-01); } + +.sendbird-create-channel--content { + width: 480px; + max-height: 552px; } + +.sendbird-create-channel--scroll { + height: 360px; + overflow-y: auto; } + +.sendbird-checkbox { + display: block; position: relative; - left: 0px; + padding-left: 35px; + margin-bottom: 12px; + cursor: pointer; + font-size: 22px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.sendbird-checkbox input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; } + +.sendbird-checkbox--checkmark { + position: absolute; + top: 0; + left: 0; + height: 18px; + width: 18px; + border-radius: 2px; + background-color: inherit; } + .sendbird-theme--light .sendbird-checkbox--checkmark { + border: 2px solid var(--sendbird-light-background-400); } + .sendbird-theme--dark .sendbird-checkbox--checkmark { + border: 2px solid var(--sendbird-dark-background-300); } + +.sendbird-theme--light .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { + box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { + box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); } + +.sendbird-theme--light .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { + background-color: var(--sendbird-light-primary-300); + border: 2px solid var(--sendbird-light-primary-300); } + +.sendbird-theme--dark .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { + background-color: var(--sendbird-dark-primary-200); + border: 2px solid var(--sendbird-dark-primary-200); } + +.sendbird-checkbox--checkmark:after { + content: ""; + position: absolute; + display: none; } + +.sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark:after { + display: block; } + +.sendbird-theme--light .sendbird-checkbox .sendbird-checkbox--checkmark:after { + left: 5px; + top: -0.5px; + width: 7px; + height: 12px; + border: solid var(--sendbird-light-background-50); + border-width: 0 2px 2px 0; + transform: rotate(45deg); } + +.sendbird-theme--dark .sendbird-checkbox .sendbird-checkbox--checkmark:after { + left: 5px; + top: -0.5px; + width: 7px; + height: 12px; + border: solid var(--sendbird-dark-background-600); + border-width: 0 2px 2px 0; + transform: rotate(45deg); } + +.sendbird-sort-by-row { + display: flex; + justify-content: flex-start; + align-items: center; } + +.sendbird-reaction-button { + border-radius: 8px; display: inline-block; - box-sizing: border-box; - text-align: left; - padding-left: 40px; } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + border: solid 1px transparent; + cursor: pointer; } + .sendbird-theme--light .sendbird-reaction-button:hover { + border: solid 1px var(--sendbird-light-background-100); + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-reaction-button:hover { + border: solid 1px var(--sendbird-dark-background-400); background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-400); } - .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { - display: block; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body { - position: relative; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__avatar { - position: absolute; - bottom: 4px; - left: -40px; - cursor: pointer; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__sender-name { - margin-left: 12px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - box-sizing: border-box; - max-width: 320px; - padding: 8px 12px; - border-radius: 16px 16px 0px 0px; - word-break: break-all; - text-align: left; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail--disabled:hover { - cursor: not-allowed !important; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail .sendbird-incoming-og-message__thumbnail__image__placeholder { - width: 320px; - height: 160px; - display: flex; - justify-content: center; - align-items: center; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:hover { - cursor: pointer; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag--disabled:hover { - cursor: not-allowed !important; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - padding: 8px 12px 12px 12px; - border-radius: 0px 0px 16px 16px; - text-align: left; - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__title { - max-height: 150px; - overflow-y: hidden; - margin-bottom: 4px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__description { - margin-bottom: 8px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__url .sendbird-incoming-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - display: inline-block; - width: 296px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - margin: 8px -12px -12px -12px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:hover { - cursor: default; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__sent-at { - position: absolute; - bottom: 4px; - left: 4px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { - position: absolute; - top: 18px; - left: 4px; - display: none; } + .sendbird-reaction-button__inner { + margin: 3px; } -.sendbird-notification { - margin-top: 8px; - margin-left: 24px; - margin-right: 24px; - border-radius: 4px; - padding: 0px 2px; - height: 32px; - display: flex; - align-items: center; - justify-content: center; } - .sendbird-theme--light .sendbird-notification { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-notification { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-notification:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-notification:hover { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-notification:hover { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen { - background-color: var(--sendbird-light-information-100); } - .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen { - background-color: var(--sendbird-dark-information-100); } - .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { - color: var(--sendbird-dark-onlight-01); } - .sendbird-notification .sendbird-notification__text { - display: flex; - align-items: center; - justify-content: center; - margin-right: 8px; } +.sendbird-reaction-button--selected { + cursor: pointer; + border-radius: 8px; + display: inline-block; } + .sendbird-theme--light .sendbird-reaction-button--selected { + border: solid 1px var(--sendbird-light-primary-100); + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-reaction-button--selected { + border: solid 1px var(--sendbird-dark-primary-400); + background-color: var(--sendbird-dark-primary-400); } + .sendbird-reaction-button--selected:hover { + border: solid 1px var(--sendbird-selected-reaction-button-border-hover); } + .sendbird-reaction-button--selected__inner { + margin: 3px; } + .sendbird-reaction-button--selected.sendbird-reactions--pressed { + display: block !important; } -.sendbird-conversation__connection-status { +.sendbird-admin-message { display: flex; - align-items: center; - padding-top: 5px; } + justify-content: center; + align-items: center; } + .sendbird-admin-message .sendbird-admin-message__text { + display: flex; } -.sendbird-chat-header { - position: relative; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - height: 64px; - min-height: 64px; - padding-left: 20px; - padding-right: 16px; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-theme--light .sendbird-chat-header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-chat-header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-chat-header__left { - margin-right: 24px; } - .sendbird-chat-header__left, .sendbird-chat-header__right { - overflow: hidden; - display: flex; - flex-direction: row; - align-items: center; } - .sendbird-chat-header .sendbird-chat-header__title { - margin-left: 8px; - margin-right: 16px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - max-width: 780px; } - .sendbird-chat-header .sendbird-chat-header__subtitle { - max-width: 240px; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-chat-header .sendbird-chat-header__active { - margin-right: 4px; - width: 8px; - height: 8px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-chat-header .sendbird-chat-header__active { - background-color: var(--sendbird-light-secondary-300); } - .sendbird-theme--dark .sendbird-chat-header .sendbird-chat-header__active { - background-color: var(--sendbird-dark-secondary-200); } - .sendbird-chat-header .sendbird-chat-header__mute { - margin-right: 26px; } - .sendbird-chat-header .sendbird-iconbutton--pressed { - background-color: inherit; } +.sendbird-theme--light .sendbird-color--onbackground-1 { + color: var(--sendbird-light-onlight-01); } -.sendbird-channel-settings { - height: 100%; - width: 320px; - display: inline-block; } - .sendbird-theme--light .sendbird-channel-settings { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__header-icon { - cursor: pointer; - position: absolute; - top: 18px; - right: 21px; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-channel-settings .sendbird-channel-settings__members .sendbird-badge__text { - margin-top: -2px; } - .sendbird-channel-settings .sendbird-channel-settings__header { - height: 64px; - min-height: 64px; - position: relative; - padding: 20px 24px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__scroll-area { - display: flex; - flex-grow: 1; - flex-direction: column; - height: calc(100% - 64px); - overflow-y: auto; } - .sendbird-channel-settings .sendbird-channel-settings__panel-item { - cursor: pointer; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-item { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-item { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__panel-item:focus { - outline: none; } - .sendbird-channel-settings .sendbird-channel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { - cursor: not-allowed; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left, - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { - position: absolute; - top: 10px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left { - left: 16px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { - right: 16px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon--open { - transform: rotate(90deg); } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { - fill: var(--sendbird-light-error-300); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { - fill: var(--sendbird-dark-error-300); } +.sendbird-theme--dark .sendbird-color--onbackground-1 { + color: var(--sendbird-dark-ondark-01); } -.sendbird-channel-profile { - position: relative; - text-align: center; - padding: 32px 40px 27px 40px; } - .sendbird-theme--light .sendbird-channel-profile { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-channel-profile { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-channel-profile .sendbird-channel-profile--inner { - height: 92px; } - .sendbird-channel-profile .sendbird-channel-profile__avatar { - margin-bottom: 16px; - text-align: center; } - .sendbird-channel-profile .sendbird-channel-profile__title { - max-width: 240px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; - height: 18px; } - .sendbird-channel-profile .sendbird-channel-profile__edit { - position: absolute; - top: 10px; - right: 16px; } +.sendbird-theme--light .sendbird-color--onbackground-1--background-color { + background-color: var(--sendbird-light-onlight-01); } -.channel-profile-form .channel-profile-form__img-section { - position: relative; } +.sendbird-theme--dark .sendbird-color--onbackground-1--background-color { + background-color: var(--sendbird-dark-ondark-01); } -.channel-profile-form .channel-profile-form__avatar-button { - position: absolute; - top: 54px; - left: 96px; } +.sendbird-theme--light .sendbird-color--onbackground-2 { + color: var(--sendbird-light-onlight-02); } -.channel-profile-form .channel-profile-form__avatar { - margin-top: 16px; } +.sendbird-theme--dark .sendbird-color--onbackground-2 { + color: var(--sendbird-dark-ondark-02); } -.channel-profile-form .channel-profile-form__name-section { - margin-top: 12px; } - .channel-profile-form .channel-profile-form__name-section .sendbird-input { - height: 40px; } +.sendbird-theme--light .sendbird-color--onbackground-2--background-color { + background-color: var(--sendbird-light-onlight-02); } -.sendbird-members-accordion { - padding: 8px 16px 16px 16px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-members-accordion { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-members-accordion { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-members-accordion .sendbird-members-accordion__member { - position: relative; - padding: 12px 0px 12px 44px; - height: 40px; - box-sizing: border-box; } - .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label { - max-width: 240px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-members-accordion .sendbird-members-accordion__member-avatar { - position: absolute; - left: 0; - top: 10px; - cursor: pointer; } - .sendbird-members-accordion .sendbird-members-accordion__footer { - display: flex; - justify-content: flex-start; - margin-top: 8px; } - .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members { - margin-right: 16px; } +.sendbird-theme--dark .sendbird-color--onbackground-2--background-color { + background-color: var(--sendbird-dark-ondark-02); } -.sendbird-more-members__popup-scroll { - max-height: 420px; - overflow-y: auto; } +.sendbird-theme--light .sendbird-color--onbackground-3 { + color: var(--sendbird-light-onlight-03); } -.sendbird-channel-settings__operator .sendbird-channel-settings__accordion-icon { - position: absolute; - left: 14px; } +.sendbird-theme--dark .sendbird-color--onbackground-3 { + color: var(--sendbird-dark-ondark-03); } -.sendbird-channel-settings__operator .sendbird-accordion__panel-heder { - position: relative; } +.sendbird-theme--light .sendbird-color--onbackground-3--background-color { + background-color: var(--sendbird-light-onlight-03); } -.sendbird-channel-settings__empty-list { - text-align: center; - margin-top: 12px; - margin-bottom: 4px; - display: block; } +.sendbird-theme--dark .sendbird-color--onbackground-3--background-color { + background-color: var(--sendbird-dark-ondark-03); } -.sendbird-channel-settings-accordion__footer { - padding-top: 16px; - display: flex; - justify-content: left; - padding-left: 12px; } - .sendbird-channel-settings-accordion__footer .sendbird-button:nth-child(2) { - margin-left: 8px; } +.sendbird-theme--light .sendbird-color--onbackground-4 { + color: var(--sendbird-light-onlight-04); } -.sendbird-channel-settings__freeze { - max-width: 320px; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-channel-settings__freeze { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings__freeze { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } +.sendbird-theme--dark .sendbird-color--onbackground-4 { + color: var(--sendbird-dark-ondark-04); } -.sendbird-channel-settings__frozen-icon { - position: absolute; - right: 20px; - top: 12px; } - .sendbird-channel-settings__frozen-icon .sendbird-icon { - cursor: pointer; } +.sendbird-theme--light .sendbird-color--onbackground-4--background-color { + background-color: var(--sendbird-light-onlight-04); } -.sendbird-channel-settings__members-list .sendbird-badge, -.sendbird-channel-settings__members .sendbird-badge { - position: absolute; - right: 44px; - top: 12px; } - .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--light - .sendbird-channel-settings__members .sendbird-badge { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--dark - .sendbird-channel-settings__members .sendbird-badge { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--light - .sendbird-channel-settings__members .sendbird-badge .sendbird-label { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--dark - .sendbird-channel-settings__members .sendbird-badge .sendbird-label { - color: var(--sendbird-dark-ondark-02); } +.sendbird-theme--dark .sendbird-color--onbackground-4--background-color { + background-color: var(--sendbird-dark-ondark-04); } -.sendbird-accordion { - padding: 8px 0px 16px 0px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-accordion { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-accordion { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-accordion .sendbird-accordion__member { - position: relative; - padding: 12px 0px 12px 44px; - height: 40px; - box-sizing: border-box; } - .sendbird-accordion .sendbird-accordion__footer { - display: flex; - justify-content: flex-start; - margin-top: 8px; } +.sendbird-theme--light .sendbird-color--oncontent-1 { + color: var(--sendbird-light-ondark-01); } -.sendbird-accordion__panel-heder { - cursor: pointer; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-accordion__panel-heder { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-accordion__panel-heder { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-accordion__panel-heder:focus { - outline: none; } - .sendbird-accordion__panel-heder.sendbird-accordion__panel-item__disabled { - cursor: not-allowed; } +.sendbird-theme--dark .sendbird-color--oncontent-1 { + color: var(--sendbird-dark-onlight-01); } -.sendbird-accordion__panel-icon-left, -.sendbird-accordion__panel-icon-right { - position: absolute; - top: 10px; } +.sendbird-theme--light .sendbird-color--oncontent-1--background-color { + background-color: var(--sendbird-light-ondark-01); } -.sendbird-accordion__panel-icon-left { - left: 16px; } +.sendbird-theme--dark .sendbird-color--oncontent-1--background-color { + background-color: var(--sendbird-dark-onlight-01); } -.sendbird-accordion__panel-icon-right { - right: 16px; } +.sendbird-theme--light .sendbird-color--primary { + color: var(--sendbird-light-primary-300); } -.sendbird-accordion__panel-icon--open { - transform: rotate(90deg); } +.sendbird-theme--dark .sendbird-color--primary { + color: var(--sendbird-dark-primary-200); } -.sendbird-theme--light .sendbird-accordion__panel-icon--chevron path { - fill: var(--sendbird-light-onlight-01); } +.sendbird-theme--light .sendbird-color--primary--background-color { + background-color: var(--sendbird-light-primary-300); } -.sendbird-theme--dark .sendbird-accordion__panel-icon--chevron path { - fill: var(--sendbird-dark-ondark-01); } +.sendbird-theme--dark .sendbird-color--primary--background-color { + background-color: var(--sendbird-dark-primary-200); } -.sendbird-theme--light .sendbird-accordion__panel-icon__leave path { - fill: var(--sendbird-light-error-300); } +.sendbird-theme--light .sendbird-color--error { + color: var(--sendbird-light-error-300); } -.sendbird-theme--dark .sendbird-accordion__panel-icon__leave path { - fill: var(--sendbird-dark-error-300); } +.sendbird-theme--dark .sendbird-color--error { + color: var(--sendbird-dark-error-300); } -.sendbird-user-list-item--small { - display: block; - position: relative; - box-sizing: border-box; - height: 40px; } - .sendbird-user-list-item--small__avatar { - cursor: pointer; - position: absolute; - top: 10px; - left: 12px; } - .sendbird-user-list-item--small .sendbird-muted-avatar { - position: absolute; - top: 10px; - left: 12px; - z-index: 2; - pointer-events: none; } - .sendbird-user-list-item--small__title { - position: absolute; - top: 10px; - left: 54px; - width: 160px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item--small__subtitle { - position: absolute; - top: 23px; - left: 140px; - max-width: 237px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item--small__checkbox { - position: absolute; - top: 16px; - right: 16px; } - .sendbird-user-list-item--small__action { - display: none; - position: absolute; - right: 10px; - top: 4px; } - .sendbird-user-list-item--small__operator { - position: absolute; - right: 24px; - top: 10px; } - .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed { - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action { +.sendbird-theme--light .sendbird-color--error--background-color { + background-color: var(--sendbird-light-error-300); } + +.sendbird-theme--dark .sendbird-color--error--background-color { + background-color: var(--sendbird-dark-error-300); } + +.sendbird-message { + position: relative; + line-height: 0; } + .sendbird-message--outgoing { + text-align: right; } + .sendbird-message--incoming { + text-align: left; } + +.sendbird-user-message--copy { + cursor: pointer !important; } + +.sendbird-user-message--outgoing { + position: relative; + right: 0px; + display: inline-block; + max-width: 496px; + text-align: right; } + .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-400); } + .sendbird-user-message--outgoing:hover .sendbird-user-message__left-padding .sendbird-user-message__more { display: block; } - .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator { + .sendbird-user-message--outgoing .sendbird-user-message--inner { + display: flex; + flex-direction: row; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding { + position: relative; + width: 68px; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more { + display: none; + position: absolute; + right: 4px; + top: 2px; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more[class*='--pressed'] { + display: block !important; } + .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__status { + position: absolute; + bottom: 2px; + right: 4px; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; + text-align: left; } + .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { + display: flex; + flex-direction: column; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { + padding: 8px 12px; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + display: inline; + white-space: pre-wrap; + overflow-wrap: normal; } + .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + position: relative; + bottom: 0px; } + .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-300); } + +.sendbird-user-message--incoming { + position: relative; + left: 0px; + display: inline-block; + padding-left: 40px; + max-width: 536px; + text-align: left; } + .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__more { + display: block; } + .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__sent-at { display: none; } - .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { - background-color: var(--sendbird-dark-background-700); } + .sendbird-user-message--incoming .sendbird-user-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-user-message--incoming .sendbird-user-message--body { + display: flex; + flex-direction: column; } + .sendbird-user-message--incoming .sendbird-user-message__right-padding { + position: relative; + width: 68px; } + .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__sent-at { + position: absolute; + left: 4px; + bottom: 2px; } + .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__more { + position: absolute; + display: none; + top: 18px; + left: 4px; } + .sendbird-user-message--incoming .sendbird-user-message__avatar { + position: absolute; + bottom: 4px; + left: -40px; + cursor: pointer; } + .sendbird-user-message--incoming .sendbird-user-message__sender-name { + margin-left: 12px; + margin-bottom: 4px; } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon { + margin-top: 4px; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; } + .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { + display: flex; + flex-direction: column; } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { + padding: 8px 12px; } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + display: inline; + white-space: pre-wrap; + overflow-wrap: normal; } + .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + color: var(--sendbird-light-onlight-01); } + .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { + color: var(--sendbird-dark-ondark-01); } + .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + position: relative; + bottom: 0px; } + .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } -.sendbird-app__wrap { - width: 100%; - height: 100%; - display: flex; } - .sendbird-app__wrap .sendbird-app__conversation-wrap { - flex: 1; - position: relative; } - .sendbird-app__wrap .sendbird-app__channellist-wrap { - max-width: 320px; } - .sendbird-theme--light .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { - background-color: var(--sendbird-dark-background-700); } - .sendbird-app__wrap .sendbird-channel-settings { - border-left: none; } - .sendbird-app__wrap .sendbird-channel-settings .sendbird-channel-settings__header { - height: 65px; } +.sendbird-user-message__text-balloon__inner__text-place__text { + word-break: break-word; + display: flex; + flex-direction: row; + flex-wrap: wrap; } + +.sendbird-user-message__text-balloon { + display: inline-block; } + +.sendbird-user-message-word { + display: inline; + margin: 0px 2px; } + +.sendbird-file-message--outgoing { + text-align: right; } + +.sendbird-file-message--incoming { + text-align: left; } + +.sendbird-file-message__outgoing { + position: relative; + right: 0px; + display: inline-block; + max-width: 496px; + text-align: right; + line-height: 0px; } + .sendbird-file-message__outgoing .sendbird-file-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-400); } + .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__more { + display: block; } + .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__status { + display: none; } + .sendbird-file-message__outgoing .sendbird-file-message__left-padding { + position: relative; + width: 68px; } + .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__more { + display: none; + position: absolute; + right: 4px; + top: 2px; } + .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__status { + position: absolute; + text-align: right; + right: 4px; + bottom: 4px; } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip { + display: flex; + flex-direction: column; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; } + .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { + display: flex; + flex: row; + padding: 8px 12px; + text-align: left; } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + border-radius: 10px; + margin-right: 8px; + background-color: var(--sendbird-file-message-icon-background); } + .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { + white-space: nowrap; + overflow-wrap: break-word; + margin: 4px 0px; + cursor: pointer; } + .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-primary-300); } + +.sendbird-file-message__incoming { + position: relative; + left: 0px; + display: inline-block; + padding-left: 40px; + max-width: 536px; + text-align: left; + line-height: 0px; } + .sendbird-file-message__incoming .sendbird-file-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-file-message__incoming .sendbird-file-message__right-padding { + position: relative; + width: 68px; } + .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__more { + position: absolute; + display: none; + left: 4px; + top: 18px; } + .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__sent-at { + position: absolute; + left: 4px; + bottom: 4px; } + .sendbird-file-message__incoming:hover .sendbird-file-message__right-padding .sendbird-file-message__more { + display: block; } + .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-file-message__incoming .sendbird-file-message__avatar { + position: absolute; + bottom: 2px; + left: -40px; + cursor: pointer; } + .sendbird-file-message__incoming .sendbird-file-message__sender-name { + margin-left: 12px; + margin-bottom: 4px; } + .sendbird-file-message__incoming .sendbird-file-message__tooltip { + display: flex; + flex-direction: column; + margin-top: 4px; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + border-radius: 16px; } + .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip { + background-color: var(--sendbird-dark-background-500); } + .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { + display: flex; + flex-direction: row; + padding: 8px 12px; } + .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + border-radius: 10px; + margin-right: 8px; } + .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { + background-color: var(--sendbird-dark-background-600); } + .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { + white-space: nowrap; + overflow-wrap: normal; + margin: 4px 0px; + cursor: pointer; } + .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + +.sendbird-unknown-message { + position: relative; + line-height: 0px; } + .sendbird-unknown-message--outgoing { + text-align: right; } + .sendbird-unknown-message--incoming { + text-align: left; } + +.sendbird-outgoing-unknown-message { + position: relative; + right: 0px; + display: inline-block; + text-align: right; + padding-left: 36px; + box-sizing: border-box; } + .sendbird-outgoing-unknown-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__more { + display: block; } + .sendbird-outgoing-unknown-message--left-padding { + position: relative; + width: 68px; } + .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__more { + display: none; + position: absolute; + top: 4px; + right: 4px; } + .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__message-status { + position: absolute; + text-align: right; + right: 4px; + bottom: 4px; } + .sendbird-outgoing-unknown-message__body { + display: flex; + flex-direction: column; } + .sendbird-outgoing-unknown-message__body__text-balloon { + box-sizing: border-box; + text-align: left; + border-radius: 16px; + padding: 8px 12px; + width: 198px; + height: 56px; } + .sendbird-theme--light .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-outgoing-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-primary-300); } + +.sendbird-incoming-unknown-message { + position: relative; + left: 0px; + display: flex; + flex-direction: row; + text-align: left; } + .sendbird-incoming-unknown-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-incoming-unknown-message__left { + width: 38px; } + .sendbird-incoming-unknown-message__left__sender-profile-image { + position: absolute; + bottom: 4px; } + .sendbird-incoming-unknown-message__body { + width: 198px; + display: flex; + flex-direction: column; } + .sendbird-incoming-unknown-message__body__sender-name { + margin-left: 10px; + margin-bottom: 4px; } + .sendbird-incoming-unknown-message__body__text-balloon { + width: 198px; + height: 56px; + border-radius: 16px; + text-align: left; + padding: 8px 12px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-unknown-message__body__text-balloon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-unknown-message--right-padding { + position: relative; + width: 68px; } + .sendbird-incoming-unknown-message--right-padding .sendbird-incoming-unknown-message__sent-at { + position: absolute; + left: 4px; + bottom: 4px; } + +.sendbird-message-status { + display: inline; + text-align: right; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again { + text-decoration: underline; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again:hover { + cursor: pointer; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete { + text-decoration: underline; } + .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete:hover { + cursor: pointer; } + +.sendbird-emoji-reactions { + display: inline-block; + border-radius: 16px; + max-width: var(--sendbird-message-balloon-width); + box-sizing: border-box; + min-height: 24px; + padding: 7px 5px 3px 5px; } + .sendbird-theme--light .sendbird-emoji-reactions { + background-color: var(--sendbird-light-background-50); } + .sendbird-theme--dark .sendbird-emoji-reactions { + background-color: var(--sendbird-dark-background-600); } + .sendbird-emoji-reactions .sendbird-emoji-reactions--inner { + display: flex; + flex-wrap: wrap; } + .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction { + margin-left: 2px; + margin-right: 2px; + margin-bottom: 4px; } + .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction-add { + width: 36px; + height: 24px; } + .sendbird-emoji-reactions:focus { + outline: none; } + +.sendbird-reaction-badge { + display: inline-block; + border-radius: 15px; + width: 50px; + height: 24px; } + .sendbird-theme--light .sendbird-reaction-badge { + background-color: var(--sendbird-light-background-100); + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-reaction-badge { + background-color: var(--sendbird-dark-background-500); + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-reaction-badge:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-reaction-badge:hover { + border: solid 1px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-reaction-badge:hover { + border: solid 1px var(--sendbird-dark-primary-200); } + +.sendbird-reaction-badge--is-add { + display: inline-block; + border-radius: 15px; + width: 36px; + height: 24px; } + .sendbird-theme--light .sendbird-reaction-badge--is-add { + background-color: var(--sendbird-light-background-100); + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-reaction-badge--is-add { + background-color: var(--sendbird-dark-background-500); + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-reaction-badge--is-add:hover { + cursor: pointer; + border: solid 1px var(--sendbird-add-reaction-button-border-hover); } + .sendbird-reaction-badge--is-add .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { + left: 8px; } + +.sendbird-reaction-badge--selected { + display: inline-block; + border-radius: 15px; + width: 50px; + height: 24px; } + .sendbird-theme--light .sendbird-reaction-badge--selected { + background-color: var(--sendbird-light-primary-100); + border: solid 1px var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-reaction-badge--selected { + background-color: var(--sendbird-dark-primary-400); + border: solid 1px var(--sendbird-dark-primary-400); } + .sendbird-reaction-badge--selected:hover { + cursor: pointer; } + .sendbird-theme--light .sendbird-reaction-badge--selected:hover { + border: solid 1px var(--sendbird-light-primary-300); } + .sendbird-theme--dark .sendbird-reaction-badge--selected:hover { + border: solid 1px var(--sendbird-dark-primary-200); } + +.sendbird-reaction-badge__inner { + position: relative; + display: flex; + height: 24px; + flex-direction: row; + align-items: center; + justify-content: center; + padding-left: 20px; + padding-right: 4px; } + .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { + position: absolute; + top: 2px; + left: 4px; } + .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__count { + margin-left: 4px; } + +.sendbird-tooltip { + position: relative; + display: inline-flex; + justify-content: center; + max-width: 200px; + border-radius: 8px; + padding: 8px 16px; + background-color: var(--sendbird-tooltip-background); } + .sendbird-tooltip::after { + content: ''; + position: absolute; + bottom: -4px; + width: 8px; + height: 8px; + transform: rotate(45deg); + background-color: var(--sendbird-tooltip-background); } + .sendbird-tooltip__text { + font-family: var(--sendbird-font-family-default); + font-size: 12px; + font-weight: bold; + font-stretch: normal; + font-style: normal; + line-height: 1.33; + letter-spacing: normal; + color: var(--sendbird-tooltip-text-color); } + +.sendbird-tooltip-wrapper { + position: relative; + display: inline-flex; } + .sendbird-tooltip-wrapper__hover-tooltip { + position: absolute; + display: inline-flex; + width: 200px; } + .sendbird-tooltip-wrapper__hover-tooltip__inner__tooltip-container { + position: relative; + display: inline-flex; } + +.sendbird-thumbnail { + text-align: right; + position: relative; } + .sendbird-thumbnail .sendbird-thumbnail__body { + position: relative; + display: inline-block; } + .sendbird-thumbnail .sendbird-thumbnail__more { + display: none; + position: absolute; + top: 10px; } + .sendbird-thumbnail:hover .sendbird-thumbnail__more { + display: block; } + .sendbird-thumbnail .sendbird-thumbnail__wrap { + position: relative; + display: flex; + flex-direction: column; + border-radius: 16px; + margin: 8px 0px; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap { + background-color: var(--sendbird-dark-background-500); } + .sendbird-thumbnail .sendbird-thumbnail__wrap:focus { + outline: none; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner { + cursor: pointer; } + .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + opacity: 1; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner { + width: 100%; + height: 100%; + position: relative; } + .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + border-radius: 16px; } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-thumbnail .sendbird-thumbnail__avatar { + position: absolute; + bottom: 30px; + left: 0px; } + .sendbird-thumbnail .sendbird-thumbnail__sender-name { + margin-left: 12px; } + .sendbird-thumbnail.sendbird-thumbnail--incoming { + text-align: left; + padding-left: 40px; + box-sizing: border-box; } + .sendbird-thumbnail .sendbird-thumbnail__video-icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + .sendbird-thumbnail .sendbird-thumbnail__video, + .sendbird-thumbnail .sendbird-thumbnail__img { + display: block; + max-width: var(--sendbird-message-balloon-width); + max-height: 360px; + border-radius: 16px; } + +.sendbird-outgoing-thumbnail-message { + position: relative; + text-align: right; + line-height: 0px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message--inner { + display: inline-flex; + flex-direction: row; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding { + position: relative; + width: 68px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { + display: none; + position: absolute; + top: 4px; + right: 4px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__status { + position: absolute; + right: 4px; + bottom: 4px; } + .sendbird-outgoing-thumbnail-message:hover .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { + display: block; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body { + position: relative; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { + position: relative; + display: flex; + flex-direction: column; + border-radius: 16px; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { + background-color: var(--sendbird-dark-background-500); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:focus { + outline: none; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner { + cursor: pointer; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + opacity: 1; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner { + width: 100%; + height: 100%; + position: relative; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + border-radius: 16px; } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video, + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__img { + display: block; + max-width: var(--sendbird-message-balloon-width); + max-height: 360px; + border-radius: 16px; } + .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video-icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + +.sendbird-incoming-thumbnail-message { + position: relative; + text-align: left; + padding-left: 40px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__sender-name { + position: relative; + box-sizing: border-box; + left: 12px; + height: 12px; + margin-bottom: 4px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__avatar { + position: absolute; + left: -40px; + bottom: 4px; + cursor: pointer; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message--inner { + display: flex; + flex-direction: row; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body { + position: relative; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { + position: relative; + display: flex; + flex-direction: column; + border-radius: 16px; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:focus { + outline: none; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { + background-color: var(--sendbird-dark-background-400); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner { + cursor: pointer; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + opacity: 1; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-400); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner { + width: 100%; + height: 100%; + position: relative; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + position: absolute; + opacity: 0; + width: 100%; + height: 100%; + top: 0px; + left: 0px; + border-radius: 16px; } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + background-color: var(--sendbird-light-overlay); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { + background-color: var(--sendbird-dark-overlay); } + .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { + border: solid 1px var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { + border: solid 1px var(--sendbird-dark-background-500); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video, + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__img { + display: block; + max-width: var(--sendbird-message-balloon-width); + max-height: 360px; + border-radius: 16px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video-icon { + position: absolute; + top: calc(50% - 28px); + left: calc(50% - 28px); } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding { + position: relative; + width: 68px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__sent-at { + position: absolute; + left: 4px; + bottom: 4px; } + .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { + position: absolute; + left: 4px; + top: 4px; + display: none; } + .sendbird-incoming-thumbnail-message:hover .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { + display: block; } + +.sendbird-og-message { + position: relative; } + .sendbird-og-message--outgoing { + text-align: right; + line-height: 0px; } + .sendbird-og-message--incoming { + text-align: left; } + +.sendbird-outgoing-og-message { + position: relative; + right: 0px; + display: inline-block; + box-sizing: border-box; + text-align: right; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message__og-tag__url { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + display: inline-block; + width: 296px; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-light-primary-200); } + .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-dark-primary-400); } + .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-400); } + .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { + display: block; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding { + position: relative; + width: 68px; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { + display: none; + position: absolute; + top: 2px; + right: 4px; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more[class*='--pressed'] { + display: block !important; } + .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__message-status { + position: absolute; + right: 4px; + bottom: 4px; + text-align: right; } + .sendbird-outgoing-og-message__text-balloon { + box-sizing: border-box; + width: 320px; + padding: 8px 12px; + border-radius: 16px 16px 0px 0px; + word-break: break-all; + text-align: left; } + .sendbird-theme--light .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-light-primary-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__text-balloon { + background-color: var(--sendbird-dark-primary-300); } + .sendbird-outgoing-og-message__thumbnail--disabled:hover { + cursor: not-allowed !important; } + .sendbird-outgoing-og-message__thumbnail { + width: 320px; + box-sizing: border-box; } + .sendbird-theme--light .sendbird-outgoing-og-message__thumbnail { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__thumbnail { + background-color: var(--sendbird-dark-background-500); } + .sendbird-outgoing-og-message__thumbnail__image__placeholder { + width: 320px; + height: 160px; + display: flex; + justify-content: center; + align-items: center; } + .sendbird-outgoing-og-message__thumbnail:hover { + cursor: pointer; } + .sendbird-outgoing-og-message__thumbnail:focus { + outline: none; } + .sendbird-outgoing-og-message__og-tag--disabled:hover { + cursor: not-allowed !important; } + .sendbird-outgoing-og-message__og-tag { + padding: 8px 12px 12px 12px; + border-radius: 0px 0px 16px 16px; + text-align: left; + box-sizing: border-box; + width: 320px; } + .sendbird-theme--light .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag { + background-color: var(--sendbird-dark-background-500); } + .sendbird-outgoing-og-message__og-tag__title { + max-height: 150px; + overflow-y: hidden; + margin-bottom: 4px; } + .sendbird-outgoing-og-message__og-tag__description { + margin-bottom: 8px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .sendbird-outgoing-og-message__og-tag__url__label { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .sendbird-outgoing-og-message__og-tag__emoji-reactions--wrapper:focus { + outline: none; } + .sendbird-outgoing-og-message__og-tag__emoji-reactions { + margin: 8px -12px -12px -12px; + width: 320px; } + .sendbird-theme--light .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-500); } + .sendbird-outgoing-og-message__og-tag__emoji-reactions:hover { + cursor: default; } + .sendbird-outgoing-og-message__og-tag__emoji-reactions:focus { + outline: none; } + .sendbird-outgoing-og-message__og-tag:hover { + cursor: pointer; } + .sendbird-outgoing-og-message__og-tag:focus { + outline: none; } + +.sendbird-og-message-word { + display: inline; + margin: 0px 2px; } + +.sendbird-incoming-og-message { + position: relative; + left: 0px; + display: inline-block; + box-sizing: border-box; + text-align: left; + padding-left: 40px; } + .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-dark-background-400); } + .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-200); } + .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-400); } + .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { + display: block; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner { + position: relative; + display: flex; + flex-direction: row; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body { + position: relative; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__avatar { + position: absolute; + bottom: 4px; + left: -40px; + cursor: pointer; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__sender-name { + margin-left: 12px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + box-sizing: border-box; + max-width: 320px; + padding: 8px 12px; + border-radius: 16px 16px 0px 0px; + word-break: break-all; + text-align: left; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail--disabled:hover { + cursor: not-allowed !important; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { + box-sizing: border-box; + width: 320px; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail .sendbird-incoming-og-message__thumbnail__image__placeholder { + width: 320px; + height: 160px; + display: flex; + justify-content: center; + align-items: center; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:hover { + cursor: pointer; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:focus { + outline: none; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag--disabled:hover { + cursor: not-allowed !important; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + padding: 8px 12px 12px 12px; + border-radius: 0px 0px 16px 16px; + text-align: left; + box-sizing: border-box; + width: 320px; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { + background-color: var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__title { + max-height: 150px; + overflow-y: hidden; + margin-bottom: 4px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__description { + margin-bottom: 8px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__url .sendbird-incoming-og-message__og-tag__url__label { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + display: inline-block; + width: 296px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper:focus { + outline: none; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + margin: 8px -12px -12px -12px; } + .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-light-background-100); } + .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { + border: 1px solid var(--sendbird-dark-background-500); } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:hover { + cursor: default; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:focus { + outline: none; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding { + position: relative; + width: 68px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__sent-at { + position: absolute; + bottom: 4px; + left: 4px; } + .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { + position: absolute; + top: 18px; + left: 4px; + display: none; } + +@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap"); +:root { + --sendbird-light-primary-500: #4d2aa6; + --sendbird-light-primary-400: #6440C4; + --sendbird-light-primary-300: #7B53EF; + --sendbird-light-primary-200: #9E8CF5; + --sendbird-light-primary-100: #E2DFFF; + --sendbird-light-secondary-500: #007A7A; + --sendbird-light-secondary-400: #189A8D; + --sendbird-light-secondary-300: #2EBA9F; + --sendbird-light-secondary-200: #6FD6BE; + --sendbird-light-secondary-100: #AEF2DC; + --sendbird-light-information-100: #b2d9ff; + --sendbird-light-error-500: #A30E2D; + --sendbird-light-error-400: #C11F41; + --sendbird-light-error-300: #E53157; + --sendbird-light-error-200: #FF6183; + --sendbird-light-error-100: #FFABBD; + --sendbird-light-background-700: #000000; + --sendbird-light-background-600: #161616; + --sendbird-light-background-500: #2C2C2C; + --sendbird-light-background-400: #393939; + --sendbird-light-background-300: #A8A8A8; + --sendbird-light-background-200: #D9D9D9; + --sendbird-light-background-100: #F0F0F0; + --sendbird-light-background-50: #FFFFFF; + --sendbird-light-overlay: rgba(0, 0, 0, 0.32); + --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88); + --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50); + --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38); + --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12); + --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88); + --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50); + --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38); + --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12); + --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); + --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + --sendbird-light-theme-surface-2: #EAEAEA; } + +:root { + --sendbird-dark-primary-500: #4d2aa6; + --sendbird-dark-primary-400: #6440C4; + --sendbird-dark-primary-300: #7B53EF; + --sendbird-dark-primary-200: #9E8CF5; + --sendbird-dark-primary-100: #E2DFFF; + --sendbird-dark-secondary-500: #007A7A; + --sendbird-dark-secondary-400: #189A8D; + --sendbird-dark-secondary-300: #2EBA9F; + --sendbird-dark-secondary-200: #6FD6BE; + --sendbird-dark-secondary-100: #AEF2DC; + --sendbird-dark-information-100: #b2d9ff; + --sendbird-dark-error-500: #A30E2D; + --sendbird-dark-error-400: #C11F41; + --sendbird-dark-error-300: #E53157; + --sendbird-dark-error-200: #FF6183; + --sendbird-dark-error-100: #FFABBD; + --sendbird-dark-background-700: #000000; + --sendbird-dark-background-600: #161616; + --sendbird-dark-background-500: #2C2C2C; + --sendbird-dark-background-400: #393939; + --sendbird-dark-background-300: #A8A8A8; + --sendbird-dark-background-200: #D9D9D9; + --sendbird-dark-background-100: #F0F0F0; + --sendbird-dark-background-50: #FFFFFF; + --sendbird-dark-overlay: rgba(0, 0, 0, 0.32); + --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88); + --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50); + --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38); + --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12); + --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88); + --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50); + --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38); + --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12); + --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); + --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } + +:root { + --sendbird-iconbutton-color: #825eeb; + --sendbird-message-input-border-active: #7B53EF; + --sendbird-selected-reaction-button-border-hover: #9E8CF5; + --sendbird-add-reaction-button-border-hover: #9E8CF5; + --sendbird-tooltip-background: #000000; + --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88); + --sendbird-button-border-focus: #FFFFFF; + --sendbird-file-message-icon-background: #FFFFFF; + --sendbird-font-family-default: 'Open Sans', sans-serif; + --sendbird-message-balloon-width: 404px; } -/*# sourceMappingURL=index.css.map */ \ No newline at end of file +/*# sourceMappingURL=../index.css.map */ \ No newline at end of file diff --git a/dist/index.css.map b/dist/index.css.map index 6d3d75f..4ff4579 100644 --- a/dist/index.css.map +++ b/dist/index.css.map @@ -1 +1 @@ -{"version":3,"sources":["index.scss","color.scss","add-channel.scss","muted-avatar-overlay.scss","conversation-scroll.scss","notification.scss","channel-profile.scss","members-accordion.scss","user-list-item.scss"],"names":[],"mappings":"AAAA,yFAAyF;AACzF;EACE,qCAAqC;EACrC,qCAAqC;EACrC,qCAAqC;EACrC,qCAAqC;EACrC,qCAAqC;EACrC,uCAAuC;EACvC,uCAAuC;EACvC,uCAAuC;EACvC,uCAAuC;EACvC,uCAAuC;EACvC,yCAAyC;EACzC,mCAAmC;EACnC,mCAAmC;EACnC,mCAAmC;EACnC,mCAAmC;EACnC,mCAAmC;EACnC,wCAAwC;EACxC,wCAAwC;EACxC,wCAAwC;EACxC,wCAAwC;EACxC,wCAAwC;EACxC,wCAAwC;EACxC,wCAAwC;EACxC,wCAAwC;EACxC,6CAA6C;EAC7C,gDAAgD;EAChD,gDAAgD;EAChD,gDAAgD;EAChD,gDAAgD;EAChD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,8HAA8H;EAC9H,yIAAyI;EACzI,wIAAwI;EACxI,wIAAwI;EACxI,gLAAgL;EAChL,yCAAyC,EAAE;;AAE7C;EACE,oCAAoC;EACpC,oCAAoC;EACpC,oCAAoC;EACpC,oCAAoC;EACpC,oCAAoC;EACpC,sCAAsC;EACtC,sCAAsC;EACtC,sCAAsC;EACtC,sCAAsC;EACtC,sCAAsC;EACtC,wCAAwC;EACxC,kCAAkC;EAClC,kCAAkC;EAClC,kCAAkC;EAClC,kCAAkC;EAClC,kCAAkC;EAClC,uCAAuC;EACvC,uCAAuC;EACvC,uCAAuC;EACvC,uCAAuC;EACvC,uCAAuC;EACvC,uCAAuC;EACvC,uCAAuC;EACvC,uCAAuC;EACvC,4CAA4C;EAC5C,+CAA+C;EAC/C,+CAA+C;EAC/C,+CAA+C;EAC/C,+CAA+C;EAC/C,oDAAoD;EACpD,oDAAoD;EACpD,oDAAoD;EACpD,oDAAoD;EACpD,6HAA6H;EAC7H,wIAAwI;EACxI,uIAAuI;EACvI,uIAAuI;EACvI,+KAA+K,EAAE;;AAEnL;EACE,oCAAoC;EACpC,+CAA+C;EAC/C,yDAAyD;EACzD,oDAAoD;EACpD,sCAAsC;EACtC,wDAAwD;EACxD,uCAAuC;EACvC,gDAAgD;EAChD,uDAAuD;EACvD,uCAAuC,EAAE;;AA5F3C;EACE,mBAAmB,EAAE;;AAEvB;EACE,kBAAkB;EAClB,eAAe;EACf,sBAAsB;EACtB,YAAY;EACZ,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;EACvB,4BAA4B,EAAE;EAC9B;IACE,yDAAyD,EAAE;EAC7D;IACE,uDAAuD,EAAE;EAC3D;IACE,iBAAiB,EAAE;EACrB;IACE,kBAAkB,EAAE;EACtB;IACE,aAAa,EAAE;EACjB;IACE,WAAW;IACX,YAAY,EAAE;EAChB;IACE,WAAW;IACX,YAAY;IACZ,iBAAiB,EAAE;IACnB;MACE,aAAa;MACb,8BAA8B;MAC9B,YAAY;MACZ,YAAY,EAAE;MACd;QACE,aAAa;QACb,2BAA2B;QAC3B,gBAAgB;QAChB,uBAAuB,EAAE;QACzB;UACE,gBAAgB;UAChB,uBAAuB;UACvB,gBAAgB;UAChB,qBAAqB;UACrB,mBAAmB,EAAE;QACvB;UACE,eAAe;UACf,gBAAgB,EAAE;MACtB;QACE,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB,EAAE;IACzB;MACE,eAAe;MACf,YAAY;MACZ,YAAY;MACZ,aAAa;MACb,8BAA8B,EAAE;MAChC;QACE,gBAAgB;QAChB,uBAAuB,EAAE;MAC3B;QACE,gBAAgB;QAChB,mBAAmB,EAAE;EAC3B;IACE,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,qBAAqB,EAAE;IACvB;MACE,aAAa,EAAE;EACnB;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,qBAAqB,EAAE;EACzB;IACE,aAAa,EAAE;EACjB;IACE,aAAa,EAAE;;AAEnB;EACE,4BAA4B,EAAE;EAC9B;IACE,wDAAwD;IACxD,yDAAyD;IACzD,mDAAmD,EAAE;EACvD;IACE,uDAAuD;IACvD,uDAAuD;IACvD,qDAAqD,EAAE;EACzD;IACE,wCAAwC,EAAE;EAC5C;IACE,uCAAuC,EAAE;;AAjG7C;EACE,aAAa,EAAE;;AADjB;EACE,qBAAqB,EAAE;EACvB;IACE,aAAa,EAAE;;AAEnB;EACE,uCAAuC,EAAE;;AAE3C;EACE,sCAAsC,EAAE;;AAE1C;EACE,yCAAyC;EACzC,iBAAiB;EACjB,sBAAsB,EAAE;;AAE1B;EACE,wCAAwC;EACxC,iBAAiB;EACjB,sBAAsB,EAAE;;AAE1B;EACE,sCAAsC,EAAE;;AAE1C;EACE,oCAAoC,EAAE;;AAExC;EACE,qCAAqC,EAAE;;AAEzC;EACE,qCAAqC,EAAE;;AAEzC;EACE,sCAAsC,EAAE;;AAE1C;EACE,oCAAoC,EAAE;;AAExC;EACE,aAAa,EAAE;;AAEjB;EACE,sCAAsC,EAAE;;AAE1C;EACE,oCAAoC,EAAE;;AAExC;EACE,yCAAyC,EAAE;;AAE7C;EACE,wCAAwC,EAAE;;AAE5C;EACE,sCAAsC,EAAE;;AAE1C;EACE,oCAAoC,EAAE;;AA1DxC;EACE,qBAAqB;EACrB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB,EAAE;EACpB;IACE,aAAa,EAAE;EACjB;IACE,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,gCAAgC,EAAE;EACpC;IACE,8BAA8B,EAAE;EAClC;IACE,iCAAiC,EAAE;EACrC;IACE,iCAAiC,EAAE;EACrC;IACE,2CAA2C,EAAE;EAC/C;IACE,2CAA2C,EAAE;EAC/C;IACE,2CAA2C,EAAE;EAC/C;IACE,2CAA2C,EAAE;EAC/C;IACE,2CAA2C,EAAE;EAC/C;IACE,2CAA2C,EAAE;;AA7BjD;EACE,YAAY;EACZ,eAAe;EACf,mBAAmB;EACnB,qBAAqB,EAAE;EACvB;IACE,mDAAmD,EAAE;EACvD;IACE,kDAAkD,EAAE;EACtD;IACE,eAAe,EAAE;;AAVrB;EACE,gDAAgD,EAAE;;AAEpD;EACE,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,kBAAkB;EAClB,gBAAgB;EAChB,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,kBAAkB;EAClB,mBAAmB;EACnB,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,mBAAmB;EACnB,oBAAoB;EACpB,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,mBAAmB;EACnB,oBAAoB;EACpB,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,mBAAmB;EACnB,oBAAoB;EACpB,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,mBAAmB;EACnB,oBAAoB;EACpB,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,sBAAsB,EAAE;;AAE1B;EACE,eAAe;EACf,mBAAmB;EACnB,oBAAoB;EACpB,kBAAkB;EAClB,cAAc;EACd,sBAAsB,EAAE;;AAE1B;EACE,uCAAuC,EAAE;;AAE3C;EACE,qCAAqC,EAAE;;AAEzC;EACE,uCAAuC,EAAE;;AAE3C;EACE,qCAAqC,EAAE;;AAEzC;EACE,uCAAuC,EAAE;;AAE3C;EACE,qCAAqC,EAAE;;AAEzC;EACE,sCAAsC,EAAE;;AAE1C;EACE,sCAAsC,EAAE;;AAE1C;EACE,sCAAsC,EAAE;;AAE1C;EACE,sCAAsC,EAAE;;AAE1C;EACE,wCAAwC,EAAE;;AAE5C;EACE,uCAAuC,EAAE;;AAE3C;EACE,sCAAsC,EAAE;;AAE1C;EACE,qCAAqC,EAAE;;AAlIzC;EACE,uCAAuC;EACvC,qBAAqB;EACrB,YAAY;EACZ,6BAA6B;EAC7B,eAAe;EACf,yBAAiB;KAAjB,sBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,kBAAkB;EAClB,YAAY,EAAE;EACd;IACE,sCAAsC,EAAE;EAC1C;IACE,oCAAoC,EAAE;EACxC;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,6DAA6D,EAAE;EACjE;IACE,4DAA4D,EAAE;EAChE;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,8BAA8B,EAAE;IAChC;MACE,sCAAsC,EAAE;IAC1C;MACE,oCAAoC,EAAE;;AAE5C;EACE,mDAAmD,EAAE;;AAEvD;EACE,qDAAqD,EAAE;;AArCzD;EACE,kBAAkB;EAClB,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,yBAAyB;EACzB,sBAAsB,EAAE;EACxB;IACE,yDAAyD;IACzD,qDAAqD,EAAE;EACzD;IACE,uDAAuD;IACvD,qDAAqD,EAAE;EACzD;IACE,eAAe,EAAE;EACnB;IACE,aAAa;IACb,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,kBAAkB,EAAE;IACpB;MACE,gDAAgD,EAAE;IACpD;MACE,+CAA+C,EAAE;IACnD;MACE,aAAa,EAAE;MACf;QACE,gDAAgD,EAAE;MACpD;QACE,+CAA+C,EAAE;IACrD;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;IACtD;MACE,WAAW;MACX,YAAY;MACZ,sBAAsB,EAAE;IAC1B;MACE,gBAAgB;MAChB,gBAAgB,EAAE;IACpB;;MAEE,cAAc;MACd,gBAAgB;MAChB,mBAAmB;MACnB,gBAAgB;MAChB,uBAAuB,EAAE;EAC7B;IACE,kBAAkB;IAClB,WAAW;IACX,SAAS,EAAE;;AApDf;EACE,gBAAgB,EAAE;EAClB;IACE,cAAc;IACd,mBAAmB,EAAE;;AAEzB;EACE,mBAAmB,EAAE;;AAEvB;EACE,kBAAkB,EAAE;;AAEtB;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU,EAAE;;AAEd;EACE,eAAe,EAAE;;AAlBnB;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB,EAAE;;AAE3B;EACE,YAAY;EACZ,kBAAkB;EAClB,cAAc;EACd,4BAA4B;EAC5B,kBAAkB;EAClB,sBAAsB,EAAE;EACxB;IACE,qDAAqD;IACrD,2CAA2C,EAAE;EAC/C;IACE,qDAAqD;IACrD,0CAA0C,EAAE;EAC9C;IACE,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,eAAe,EAAE;IACjB;MACE,sCAAsC,EAAE;IAC1C;MACE,oCAAoC,EAAE;EAC1C;IACE,mBAAmB,EAAE;EACvB;IACE,gBAAgB;IAChB,iBAAiB,EAAE;IACnB;MACE,gBAAgB;MAChB,WAAW;MACX,YAAY,EAAE;;AAEpB;EACE,eAAe;EACf,cAAc;EACd,YAAY;EACZ,WAAW;EACX,MAAM;EACN,OAAO,EAAE;EACT;IACE,+CAA+C,EAAE;EACnD;IACE,8CAA8C,EAAE;;AApDpD;EACE,qBAAqB;EACrB,gBAAgB;EAChB,kBAAkB;EAClB,YAAY;EACZ,gDAAgD;EAChD,eAAe,EAAE;EACjB;IACE,gBAAgB,EAAE;EACpB;IACE,aAAa,EAAE;EACjB;IACE,gBAAgB,EAAE;EACpB;IACE,mBAAmB,EAAE;IACrB;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;IACzD;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;;AAE7D;EACE,YAAY,EAAE;EACd;IACE,iBAAiB,EAAE;;AAEvB;EACE,YAAY,EAAE;EACd;IACE,gBAAgB,EAAE;;AAEtB;EACE,mDAAmD;EACnD,mDAAmD,EAAE;;AAEvD;EACE,kDAAkD;EAClD,kDAAkD,EAAE;;AAEtD;EACE,sCAAsC,EAAE;;AAE1C;EACE,sCAAsC,EAAE;;AAE1C;EACE,mDAAmD;EACnD,+CAA+C,EAAE;;AAEnD;EACE,kDAAkD;EAClD,8CAA8C,EAAE;;AAElD;EACE,6DAA6D;EAC7D,qDAAqD,EAAE;;AAEzD;EACE,4DAA4D;EAC5D,qDAAqD,EAAE;;AAEzD;EACE,mDAAmD,EAAE;;AAEvD;EACE,kDAAkD,EAAE;;AAEtD;EACE,6DAA6D,EAAE;;AAEjE;EACE,4DAA4D,EAAE;;AAEhE;EACE,6DAA6D,EAAE;;AAEjE;EACE,4DAA4D,EAAE;;AAEhE;EACE,6BAA6B,EAAE;EAC/B;IACE,kDAAkD,EAAE;EACtD;IACE,gDAAgD,EAAE;EACpD;IACE,uCAAuC,EAAE;EAC3C;IACE,qCAAqC,EAAE;EACzC;IACE,6BAA6B,EAAE;IAC/B;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;IACtD;MACE,wCAAwC,EAAE;IAC5C;MACE,uCAAuC,EAAE;EAC7C;IACE,mBAAmB;IACnB,YAAY,EAAE;IACd;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;IACzD;MACE,uCAAuC,EAAE;IAC3C;MACE,qCAAqC,EAAE;IACzC;MACE,YAAY,EAAE;MACd;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;MACzD;QACE,uCAAuC,EAAE;MAC3C;QACE,qCAAqC,EAAE;EAC7C;IACE,wCAAwC,EAAE;EAC5C;IACE,uCAAuC,EAAE;EAC3C;IACE,6BAA6B;IAC7B,6BAA6B,EAAE;IAC/B;MACE,6DAA6D,EAAE;IACjE;MACE,4DAA4D,EAAE;IAChE;MACE,uCAAuC,EAAE;IAC3C;MACE,qCAAqC,EAAE;EAC3C;IACE,gBAAgB,EAAE;IAClB;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;IACtD;MACE,wCAAwC,EAAE;IAC5C;MACE,uCAAuC,EAAE;;AAE/C;EACE,iDAAiD;EACjD,iDAAiD,EAAE;;AAErD;EACE,gDAAgD;EAChD,gDAAgD,EAAE;;AAEpD;EACE,sCAAsC,EAAE;;AAE1C;EACE,sCAAsC,EAAE;;AAE1C;EACE,iDAAiD;EACjD,6CAA6C,EAAE;;AAEjD;EACE,gDAAgD;EAChD,4CAA4C,EAAE;;AAEhD;EACE,2DAA2D;EAC3D,iDAAiD,EAAE;;AAErD;EACE,0DAA0D;EAC1D,iDAAiD,EAAE;;AAErD;EACE,gBAAgB,EAAE;EAClB;IACE,iDAAiD,EAAE;EACrD;IACE,gDAAgD,EAAE;;AAEtD;EACE,2DAA2D,EAAE;;AAE/D;EACE,0DAA0D,EAAE;;AAE9D;EACE,2DAA2D,EAAE;;AAE/D;EACE,0DAA0D,EAAE;;AAE9D;EACE,6BAA6B;EAC7B,mBAAmB,EAAE;EACrB;IACE,sDAAsD;IACtD,sCAAsC,EAAE;EAC1C;IACE,qDAAqD;IACrD,sCAAsC,EAAE;;AA9M5C;EACE,qBAAqB;EACrB,WAAW;EACX,YAAY;EACZ,kBAAkB,EAAE;EACpB;IACE,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,gDAAgD;IAChD,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,kBAAkB;IAClB,sBAAsB;IACtB,yBAAyB,EAAE;IAC3B;MACE,uCAAuC;MACvC,8CAA8C;MAC9C,kDAAkD,EAAE;IACtD;MACE,qCAAqC;MACrC,6CAA6C;MAC7C,gDAAgD,EAAE;IACpD;MACE,aAAa,EAAE;MACf;QACE,wHAAwH;QACxH,uCAAuC;QACvC,mDAAmD,EAAE;MACvD;QACE,sHAAsH;QACtH,qCAAqC;QACrC,kDAAkD,EAAE;IACxD;MACE,wHAAwH;MACxH,uCAAuC;MACvC,mDAAmD,EAAE;IACvD;MACE,sHAAsH;MACtH,qCAAqC;MACrC,kDAAkD,EAAE;IACtD;MACE,mBAAmB,EAAE;MACrB;QACE,sDAAsD;QACtD,uCAAuC,EAAE;MAC3C;QACE,qDAAqD;QACrD,qCAAqC,EAAE;EAC7C;IACE,kBAAkB;IAClB,oBAAoB;IACpB,SAAS;IACT,UAAU;IACV,gDAAgD;IAChD,eAAe;IACf,iBAAiB,EAAE;IACnB;MACE,uCAAuC,EAAE;IAC3C;MACE,qCAAqC,EAAE;;AAE7C;EACE,aAAa,EAAE;;AAnEjB;EACE,0BAA0B;EAC1B,eAAe,EAAE;;AAEnB;EACE,qBAAqB;EACrB,eAAe,EAAE;;AAEnB;EACE,mBAAmB,EAAE;EACrB;IACE,uCAAuC,EAAE;EAC3C;IACE,qCAAqC,EAAE;;ACb3C;EACE,uCAAuC,EAAE;;AAE3C;EACE,qCAAqC,EAAE;;AAEzC;EACE,kDAAkD,EAAE;;AAEtD;EACE,gDAAgD,EAAE;;AAEpD;EACE,uCAAuC,EAAE;;AAE3C;EACE,qCAAqC,EAAE;;AAEzC;EACE,kDAAkD,EAAE;;AAEtD;EACE,gDAAgD,EAAE;;AAEpD;EACE,uCAAuC,EAAE;;AAE3C;EACE,qCAAqC,EAAE;;AAEzC;EACE,kDAAkD,EAAE;;AAEtD;EACE,gDAAgD,EAAE;;AAEpD;EACE,uCAAuC,EAAE;;AAE3C;EACE,qCAAqC,EAAE;;AAEzC;EACE,kDAAkD,EAAE;;AAEtD;EACE,gDAAgD,EAAE;;AAEpD;EACE,sCAAsC,EAAE;;AAE1C;EACE,sCAAsC,EAAE;;AAE1C;EACE,iDAAiD,EAAE;;AAErD;EACE,iDAAiD,EAAE;;AAErD;EACE,wCAAwC,EAAE;;AAE5C;EACE,uCAAuC,EAAE;;AAE3C;EACE,mDAAmD,EAAE;;AAEvD;EACE,kDAAkD,EAAE;;AAEtD;EACE,sCAAsC,EAAE;;AAE1C;EACE,qCAAqC,EAAE;;AAEzC;EACE,iDAAiD,EAAE;;AAErD;EACE,gDAAgD,EAAE;;AClFpD;EACE,gBAAgB,EAAE;;AAEpB;EACE,iBAAiB;EACjB,gBAAgB,EAAE;;AAEpB;EACE,YAAY;EACZ,YAAY;EACZ,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,sBAAsB;EACtB,eAAe,EAAE;EACjB;IACE,kDAAkD,EAAE;EACtD;IACE,gDAAgD,EAAE;EACpD;IACE,kBAAkB;IAClB,UAAU;IACV,SAAS,EAAE;;AFvBf;EACE,YAAY;EACZ,iBAAiB,EAAE;;AAErB;EACE,aAAa;EACb,gBAAgB,EAAE;;AGNpB;EACE,kBAAkB;EAClB,qBAAqB,EAAE;EACvB;IACE,kBAAkB,EAAE;IACpB;MACE,kBAAkB;MAClB,QAAQ;MACR,SAAS,EAAE;EACf;IACE,WAAW;IACX,kBAAkB;IAClB,kBAAkB;IAClB,MAAM;IACN,OAAO,EAAE;IACT;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;;AHlB1D;EACE,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,mBAAmB;EACnB,eAAe;EACf,eAAe;EACf,yBAAiB;KAAjB,sBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB,EAAE;;AAErB;EACE,kBAAkB;EAClB,UAAU;EACV,eAAe;EACf,SAAS;EACT,QAAQ,EAAE;;AAEZ;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,YAAY;EACZ,WAAW;EACX,kBAAkB;EAClB,yBAAyB,EAAE;EAC3B;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;;AAE3D;EACE,6DAA6D,EAAE;;AAEjE;EACE,4DAA4D,EAAE;;AAEhE;EACE,mDAAmD;EACnD,mDAAmD,EAAE;;AAEvD;EACE,kDAAkD;EAClD,kDAAkD,EAAE;;AAEtD;EACE,WAAW;EACX,kBAAkB;EAClB,aAAa,EAAE;;AAEjB;EACE,cAAc,EAAE;;AAElB;EACE,SAAS;EACT,WAAW;EACX,UAAU;EACV,YAAY;EACZ,iDAAiD;EACjD,yBAAyB;EACzB,wBAAwB,EAAE;;AAE5B;EACE,SAAS;EACT,WAAW;EACX,UAAU;EACV,YAAY;EACZ,iDAAiD;EACjD,yBAAyB;EACzB,wBAAwB,EAAE;;AAnE5B;EACE,YAAY;EACZ,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,kBAAkB,EAAE;EACpB;IACE,2CAA2C;IAC3C,qDAAqD,EAAE;EACzD;IACE,0CAA0C;IAC1C,qDAAqD,EAAE;EACzD;IACE,eAAe,EAAE;EACnB;IACE,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;IAClB,uBAAuB,EAAE;EAC3B;IACE,gBAAgB,EAAE;IAClB;MACE,YAAY,EAAE;EAClB;IACE,gBAAgB;IAChB,WAAW,EAAE;IACb;MACE,kDAAkD,EAAE;IACtD;MACE,gDAAgD,EAAE;EACtD;;IAEE,cAAc;IACd,gBAAgB,EAAE;EACpB;IACE,kBAAkB,EAAE;;AAnCxB;EACE,mBAAmB,EAAE;;AAEvB;EACE,cAAc;EACd,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,gBAAgB;EAChB,WAAW;EACX,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB,EAAE;EAClB;IACE,2CAA2C;IAC3C,qDAAqD,EAAE;EACzD;IACE,0CAA0C;IAC1C,qDAAqD,EAAE;EACzD;IACE,eAAe;IACf,mBAAmB;IACnB,iBAAiB,EAAE;IACnB;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;;AAE7D;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,gBAAgB,EAAE;EAClB;IACE,2CAA2C;IAC3C,qDAAqD,EAAE;EACzD;IACE,0CAA0C;IAC1C,qDAAqD,EAAE;EACzD;IACE,WAAW,EAAE;;AAEjB;EACE,6BAA6B;EAC7B,eAAe;EACf,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY,EAAE;;AAEhB;EACE,yBAAyB,EAAE;;AAE7B;EACE,yBAAyB,EAAE;;AA7D7B;EACE,aAAa;EACb,2BAA2B;EAC3B,mBAAmB,EAAE;;AAHvB;EACE,cAAc;EACd,kBAAkB;EAClB,sBAAsB;EACtB,YAAY;EACZ,YAAY,EAAE;EACd;IACE,yDAAyD;IACzD,qDAAqD,EAAE;EACzD;IACE,uDAAuD;IACvD,qDAAqD,EAAE;EACzD;IACE,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,UAAU;IACV,eAAe,EAAE;EACnB;IACE,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,UAAU;IACV,oBAAoB,EAAE;EACxB;IACE,kBAAkB;IAClB,SAAS;IACT,UAAU;IACV,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB,EAAE;EAC3B;IACE,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB,EAAE;EAC3B;IACE,kBAAkB;IAClB,SAAS;IACT,WAAW,EAAE;EACf;IACE,kBAAkB;IAClB,QAAQ;IACR,SAAS,EAAE;EACb;IACE,kBAAkB;IAClB,WAAW;IACX,SAAS,EAAE;;AAnDf;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,YAAY,EAAE;EACd;IACE,aAAa;IACb,sBAAsB;IACtB,aAAa;IACb,mBAAmB,EAAE;IACrB;MACE,mBAAmB,EAAE;IACvB;MACE,gBAAgB,EAAE;EACtB;IACE,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,eAAe,EAAE;IACjB;MACE,iBAAiB,EAAE;;AApBzB;EACE,qBAAqB;EACrB,qCAA6B;UAA7B,6BAA6B;EAC7B,8BAAsB;UAAtB,sBAAsB,EAAE;;AAE1B;EACE;IACE,oBAAoB,EAAE;EACxB;IACE,yBAAyB,EAAE,EAAE;;AAJjC;EACE;IACE,oBAAoB,EAAE;EACxB;IACE,yBAAyB,EAAE,EAAE;;AATjC;EACE,YAAY;EACZ,YAAY;EACZ,aAAa;EACb,sBAAsB,EAAE;EACxB;IACE,qDAAqD;IACrD,kDAAkD,EAAE;EACtD;IACE,qDAAqD;IACrD,gDAAgD,EAAE;;AAEtD;EACE,YAAY;EACZ,gBAAgB,EAAE;;AAEpB;EACE,WAAW;EACX,WAAW;EACX,gBAAgB;EAChB,kBAAkB,EAAE;;AApBtB;EACE,aAAa;EACb,sBAAsB;EACtB,YAAY,EAAE;EACd;IACE,qDAAqD;IACrD,kDAAkD,EAAE;EACtD;IACE,qDAAqD;IACrD,gDAAgD,EAAE;;AAEtD;EACE,gBAAgB;EAChB,WAAW;EACX,QAAQ,EAAE;;AAEZ;EACE,aAAa;EACb,sBAAsB;EACtB,YAAY;EACZ,yBAAyB,EAAE;;AAE7B;EACE,QAAQ;EACR,2BAA2B,EAAE;;AAE/B;EACE,aAAa;EACb,YAAY;EACZ,gBAAgB;EAChB,kBAAkB;EAClB,sBAAsB,EAAE;EACxB;IACE,WAAW,EAAE;;AAEjB;EACE,kBAAkB,EAAE;EACpB;IACE,kBAAkB;IAClB,WAAW,EAAE;;AAvCjB;EACE,kBAAkB;EAClB,qBAAqB;EACrB,6BAA6B;EAC7B,eAAe,EAAE;EACjB;IACE,sDAAsD;IACtD,sDAAsD,EAAE;EAC1D;IACE,qDAAqD;IACrD,qDAAqD,EAAE;EACzD;IACE,WAAW,EAAE;;AAEjB;EACE,eAAe;EACf,kBAAkB;EAClB,qBAAqB,EAAE;EACvB;IACE,mDAAmD;IACnD,mDAAmD,EAAE;EACvD;IACE,kDAAkD;IAClD,kDAAkD,EAAE;EACtD;IACE,uEAAuE,EAAE;EAC3E;IACE,WAAW,EAAE;EACf;IACE,yBAAyB,EAAE;;AI7B/B;EACE,kBAAkB;EAClB,mBAAmB,EAAE;;AAEvB;;EAEE,gBAAgB;EAChB,mBAAmB,EAAE;;AJPvB;EACE,kBAAkB;EAClB,cAAc,EAAE;EAChB;IACE,iBAAiB,EAAE;EACrB;IACE,gBAAgB,EAAE;;AAEtB;EACE,0BAA0B,EAAE;;AAE9B;EACE,kBAAkB;EAClB,UAAU;EACV,qBAAqB;EACrB,gBAAgB;EAChB,iBAAiB,EAAE;EACnB;IACE,mDAAmD,EAAE;EACvD;IACE,kDAAkD,EAAE;EACtD;IACE,mDAAmD,EAAE;EACvD;IACE,kDAAkD,EAAE;EACtD;IACE,cAAc,EAAE;EAClB;IACE,aAAa;IACb,mBAAmB,EAAE;EACvB;IACE,kBAAkB;IAClB,WAAW,EAAE;IACb;MACE,aAAa;MACb,kBAAkB;MAClB,UAAU;MACV,QAAQ,EAAE;MACV;QACE,yBAAyB,EAAE;IAC/B;MACE,kBAAkB;MAClB,WAAW;MACX,UAAU,EAAE;EAChB;IACE,gDAAgD;IAChD,sBAAsB;IACtB,mBAAmB;IACnB,gBAAgB,EAAE;IAClB;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;IACtD;MACE,aAAa;MACb,sBAAsB,EAAE;MACxB;QACE,iBAAiB,EAAE;QACnB;UACE,eAAe;UACf,qBAAqB;UACrB,qBAAqB,EAAE;MAC3B;QACE,kBAAkB;QAClB,WAAW,EAAE;QACb;UACE,mDAAmD,EAAE;QACvD;UACE,kDAAkD,EAAE;;AAE9D;EACE,kBAAkB;EAClB,SAAS;EACT,qBAAqB;EACrB,kBAAkB;EAClB,gBAAgB;EAChB,gBAAgB,EAAE;EAClB;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,cAAc,EAAE;EAClB;IACE,aAAa,EAAE;EACjB;IACE,kBAAkB;IAClB,aAAa;IACb,mBAAmB,EAAE;EACvB;IACE,aAAa;IACb,sBAAsB,EAAE;EAC1B;IACE,kBAAkB;IAClB,WAAW,EAAE;IACb;MACE,kBAAkB;MAClB,SAAS;MACT,WAAW,EAAE;IACf;MACE,kBAAkB;MAClB,aAAa;MACb,SAAS;MACT,SAAS,EAAE;EACf;IACE,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,eAAe,EAAE;EACnB;IACE,iBAAiB;IACjB,kBAAkB,EAAE;EACtB;IACE,eAAe;IACf,gDAAgD;IAChD,sBAAsB;IACtB,mBAAmB,EAAE;IACrB;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;IACzD;MACE,aAAa;MACb,sBAAsB,EAAE;MACxB;QACE,iBAAiB,EAAE;QACnB;UACE,eAAe;UACf,qBAAqB;UACrB,qBAAqB,EAAE;UACvB;YACE,uCAAuC,EAAE;UAC3C;YACE,qCAAqC,EAAE;MAC7C;QACE,kBAAkB;QAClB,WAAW,EAAE;QACb;UACE,sDAAsD,EAAE;QAC1D;UACE,qDAAqD,EAAE;;AAEjE;EACE,sBAAsB;EACtB,aAAa;EACb,mBAAmB;EACnB,eAAe,EAAE;;AAEnB;EACE,qBAAqB,EAAE;;AAEzB;EACE,eAAe;EACf,eAAe,EAAE;;AA7JnB;EACE,eAAe;EACf,iBAAiB,EAAE;EACnB;IACE,0BAA0B,EAAE;IAC5B;MACE,eAAe,EAAE;EACrB;IACE,0BAA0B,EAAE;IAC5B;MACE,eAAe,EAAE;;AAVvB;EACE,qBAAqB;EACrB,mBAAmB;EACnB,gDAAgD;EAChD,sBAAsB;EACtB,gBAAgB;EAChB,wBAAwB,EAAE;EAC1B;IACE,qDAAqD,EAAE;EACzD;IACE,qDAAqD,EAAE;EACzD;IACE,aAAa;IACb,eAAe,EAAE;EACnB;IACE,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB,EAAE;EACtB;IACE,WAAW;IACX,YAAY,EAAE;EAChB;IACE,aAAa,EAAE;;AAtBnB;EACE,qBAAqB;EACrB,mBAAmB;EACnB,WAAW;EACX,YAAY,EAAE;EACd;IACE,sDAAsD;IACtD,sDAAsD,EAAE;EAC1D;IACE,qDAAqD;IACrD,qDAAqD,EAAE;EACzD;IACE,eAAe,EAAE;IACjB;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;;AAE1D;EACE,qBAAqB;EACrB,mBAAmB;EACnB,WAAW;EACX,YAAY,EAAE;EACd;IACE,sDAAsD;IACtD,sDAAsD,EAAE;EAC1D;IACE,qDAAqD;IACrD,qDAAqD,EAAE;EACzD;IACE,eAAe;IACf,kEAAkE,EAAE;EACtE;IACE,SAAS,EAAE;;AAEf;EACE,qBAAqB;EACrB,mBAAmB;EACnB,WAAW;EACX,YAAY,EAAE;EACd;IACE,mDAAmD;IACnD,mDAAmD,EAAE;EACvD;IACE,kDAAkD;IAClD,kDAAkD,EAAE;EACtD;IACE,eAAe,EAAE;IACjB;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;;AAE1D;EACE,kBAAkB;EAClB,aAAa;EACb,YAAY;EACZ,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,kBAAkB,EAAE;EACpB;IACE,kBAAkB;IAClB,QAAQ;IACR,SAAS,EAAE;EACb;IACE,gBAAgB,EAAE;;AAnEtB;EACE,kBAAkB;EAClB,oBAAoB;EACpB,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,iBAAiB;EACjB,oDAAoD,EAAE;EACtD;IACE,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,UAAU;IACV,WAAW;IACX,wBAAwB;IACxB,oDAAoD,EAAE;EACxD;IACE,gDAAgD;IAChD,eAAe;IACf,iBAAiB;IACjB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,yCAAyC,EAAE;;AAxB/C;EACE,kBAAkB;EAClB,oBAAoB,EAAE;EACtB;IACE,kBAAkB;IAClB,oBAAoB;IACpB,YAAY,EAAE;IACd;MACE,kBAAkB;MAClB,oBAAoB,EAAE;;AAT5B;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB,EAAE;EACrB;IACE,aAAa,EAAE;;AALnB;EACE,iBAAiB;EACjB,kBAAkB,EAAE;EACpB;IACE,kBAAkB;IAClB,qBAAqB,EAAE;EACzB;IACE,aAAa;IACb,kBAAkB;IAClB,SAAS,EAAE;EACb;IACE,cAAc,EAAE;EAClB;IACE,kBAAkB;IAClB,aAAa;IACb,sBAAsB;IACtB,mBAAmB;IACnB,eAAe,EAAE;IACjB;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;IACzD;MACE,aAAa,EAAE;IACjB;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;IACzD;MACE,eAAe,EAAE;MACjB;QACE,UAAU,EAAE;IAChB;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;IACzD;MACE,WAAW;MACX,YAAY;MACZ,kBAAkB,EAAE;MACpB;QACE,kBAAkB;QAClB,UAAU;QACV,WAAW;QACX,YAAY;QACZ,MAAM;QACN,OAAO;QACP,mBAAmB,EAAE;QACrB;UACE,+CAA+C,EAAE;QACnD;UACE,8CAA8C,EAAE;IACtD;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;EAC3D;IACE,kBAAkB;IAClB,YAAY;IACZ,SAAS,EAAE;EACb;IACE,iBAAiB,EAAE;EACrB;IACE,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB,EAAE;EAC1B;IACE,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB,EAAE;EAC1B;;IAEE,cAAc;IACd,gDAAgD;IAChD,iBAAiB;IACjB,mBAAmB,EAAE;;AAEzB;EACE,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB,EAAE;EAClB;IACE,oBAAoB;IACpB,mBAAmB,EAAE;EACvB;IACE,kBAAkB;IAClB,WAAW,EAAE;IACb;MACE,aAAa;MACb,kBAAkB;MAClB,QAAQ;MACR,UAAU,EAAE;IACd;MACE,kBAAkB;MAClB,UAAU;MACV,WAAW,EAAE;EACjB;IACE,cAAc,EAAE;EAClB;IACE,kBAAkB,EAAE;IACpB;MACE,kBAAkB;MAClB,aAAa;MACb,sBAAsB;MACtB,mBAAmB,EAAE;MACrB;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;MACzD;QACE,aAAa,EAAE;MACjB;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;MACzD;QACE,eAAe,EAAE;QACjB;UACE,UAAU,EAAE;MAChB;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;MACzD;QACE,WAAW;QACX,YAAY;QACZ,kBAAkB,EAAE;QACpB;UACE,kBAAkB;UAClB,UAAU;UACV,WAAW;UACX,YAAY;UACZ,MAAM;UACN,OAAO;UACP,mBAAmB,EAAE;UACrB;YACE,+CAA+C,EAAE;UACnD;YACE,8CAA8C,EAAE;MACtD;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;EAC7D;;IAEE,cAAc;IACd,gDAAgD;IAChD,iBAAiB;IACjB,mBAAmB,EAAE;EACvB;IACE,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB,EAAE;;AAE5B;EACE,kBAAkB;EAClB,gBAAgB;EAChB,kBAAkB,EAAE;EACpB;IACE,kBAAkB;IAClB,sBAAsB;IACtB,UAAU;IACV,YAAY;IACZ,kBAAkB,EAAE;EACtB;IACE,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,eAAe,EAAE;EACnB;IACE,aAAa;IACb,mBAAmB,EAAE;EACvB;IACE,kBAAkB,EAAE;IACpB;MACE,kBAAkB;MAClB,aAAa;MACb,sBAAsB;MACtB,mBAAmB,EAAE;MACrB;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;MACzD;QACE,aAAa,EAAE;MACjB;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;MACzD;QACE,eAAe,EAAE;QACjB;UACE,UAAU,EAAE;MAChB;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;MACzD;QACE,WAAW;QACX,YAAY;QACZ,kBAAkB,EAAE;QACpB;UACE,kBAAkB;UAClB,UAAU;UACV,WAAW;UACX,YAAY;UACZ,QAAQ;UACR,SAAS;UACT,mBAAmB,EAAE;UACrB;YACE,+CAA+C,EAAE;UACnD;YACE,8CAA8C,EAAE;MACtD;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;EAC7D;;IAEE,cAAc;IACd,gDAAgD;IAChD,iBAAiB;IACjB,mBAAmB,EAAE;EACvB;IACE,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB,EAAE;EAC1B;IACE,kBAAkB;IAClB,WAAW,EAAE;IACb;MACE,kBAAkB;MAClB,SAAS;MACT,WAAW,EAAE;IACf;MACE,kBAAkB;MAClB,SAAS;MACT,QAAQ;MACR,aAAa,EAAE;EACnB;IACE,cAAc,EAAE;;AAhPpB;EACE,iBAAiB,EAAE;;AAErB;EACE,gBAAgB,EAAE;;AAEpB;EACE,kBAAkB;EAClB,UAAU;EACV,qBAAqB;EACrB,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB,EAAE;EAClB;IACE,kBAAkB;IAClB,aAAa;IACb,mBAAmB,EAAE;EACvB;IACE,mDAAmD,EAAE;EACvD;IACE,kDAAkD,EAAE;EACtD;IACE,mDAAmD,EAAE;EACvD;IACE,kDAAkD,EAAE;EACtD;IACE,cAAc,EAAE;EAClB;IACE,aAAa,EAAE;EACjB;IACE,kBAAkB;IAClB,WAAW,EAAE;IACb;MACE,aAAa;MACb,kBAAkB;MAClB,UAAU;MACV,QAAQ,EAAE;IACZ;MACE,kBAAkB;MAClB,iBAAiB;MACjB,UAAU;MACV,WAAW,EAAE;EACjB;IACE,aAAa;IACb,sBAAsB;IACtB,gDAAgD;IAChD,sBAAsB;IACtB,mBAAmB,EAAE;IACrB;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;IACtD;MACE,aAAa;MACb,SAAS;MACT,iBAAiB;MACjB,gBAAgB,EAAE;MAClB;QACE,mBAAmB;QACnB,iBAAiB;QACjB,8DAA8D,EAAE;MAClE;QACE,mBAAmB;QACnB,yBAAyB;QACzB,eAAe;QACf,eAAe,EAAE;IACrB;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;;AAE1D;EACE,kBAAkB;EAClB,SAAS;EACT,qBAAqB;EACrB,kBAAkB;EAClB,gBAAgB;EAChB,gBAAgB;EAChB,gBAAgB,EAAE;EAClB;IACE,kBAAkB;IAClB,aAAa;IACb,mBAAmB,EAAE;EACvB;IACE,kBAAkB;IAClB,WAAW,EAAE;IACb;MACE,kBAAkB;MAClB,aAAa;MACb,SAAS;MACT,SAAS,EAAE;IACb;MACE,kBAAkB;MAClB,SAAS;MACT,WAAW,EAAE;EACjB;IACE,cAAc,EAAE;EAClB;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,eAAe,EAAE;EACnB;IACE,iBAAiB;IACjB,kBAAkB,EAAE;EACtB;IACE,aAAa;IACb,sBAAsB;IACtB,eAAe;IACf,gDAAgD;IAChD,sBAAsB;IACtB,mBAAmB,EAAE;IACrB;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;IACzD;MACE,aAAa;MACb,mBAAmB;MACnB,iBAAiB,EAAE;MACnB;QACE,mBAAmB;QACnB,iBAAiB,EAAE;QACnB;UACE,qDAAqD,EAAE;QACzD;UACE,qDAAqD,EAAE;MAC3D;QACE,mBAAmB;QACnB,qBAAqB;QACrB,eAAe;QACf,eAAe,EAAE;IACrB;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;;AA/I7D;EACE,WAAW;EACX,aAAa;EACb,mBAAmB,EAAE;EACrB;IACE,YAAY;IACZ,WAAW;IACX,qBAAqB;IACrB,WAAW,EAAE;EACf;IACE,YAAY;IACZ,WAAW;IACX,qBAAqB;IACrB,WAAW,EAAE;EACf;IACE,gBAAgB;IAChB,aAAa;IACb,mBAAmB,EAAE;;AAjBzB;EACE,qBAAqB;EACrB,WAAW;EACX,kBAAkB,EAAE;EACpB;IACE,WAAW;IACX,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;IACZ,kBAAkB;IAClB,sBAAsB;IACtB,4BAA4B;IAC5B,sBAAsB;IACtB,YAAY;IACZ,gDAAgD;IAChD,yBAAyB,EAAE;IAC3B;MACE,uCAAuC;MACvC,8CAA8C;MAC9C,kDAAkD;MAClD,qDAAqD,EAAE;IACzD;MACE,qCAAqC;MACrC,6CAA6C;MAC7C,gDAAgD;MAChD,qDAAqD,EAAE;IACzD;MACE,aAAa,EAAE;MACf;QACE,uCAAuC;QACvC,mDAAmD;QACnD,sDAAsD,EAAE;MAC1D;QACE,qCAAqC;QACrC,kDAAkD;QAClD,qDAAqD,EAAE;IAC3D;MACE,6DAA6D;MAC7D,uCAAuC,EAAE;IAC3C;MACE,6DAA6D;MAC7D,qCAAqC,EAAE;EAC3C;IACE,kBAAkB;IAClB,oBAAoB;IACpB,SAAS;IACT,UAAU;IACV,gDAAgD;IAChD,eAAe;IACf,iBAAiB,EAAE;IACnB;MACE,uCAAuC,EAAE;IAC3C;MACE,qCAAqC,EAAE;EAC3C;IACE,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,YAAY,EAAE;EAChB;IACE,kBAAkB;IAClB,YAAY;IACZ,WAAW;IACX,YAAY,EAAE;EAChB;IACE,aAAa,EAAE;;AAEnB;EACE,aAAa;EACb,sBAAsB,EAAE;EACxB;IACE,mDAAmD,EAAE;EACvD;IACE,qDAAqD,EAAE;;AAE3D;EACE,iBAAiB;EACjB,eAAe,EAAE;EACjB;IACE,gBAAgB,EAAE;EACpB;IACE,WAAW,EAAE;IACb;MACE,kDAAkD,EAAE;IACtD;MACE,gDAAgD,EAAE;EACtD;IACE,WAAW,EAAE;;AAEjB;EACE,mBAAmB,EAAE;;AAEvB;EACE,oBAAoB;EACpB,gBAAgB,EAAE;EAClB;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,sCAAsC,EAAE;EAC1C;IACE,oCAAoC,EAAE;;AA1G1C;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,MAAM;EACN,OAAO;EACP,eAAe,EAAE;EACjB;IACE,qDAAqD,EAAE;EACzD;IACE,qDAAqD,EAAE;;AAE3D;EACE,YAAY;EACZ,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,8BAA8B,EAAE;EAChC;IACE,yDAAyD,EAAE;EAC7D;IACE,uDAAuD,EAAE;EAC3D;IACE,2BAA2B;IAC3B,aAAa;IACb,OAAO,EAAE;EACX;IACE,aAAa;IACb,YAAY;IACZ,yBAAyB,EAAE;EAC7B;;;IAGE,WAAW;IACX,aAAa;IACb,sBAAsB;IACtB,eAAe,EAAE;IACjB;;;MAGE,sCAAsC,EAAE;IAC1C;;;MAGE,oCAAoC,EAAE;EAC1C;IACE,uDAAuD,EAAE;EAC3D;IACE,qDAAqD,EAAE;;AAE3D;EACE,iBAAiB,EAAE;;AAErB;EACE,QAAQ;EACR,aAAa;EACb,mBAAmB,EAAE;;AAEvB;EACE,gBAAgB;EAChB,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,qBAAqB;EACrB,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB;EAChB,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,qBAAqB;EACrB,gBAAgB;EAChB,gBAAgB,EAAE;;AAEpB;EACE,yBAAyB;EACzB,eAAe;EACf,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,uBAAuB,EAAE;EACzB;IACE,eAAe;IACf,gBAAgB,EAAE;EACpB;IACE,cAAc;IACd,eAAe,EAAE;EACnB;IACE,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,uBAAuB;IACvB,mBAAmB,EAAE;;AA7FzB;EACE,kBAAkB;EAClB,gBAAgB,EAAE;EAClB;IACE,iBAAiB,EAAE;EACrB;IACE,gBAAgB,EAAE;;AAEtB;EACE,kBAAkB;EAClB,UAAU;EACV,qBAAqB;EACrB,iBAAiB;EACjB,kBAAkB;EAClB,sBAAsB,EAAE;EACxB;IACE,kBAAkB;IAClB,aAAa;IACb,mBAAmB,EAAE;EACvB;IACE,mDAAmD,EAAE;EACvD;IACE,kDAAkD,EAAE;EACtD;IACE,cAAc,EAAE;EAClB;IACE,kBAAkB;IAClB,WAAW,EAAE;IACb;MACE,aAAa;MACb,kBAAkB;MAClB,QAAQ;MACR,UAAU,EAAE;IACd;MACE,kBAAkB;MAClB,iBAAiB;MACjB,UAAU;MACV,WAAW,EAAE;EACjB;IACE,aAAa;IACb,sBAAsB,EAAE;IACxB;MACE,sBAAsB;MACtB,gBAAgB;MAChB,mBAAmB;MACnB,iBAAiB;MACjB,YAAY;MACZ,YAAY,EAAE;MACd;QACE,mDAAmD,EAAE;MACvD;QACE,kDAAkD,EAAE;;AAE5D;EACE,kBAAkB;EAClB,SAAS;EACT,aAAa;EACb,mBAAmB;EACnB,gBAAgB,EAAE;EAClB;IACE,kBAAkB;IAClB,aAAa;IACb,mBAAmB,EAAE;EACvB;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,WAAW,EAAE;IACb;MACE,kBAAkB;MAClB,WAAW,EAAE;EACjB;IACE,YAAY;IACZ,aAAa;IACb,sBAAsB,EAAE;IACxB;MACE,iBAAiB;MACjB,kBAAkB,EAAE;IACtB;MACE,YAAY;MACZ,YAAY;MACZ,mBAAmB;MACnB,gBAAgB;MAChB,iBAAiB;MACjB,sBAAsB,EAAE;MACxB;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;EAC7D;IACE,kBAAkB;IAClB,WAAW,EAAE;IACb;MACE,kBAAkB;MAClB,SAAS;MACT,WAAW,EAAE;;AAhGnB;EACE,uCAAuC,EAAE;;AAE3C;EACE,qCAAqC,EAAE;;AAEzC;EACE,uCAAuC,EAAE;;AAE3C;EACE,qCAAqC,EAAE;;AAEzC;EACE,aAAa,EAAE;;AAEjB;EACE,eAAe,EAAE;;AAhBnB;EACE,kBAAkB,EAAE;EACpB;IACE,iBAAiB;IACjB,gBAAgB,EAAE;EACpB;IACE,gBAAgB,EAAE;;AAEtB;EACE,kBAAkB;EAClB,UAAU;EACV,qBAAqB;EACrB,sBAAsB;EACtB,iBAAiB,EAAE;EACnB;IACE,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;IAChB,qBAAqB;IACrB,YAAY,EAAE;EAChB;IACE,kBAAkB;IAClB,aAAa;IACb,mBAAmB,EAAE;EACvB;IACE,mDAAmD,EAAE;EACvD;IACE,kDAAkD,EAAE;EACtD;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,cAAc,EAAE;EAClB;IACE,kBAAkB;IAClB,WAAW,EAAE;IACb;MACE,aAAa;MACb,kBAAkB;MAClB,QAAQ;MACR,UAAU,EAAE;MACZ;QACE,yBAAyB,EAAE;IAC/B;MACE,kBAAkB;MAClB,UAAU;MACV,WAAW;MACX,iBAAiB,EAAE;EACvB;IACE,sBAAsB;IACtB,YAAY;IACZ,iBAAiB;IACjB,gCAAgC;IAChC,qBAAqB;IACrB,gBAAgB,EAAE;IAClB;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;EACxD;IACE,8BAA8B,EAAE;EAClC;IACE,YAAY;IACZ,sBAAsB,EAAE;IACxB;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;IACzD;MACE,YAAY;MACZ,aAAa;MACb,aAAa;MACb,uBAAuB;MACvB,mBAAmB,EAAE;IACvB;MACE,eAAe,EAAE;IACnB;MACE,aAAa,EAAE;EACnB;IACE,8BAA8B,EAAE;EAClC;IACE,2BAA2B;IAC3B,gCAAgC;IAChC,gBAAgB;IAChB,sBAAsB;IACtB,YAAY,EAAE;IACd;MACE,sDAAsD,EAAE;IAC1D;MACE,qDAAqD,EAAE;IACzD;MACE,iBAAiB;MACjB,kBAAkB;MAClB,kBAAkB,EAAE;IACtB;MACE,kBAAkB;MAClB,mBAAmB;MACnB,uBAAuB;MACvB,gBAAgB,EAAE;IACpB;MACE,mBAAmB;MACnB,uBAAuB;MACvB,gBAAgB,EAAE;IACpB;MACE,aAAa,EAAE;IACjB;MACE,6BAA6B;MAC7B,YAAY,EAAE;MACd;QACE,sDAAsD,EAAE;MAC1D;QACE,qDAAqD,EAAE;MACzD;QACE,eAAe,EAAE;MACnB;QACE,aAAa,EAAE;IACnB;MACE,eAAe,EAAE;IACnB;MACE,aAAa,EAAE;;AAErB;EACE,eAAe;EACf,eAAe,EAAE;;AAEnB;EACE,kBAAkB;EAClB,SAAS;EACT,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,kBAAkB,EAAE;EACpB;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,cAAc,EAAE;EAClB;IACE,kBAAkB;IAClB,aAAa;IACb,mBAAmB,EAAE;IACrB;MACE,kBAAkB,EAAE;MACpB;QACE,kBAAkB;QAClB,WAAW;QACX,WAAW;QACX,eAAe,EAAE;MACnB;QACE,iBAAiB,EAAE;MACrB;QACE,sBAAsB;QACtB,gBAAgB;QAChB,iBAAiB;QACjB,gCAAgC;QAChC,qBAAqB;QACrB,gBAAgB,EAAE;QAClB;UACE,sDAAsD,EAAE;QAC1D;UACE,qDAAqD,EAAE;MAC3D;QACE,8BAA8B,EAAE;MAClC;QACE,sBAAsB;QACtB,YAAY,EAAE;QACd;UACE,sDAAsD,EAAE;QAC1D;UACE,qDAAqD,EAAE;QACzD;UACE,YAAY;UACZ,aAAa;UACb,aAAa;UACb,uBAAuB;UACvB,mBAAmB,EAAE;QACvB;UACE,eAAe,EAAE;QACnB;UACE,aAAa,EAAE;MACnB;QACE,8BAA8B,EAAE;MAClC;QACE,2BAA2B;QAC3B,gCAAgC;QAChC,gBAAgB;QAChB,sBAAsB;QACtB,YAAY,EAAE;QACd;UACE,sDAAsD,EAAE;QAC1D;UACE,qDAAqD,EAAE;QACzD;UACE,iBAAiB;UACjB,kBAAkB;UAClB,kBAAkB,EAAE;QACtB;UACE,kBAAkB;UAClB,mBAAmB;UACnB,uBAAuB;UACvB,gBAAgB,EAAE;QACpB;UACE,mBAAmB;UACnB,uBAAuB;UACvB,gBAAgB;UAChB,qBAAqB;UACrB,YAAY,EAAE;QAChB;UACE,aAAa,EAAE;QACjB;UACE,6BAA6B,EAAE;UAC/B;YACE,sDAAsD,EAAE;UAC1D;YACE,qDAAqD,EAAE;UACzD;YACE,eAAe,EAAE;UACnB;YACE,aAAa,EAAE;IACvB;MACE,kBAAkB;MAClB,WAAW,EAAE;MACb;QACE,kBAAkB;QAClB,WAAW;QACX,SAAS,EAAE;MACb;QACE,kBAAkB;QAClB,SAAS;QACT,SAAS;QACT,aAAa,EAAE;;AKpPvB;EACE,eAAe;EACf,iBAAiB;EACjB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB,EAAE;EACzB;IACE,mDAAmD,EAAE;EACvD;IACE,kDAAkD,EAAE;EACtD;IACE,eAAe,EAAE;IACjB;MACE,mDAAmD,EAAE;IACvD;MACE,kDAAkD,EAAE;EACxD;IACE,uDAAuD,EAAE;EAC3D;IACE,sDAAsD,EAAE;EAC1D;IACE,uCAAuC,EAAE;EAC3C;IACE,sCAAsC,EAAE;EAC1C;IACE,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,iBAAiB,EAAE;;ALhCvB;EACE,aAAa;EACb,mBAAmB;EACnB,gBAAgB,EAAE;;AAHpB;EACE,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,mBAAmB;EACnB,YAAY;EACZ,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB,EAAE;EACzB;IACE,yDAAyD;IACzD,qDAAqD,EAAE;EACzD;IACE,uDAAuD;IACvD,qDAAqD,EAAE;EACzD;IACE,kBAAkB,EAAE;EACtB;IACE,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,mBAAmB,EAAE;EACvB;IACE,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,gBAAgB,EAAE;EACpB;IACE,gBAAgB;IAChB,gBAAgB;IAChB,uBAAuB,EAAE;EAC3B;IACE,iBAAiB;IACjB,UAAU;IACV,WAAW;IACX,kBAAkB,EAAE;IACpB;MACE,qDAAqD,EAAE;IACzD;MACE,oDAAoD,EAAE;EAC1D;IACE,kBAAkB,EAAE;EACtB;IACE,yBAAyB,EAAE;;AAhD/B;EACE,YAAY;EACZ,YAAY;EACZ,qBAAqB,EAAE;EACvB;IACE,qDAAqD;IACrD,kDAAkD,EAAE;EACtD;IACE,qDAAqD;IACrD,gDAAgD,EAAE;EACpD;IACE,eAAe;IACf,kBAAkB;IAClB,SAAS;IACT,WAAW,EAAE;IACb;MACE,sCAAsC,EAAE;IAC1C;MACE,oCAAoC,EAAE;EAC1C;IACE,gBAAgB,EAAE;EACpB;IACE,YAAY;IACZ,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,sBAAsB,EAAE;IACxB;MACE,yDAAyD,EAAE;IAC7D;MACE,uDAAuD,EAAE;EAC7D;IACE,aAAa;IACb,YAAY;IACZ,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB,EAAE;EACpB;IACE,eAAe;IACf,kBAAkB;IAClB,4BAA4B,EAAE;IAC9B;MACE,qDAAqD;MACrD,yDAAyD,EAAE;IAC7D;MACE,qDAAqD;MACrD,uDAAuD,EAAE;IAC3D;MACE,aAAa,EAAE;IACjB;MACE,mBAAmB,EAAE;EACzB;;IAEE,kBAAkB;IAClB,SAAS,EAAE;EACb;IACE,UAAU,EAAE;EACd;IACE,WAAW,EAAE;EACf;IACE,wBAAwB,EAAE;EAC5B;IACE,sCAAsC,EAAE;EAC1C;IACE,oCAAoC,EAAE;EACxC;IACE,qCAAqC,EAAE;EACzC;IACE,oCAAoC,EAAE;;AMpE1C;EACE,kBAAkB;EAClB,kBAAkB;EAClB,4BAA4B,EAAE;EAC9B;IACE,yDAAyD;IACzD,qDAAqD,EAAE;EACzD;IACE,uDAAuD;IACvD,qDAAqD,EAAE;EACzD;IACE,YAAY,EAAE;EAChB;IACE,mBAAmB;IACnB,kBAAkB,EAAE;EACtB;IACE,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;IAClB,uBAAuB;IACvB,YAAY,EAAE;EAChB;IACE,kBAAkB;IAClB,SAAS;IACT,WAAW,EAAE;;AAEjB;EACE,kBAAkB,EAAE;;AAEtB;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU,EAAE;;AAEd;EACE,gBAAgB,EAAE;;AAEpB;EACE,gBAAgB,EAAE;EAClB;IACE,YAAY,EAAE;;ACxClB;EACE,2BAA2B;EAC3B,kBAAkB;EAClB,sBAAsB,EAAE;EACxB;IACE,yDAAyD;IACzD,qDAAqD,EAAE;EACzD;IACE,uDAAuD;IACvD,qDAAqD,EAAE;EACzD;IACE,kBAAkB;IAClB,2BAA2B;IAC3B,YAAY;IACZ,sBAAsB,EAAE;IACxB;MACE,gBAAgB;MAChB,mBAAmB;MACnB,gBAAgB;MAChB,uBAAuB,EAAE;EAC7B;IACE,kBAAkB;IAClB,OAAO;IACP,SAAS;IACT,eAAe,EAAE;EACnB;IACE,aAAa;IACb,2BAA2B;IAC3B,eAAe,EAAE;IACjB;MACE,kBAAkB,EAAE;;AAE1B;EACE,iBAAiB;EACjB,gBAAgB,EAAE;;APlCpB;EACE,kBAAkB;EAClB,UAAU,EAAE;;AAEd;EACE,kBAAkB,EAAE;;AAEtB;EACE,kBAAkB;EAClB,gBAAgB;EAChB,kBAAkB;EAClB,cAAc,EAAE;;AAElB;EACE,iBAAiB;EACjB,aAAa;EACb,qBAAqB;EACrB,kBAAkB,EAAE;EACpB;IACE,gBAAgB,EAAE;;AAEtB;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4BAA4B,EAAE;EAC9B;IACE,qDAAqD;IACrD,yDAAyD,EAAE;EAC7D;IACE,qDAAqD;IACrD,uDAAuD,EAAE;;AAE7D;EACE,kBAAkB;EAClB,WAAW;EACX,SAAS,EAAE;EACX;IACE,eAAe,EAAE;;AAErB;;EAEE,kBAAkB;EAClB,WAAW;EACX,SAAS,EAAE;EACX;;IAEE,sDAAsD,EAAE;EAC1D;;IAEE,qDAAqD,EAAE;EACzD;;IAEE,uCAAuC,EAAE;EAC3C;;IAEE,qCAAqC,EAAE;;AAvD3C;EACE,yBAAyB;EACzB,kBAAkB;EAClB,sBAAsB,EAAE;EACxB;IACE,yDAAyD;IACzD,qDAAqD,EAAE;EACzD;IACE,uDAAuD;IACvD,qDAAqD,EAAE;EACzD;IACE,kBAAkB;IAClB,2BAA2B;IAC3B,YAAY;IACZ,sBAAsB,EAAE;EAC1B;IACE,aAAa;IACb,2BAA2B;IAC3B,eAAe,EAAE;;AAErB;EACE,eAAe;EACf,kBAAkB;EAClB,4BAA4B,EAAE;EAC9B;IACE,qDAAqD;IACrD,yDAAyD,EAAE;EAC7D;IACE,qDAAqD;IACrD,uDAAuD,EAAE;EAC3D;IACE,aAAa,EAAE;EACjB;IACE,mBAAmB,EAAE;;AAEzB;;EAEE,kBAAkB;EAClB,SAAS,EAAE;;AAEb;EACE,UAAU,EAAE;;AAEd;EACE,WAAW,EAAE;;AAEf;EACE,wBAAwB,EAAE;;AAE5B;EACE,sCAAsC,EAAE;;AAE1C;EACE,oCAAoC,EAAE;;AAExC;EACE,qCAAqC,EAAE;;AAEzC;EACE,oCAAoC,EAAE;;AQ3DxC;EACE,cAAc;EACd,kBAAkB;EAClB,sBAAsB;EACtB,YAAY,EAAE;EACd;IACE,eAAe;IACf,kBAAkB;IAClB,SAAS;IACT,UAAU,EAAE;EACd;IACE,kBAAkB;IAClB,SAAS;IACT,UAAU;IACV,UAAU;IACV,oBAAoB,EAAE;EACxB;IACE,kBAAkB;IAClB,SAAS;IACT,UAAU;IACV,YAAY;IACZ,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB,EAAE;EAC3B;IACE,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB,EAAE;EAC3B;IACE,kBAAkB;IAClB,SAAS;IACT,WAAW,EAAE;EACf;IACE,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,QAAQ,EAAE;EACZ;IACE,kBAAkB;IAClB,WAAW;IACX,SAAS,EAAE;EACb;IACE,sDAAsD,EAAE;EAC1D;IACE,qDAAqD,EAAE;EACzD;IACE,cAAc,EAAE;EAClB;IACE,aAAa,EAAE;EACjB;IACE,mDAAmD,EAAE;EACvD;IACE,qDAAqD,EAAE;;ARxD3D;EACE,WAAW;EACX,YAAY;EACZ,aAAa,EAAE;EACf;IACE,OAAO;IACP,kBAAkB,EAAE;EACtB;IACE,gBAAgB,EAAE;EACpB;IACE,mDAAmD,EAAE;EACvD;IACE,qDAAqD,EAAE;EACzD;IACE,iBAAiB,EAAE;IACnB;MACE,YAAY,EAAE","file":"index.css","sourcesContent":[".sendbird-app__wrap {\n width: 100%;\n height: 100%;\n display: flex; }\n .sendbird-app__wrap .sendbird-app__conversation-wrap {\n flex: 1;\n position: relative; }\n .sendbird-app__wrap .sendbird-app__channellist-wrap {\n max-width: 320px; }\n .sendbird-theme--light .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info {\n background-color: var(--sendbird-light-primary-100); }\n .sendbird-theme--dark .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info {\n background-color: var(--sendbird-dark-background-700); }\n .sendbird-app__wrap .sendbird-channel-settings {\n border-left: none; }\n .sendbird-app__wrap .sendbird-channel-settings .sendbird-channel-settings__header {\n height: 65px; }\n",".sendbird-theme--light .sendbird-color--onbackground-1 {\n color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1 {\n color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2 {\n color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2 {\n color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3 {\n color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3 {\n color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4 {\n color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4 {\n color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1 {\n color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1 {\n color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--primary {\n color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary {\n color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--primary--background-color {\n background-color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary--background-color {\n background-color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--error {\n color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error {\n color: var(--sendbird-dark-error-300); }\n\n.sendbird-theme--light .sendbird-color--error--background-color {\n background-color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error--background-color {\n background-color: var(--sendbird-dark-error-300); }\n",".sendbird-add-channel__rectangle-wrap {\n margin-top: 26px; }\n\n.sendbird-add-channel__rectangle-footer {\n text-align: right;\n margin-top: 32px; }\n\n.sendbird-add-channel__rectangle {\n width: 432px;\n height: 72px;\n border-radius: 4px;\n margin-bottom: 8px;\n padding: 25px 72px;\n position: relative;\n box-sizing: border-box;\n cursor: pointer; }\n .sendbird-theme--light .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-light-onlight-04); }\n .sendbird-theme--dark .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-dark-ondark-04); }\n .sendbird-add-channel__rectangle .sendbird-icon {\n position: absolute;\n left: 22px;\n top: 24px; }\n",".sendbird-muted-avatar {\n border-radius: 50%;\n display: inline-block; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon {\n position: relative; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon {\n position: absolute;\n top: 4px;\n left: 4px; }\n .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n opacity: .5;\n position: absolute;\n border-radius: 50%;\n top: 0;\n left: 0; }\n .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-dark-primary-300); }\n",".sendbird-conversation__messages .sendbird-conversation__messages-padding {\n padding-left: 24px;\n padding-right: 24px; }\n\n.sendbird-conversation__messages .sendbird-separator,\n.sendbird-conversation__messages .sendbird-admin-message {\n padding-top: 8px;\n padding-bottom: 8px; }\n",".sendbird-notification {\n margin-top: 8px;\n margin-left: 24px;\n margin-right: 24px;\n border-radius: 4px;\n padding: 0px 2px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center; }\n .sendbird-theme--light .sendbird-notification {\n background-color: var(--sendbird-light-primary-300); }\n .sendbird-theme--dark .sendbird-notification {\n background-color: var(--sendbird-dark-primary-200); }\n .sendbird-notification:hover {\n cursor: pointer; }\n .sendbird-theme--light .sendbird-notification:hover {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-notification:hover {\n background-color: var(--sendbird-dark-primary-300); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-dark-information-100); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-light-onlight-01); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-dark-onlight-01); }\n .sendbird-notification .sendbird-notification__text {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 8px; }\n",".sendbird-channel-profile {\n position: relative;\n text-align: center;\n padding: 32px 40px 27px 40px; }\n .sendbird-theme--light .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-channel-profile .sendbird-channel-profile--inner {\n height: 92px; }\n .sendbird-channel-profile .sendbird-channel-profile__avatar {\n margin-bottom: 16px;\n text-align: center; }\n .sendbird-channel-profile .sendbird-channel-profile__title {\n max-width: 240px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 18px; }\n .sendbird-channel-profile .sendbird-channel-profile__edit {\n position: absolute;\n top: 10px;\n right: 16px; }\n\n.channel-profile-form .channel-profile-form__img-section {\n position: relative; }\n\n.channel-profile-form .channel-profile-form__avatar-button {\n position: absolute;\n top: 54px;\n left: 96px; }\n\n.channel-profile-form .channel-profile-form__avatar {\n margin-top: 16px; }\n\n.channel-profile-form .channel-profile-form__name-section {\n margin-top: 12px; }\n .channel-profile-form .channel-profile-form__name-section .sendbird-input {\n height: 40px; }\n",".sendbird-members-accordion {\n padding: 8px 16px 16px 16px;\n position: relative;\n box-sizing: border-box; }\n .sendbird-theme--light .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-members-accordion .sendbird-members-accordion__member {\n position: relative;\n padding: 12px 0px 12px 44px;\n height: 40px;\n box-sizing: border-box; }\n .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label {\n max-width: 240px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-members-accordion .sendbird-members-accordion__member-avatar {\n position: absolute;\n left: 0;\n top: 10px;\n cursor: pointer; }\n .sendbird-members-accordion .sendbird-members-accordion__footer {\n display: flex;\n justify-content: flex-start;\n margin-top: 8px; }\n .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members {\n margin-right: 16px; }\n\n.sendbird-more-members__popup-scroll {\n max-height: 420px;\n overflow-y: auto; }\n",".sendbird-user-list-item--small {\n display: block;\n position: relative;\n box-sizing: border-box;\n height: 40px; }\n .sendbird-user-list-item--small__avatar {\n cursor: pointer;\n position: absolute;\n top: 10px;\n left: 12px; }\n .sendbird-user-list-item--small .sendbird-muted-avatar {\n position: absolute;\n top: 10px;\n left: 12px;\n z-index: 2;\n pointer-events: none; }\n .sendbird-user-list-item--small__title {\n position: absolute;\n top: 10px;\n left: 54px;\n width: 160px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__subtitle {\n position: absolute;\n top: 23px;\n left: 140px;\n max-width: 237px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__checkbox {\n position: absolute;\n top: 16px;\n right: 16px; }\n .sendbird-user-list-item--small__action {\n display: none;\n position: absolute;\n right: 10px;\n top: 4px; }\n .sendbird-user-list-item--small__operator {\n position: absolute;\n right: 24px;\n top: 10px; }\n .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-light-background-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-dark-background-500); }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action {\n display: block; }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator {\n display: none; }\n .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-light-primary-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-dark-background-700); }\n"]} \ No newline at end of file +{"version":3,"sources":["index.scss","frozen-notification.scss","openchannel-conversation-scroll.scss","channel-profile.scss","muted-avatar-overlay.scss","user-list-item.scss","notification.scss","members-accordion.scss","add-channel.scss","conversation-scroll.scss","color.scss"],"names":[],"mappings":"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","file":"../index.css","sourcesContent":["@import url(\"https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap\");\n:root {\n --sendbird-light-primary-500: #4d2aa6;\n --sendbird-light-primary-400: #6440C4;\n --sendbird-light-primary-300: #7B53EF;\n --sendbird-light-primary-200: #9E8CF5;\n --sendbird-light-primary-100: #E2DFFF;\n --sendbird-light-secondary-500: #007A7A;\n --sendbird-light-secondary-400: #189A8D;\n --sendbird-light-secondary-300: #2EBA9F;\n --sendbird-light-secondary-200: #6FD6BE;\n --sendbird-light-secondary-100: #AEF2DC;\n --sendbird-light-information-100: #b2d9ff;\n --sendbird-light-error-500: #A30E2D;\n --sendbird-light-error-400: #C11F41;\n --sendbird-light-error-300: #E53157;\n --sendbird-light-error-200: #FF6183;\n --sendbird-light-error-100: #FFABBD;\n --sendbird-light-background-700: #000000;\n --sendbird-light-background-600: #161616;\n --sendbird-light-background-500: #2C2C2C;\n --sendbird-light-background-400: #393939;\n --sendbird-light-background-300: #A8A8A8;\n --sendbird-light-background-200: #D9D9D9;\n --sendbird-light-background-100: #F0F0F0;\n --sendbird-light-background-50: #FFFFFF;\n --sendbird-light-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --sendbird-light-theme-surface-2: #EAEAEA; }\n\n:root {\n --sendbird-dark-primary-500: #4d2aa6;\n --sendbird-dark-primary-400: #6440C4;\n --sendbird-dark-primary-300: #7B53EF;\n --sendbird-dark-primary-200: #9E8CF5;\n --sendbird-dark-primary-100: #E2DFFF;\n --sendbird-dark-secondary-500: #007A7A;\n --sendbird-dark-secondary-400: #189A8D;\n --sendbird-dark-secondary-300: #2EBA9F;\n --sendbird-dark-secondary-200: #6FD6BE;\n --sendbird-dark-secondary-100: #AEF2DC;\n --sendbird-dark-information-100: #b2d9ff;\n --sendbird-dark-error-500: #A30E2D;\n --sendbird-dark-error-400: #C11F41;\n --sendbird-dark-error-300: #E53157;\n --sendbird-dark-error-200: #FF6183;\n --sendbird-dark-error-100: #FFABBD;\n --sendbird-dark-background-700: #000000;\n --sendbird-dark-background-600: #161616;\n --sendbird-dark-background-500: #2C2C2C;\n --sendbird-dark-background-400: #393939;\n --sendbird-dark-background-300: #A8A8A8;\n --sendbird-dark-background-200: #D9D9D9;\n --sendbird-dark-background-100: #F0F0F0;\n --sendbird-dark-background-50: #FFFFFF;\n --sendbird-dark-overlay: rgba(0, 0, 0, 0.32);\n --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88);\n --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50);\n --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38);\n --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12);\n --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88);\n --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50);\n --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38);\n --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12);\n --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12);\n --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }\n\n:root {\n --sendbird-iconbutton-color: #825eeb;\n --sendbird-message-input-border-active: #7B53EF;\n --sendbird-selected-reaction-button-border-hover: #9E8CF5;\n --sendbird-add-reaction-button-border-hover: #9E8CF5;\n --sendbird-tooltip-background: #000000;\n --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88);\n --sendbird-button-border-focus: #FFFFFF;\n --sendbird-file-message-icon-background: #FFFFFF;\n --sendbird-font-family-default: 'Open Sans', sans-serif;\n --sendbird-message-balloon-width: 404px; }\n",".sendbird-frozen-channel-notification {\n position: relative;\n margin-top: 8px;\n margin-right: 24px;\n margin-left: 24px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px; }\n .sendbird-theme--light .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-frozen-channel-notification {\n background-color: var(--sendbird-dark-information-100); }\n",".sendbird-openchannel-conversation-scroll {\n position: relative;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container {\n position: absolute;\n width: 100%; }\n .sendbird-openchannel-conversation-scroll .sendbird-openchannel-conversation-scroll__container .sendbird-openchannel-conversation-scroll__container__padding {\n height: 8px; }\n",".sendbird-channel-profile {\n position: relative;\n text-align: center;\n padding: 32px 40px 27px 40px; }\n .sendbird-theme--light .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-channel-profile .sendbird-channel-profile--inner {\n height: 92px; }\n .sendbird-channel-profile .sendbird-channel-profile__avatar {\n margin-bottom: 16px;\n text-align: center; }\n .sendbird-channel-profile .sendbird-channel-profile__title {\n max-width: 240px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 18px; }\n .sendbird-channel-profile .sendbird-channel-profile__edit {\n position: absolute;\n top: 10px;\n right: 16px; }\n\n.channel-profile-form .channel-profile-form__img-section {\n position: relative; }\n\n.channel-profile-form .channel-profile-form__avatar-button {\n position: absolute;\n top: 54px;\n left: 96px; }\n\n.channel-profile-form .channel-profile-form__avatar {\n margin-top: 16px; }\n\n.channel-profile-form .channel-profile-form__name-section {\n margin-top: 12px; }\n .channel-profile-form .channel-profile-form__name-section .sendbird-input {\n height: 40px; }\n",".sendbird-muted-avatar {\n border-radius: 50%;\n display: inline-block; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon {\n position: relative; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon {\n position: absolute;\n top: 4px;\n left: 4px; }\n .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n opacity: .5;\n position: absolute;\n border-radius: 50%;\n top: 0;\n left: 0; }\n .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-dark-primary-300); }\n",".sendbird-user-list-item--small {\n display: block;\n position: relative;\n box-sizing: border-box;\n height: 40px; }\n .sendbird-user-list-item--small__avatar {\n cursor: pointer;\n position: absolute;\n top: 10px;\n left: 12px; }\n .sendbird-user-list-item--small .sendbird-muted-avatar {\n position: absolute;\n top: 10px;\n left: 12px;\n z-index: 2;\n pointer-events: none; }\n .sendbird-user-list-item--small__title {\n position: absolute;\n top: 10px;\n left: 54px;\n width: 160px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__subtitle {\n position: absolute;\n top: 23px;\n left: 140px;\n max-width: 237px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__checkbox {\n position: absolute;\n top: 16px;\n right: 16px; }\n .sendbird-user-list-item--small__action {\n display: none;\n position: absolute;\n right: 10px;\n top: 4px; }\n .sendbird-user-list-item--small__operator {\n position: absolute;\n right: 24px;\n top: 10px; }\n .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-light-background-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-dark-background-500); }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action {\n display: block; }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator {\n display: none; }\n .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-light-primary-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-dark-background-700); }\n",".sendbird-notification {\n margin-top: 8px;\n margin-left: 24px;\n margin-right: 24px;\n border-radius: 4px;\n padding: 0px 2px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center; }\n .sendbird-theme--light .sendbird-notification {\n background-color: var(--sendbird-light-primary-300); }\n .sendbird-theme--dark .sendbird-notification {\n background-color: var(--sendbird-dark-primary-200); }\n .sendbird-notification:hover {\n cursor: pointer; }\n .sendbird-theme--light .sendbird-notification:hover {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-notification:hover {\n background-color: var(--sendbird-dark-primary-300); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-dark-information-100); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-light-onlight-01); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-dark-onlight-01); }\n .sendbird-notification .sendbird-notification__text {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 8px; }\n",".sendbird-members-accordion {\n padding: 8px 16px 16px 16px;\n position: relative;\n box-sizing: border-box; }\n .sendbird-theme--light .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-members-accordion .sendbird-members-accordion__member {\n position: relative;\n padding: 12px 0px 12px 44px;\n height: 40px;\n box-sizing: border-box; }\n .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label {\n max-width: 240px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-members-accordion .sendbird-members-accordion__member-avatar {\n position: absolute;\n left: 0;\n top: 10px;\n cursor: pointer; }\n .sendbird-members-accordion .sendbird-members-accordion__footer {\n display: flex;\n justify-content: flex-start;\n margin-top: 8px; }\n .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members {\n margin-right: 16px; }\n\n.sendbird-more-members__popup-scroll {\n max-height: 420px;\n overflow-y: auto; }\n",".sendbird-add-channel__rectangle-wrap {\n margin-top: 26px; }\n\n.sendbird-add-channel__rectangle-footer {\n text-align: right;\n margin-top: 32px; }\n\n.sendbird-add-channel__rectangle {\n width: 432px;\n height: 72px;\n border-radius: 4px;\n margin-bottom: 8px;\n padding: 25px 72px;\n position: relative;\n box-sizing: border-box;\n cursor: pointer; }\n .sendbird-theme--light .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-light-onlight-04); }\n .sendbird-theme--dark .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-dark-ondark-04); }\n .sendbird-add-channel__rectangle .sendbird-icon {\n position: absolute;\n left: 22px;\n top: 24px; }\n",".sendbird-conversation__messages .sendbird-conversation__messages-padding {\n padding-left: 24px;\n padding-right: 24px; }\n\n.sendbird-conversation__messages .sendbird-separator,\n.sendbird-conversation__messages .sendbird-admin-message {\n padding-top: 8px;\n padding-bottom: 8px; }\n",".sendbird-theme--light .sendbird-color--onbackground-1 {\n color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1 {\n color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2 {\n color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2 {\n color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3 {\n color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3 {\n color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4 {\n color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4 {\n color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1 {\n color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1 {\n color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--primary {\n color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary {\n color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--primary--background-color {\n background-color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary--background-color {\n background-color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--error {\n color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error {\n color: var(--sendbird-dark-error-300); }\n\n.sendbird-theme--light .sendbird-color--error--background-color {\n background-color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error--background-color {\n background-color: var(--sendbird-dark-error-300); }\n"]} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index 05cbc1c..2572348 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -89,6 +89,7 @@ export interface OpenChannelProps { messageListParams?: Sendbird.MessageListParams, }; disableUserProfile?: boolean; + renderCustomMessage?: RenderCustomMessage; renderUserProfile?(): JSX.Element; renderChannelTitle?(renderProps: RenderOpenChannelTitleProps): JSX.Element; renderMessageInput?(renderProps: RenderMessageInputProps): JSX.Element; @@ -285,6 +286,7 @@ interface ChannelProps { onBeforeSendFileMessage?(file: File): Sendbird.FileMessageParams; onBeforeUpdateUserMessage?(text: string): Sendbird.UserMessageParams; onChatHeaderActionClick?(event: React.MouseEvent): void; + renderCustomMessage?: RenderCustomMessage; renderChatItem?: (props: RenderChatItemProps) => React.ReactNode; renderMessageInput?: (props: RenderMessageInputProps) => React.ReactNode; renderChatHeader?: (props: RenderChatHeaderProps) => React.ReactNode; @@ -347,3 +349,10 @@ interface ClientMessage { localUrl?: string; _sender: Sendbird.User; } + +type RenderCustomMessage = ( + message: EveryMessage, + channel: Sendbird.OpenChannel | Sendbird.GroupChannel, +) => RenderCustomMessageProps; + +type RenderCustomMessageProps = ({ message: EveryMessage }) => React.ReactElement; diff --git a/dist/index.es.css b/dist/index.es.css deleted file mode 100644 index cd930e3..0000000 --- a/dist/index.es.css +++ /dev/null @@ -1,3115 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap"); -:root { - --sendbird-light-primary-500: #4d2aa6; - --sendbird-light-primary-400: #6440C4; - --sendbird-light-primary-300: #7B53EF; - --sendbird-light-primary-200: #9E8CF5; - --sendbird-light-primary-100: #E2DFFF; - --sendbird-light-secondary-500: #007A7A; - --sendbird-light-secondary-400: #189A8D; - --sendbird-light-secondary-300: #2EBA9F; - --sendbird-light-secondary-200: #6FD6BE; - --sendbird-light-secondary-100: #AEF2DC; - --sendbird-light-information-100: #b2d9ff; - --sendbird-light-error-500: #A30E2D; - --sendbird-light-error-400: #C11F41; - --sendbird-light-error-300: #E53157; - --sendbird-light-error-200: #FF6183; - --sendbird-light-error-100: #FFABBD; - --sendbird-light-background-700: #000000; - --sendbird-light-background-600: #161616; - --sendbird-light-background-500: #2C2C2C; - --sendbird-light-background-400: #393939; - --sendbird-light-background-300: #A8A8A8; - --sendbird-light-background-200: #D9D9D9; - --sendbird-light-background-100: #F0F0F0; - --sendbird-light-background-50: #FFFFFF; - --sendbird-light-overlay: rgba(0, 0, 0, 0.32); - --sendbird-light-onlight-01: rgba(0, 0, 0, 0.88); - --sendbird-light-onlight-02: rgba(0, 0, 0, 0.50); - --sendbird-light-onlight-03: rgba(0, 0, 0, 0.38); - --sendbird-light-onlight-04: rgba(0, 0, 0, 0.12); - --sendbird-light-ondark-01: rgba(255, 255, 255, 0.88); - --sendbird-light-ondark-02: rgba(255, 255, 255, 0.50); - --sendbird-light-ondark-03: rgba(255, 255, 255, 0.38); - --sendbird-light-ondark-04: rgba(255, 255, 255, 0.12); - --sendbird-light-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); - --sendbird-light-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - --sendbird-light-theme-surface-2: #EAEAEA; } - -:root { - --sendbird-dark-primary-500: #4d2aa6; - --sendbird-dark-primary-400: #6440C4; - --sendbird-dark-primary-300: #7B53EF; - --sendbird-dark-primary-200: #9E8CF5; - --sendbird-dark-primary-100: #E2DFFF; - --sendbird-dark-secondary-500: #007A7A; - --sendbird-dark-secondary-400: #189A8D; - --sendbird-dark-secondary-300: #2EBA9F; - --sendbird-dark-secondary-200: #6FD6BE; - --sendbird-dark-secondary-100: #AEF2DC; - --sendbird-dark-information-100: #b2d9ff; - --sendbird-dark-error-500: #A30E2D; - --sendbird-dark-error-400: #C11F41; - --sendbird-dark-error-300: #E53157; - --sendbird-dark-error-200: #FF6183; - --sendbird-dark-error-100: #FFABBD; - --sendbird-dark-background-700: #000000; - --sendbird-dark-background-600: #161616; - --sendbird-dark-background-500: #2C2C2C; - --sendbird-dark-background-400: #393939; - --sendbird-dark-background-300: #A8A8A8; - --sendbird-dark-background-200: #D9D9D9; - --sendbird-dark-background-100: #F0F0F0; - --sendbird-dark-background-50: #FFFFFF; - --sendbird-dark-overlay: rgba(0, 0, 0, 0.32); - --sendbird-dark-onlight-01: rgba(0, 0, 0, 0.88); - --sendbird-dark-onlight-02: rgba(0, 0, 0, 0.50); - --sendbird-dark-onlight-03: rgba(0, 0, 0, 0.38); - --sendbird-dark-onlight-04: rgba(0, 0, 0, 0.12); - --sendbird-dark-ondark-01: rgba(255, 255, 255, 0.88); - --sendbird-dark-ondark-02: rgba(255, 255, 255, 0.50); - --sendbird-dark-ondark-03: rgba(255, 255, 255, 0.38); - --sendbird-dark-ondark-04: rgba(255, 255, 255, 0.12); - --sendbird-dark-shadow-01: 0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-02: 0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-03: 0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-04: 0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12); - --sendbird-dark-shadow-message-input: 0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } - -:root { - --sendbird-iconbutton-color: #825eeb; - --sendbird-message-input-border-active: #7B53EF; - --sendbird-selected-reaction-button-border-hover: #9E8CF5; - --sendbird-add-reaction-button-border-hover: #9E8CF5; - --sendbird-tooltip-background: #000000; - --sendbird-tooltip-text-color: rgba(255, 255, 255, 0.88); - --sendbird-button-border-focus: #FFFFFF; - --sendbird-file-message-icon-background: #FFFFFF; - --sendbird-font-family-default: 'Open Sans', sans-serif; - --sendbird-message-balloon-width: 404px; } - -.sendbird__offline .sendbird-channel-preview { - cursor: not-allowed; } - -.sendbird-channel-preview { - position: relative; - cursor: pointer; - box-sizing: border-box; - width: 320px; - height: 80px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - padding: 12px 16px 12px 16px; } - .sendbird-theme--light .sendbird-channel-preview { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-preview { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-channel-preview .sendbird-channel-preview__frozen-icon { - padding-left: 4px; } - .sendbird-channel-preview .sendbird-channel-preview__broadcast-icon { - padding-right: 4px; } - .sendbird-channel-preview:focus { - outline: none; } - .sendbird-channel-preview .sendbird-channel-preview__avatar { - width: 56px; - height: 56px; } - .sendbird-channel-preview .sendbird-channel-preview__content { - width: 100%; - height: 100%; - margin-left: 16px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper { - display: flex; - justify-content: space-between; - width: 216px; - height: 16px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header { - display: flex; - justify-content: flex-start; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__channel-name { - overflow: hidden; - text-overflow: ellipsis; - max-width: 128px; - word-break: break-all; - white-space: nowrap; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__header__total-members { - margin-top: 2px; - margin-left: 4px; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__upper__last-message-at { - margin-left: 4px; - margin-bottom: 4px; - white-space: nowrap; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower { - margin-top: 8px; - width: 216px; - height: 32px; - display: flex; - justify-content: space-between; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__last-message { - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-preview .sendbird-channel-preview__content .sendbird-channel-preview__content__lower__unread-message-count { - margin-left: 8px; - margin-bottom: 12px; } - .sendbird-channel-preview .sendbird-channel-preview__action { - position: absolute; - top: 12px; - right: 12px; - display: inline-block; } - .sendbird-channel-preview .sendbird-channel-preview__action .sendbird-iconbutton { - display: none; } - .sendbird-theme--light .sendbird-channel-preview:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-channel-preview:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-channel-preview:hover .sendbird-channel-preview__action .sendbird-iconbutton { - display: inline-block; } - .sendbird-channel-preview:hover .sendbird-channel-preview__content__upper__last-message-at { - display: none; } - .sendbird-channel-preview:hover .sendbird-channel-preview__content__lower__unread-message-count { - display: none; } - -.sendbird-channel-preview--active { - padding: 12px 16px 12px 12px; } - .sendbird-theme--light .sendbird-channel-preview--active { - border-left: solid 4px var(--sendbird-light-primary-300); - border-bottom: solid 1px var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-channel-preview--active { - border-left: solid 4px var(--sendbird-dark-primary-200); - border-bottom: solid 1px var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-700); } - .sendbird-theme--light .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-channel-preview--active .sendbird-channel-preview__content__upper__header__channel-name { - color: var(--sendbird-dark-primary-200); } - -.sendbird-image-renderer--hidden-placeholder { - display: none; } - -.sendbird-icon { - display: inline-block; } - .sendbird-icon:focus { - outline: none; } - -.sendbird-theme--light .sendbird-color--primary [class*='fill'] { - fill: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary [class*='fill'] { - fill: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--primary [class*='stroke'] { - stroke: var(--sendbird-light-primary-300); - stroke-width: 2px; - stroke-linejoin: round; } - -.sendbird-theme--dark .sendbird-color--primary [class*='stroke'] { - stroke: var(--sendbird-dark-primary-200); - stroke-width: 2px; - stroke-linejoin: round; } - -.sendbird-theme--light .sendbird-color--secondary [class*='fill'] { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--secondary [class*='fill'] { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--content [class*='fill'] { - fill: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--content [class*='fill'] { - fill: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--content-inverse [class*='fill'] { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--content-inverse [class*='fill'] { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-color--white [class*='fill'] { - fill: #ffffff; } - -.sendbird-theme--light .sendbird-color--sent [class*='fill'] { - fill: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--sent [class*='fill'] { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--read [class*='fill'] { - fill: var(--sendbird-light-secondary-300); } - -.sendbird-theme--dark .sendbird-color--read [class*='fill'] { - fill: var(--sendbird-dark-secondary-200); } - -.sendbird-theme--light .sendbird-color--on-background [class*='fill'] { - fill: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--on-background [class*='fill'] { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-avatar { - display: inline-block; - overflow: hidden; - border-radius: 50%; - position: relative; } - .sendbird-avatar:focus { - outline: none; } - .sendbird-avatar .sendbird-avatar-img { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); } - .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:first-child { - transform: translate(2%, -50%); } - .sendbird-avatar .sendbird-avatar--inner__two-child .sendbird-avatar-img:last-child { - transform: translate(-102%, -50%); } - .sendbird-avatar .sendbird-avatar--inner__three-child--upper .sendbird-avatar-img:first-child { - transform: translate(-50%, -102%); } - .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:first-child { - transform: translate(-77%, -23%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__three-child--lower .sendbird-avatar-img:last-child { - transform: translate(-23%, -23%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:first-child { - transform: translate(-77%, -77%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(2) { - transform: translate(-23%, -77%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:nth-child(3) { - transform: translate(-77%, -23%) scale(0.5); } - .sendbird-avatar .sendbird-avatar--inner__four-child .sendbird-avatar-img:last-child { - transform: translate(-23%, -23%) scale(0.5); } - -.sendbird-badge { - height: 20px; - min-width: 20px; - border-radius: 10px; - display: inline-block; } - .sendbird-theme--light .sendbird-badge { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-badge { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-badge .sendbird-badge__text { - margin: 0px 6px; } - -[class*=sendbird-label] { - font-family: var(--sendbird-font-family-default); } - -.sendbird-label--h-1 { - font-size: 20px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.4; - letter-spacing: -0.2px; } - -.sendbird-label--h-2 { - font-size: 18px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: normal; - letter-spacing: -0.2px; } - -.sendbird-label--subtitle-1 { - font-size: 16px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.38; - letter-spacing: -0.2px; } - -.sendbird-label--subtitle-2 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.14; - letter-spacing: -0.2px; } - -.sendbird-label--body-1 { - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--body-2 { - font-size: 12px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.33; - letter-spacing: normal; } - -.sendbird-label--button-1 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--button-2 { - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--caption-1 { - font-size: 14px; - font-weight: 600; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; } - -.sendbird-label--caption-2 { - font-size: 12px; - font-weight: bold; - font-style: normal; - line-height: 1; - letter-spacing: normal; } - -.sendbird-label--caption-3 { - font-size: 12px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1; - letter-spacing: normal; } - -.sendbird-theme--light .sendbird-label--color-onbackground-1 { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-1 { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-label--color-onbackground-2 { - color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-2 { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-label--color-onbackground-3 { - color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-label--color-onbackground-3 { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-label--color-oncontent-1 { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-1 { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-label--color-oncontent-2 { - color: var(--sendbird-light-ondark-02); } - -.sendbird-theme--dark .sendbird-label--color-oncontent-2 { - color: var(--sendbird-dark-onlight-02); } - -.sendbird-theme--light .sendbird-label--color-primary { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-label--color-primary { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-label--color-error { - color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-label--color-error { - color: var(--sendbird-dark-error-300); } - -.sendbird-iconbutton { - color: var(--sendbird-iconbutton-color); - display: inline-block; - padding: 3px; - background-color: transparent; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid transparent; - border-radius: 4px; - outline: 0px; } - .sendbird-theme--light .sendbird-iconbutton .sendbird-iconbutton__inner svg { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-iconbutton .sendbird-iconbutton__inner svg { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-iconbutton:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-iconbutton:hover { - background-color: var(--sendbird-dark-background-500); } - .sendbird-theme--light .sendbird-iconbutton:focus { - box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } - .sendbird-theme--dark .sendbird-iconbutton:focus { - box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } - .sendbird-theme--light .sendbird-iconbutton:active { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-iconbutton:active { - background-color: var(--sendbird-dark-background-400); } - .sendbird-iconbutton:disabled { - cursor: not-allowed !important; } - .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--light .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { - fill: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner svg, .sendbird-theme--dark .sendbird-iconbutton:disabled .sendbird-iconbutton__inner path { - fill: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-iconbutton--pressed { - background-color: var(--sendbird-light-primary-100); } - -.sendbird-theme--dark .sendbird-iconbutton--pressed { - background-color: var(--sendbird-dark-background-700); } - -.sendbird-channel-header { - position: relative; - height: 64px; - min-height: 64px; - width: 320px; - padding: 8px 64px 8px 8px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-channel-header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-channel-header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-channel-header.sendbird-channel-header--allow-edit .sendbird-channel-header__title { - cursor: pointer; } - .sendbird-channel-header .sendbird-channel-header__title { - display: flex; - flex-direction: row; - width: 260px; - height: 48px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:hover { - background: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:hover { - background: var(--sendbird-dark-background-500); } - .sendbird-channel-header .sendbird-channel-header__title:focus { - outline: none; } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:focus { - background: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:focus { - background: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-channel-header .sendbird-channel-header__title:active { - border: solid 2px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-channel-header .sendbird-channel-header__title:active { - border: solid 2px var(--sendbird-dark-primary-200); } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--left { - width: 48px; - padding: 8px; - box-sizing: border-box; } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--right { - margin-left: 4px; - padding-top: 8px; } - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--name, - .sendbird-channel-header .sendbird-channel-header__title .sendbird-channel-header__title--user-id { - display: block; - max-width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-channel-header .sendbird-channel-header__right-icon { - position: absolute; - right: 16px; - top: 16px; } - -.sendbird__edit-user-profile section { - margin-top: 16px; } - .sendbird__edit-user-profile section .sendbird-input-label { - display: block; - margin-bottom: 12px; } - -.sendbird__edit-user-profile .sendbird__edit-user-profile__img .sendbird-input-label { - margin-bottom: 12px; } - -.sendbird__edit-user-profile__img { - position: relative; } - -.sendbird__edit-user__avatar-button { - position: absolute; - top: 50px; - left: 96px; } - -.sendbird__edit-user__theme-icon .sendbird-icon { - cursor: pointer; } - -.sendbird-modal { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; } - -.sendbird-modal-content { - width: 480px; - border-radius: 4px; - z-index: 10001; - padding: 18px 24px 24px 24px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-modal-content { - background-color: var(--sendbird-light-background-50); - box-shadow: var(--sendbird-light-shadow-04); } - .sendbird-theme--dark .sendbird-modal-content { - background-color: var(--sendbird-dark-background-500); - box-shadow: var(--sendbird-dark-shadow-04); } - .sendbird-modal-content .sendbird-modal-close { - position: absolute; - top: 16px; - right: 16px; - cursor: pointer; } - .sendbird-theme--light .sendbird-modal-content .sendbird-modal-close path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-modal-content .sendbird-modal-close path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-modal-content .sendbird-modal-header { - margin-bottom: 16px; } - .sendbird-modal-content .sendbird-modal-footer { - margin-top: 32px; - text-align: right; } - .sendbird-modal-content .sendbird-modal-footer .sendbird-button:last-child { - margin-left: 8px; - width: 80px; - height: 40px; } - -.sendbird-modal-backdrop { - position: fixed; - z-index: 10000; - height: 100%; - width: 100%; - top: 0; - left: 0; } - .sendbird-theme--light .sendbird-modal-backdrop { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-modal-backdrop { - background-color: var(--sendbird-dark-overlay); } - -.sendbird-button { - display: inline-block; - box-shadow: none; - border-radius: 4px; - padding: 0px; - font-family: var(--sendbird-font-family-default); - cursor: pointer; } - .sendbird-button:hover { - box-shadow: none; } - .sendbird-button:focus { - outline: none; } - .sendbird-button:active { - box-shadow: none; } - .sendbird-button.sendbird-button__disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-button.sendbird-button__disabled { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button.sendbird-button__disabled { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button.sendbird-button__disabled:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button.sendbird-button__disabled:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-button--big { - height: 40px; } - .sendbird-button--big .sendbird-button__text { - margin: 10px 16px; } - -.sendbird-button--small { - height: 32px; } - .sendbird-button--small .sendbird-button__text { - margin: 6px 16px; } - -.sendbird-theme--light .sendbird-button--primary { - border: 1px solid var(--sendbird-light-primary-300); - background-color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-button--primary { - border: 1px solid var(--sendbird-dark-primary-200); - background-color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-button--primary .sendbird-button__text { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-button--primary .sendbird-button__text { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-button--primary:hover { - background-color: var(--sendbird-light-primary-400); - border-color: var(--sendbird-light-primary-400); } - -.sendbird-theme--dark .sendbird-button--primary:hover { - background-color: var(--sendbird-dark-primary-300); - border-color: var(--sendbird-dark-primary-300); } - -.sendbird-theme--light .sendbird-button--primary:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); - border: 1px solid var(--sendbird-button-border-focus); } - -.sendbird-theme--dark .sendbird-button--primary:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); - border: 1px solid var(--sendbird-button-border-focus); } - -.sendbird-theme--light .sendbird-button--primary:active { - background-color: var(--sendbird-light-primary-500); } - -.sendbird-theme--dark .sendbird-button--primary:active { - background-color: var(--sendbird-dark-primary-400); } - -.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:hover { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-400); } - -.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:hover { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-300); } - -.sendbird-theme--light .sendbird-button--primary:focus .sendbird-button--primary:active { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-500); } - -.sendbird-theme--dark .sendbird-button--primary:focus .sendbird-button--primary:active { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-400); } - -.sendbird-button--secondary { - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary { - border: 1px solid var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-button--secondary { - border: 1px solid var(--sendbird-dark-ondark-03); } - .sendbird-theme--light .sendbird-button--secondary .sendbird-button__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-button--secondary .sendbird-button__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-button--secondary:hover { - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary:hover { - border: 1px solid var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover { - border: 1px solid var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - .sendbird-button--secondary.sendbird-button__disabled { - cursor: not-allowed; - border: none; } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled .sendbird-button__text { - color: var(--sendbird-dark-ondark-02); } - .sendbird-button--secondary.sendbird-button__disabled:hover { - border: none; } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-button--secondary.sendbird-button__disabled:hover .sendbird-button__text { - color: var(--sendbird-dark-ondark-02); } - .sendbird-theme--light .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:hover .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - .sendbird-button--secondary:focus { - border: 1px solid transparent; - background-color: transparent; } - .sendbird-theme--light .sendbird-button--secondary:focus { - box-shadow: var(--sendbird-light-primary-300) 0px 0px 0px 2px; } - .sendbird-theme--dark .sendbird-button--secondary:focus { - box-shadow: var(--sendbird-dark-primary-200) 0px 0px 0px 2px; } - .sendbird-theme--light .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-button--secondary:focus .sendbird-button__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-button--secondary:active { - box-shadow: none; } - .sendbird-theme--light .sendbird-button--secondary:active { - border: 1px solid var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:active { - border: 1px solid var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-button--secondary:active .sendbird-button__text { - color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-button--secondary:active .sendbird-button__text { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-button--danger { - border: 1px solid var(--sendbird-light-error-300); - background-color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-button--danger { - border: 1px solid var(--sendbird-dark-error-300); - background-color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-button--danger .sendbird-button__text { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-button--danger .sendbird-button__text { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-button--danger:hover { - background-color: var(--sendbird-light-error-400); - border-color: var(--sendbird-light-error-400); } - -.sendbird-theme--dark .sendbird-button--danger:hover { - background-color: var(--sendbird-dark-error-400); - border-color: var(--sendbird-dark-error-400); } - -.sendbird-theme--light .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-300); - border-color: var(--sendbird-button-border-focus); } - -.sendbird-theme--dark .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-300); - border-color: var(--sendbird-button-border-focus); } - -.sendbird-button--danger:active { - box-shadow: none; } - .sendbird-theme--light .sendbird-button--danger:active { - background-color: var(--sendbird-light-error-500); } - .sendbird-theme--dark .sendbird-button--danger:active { - background-color: var(--sendbird-dark-error-500); } - -.sendbird-theme--light .sendbird-button--danger:hover .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-400); } - -.sendbird-theme--dark .sendbird-button--danger:hover .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-400); } - -.sendbird-theme--light .sendbird-button--danger:active .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-error-500); } - -.sendbird-theme--dark .sendbird-button--danger:active .sendbird-button--danger:focus { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-error-500); } - -.sendbird-button--disabled { - border: 1px solid transparent; - cursor: not-allowed; } - .sendbird-theme--light .sendbird-button--disabled { - background-color: var(--sendbird-light-background-200); - color: var(--sendbird-light-ondark-01); } - .sendbird-theme--dark .sendbird-button--disabled { - background-color: var(--sendbird-dark-background-400); - color: var(--sendbird-dark-onlight-01); } - -.sendbird-input { - display: inline-block; - width: 100%; - height: 40px; - position: relative; } - .sendbird-input .sendbird-input--input { - width: 100%; - height: 100%; - border-radius: 4px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - letter-spacing: normal; - padding: 10px 16px; - box-sizing: border-box; - background-color: inherit; } - .sendbird-theme--light .sendbird-input .sendbird-input--input { - color: var(--sendbird-light-onlight-01); - caret-color: var(--sendbird-light-primary-300); - border: solid 1px var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input { - color: var(--sendbird-dark-ondark-01); - caret-color: var(--sendbird-dark-primary-200); - border: solid 1px var(--sendbird-dark-ondark-03); } - .sendbird-input .sendbird-input--input:focus { - outline: none; } - .sendbird-theme--light .sendbird-input .sendbird-input--input:focus { - box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-light-onlight-01); - border: solid 2px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:focus { - box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-dark-ondark-01); - border: solid 2px var(--sendbird-dark-primary-200); } - .sendbird-theme--light .sendbird-input .sendbird-input--input:active { - box-shadow: 0 1px 5px 0 var(--sendbird-light-onlight-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-light-onlight-01); - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:active { - box-shadow: 0 1px 5px 0 var(--sendbird-dark-ondark-04), 0 0 1px 0 rgba(0, 0, 0, 0.16), 0 2px 1px 0 rgba(0, 0, 0, 0.08); - color: var(--sendbird-dark-ondark-01); - border: solid 1px var(--sendbird-dark-primary-200); } - .sendbird-input .sendbird-input--input:disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-input .sendbird-input--input:disabled { - background-color: var(--sendbird-light-background-100); - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--input:disabled { - background-color: var(--sendbird-dark-background-500); - color: var(--sendbird-dark-ondark-03); } - .sendbird-input .sendbird-input--placeholder { - position: absolute; - pointer-events: none; - top: 10px; - left: 16px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - line-height: 1.43; } - .sendbird-theme--light .sendbird-input .sendbird-input--placeholder { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-input .sendbird-input--placeholder { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-input-label { - margin: 4px 0; } - -.sendbird-textbutton { - text-decoration: underline; - cursor: pointer; } - -.sendbird-textbutton--not-underline { - text-decoration: none; - cursor: pointer; } - -.sendbird-textbutton--disabled { - cursor: not-allowed; } - .sendbird-theme--light .sendbird-textbutton--disabled { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-textbutton--disabled { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--onbackground-1 { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--onbackground-1 { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--onbackground-1--background-color { - background-color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-color--onbackground-1--background-color { - background-color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-color--onbackground-2 { - color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-color--onbackground-2 { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-color--onbackground-2--background-color { - background-color: var(--sendbird-light-onlight-02); } - -.sendbird-theme--dark .sendbird-color--onbackground-2--background-color { - background-color: var(--sendbird-dark-ondark-02); } - -.sendbird-theme--light .sendbird-color--onbackground-3 { - color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--onbackground-3 { - color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--onbackground-3--background-color { - background-color: var(--sendbird-light-onlight-03); } - -.sendbird-theme--dark .sendbird-color--onbackground-3--background-color { - background-color: var(--sendbird-dark-ondark-03); } - -.sendbird-theme--light .sendbird-color--onbackground-4 { - color: var(--sendbird-light-onlight-04); } - -.sendbird-theme--dark .sendbird-color--onbackground-4 { - color: var(--sendbird-dark-ondark-04); } - -.sendbird-theme--light .sendbird-color--onbackground-4--background-color { - background-color: var(--sendbird-light-onlight-04); } - -.sendbird-theme--dark .sendbird-color--onbackground-4--background-color { - background-color: var(--sendbird-dark-ondark-04); } - -.sendbird-theme--light .sendbird-color--oncontent-1 { - color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--oncontent-1 { - color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--oncontent-1--background-color { - background-color: var(--sendbird-light-ondark-01); } - -.sendbird-theme--dark .sendbird-color--oncontent-1--background-color { - background-color: var(--sendbird-dark-onlight-01); } - -.sendbird-theme--light .sendbird-color--primary { - color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary { - color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--primary--background-color { - background-color: var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-color--primary--background-color { - background-color: var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-color--error { - color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-color--error { - color: var(--sendbird-dark-error-300); } - -.sendbird-theme--light .sendbird-color--error--background-color { - background-color: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-color--error--background-color { - background-color: var(--sendbird-dark-error-300); } - -.sendbird-add-channel__rectangle-wrap { - margin-top: 26px; } - -.sendbird-add-channel__rectangle-footer { - text-align: right; - margin-top: 32px; } - -.sendbird-add-channel__rectangle { - width: 432px; - height: 72px; - border-radius: 4px; - margin-bottom: 8px; - padding: 25px 72px; - position: relative; - box-sizing: border-box; - cursor: pointer; } - .sendbird-theme--light .sendbird-add-channel__rectangle { - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-add-channel__rectangle { - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-add-channel__rectangle .sendbird-icon { - position: absolute; - left: 22px; - top: 24px; } - -.sendbird-create-channel--content { - width: 480px; - max-height: 552px; } - -.sendbird-create-channel--scroll { - height: 360px; - overflow-y: auto; } - -.sendbird-muted-avatar { - border-radius: 50%; - display: inline-block; } - .sendbird-muted-avatar .sendbird-muted-avatar__icon { - position: relative; } - .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon { - position: absolute; - top: 4px; - left: 4px; } - .sendbird-muted-avatar .sendbird-muted-avatar__bg { - opacity: .5; - position: absolute; - border-radius: 50%; - top: 0; - left: 0; } - .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg { - background-color: var(--sendbird-dark-primary-300); } - -.sendbird-checkbox { - display: block; - position: relative; - padding-left: 35px; - margin-bottom: 12px; - cursor: pointer; - font-size: 22px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.sendbird-checkbox input { - position: absolute; - opacity: 0; - cursor: pointer; - height: 0; - width: 0; } - -.sendbird-checkbox--checkmark { - position: absolute; - top: 0; - left: 0; - height: 18px; - width: 18px; - border-radius: 2px; - background-color: inherit; } - .sendbird-theme--light .sendbird-checkbox--checkmark { - border: 2px solid var(--sendbird-light-background-400); } - .sendbird-theme--dark .sendbird-checkbox--checkmark { - border: 2px solid var(--sendbird-dark-background-300); } - -.sendbird-theme--light .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { - box-shadow: 0px 0px 0px 2px var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-checkbox input:focus ~ .sendbird-checkbox--checkmark { - box-shadow: 0px 0px 0px 2px var(--sendbird-dark-primary-200); } - -.sendbird-theme--light .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { - background-color: var(--sendbird-light-primary-300); - border: 2px solid var(--sendbird-light-primary-300); } - -.sendbird-theme--dark .sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark { - background-color: var(--sendbird-dark-primary-200); - border: 2px solid var(--sendbird-dark-primary-200); } - -.sendbird-checkbox--checkmark:after { - content: ""; - position: absolute; - display: none; } - -.sendbird-checkbox input:checked ~ .sendbird-checkbox--checkmark:after { - display: block; } - -.sendbird-theme--light .sendbird-checkbox .sendbird-checkbox--checkmark:after { - left: 5px; - top: -0.5px; - width: 7px; - height: 12px; - border: solid var(--sendbird-light-background-50); - border-width: 0 2px 2px 0; - transform: rotate(45deg); } - -.sendbird-theme--dark .sendbird-checkbox .sendbird-checkbox--checkmark:after { - left: 5px; - top: -0.5px; - width: 7px; - height: 12px; - border: solid var(--sendbird-dark-background-600); - border-width: 0 2px 2px 0; - transform: rotate(45deg); } - -.sendbird__user-profile { - width: 320px; - border-radius: 4px; - padding: 24px; - box-sizing: border-box; - text-align: center; } - .sendbird-theme--light .sendbird__user-profile { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird__user-profile { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird__user-profile .sendbird__user-profile-avatar { - margin: 8px 0px; } - .sendbird__user-profile .sendbird__user-profile-name { - max-width: 270px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; } - .sendbird__user-profile .sendbird__user-profile-message { - margin-top: 20px; } - .sendbird__user-profile .sendbird__user-profile-message button { - width: 272px; } - .sendbird__user-profile .sendbird__user-profile-seperator { - margin: 24px 0px; - height: 1px; } - .sendbird-theme--light .sendbird__user-profile .sendbird__user-profile-seperator { - background-color: var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird__user-profile .sendbird__user-profile-seperator { - background-color: var(--sendbird-dark-ondark-04); } - .sendbird__user-profile .sendbird__user-profile-userId--label, - .sendbird__user-profile .sendbird__user-profile-userId--value { - display: block; - text-align: left; } - .sendbird__user-profile .sendbird__user-profile-userId--label { - margin-bottom: 8px; } - -.sendbird__offline .sendbird-dropdown__menu .sendbird-dropdown__menu-item { - cursor: not-allowed; } - -.sendbird-dropdown__menu { - z-index: 99999; - position: absolute; - top: 100%; - left: 0; - min-width: 140px; - margin: 0px; - padding: 8px 0px; - border-radius: 4px; - list-style: none; } - .sendbird-theme--light .sendbird-dropdown__menu { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-dropdown__menu { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird-dropdown__menu .sendbird-dropdown__menu-item { - cursor: pointer; - white-space: nowrap; - padding: 8px 16px; } - .sendbird-theme--light .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-dropdown__menu .sendbird-dropdown__menu-item:hover { - background-color: var(--sendbird-dark-background-400); } - -.sendbird-dropdown__reaction-bar { - position: absolute; - top: 100%; - left: 0; - min-width: 44px; - max-width: 352px; - max-height: 208px; - overflow-y: scroll; - margin: 0px; - padding: 8px; - border-radius: 8px; - list-style: none; } - .sendbird-theme--light .sendbird-dropdown__reaction-bar { - box-shadow: var(--sendbird-light-shadow-02); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-dropdown__reaction-bar { - box-shadow: var(--sendbird-dark-shadow-02); - background-color: var(--sendbird-dark-background-500); } - .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button, .sendbird-dropdown__reaction-bar .sendbird-dropdown__reaction-bar__row .sendbird-reaction-button--selected { - margin: 4px; } - -.sendbird-dropdown__menu-backdrop { - background-color: transparent; - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; } - -.sendbird-reactions--pressed { - display: block !important; } - -.sendbird-icon--pressed { - display: block !important; } - -.sendbird-sort-by-row { - display: flex; - justify-content: flex-start; - align-items: center; } - -.sendbird-user-list-item { - display: block; - position: relative; - box-sizing: border-box; - width: 432px; - height: 56px; } - .sendbird-theme--light .sendbird-user-list-item { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-user-list-item { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-list-item__avatar { - position: absolute; - top: 8px; - left: 0px; - z-index: 1; - cursor: pointer; } - .sendbird-user-list-item .sendbird-muted-avatar { - position: absolute; - top: 8px; - left: 0px; - z-index: 2; - pointer-events: none; } - .sendbird-user-list-item__title { - position: absolute; - top: 17px; - left: 56px; - max-width: 280px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item__subtitle { - position: absolute; - top: 23px; - left: 140px; - max-width: 237px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item__checkbox { - position: absolute; - top: 16px; - right: 16px; } - .sendbird-user-list-item__action { - position: absolute; - right: 0; - top: 10px; } - .sendbird-user-list-item__operator { - position: absolute; - right: 40px; - top: 22px; } - -.sendbird-place-holder { - display: flex; - justify-content: center; - align-items: center; - height: 100%; } - .sendbird-place-holder .sendbird-place-holder__body { - display: flex; - flex-direction: column; - height: 104px; - align-items: center; } - .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__icon { - margin-bottom: 10px; } - .sendbird-place-holder .sendbird-place-holder__body .sendbird-place-holder__body__text { - margin-top: 10px; } - .sendbird-place-holder .sendbird-place-holder__body__reconnect { - margin-top: 18px; - display: flex; - flex-direction: row; - cursor: pointer; } - .sendbird-place-holder .sendbird-place-holder__body__reconnect .sendbird-place-holder__body__reconnect__icon { - margin-right: 4px; } - -.sendbird-loader { - display: inline-block; - -webkit-animation: 1s infinite linear; - animation: 1s infinite linear; - -webkit-animation-name: rotate; - animation-name: rotate; } - -@-webkit-keyframes rotate { - from { - transform: rotate(0); } - to { - transform: rotate(360deg); } } - -@keyframes rotate { - from { - transform: rotate(0); } - to { - transform: rotate(360deg); } } - -.sendbird-channel-list { - width: 320px; - height: 100%; - display: flex; - flex-direction: column; } - .sendbird-theme--light .sendbird-channel-list { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-list { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-channel-list__header { - height: 64px; - min-height: 64px; } - -.sendbird-channel-list__body { - flex: 1 1 0; - -ms-flex: 1; - overflow-y: auto; - overflow-x: hidden; } - -.sendbird-conversation { - display: flex; - flex-direction: column; - height: 100%; } - .sendbird-theme--light .sendbird-conversation { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-conversation { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-conversation__messages { - overflow-y: auto; - flex: 1 1 0; - order: 2; } - -.sendbird-conversation__messages-list { - display: flex; - flex-direction: column; - height: 100%; - justify-content: flex-end; } - -.sendbird-conversation__footer { - order: 3; - padding: 0px 24px 24px 24px; } - -.sendbird-conversation__scroll-container { - display: flex; - height: 100%; - overflow-y: auto; - overflow-x: hidden; - flex-direction: column; } - .sendbird-conversation__scroll-container .sendbird-conversation__padding { - flex: 1 1 0; } - -.sendbird-conversation__footer { - position: relative; } - .sendbird-conversation__footer .sendbird-conversation__typing-indicator { - position: absolute; - bottom: 8px; } - -.sendbird-reaction-button { - border-radius: 8px; - display: inline-block; - border: solid 1px transparent; - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-button:hover { - border: solid 1px var(--sendbird-light-background-100); - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-button:hover { - border: solid 1px var(--sendbird-dark-background-400); - background-color: var(--sendbird-dark-background-400); } - .sendbird-reaction-button__inner { - margin: 3px; } - -.sendbird-reaction-button--selected { - cursor: pointer; - border-radius: 8px; - display: inline-block; } - .sendbird-theme--light .sendbird-reaction-button--selected { - border: solid 1px var(--sendbird-light-primary-100); - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-reaction-button--selected { - border: solid 1px var(--sendbird-dark-primary-400); - background-color: var(--sendbird-dark-primary-400); } - .sendbird-reaction-button--selected:hover { - border: solid 1px var(--sendbird-selected-reaction-button-border-hover); } - .sendbird-reaction-button--selected__inner { - margin: 3px; } - .sendbird-reaction-button--selected.sendbird-reactions--pressed { - display: block !important; } - -.sendbird-conversation__messages .sendbird-conversation__messages-padding { - padding-left: 24px; - padding-right: 24px; } - -.sendbird-conversation__messages .sendbird-separator, -.sendbird-conversation__messages .sendbird-admin-message { - padding-top: 8px; - padding-bottom: 8px; } - -.sendbird-message { - position: relative; - line-height: 0; } - .sendbird-message--outgoing { - text-align: right; } - .sendbird-message--incoming { - text-align: left; } - -.sendbird-user-message--copy { - cursor: pointer !important; } - -.sendbird-user-message--outgoing { - position: relative; - right: 0px; - display: inline-block; - max-width: 496px; - text-align: right; } - .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-user-message--outgoing:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-user-message--outgoing:hover .sendbird-user-message__left-padding .sendbird-user-message__more { - display: block; } - .sendbird-user-message--outgoing .sendbird-user-message--inner { - display: flex; - flex-direction: row; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding { - position: relative; - width: 68px; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more { - display: none; - position: absolute; - right: 4px; - top: 2px; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__more[class*='--pressed'] { - display: block !important; } - .sendbird-user-message--outgoing .sendbird-user-message__left-padding .sendbird-user-message__status { - position: absolute; - bottom: 2px; - right: 4px; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; - text-align: left; } - .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { - display: flex; - flex-direction: column; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { - padding: 8px 12px; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - display: inline; - white-space: pre-wrap; - overflow-wrap: normal; } - .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - position: relative; - bottom: 0px; } - .sendbird-theme--light .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-message--outgoing .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-300); } - -.sendbird-user-message--incoming { - position: relative; - left: 0px; - display: inline-block; - padding-left: 40px; - max-width: 536px; - text-align: left; } - .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-user-message--incoming:hover .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__more { - display: block; } - .sendbird-user-message--incoming:hover .sendbird-user-message__right-padding .sendbird-user-message__sent-at { - display: none; } - .sendbird-user-message--incoming .sendbird-user-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-user-message--incoming .sendbird-user-message--body { - display: flex; - flex-direction: column; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding { - position: relative; - width: 68px; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__sent-at { - position: absolute; - left: 4px; - bottom: 2px; } - .sendbird-user-message--incoming .sendbird-user-message__right-padding .sendbird-user-message__more { - position: absolute; - display: none; - top: 18px; - left: 4px; } - .sendbird-user-message--incoming .sendbird-user-message__avatar { - position: absolute; - bottom: 4px; - left: -40px; - cursor: pointer; } - .sendbird-user-message--incoming .sendbird-user-message__sender-name { - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - margin-top: 4px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner { - display: flex; - flex-direction: column; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place { - padding: 8px 12px; } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - display: inline; - white-space: pre-wrap; - overflow-wrap: normal; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__text-place .sendbird-user-message__text-balloon__inner__text-place__text { - color: var(--sendbird-dark-ondark-01); } - .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - position: relative; - bottom: 0px; } - .sendbird-theme--light .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-message--incoming .sendbird-user-message__text-balloon .sendbird-user-message__text-balloon__inner .sendbird-user-message__text-balloon__inner__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - -.sendbird-user-message__text-balloon__inner__text-place__text { - word-break: break-word; - display: flex; - flex-direction: row; - flex-wrap: wrap; } - -.sendbird-user-message__text-balloon { - display: inline-block; } - -.sendbird-user-message-word { - display: inline; - margin: 0px 2px; } - -.sendbird-message-status { - display: inline; - text-align: right; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again { - text-decoration: underline; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__try-again:hover { - cursor: pointer; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete { - text-decoration: underline; } - .sendbird-message-status .sendbird-message-status__text .sendbird-message-status__text__delete:hover { - cursor: pointer; } - -.sendbird-emoji-reactions { - display: inline-block; - border-radius: 16px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - min-height: 24px; - padding: 7px 5px 3px 5px; } - .sendbird-theme--light .sendbird-emoji-reactions { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-emoji-reactions { - background-color: var(--sendbird-dark-background-600); } - .sendbird-emoji-reactions .sendbird-emoji-reactions--inner { - display: flex; - flex-wrap: wrap; } - .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction { - margin-left: 2px; - margin-right: 2px; - margin-bottom: 4px; } - .sendbird-emoji-reactions .sendbird-emoji-reactions__emoji-reaction-add { - width: 36px; - height: 24px; } - .sendbird-emoji-reactions:focus { - outline: none; } - -.sendbird-reaction-badge { - display: inline-block; - border-radius: 15px; - width: 50px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-badge { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-reaction-badge:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-badge:hover { - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-reaction-badge:hover { - border: solid 1px var(--sendbird-dark-primary-200); } - -.sendbird-reaction-badge--is-add { - display: inline-block; - border-radius: 15px; - width: 36px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge--is-add { - background-color: var(--sendbird-light-background-100); - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-reaction-badge--is-add { - background-color: var(--sendbird-dark-background-500); - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-reaction-badge--is-add:hover { - cursor: pointer; - border: solid 1px var(--sendbird-add-reaction-button-border-hover); } - .sendbird-reaction-badge--is-add .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { - left: 8px; } - -.sendbird-reaction-badge--selected { - display: inline-block; - border-radius: 15px; - width: 50px; - height: 24px; } - .sendbird-theme--light .sendbird-reaction-badge--selected { - background-color: var(--sendbird-light-primary-100); - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-reaction-badge--selected { - background-color: var(--sendbird-dark-primary-400); - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-reaction-badge--selected:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-reaction-badge--selected:hover { - border: solid 1px var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-reaction-badge--selected:hover { - border: solid 1px var(--sendbird-dark-primary-200); } - -.sendbird-reaction-badge__inner { - position: relative; - display: flex; - height: 24px; - flex-direction: row; - align-items: center; - justify-content: center; - padding-left: 20px; - padding-right: 4px; } - .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__icon { - position: absolute; - top: 2px; - left: 4px; } - .sendbird-reaction-badge__inner .sendbird-reaction-badge__inner__count { - margin-left: 4px; } - -.sendbird-tooltip { - position: relative; - display: inline-flex; - justify-content: center; - max-width: 200px; - border-radius: 8px; - padding: 8px 16px; - background-color: var(--sendbird-tooltip-background); } - .sendbird-tooltip::after { - content: ''; - position: absolute; - bottom: -4px; - width: 8px; - height: 8px; - transform: rotate(45deg); - background-color: var(--sendbird-tooltip-background); } - .sendbird-tooltip__text { - font-family: var(--sendbird-font-family-default); - font-size: 12px; - font-weight: bold; - font-stretch: normal; - font-style: normal; - line-height: 1.33; - letter-spacing: normal; - color: var(--sendbird-tooltip-text-color); } - -.sendbird-tooltip-wrapper { - position: relative; - display: inline-flex; } - .sendbird-tooltip-wrapper__hover-tooltip { - position: absolute; - display: inline-flex; - width: 200px; } - .sendbird-tooltip-wrapper__hover-tooltip__inner__tooltip-container { - position: relative; - display: inline-flex; } - -.sendbird-admin-message { - display: flex; - justify-content: center; - align-items: center; } - .sendbird-admin-message .sendbird-admin-message__text { - display: flex; } - -.sendbird-thumbnail { - text-align: right; - position: relative; } - .sendbird-thumbnail .sendbird-thumbnail__body { - position: relative; - display: inline-block; } - .sendbird-thumbnail .sendbird-thumbnail__more { - display: none; - position: absolute; - top: 10px; } - .sendbird-thumbnail:hover .sendbird-thumbnail__more { - display: block; } - .sendbird-thumbnail .sendbird-thumbnail__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; - margin: 8px 0px; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-thumbnail .sendbird-thumbnail__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner { - cursor: pointer; } - .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap:hover .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0; - left: 0; - border-radius: 16px; } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__inner .sendbird-thumbnail__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-thumbnail .sendbird-thumbnail__wrap .sendbird-thumbnail__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-thumbnail .sendbird-thumbnail__avatar { - position: absolute; - bottom: 30px; - left: 0px; } - .sendbird-thumbnail .sendbird-thumbnail__sender-name { - margin-left: 12px; } - .sendbird-thumbnail.sendbird-thumbnail--incoming { - text-align: left; - padding-left: 40px; - box-sizing: border-box; } - .sendbird-thumbnail .sendbird-thumbnail__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-thumbnail .sendbird-thumbnail__video, - .sendbird-thumbnail .sendbird-thumbnail__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - -.sendbird-outgoing-thumbnail-message { - position: relative; - text-align: right; - line-height: 0px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message--inner { - display: inline-flex; - flex-direction: row; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { - display: none; - position: absolute; - top: 4px; - right: 4px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__status { - position: absolute; - right: 4px; - bottom: 4px; } - .sendbird-outgoing-thumbnail-message:hover .sendbird-outgoing-thumbnail-message__left-padding .sendbird-outgoing-thumbnail-message-left-padding__more { - display: block; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body { - position: relative; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner { - cursor: pointer; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap:hover .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0; - left: 0; - border-radius: 16px; } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap--inner .sendbird-outgoing-thumbnail-message-body__wrap__overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message__body .sendbird-outgoing-thumbnail-message-body__wrap .sendbird-outgoing-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video, - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - .sendbird-outgoing-thumbnail-message .sendbird-outgoing-thumbnail-message-body__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - -.sendbird-incoming-thumbnail-message { - position: relative; - text-align: left; - padding-left: 40px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__sender-name { - position: relative; - box-sizing: border-box; - left: 12px; - height: 12px; - margin-bottom: 4px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__avatar { - position: absolute; - left: -40px; - bottom: 4px; - cursor: pointer; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message--inner { - display: flex; - flex-direction: row; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body { - position: relative; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - position: relative; - display: flex; - flex-direction: column; - border-radius: 16px; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:focus { - outline: none; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover { - background-color: var(--sendbird-dark-background-400); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner { - cursor: pointer; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - opacity: 1; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap:hover .sendbird-incoming-thumbnail-message-body__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner { - width: 100%; - height: 100%; - position: relative; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - position: absolute; - opacity: 0; - width: 100%; - height: 100%; - top: 0px; - left: 0px; - border-radius: 16px; } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - background-color: var(--sendbird-light-overlay); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message-body__wrap--inner .sendbird-incoming-thumbnail-message-body__wrap-overlay { - background-color: var(--sendbird-dark-overlay); } - .sendbird-theme--light .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__body .sendbird-incoming-thumbnail-message-body__wrap .sendbird-incoming-thumbnail-message__wrap__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video, - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__img { - display: block; - max-width: var(--sendbird-message-balloon-width); - max-height: 360px; - border-radius: 16px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__video-icon { - position: absolute; - top: calc(50% - 28px); - left: calc(50% - 28px); } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - .sendbird-incoming-thumbnail-message .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { - position: absolute; - left: 4px; - top: 4px; - display: none; } - .sendbird-incoming-thumbnail-message:hover .sendbird-incoming-thumbnail-message__right-padding .sendbird-incoming-thumbnail-message__more { - display: block; } - -.sendbird-file-message--outgoing { - text-align: right; } - -.sendbird-file-message--incoming { - text-align: left; } - -.sendbird-file-message__outgoing { - position: relative; - right: 0px; - display: inline-block; - max-width: 496px; - text-align: right; - line-height: 0px; } - .sendbird-file-message__outgoing .sendbird-file-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-file-message__outgoing:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-400); } - .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__more { - display: block; } - .sendbird-file-message__outgoing:hover .sendbird-file-message__left-padding .sendbird-file-message__status { - display: none; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding { - position: relative; - width: 68px; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__more { - display: none; - position: absolute; - right: 4px; - top: 2px; } - .sendbird-file-message__outgoing .sendbird-file-message__left-padding .sendbird-file-message__status { - position: absolute; - text-align: right; - right: 4px; - bottom: 4px; } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - display: flex; - flex-direction: column; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { - display: flex; - flex: row; - padding: 8px 12px; - text-align: left; } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - border-radius: 10px; - margin-right: 8px; - background-color: var(--sendbird-file-message-icon-background); } - .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { - white-space: nowrap; - overflow-wrap: break-word; - margin: 4px 0px; - cursor: pointer; } - .sendbird-theme--light .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-file-message__outgoing .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-primary-300); } - -.sendbird-file-message__incoming { - position: relative; - left: 0px; - display: inline-block; - padding-left: 40px; - max-width: 536px; - text-align: left; - line-height: 0px; } - .sendbird-file-message__incoming .sendbird-file-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding { - position: relative; - width: 68px; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__more { - position: absolute; - display: none; - left: 4px; - top: 18px; } - .sendbird-file-message__incoming .sendbird-file-message__right-padding .sendbird-file-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - .sendbird-file-message__incoming:hover .sendbird-file-message__right-padding .sendbird-file-message__more { - display: block; } - .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-file-message__incoming:hover .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-400); } - .sendbird-file-message__incoming .sendbird-file-message__avatar { - position: absolute; - bottom: 2px; - left: -40px; - cursor: pointer; } - .sendbird-file-message__incoming .sendbird-file-message__sender-name { - margin-left: 12px; - margin-bottom: 4px; } - .sendbird-file-message__incoming .sendbird-file-message__tooltip { - display: flex; - flex-direction: column; - margin-top: 4px; - max-width: var(--sendbird-message-balloon-width); - box-sizing: border-box; - border-radius: 16px; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip { - background-color: var(--sendbird-dark-background-500); } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner { - display: flex; - flex-direction: row; - padding: 8px 12px; } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - border-radius: 10px; - margin-right: 8px; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__icon { - background-color: var(--sendbird-dark-background-600); } - .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__inner .sendbird-file-message__tooltip__text { - white-space: nowrap; - overflow-wrap: normal; - margin: 4px 0px; - cursor: pointer; } - .sendbird-theme--light .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-file-message__incoming .sendbird-file-message__tooltip .sendbird-file-message__tooltip__emoji-reactions { - border: solid 1px var(--sendbird-dark-background-500); } - -.sendbird-separator { - width: 100%; - display: flex; - align-items: center; } - .sendbird-separator .sendbird-separator__left { - border: none; - height: 1px; - display: inline-block; - width: 100%; } - .sendbird-separator .sendbird-separator__right { - border: none; - height: 1px; - display: inline-block; - width: 100%; } - .sendbird-separator .sendbird-separator__text { - margin: 0px 16px; - display: flex; - white-space: nowrap; } - -.sendbird-message-input { - display: inline-block; - width: 100%; - position: relative; } - .sendbird-message-input .sendbird-message-input--textarea { - width: 100%; - border-radius: 4px; - font-size: 14px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: 1.43; - height: 56px; - overflow-y: hidden; - letter-spacing: normal; - padding: 18px 64px 18px 16px; - box-sizing: border-box; - resize: none; - font-family: var(--sendbird-font-family-default); - background-color: inherit; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea { - color: var(--sendbird-light-onlight-01); - caret-color: var(--sendbird-light-primary-300); - border: solid 1px var(--sendbird-light-onlight-03); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea { - color: var(--sendbird-dark-ondark-01); - caret-color: var(--sendbird-dark-primary-200); - border: solid 1px var(--sendbird-dark-ondark-03); - background-color: var(--sendbird-dark-background-500); } - .sendbird-message-input .sendbird-message-input--textarea:focus { - outline: none; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:focus { - color: var(--sendbird-light-onlight-01); - border: solid 1px var(--sendbird-light-primary-300); - box-shadow: var(--sendbird-light-shadow-message-input); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:focus { - color: var(--sendbird-dark-ondark-01); - border: solid 1px var(--sendbird-dark-primary-200); - box-shadow: var(--sendbird-dark-shadow-message-input); } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--textarea:active { - border: solid 1px var(--sendbird-message-input-border-active); - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--textarea:active { - border: solid 1px var(--sendbird-message-input-border-active); - color: var(--sendbird-dark-ondark-01); } - .sendbird-message-input .sendbird-message-input--placeholder { - position: absolute; - pointer-events: none; - top: 18px; - left: 16px; - font-family: var(--sendbird-font-family-default); - font-size: 14px; - line-height: 1.43; } - .sendbird-theme--light .sendbird-message-input .sendbird-message-input--placeholder { - color: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input .sendbird-message-input--placeholder { - color: var(--sendbird-dark-ondark-03); } - .sendbird-message-input .sendbird-message-input--attach { - position: absolute; - right: 12px; - bottom: 18px; - padding: 6px; } - .sendbird-message-input .sendbird-message-input--send { - position: absolute; - padding: 6px; - right: 16px; - bottom: 16px; } - .sendbird-message-input .sendbird-message-input--attach-input { - display: none; } - -.sendbird-message-input__edit { - padding: 16px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-message-input__edit { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-message-input__edit { - background-color: var(--sendbird-dark-background-700); } - -.sendbird-message-input--edit-action { - text-align: right; - margin-top: 4px; } - .sendbird-message-input--edit-action button:last-child { - margin-left: 8px; } - .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - width: 80px; } - .sendbird-theme--light .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - border: solid 1px var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input--edit-action .sendbird-message-input--edit-action__cancel { - border: solid 1px var(--sendbird-dark-ondark-03); } - .sendbird-message-input--edit-action .sendbird-message-input--edit-action__save { - width: 80px; } - -.sendbird-message-input-form__disabled { - cursor: not-allowed; } - -.sendbird-message-input__disabled { - pointer-events: none; - cursor: disabled; } - .sendbird-theme--light .sendbird-message-input__disabled .sendbird-message-input--textarea { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-message-input__disabled .sendbird-message-input--textarea { - background-color: var(--sendbird-dark-background-500); } - .sendbird-theme--light .sendbird-message-input__disabled svg { - fill: var(--sendbird-light-onlight-03); } - .sendbird-theme--dark .sendbird-message-input__disabled svg { - fill: var(--sendbird-dark-ondark-03); } - -.sendbird-fileviewer { - width: 100%; - height: 100%; - position: fixed; - top: 0; - left: 0; - z-index: 100000; } - .sendbird-theme--light .sendbird-fileviewer { - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-fileviewer { - background-color: var(--sendbird-dark-background-600); } - -.sendbird-fileviewer__header { - height: 64px; - min-height: 64px; - box-sizing: border-box; - display: flex; - justify-content: space-between; } - .sendbird-theme--light .sendbird-fileviewer__header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-fileviewer__header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-fileviewer__header .sendbird-fileviewer__header-left { - padding: 16px 0px 16px 20px; - display: flex; - flex: 1; } - .sendbird-fileviewer__header .sendbird-fileviewer__header-right { - display: flex; - width: 160px; - justify-content: flex-end; } - .sendbird-fileviewer__header .sendbird-fileviewer__header-download, - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete, - .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - width: 64px; - padding: 21px; - box-sizing: border-box; - cursor: pointer; } - .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--light - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--light - .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-download path, .sendbird-theme--dark - .sendbird-fileviewer__header .sendbird-fileviewer__header-delete path, .sendbird-theme--dark - .sendbird-fileviewer__header .sendbird-fileviewer__header-close path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - border-left: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-fileviewer__header .sendbird-fileviewer__header-close { - border-left: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-fileviewer__header-avatar { - margin-right: 8px; } - -.sendbird-fileviewer__header-actions { - right: 0; - display: flex; - flex-direction: row; } - -.sendbird-fileviewer__header-filename { - max-width: 500px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - padding-top: 2px; } - -.sendbird-fileviewer__header-sendername { - max-width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - margin-left: 8px; - padding-top: 5px; } - -.sendbird-fileviewer__content { - height: calc(100% - 72px); - margin-top: 8px; - overflow-y: auto; - display: flex; - align-items: center; - justify-content: center; } - .sendbird-fileviewer__content .sendbird-fileviewer__video { - max-width: 100%; - max-height: 100%; } - .sendbird-fileviewer__content .sendbird-fileviewer__img { - max-width: 90%; - max-height: 90%; } - .sendbird-fileviewer__content .sendbird-fileviewer__unsupported { - max-width: 100%; - max-height: 100%; - display: flex; - justify-content: center; - align-items: center; } - -.sendbird-unknown-message { - position: relative; - line-height: 0px; } - .sendbird-unknown-message--outgoing { - text-align: right; } - .sendbird-unknown-message--incoming { - text-align: left; } - -.sendbird-outgoing-unknown-message { - position: relative; - right: 0px; - display: inline-block; - text-align: right; - padding-left: 36px; - box-sizing: border-box; } - .sendbird-outgoing-unknown-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-outgoing-unknown-message:hover .sendbird-outgoing-unknown-message__more { - display: block; } - .sendbird-outgoing-unknown-message--left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__more { - display: none; - position: absolute; - top: 4px; - right: 4px; } - .sendbird-outgoing-unknown-message--left-padding .sendbird-outgoing-unknown-message__message-status { - position: absolute; - text-align: right; - right: 4px; - bottom: 4px; } - .sendbird-outgoing-unknown-message__body { - display: flex; - flex-direction: column; } - .sendbird-outgoing-unknown-message__body__text-balloon { - box-sizing: border-box; - text-align: left; - border-radius: 16px; - padding: 8px 12px; - width: 198px; - height: 56px; } - .sendbird-theme--light .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-outgoing-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - -.sendbird-incoming-unknown-message { - position: relative; - left: 0px; - display: flex; - flex-direction: row; - text-align: left; } - .sendbird-incoming-unknown-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-unknown-message:hover .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-incoming-unknown-message__left { - width: 38px; } - .sendbird-incoming-unknown-message__left__sender-profile-image { - position: absolute; - bottom: 4px; } - .sendbird-incoming-unknown-message__body { - width: 198px; - display: flex; - flex-direction: column; } - .sendbird-incoming-unknown-message__body__sender-name { - margin-left: 10px; - margin-bottom: 4px; } - .sendbird-incoming-unknown-message__body__text-balloon { - width: 198px; - height: 56px; - border-radius: 16px; - text-align: left; - padding: 8px 12px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-unknown-message__body__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-unknown-message--right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-unknown-message--right-padding .sendbird-incoming-unknown-message__sent-at { - position: absolute; - left: 4px; - bottom: 4px; } - -.sendbird-theme--light .sendbird-link-label { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-link-label { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-link-label:active, .sendbird-theme--light .sendbird-link-label:visited, .sendbird-theme--light .sendbird-link-label:focus { - color: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-link-label:active, .sendbird-theme--dark .sendbird-link-label:visited, .sendbird-theme--dark .sendbird-link-label:focus { - color: var(--sendbird-dark-ondark-01); } - -.sendbird-link-label:focus { - outline: none; } - -.sendbird-link-label__label { - display: inline; } - -.sendbird-og-message { - position: relative; } - .sendbird-og-message--outgoing { - text-align: right; - line-height: 0px; } - .sendbird-og-message--incoming { - text-align: left; } - -.sendbird-outgoing-og-message { - position: relative; - right: 0px; - display: inline-block; - box-sizing: border-box; - text-align: right; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message__og-tag__url .sendbird-outgoing-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - display: inline-block; - width: 296px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-light-primary-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-dark-primary-400); } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-400); } - .sendbird-outgoing-og-message:hover .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { - display: block; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding { - position: relative; - width: 68px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more { - display: none; - position: absolute; - top: 2px; - right: 4px; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__more[class*='--pressed'] { - display: block !important; } - .sendbird-outgoing-og-message .sendbird-outgoing-og-message--left-padding .sendbird-outgoing-og-message__message-status { - position: absolute; - right: 4px; - bottom: 4px; - text-align: right; } - .sendbird-outgoing-og-message__text-balloon { - box-sizing: border-box; - width: 320px; - padding: 8px 12px; - border-radius: 16px 16px 0px 0px; - word-break: break-all; - text-align: left; } - .sendbird-theme--light .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__text-balloon { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-outgoing-og-message__thumbnail--disabled:hover { - cursor: not-allowed !important; } - .sendbird-outgoing-og-message__thumbnail { - width: 320px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-outgoing-og-message__thumbnail { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__thumbnail { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__thumbnail__image__placeholder { - width: 320px; - height: 160px; - display: flex; - justify-content: center; - align-items: center; } - .sendbird-outgoing-og-message__thumbnail:hover { - cursor: pointer; } - .sendbird-outgoing-og-message__thumbnail:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag--disabled:hover { - cursor: not-allowed !important; } - .sendbird-outgoing-og-message__og-tag { - padding: 8px 12px 12px 12px; - border-radius: 0px 0px 16px 16px; - text-align: left; - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag { - background-color: var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__og-tag__title { - max-height: 150px; - overflow-y: hidden; - margin-bottom: 4px; } - .sendbird-outgoing-og-message__og-tag__description { - margin-bottom: 8px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-outgoing-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions--wrapper:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions { - margin: 8px -12px -12px -12px; - width: 320px; } - .sendbird-theme--light .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-outgoing-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-500); } - .sendbird-outgoing-og-message__og-tag__emoji-reactions:hover { - cursor: default; } - .sendbird-outgoing-og-message__og-tag__emoji-reactions:focus { - outline: none; } - .sendbird-outgoing-og-message__og-tag:hover { - cursor: pointer; } - .sendbird-outgoing-og-message__og-tag:focus { - outline: none; } - -.sendbird-og-message-word { - display: inline; - margin: 0px 2px; } - -.sendbird-incoming-og-message { - position: relative; - left: 0px; - display: inline-block; - box-sizing: border-box; - text-align: left; - padding-left: 40px; } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-400); } - .sendbird-incoming-og-message:hover .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { - display: block; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner { - position: relative; - display: flex; - flex-direction: row; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body { - position: relative; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__avatar { - position: absolute; - bottom: 4px; - left: -40px; - cursor: pointer; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__sender-name { - margin-left: 12px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - box-sizing: border-box; - max-width: 320px; - padding: 8px 12px; - border-radius: 16px 16px 0px 0px; - word-break: break-all; - text-align: left; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__text-balloon { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail--disabled:hover { - cursor: not-allowed !important; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail .sendbird-incoming-og-message__thumbnail__image__placeholder { - width: 320px; - height: 160px; - display: flex; - justify-content: center; - align-items: center; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:hover { - cursor: pointer; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__thumbnail:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag--disabled:hover { - cursor: not-allowed !important; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - padding: 8px 12px 12px 12px; - border-radius: 0px 0px 16px 16px; - text-align: left; - box-sizing: border-box; - width: 320px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag { - background-color: var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__title { - max-height: 150px; - overflow-y: hidden; - margin-bottom: 4px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__description { - margin-bottom: 8px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__url .sendbird-incoming-og-message__og-tag__url__label { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - display: inline-block; - width: 296px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - margin: 8px -12px -12px -12px; } - .sendbird-theme--light .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions { - border: 1px solid var(--sendbird-dark-background-500); } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:hover { - cursor: default; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--body .sendbird-incoming-og-message__og-tag .sendbird-incoming-og-message__og-tag__emoji-reactions--wrapper .sendbird-incoming-og-message__og-tag__emoji-reactions:focus { - outline: none; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding { - position: relative; - width: 68px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__sent-at { - position: absolute; - bottom: 4px; - left: 4px; } - .sendbird-incoming-og-message .sendbird-incoming-og-message--inner .sendbird-incoming-og-message--right-padding .sendbird-incoming-og-message__more { - position: absolute; - top: 18px; - left: 4px; - display: none; } - -.sendbird-notification { - margin-top: 8px; - margin-left: 24px; - margin-right: 24px; - border-radius: 4px; - padding: 0px 2px; - height: 32px; - display: flex; - align-items: center; - justify-content: center; } - .sendbird-theme--light .sendbird-notification { - background-color: var(--sendbird-light-primary-300); } - .sendbird-theme--dark .sendbird-notification { - background-color: var(--sendbird-dark-primary-200); } - .sendbird-notification:hover { - cursor: pointer; } - .sendbird-theme--light .sendbird-notification:hover { - background-color: var(--sendbird-light-primary-400); } - .sendbird-theme--dark .sendbird-notification:hover { - background-color: var(--sendbird-dark-primary-300); } - .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen { - background-color: var(--sendbird-light-information-100); } - .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen { - background-color: var(--sendbird-dark-information-100); } - .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { - color: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text { - color: var(--sendbird-dark-onlight-01); } - .sendbird-notification .sendbird-notification__text { - display: flex; - align-items: center; - justify-content: center; - margin-right: 8px; } - -.sendbird-conversation__connection-status { - display: flex; - align-items: center; - padding-top: 5px; } - -.sendbird-chat-header { - position: relative; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - height: 64px; - min-height: 64px; - padding-left: 20px; - padding-right: 16px; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-theme--light .sendbird-chat-header { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-chat-header { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-chat-header__left { - margin-right: 24px; } - .sendbird-chat-header__left, .sendbird-chat-header__right { - overflow: hidden; - display: flex; - flex-direction: row; - align-items: center; } - .sendbird-chat-header .sendbird-chat-header__title { - margin-left: 8px; - margin-right: 16px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - max-width: 780px; } - .sendbird-chat-header .sendbird-chat-header__subtitle { - max-width: 240px; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-chat-header .sendbird-chat-header__active { - margin-right: 4px; - width: 8px; - height: 8px; - border-radius: 4px; } - .sendbird-theme--light .sendbird-chat-header .sendbird-chat-header__active { - background-color: var(--sendbird-light-secondary-300); } - .sendbird-theme--dark .sendbird-chat-header .sendbird-chat-header__active { - background-color: var(--sendbird-dark-secondary-200); } - .sendbird-chat-header .sendbird-chat-header__mute { - margin-right: 26px; } - .sendbird-chat-header .sendbird-iconbutton--pressed { - background-color: inherit; } - -.sendbird-channel-settings { - height: 100%; - width: 320px; - display: inline-block; } - .sendbird-theme--light .sendbird-channel-settings { - background-color: var(--sendbird-light-background-50); - border: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings { - background-color: var(--sendbird-dark-background-600); - border: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__header-icon { - cursor: pointer; - position: absolute; - top: 18px; - right: 21px; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header-icon .sendbird-channel-settings__close-icon path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-channel-settings .sendbird-channel-settings__members .sendbird-badge__text { - margin-top: -2px; } - .sendbird-channel-settings .sendbird-channel-settings__header { - height: 64px; - min-height: 64px; - position: relative; - padding: 20px 24px; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__header { - border-bottom: solid 1px var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__header { - border-bottom: solid 1px var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__scroll-area { - display: flex; - flex-grow: 1; - flex-direction: column; - height: calc(100% - 64px); - overflow-y: auto; } - .sendbird-channel-settings .sendbird-channel-settings__panel-item { - cursor: pointer; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-item { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-item { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-channel-settings .sendbird-channel-settings__panel-item:focus { - outline: none; } - .sendbird-channel-settings .sendbird-channel-settings__panel-item.sendbird-channel-settings__panel-item__disabled { - cursor: not-allowed; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left, - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { - position: absolute; - top: 10px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-left { - left: 16px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon-right { - right: 16px; } - .sendbird-channel-settings .sendbird-channel-settings__panel-icon--open { - transform: rotate(90deg); } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { - fill: var(--sendbird-light-onlight-01); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon--chevron path { - fill: var(--sendbird-dark-ondark-01); } - .sendbird-theme--light .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { - fill: var(--sendbird-light-error-300); } - .sendbird-theme--dark .sendbird-channel-settings .sendbird-channel-settings__panel-icon__leave path { - fill: var(--sendbird-dark-error-300); } - -.sendbird-channel-profile { - position: relative; - text-align: center; - padding: 32px 40px 27px 40px; } - .sendbird-theme--light .sendbird-channel-profile { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-channel-profile { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-channel-profile .sendbird-channel-profile--inner { - height: 92px; } - .sendbird-channel-profile .sendbird-channel-profile__avatar { - margin-bottom: 16px; - text-align: center; } - .sendbird-channel-profile .sendbird-channel-profile__title { - max-width: 240px; - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; - height: 18px; } - .sendbird-channel-profile .sendbird-channel-profile__edit { - position: absolute; - top: 10px; - right: 16px; } - -.channel-profile-form .channel-profile-form__img-section { - position: relative; } - -.channel-profile-form .channel-profile-form__avatar-button { - position: absolute; - top: 54px; - left: 96px; } - -.channel-profile-form .channel-profile-form__avatar { - margin-top: 16px; } - -.channel-profile-form .channel-profile-form__name-section { - margin-top: 12px; } - .channel-profile-form .channel-profile-form__name-section .sendbird-input { - height: 40px; } - -.sendbird-members-accordion { - padding: 8px 16px 16px 16px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-members-accordion { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-members-accordion { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-members-accordion .sendbird-members-accordion__member { - position: relative; - padding: 12px 0px 12px 44px; - height: 40px; - box-sizing: border-box; } - .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label { - max-width: 240px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-members-accordion .sendbird-members-accordion__member-avatar { - position: absolute; - left: 0; - top: 10px; - cursor: pointer; } - .sendbird-members-accordion .sendbird-members-accordion__footer { - display: flex; - justify-content: flex-start; - margin-top: 8px; } - .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members { - margin-right: 16px; } - -.sendbird-more-members__popup-scroll { - max-height: 420px; - overflow-y: auto; } - -.sendbird-channel-settings__operator .sendbird-channel-settings__accordion-icon { - position: absolute; - left: 14px; } - -.sendbird-channel-settings__operator .sendbird-accordion__panel-heder { - position: relative; } - -.sendbird-channel-settings__empty-list { - text-align: center; - margin-top: 12px; - margin-bottom: 4px; - display: block; } - -.sendbird-channel-settings-accordion__footer { - padding-top: 16px; - display: flex; - justify-content: left; - padding-left: 12px; } - .sendbird-channel-settings-accordion__footer .sendbird-button:nth-child(2) { - margin-left: 8px; } - -.sendbird-channel-settings__freeze { - max-width: 320px; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-channel-settings__freeze { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-channel-settings__freeze { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - -.sendbird-channel-settings__frozen-icon { - position: absolute; - right: 20px; - top: 12px; } - .sendbird-channel-settings__frozen-icon .sendbird-icon { - cursor: pointer; } - -.sendbird-channel-settings__members-list .sendbird-badge, -.sendbird-channel-settings__members .sendbird-badge { - position: absolute; - right: 44px; - top: 12px; } - .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--light - .sendbird-channel-settings__members .sendbird-badge { - background-color: var(--sendbird-light-background-200); } - .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge, .sendbird-theme--dark - .sendbird-channel-settings__members .sendbird-badge { - background-color: var(--sendbird-dark-background-400); } - .sendbird-theme--light .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--light - .sendbird-channel-settings__members .sendbird-badge .sendbird-label { - color: var(--sendbird-light-onlight-02); } - .sendbird-theme--dark .sendbird-channel-settings__members-list .sendbird-badge .sendbird-label, .sendbird-theme--dark - .sendbird-channel-settings__members .sendbird-badge .sendbird-label { - color: var(--sendbird-dark-ondark-02); } - -.sendbird-accordion { - padding: 8px 0px 16px 0px; - position: relative; - box-sizing: border-box; } - .sendbird-theme--light .sendbird-accordion { - border-bottom: 1px solid var(--sendbird-light-onlight-04); - background-color: var(--sendbird-light-background-50); } - .sendbird-theme--dark .sendbird-accordion { - border-bottom: 1px solid var(--sendbird-dark-ondark-04); - background-color: var(--sendbird-dark-background-600); } - .sendbird-accordion .sendbird-accordion__member { - position: relative; - padding: 12px 0px 12px 44px; - height: 40px; - box-sizing: border-box; } - .sendbird-accordion .sendbird-accordion__footer { - display: flex; - justify-content: flex-start; - margin-top: 8px; } - -.sendbird-accordion__panel-heder { - cursor: pointer; - position: relative; - padding: 12px 22px 10px 56px; } - .sendbird-theme--light .sendbird-accordion__panel-heder { - background-color: var(--sendbird-light-background-50); - border-bottom: 1px solid var(--sendbird-light-onlight-04); } - .sendbird-theme--dark .sendbird-accordion__panel-heder { - background-color: var(--sendbird-dark-background-600); - border-bottom: 1px solid var(--sendbird-dark-ondark-04); } - .sendbird-accordion__panel-heder:focus { - outline: none; } - .sendbird-accordion__panel-heder.sendbird-accordion__panel-item__disabled { - cursor: not-allowed; } - -.sendbird-accordion__panel-icon-left, -.sendbird-accordion__panel-icon-right { - position: absolute; - top: 10px; } - -.sendbird-accordion__panel-icon-left { - left: 16px; } - -.sendbird-accordion__panel-icon-right { - right: 16px; } - -.sendbird-accordion__panel-icon--open { - transform: rotate(90deg); } - -.sendbird-theme--light .sendbird-accordion__panel-icon--chevron path { - fill: var(--sendbird-light-onlight-01); } - -.sendbird-theme--dark .sendbird-accordion__panel-icon--chevron path { - fill: var(--sendbird-dark-ondark-01); } - -.sendbird-theme--light .sendbird-accordion__panel-icon__leave path { - fill: var(--sendbird-light-error-300); } - -.sendbird-theme--dark .sendbird-accordion__panel-icon__leave path { - fill: var(--sendbird-dark-error-300); } - -.sendbird-user-list-item--small { - display: block; - position: relative; - box-sizing: border-box; - height: 40px; } - .sendbird-user-list-item--small__avatar { - cursor: pointer; - position: absolute; - top: 10px; - left: 12px; } - .sendbird-user-list-item--small .sendbird-muted-avatar { - position: absolute; - top: 10px; - left: 12px; - z-index: 2; - pointer-events: none; } - .sendbird-user-list-item--small__title { - position: absolute; - top: 10px; - left: 54px; - width: 160px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item--small__subtitle { - position: absolute; - top: 23px; - left: 140px; - max-width: 237px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .sendbird-user-list-item--small__checkbox { - position: absolute; - top: 16px; - right: 16px; } - .sendbird-user-list-item--small__action { - display: none; - position: absolute; - right: 10px; - top: 4px; } - .sendbird-user-list-item--small__operator { - position: absolute; - right: 24px; - top: 10px; } - .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed { - background-color: var(--sendbird-light-background-100); } - .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed { - background-color: var(--sendbird-dark-background-500); } - .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action { - display: block; } - .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator { - display: none; } - .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton { - background-color: var(--sendbird-dark-background-700); } - -.sendbird-app__wrap { - width: 100%; - height: 100%; - display: flex; } - .sendbird-app__wrap .sendbird-app__conversation-wrap { - flex: 1; - position: relative; } - .sendbird-app__wrap .sendbird-app__channellist-wrap { - max-width: 320px; } - .sendbird-theme--light .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { - background-color: var(--sendbird-light-primary-100); } - .sendbird-theme--dark .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info { - background-color: var(--sendbird-dark-background-700); } - .sendbird-app__wrap .sendbird-channel-settings { - border-left: none; } - .sendbird-app__wrap .sendbird-channel-settings .sendbird-channel-settings__header { - height: 65px; } - -/*# sourceMappingURL=index.es.css.map */ \ No newline at end of file diff --git a/dist/index.es.css.map b/dist/index.es.css.map deleted file mode 100644 index 29aeeb6..0000000 --- a/dist/index.es.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.scss","color.scss","add-channel.scss","muted-avatar-overlay.scss","conversation-scroll.scss","notification.scss","channel-profile.scss","members-accordion.scss","user-list-item.scss"],"names":[],"mappings":"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","file":"index.es.css","sourcesContent":[".sendbird-app__wrap {\n width: 100%;\n height: 100%;\n display: flex; }\n .sendbird-app__wrap .sendbird-app__conversation-wrap {\n flex: 1;\n position: relative; }\n .sendbird-app__wrap .sendbird-app__channellist-wrap {\n max-width: 320px; }\n .sendbird-theme--light .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info {\n background-color: var(--sendbird-light-primary-100); }\n .sendbird-theme--dark .sendbird-app__wrap .sendbird-app__conversation--settings-open .sendbird-chat-header__info {\n background-color: var(--sendbird-dark-background-700); }\n .sendbird-app__wrap .sendbird-channel-settings {\n border-left: none; }\n .sendbird-app__wrap .sendbird-channel-settings .sendbird-channel-settings__header {\n height: 65px; }\n",".sendbird-theme--light .sendbird-color--onbackground-1 {\n color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1 {\n color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-light-onlight-01); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-1--background-color {\n background-color: var(--sendbird-dark-ondark-01); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2 {\n color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2 {\n color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-light-onlight-02); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-2--background-color {\n background-color: var(--sendbird-dark-ondark-02); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3 {\n color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3 {\n color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-light-onlight-03); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-3--background-color {\n background-color: var(--sendbird-dark-ondark-03); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4 {\n color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4 {\n color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-light-onlight-04); }\n\n.sendbird-theme--dark .sendbird-color--onbackground-4--background-color {\n background-color: var(--sendbird-dark-ondark-04); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1 {\n color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1 {\n color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-light-ondark-01); }\n\n.sendbird-theme--dark .sendbird-color--oncontent-1--background-color {\n background-color: var(--sendbird-dark-onlight-01); }\n\n.sendbird-theme--light .sendbird-color--primary {\n color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary {\n color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--primary--background-color {\n background-color: var(--sendbird-light-primary-300); }\n\n.sendbird-theme--dark .sendbird-color--primary--background-color {\n background-color: var(--sendbird-dark-primary-200); }\n\n.sendbird-theme--light .sendbird-color--error {\n color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error {\n color: var(--sendbird-dark-error-300); }\n\n.sendbird-theme--light .sendbird-color--error--background-color {\n background-color: var(--sendbird-light-error-300); }\n\n.sendbird-theme--dark .sendbird-color--error--background-color {\n background-color: var(--sendbird-dark-error-300); }\n",".sendbird-add-channel__rectangle-wrap {\n margin-top: 26px; }\n\n.sendbird-add-channel__rectangle-footer {\n text-align: right;\n margin-top: 32px; }\n\n.sendbird-add-channel__rectangle {\n width: 432px;\n height: 72px;\n border-radius: 4px;\n margin-bottom: 8px;\n padding: 25px 72px;\n position: relative;\n box-sizing: border-box;\n cursor: pointer; }\n .sendbird-theme--light .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-light-onlight-04); }\n .sendbird-theme--dark .sendbird-add-channel__rectangle {\n border: 1px solid var(--sendbird-dark-ondark-04); }\n .sendbird-add-channel__rectangle .sendbird-icon {\n position: absolute;\n left: 22px;\n top: 24px; }\n",".sendbird-muted-avatar {\n border-radius: 50%;\n display: inline-block; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon {\n position: relative; }\n .sendbird-muted-avatar .sendbird-muted-avatar__icon .sendbird-icon {\n position: absolute;\n top: 4px;\n left: 4px; }\n .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n opacity: .5;\n position: absolute;\n border-radius: 50%;\n top: 0;\n left: 0; }\n .sendbird-theme--light .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-muted-avatar .sendbird-muted-avatar__bg {\n background-color: var(--sendbird-dark-primary-300); }\n",".sendbird-conversation__messages .sendbird-conversation__messages-padding {\n padding-left: 24px;\n padding-right: 24px; }\n\n.sendbird-conversation__messages .sendbird-separator,\n.sendbird-conversation__messages .sendbird-admin-message {\n padding-top: 8px;\n padding-bottom: 8px; }\n",".sendbird-notification {\n margin-top: 8px;\n margin-left: 24px;\n margin-right: 24px;\n border-radius: 4px;\n padding: 0px 2px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center; }\n .sendbird-theme--light .sendbird-notification {\n background-color: var(--sendbird-light-primary-300); }\n .sendbird-theme--dark .sendbird-notification {\n background-color: var(--sendbird-dark-primary-200); }\n .sendbird-notification:hover {\n cursor: pointer; }\n .sendbird-theme--light .sendbird-notification:hover {\n background-color: var(--sendbird-light-primary-400); }\n .sendbird-theme--dark .sendbird-notification:hover {\n background-color: var(--sendbird-dark-primary-300); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-light-information-100); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen {\n background-color: var(--sendbird-dark-information-100); }\n .sendbird-theme--light .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-light-onlight-01); }\n .sendbird-theme--dark .sendbird-notification.sendbird-notification--frozen .sendbird-notification__text {\n color: var(--sendbird-dark-onlight-01); }\n .sendbird-notification .sendbird-notification__text {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 8px; }\n",".sendbird-channel-profile {\n position: relative;\n text-align: center;\n padding: 32px 40px 27px 40px; }\n .sendbird-theme--light .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-channel-profile {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-channel-profile .sendbird-channel-profile--inner {\n height: 92px; }\n .sendbird-channel-profile .sendbird-channel-profile__avatar {\n margin-bottom: 16px;\n text-align: center; }\n .sendbird-channel-profile .sendbird-channel-profile__title {\n max-width: 240px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 18px; }\n .sendbird-channel-profile .sendbird-channel-profile__edit {\n position: absolute;\n top: 10px;\n right: 16px; }\n\n.channel-profile-form .channel-profile-form__img-section {\n position: relative; }\n\n.channel-profile-form .channel-profile-form__avatar-button {\n position: absolute;\n top: 54px;\n left: 96px; }\n\n.channel-profile-form .channel-profile-form__avatar {\n margin-top: 16px; }\n\n.channel-profile-form .channel-profile-form__name-section {\n margin-top: 12px; }\n .channel-profile-form .channel-profile-form__name-section .sendbird-input {\n height: 40px; }\n",".sendbird-members-accordion {\n padding: 8px 16px 16px 16px;\n position: relative;\n box-sizing: border-box; }\n .sendbird-theme--light .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-light-onlight-04);\n background-color: var(--sendbird-light-background-50); }\n .sendbird-theme--dark .sendbird-members-accordion {\n border-bottom: 1px solid var(--sendbird-dark-ondark-04);\n background-color: var(--sendbird-dark-background-600); }\n .sendbird-members-accordion .sendbird-members-accordion__member {\n position: relative;\n padding: 12px 0px 12px 44px;\n height: 40px;\n box-sizing: border-box; }\n .sendbird-members-accordion .sendbird-members-accordion__member .sendbird-label {\n max-width: 240px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-members-accordion .sendbird-members-accordion__member-avatar {\n position: absolute;\n left: 0;\n top: 10px;\n cursor: pointer; }\n .sendbird-members-accordion .sendbird-members-accordion__footer {\n display: flex;\n justify-content: flex-start;\n margin-top: 8px; }\n .sendbird-members-accordion .sendbird-members-accordion__footer .sendbird-members-accordion__footer__all-members {\n margin-right: 16px; }\n\n.sendbird-more-members__popup-scroll {\n max-height: 420px;\n overflow-y: auto; }\n",".sendbird-user-list-item--small {\n display: block;\n position: relative;\n box-sizing: border-box;\n height: 40px; }\n .sendbird-user-list-item--small__avatar {\n cursor: pointer;\n position: absolute;\n top: 10px;\n left: 12px; }\n .sendbird-user-list-item--small .sendbird-muted-avatar {\n position: absolute;\n top: 10px;\n left: 12px;\n z-index: 2;\n pointer-events: none; }\n .sendbird-user-list-item--small__title {\n position: absolute;\n top: 10px;\n left: 54px;\n width: 160px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__subtitle {\n position: absolute;\n top: 23px;\n left: 140px;\n max-width: 237px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .sendbird-user-list-item--small__checkbox {\n position: absolute;\n top: 16px;\n right: 16px; }\n .sendbird-user-list-item--small__action {\n display: none;\n position: absolute;\n right: 10px;\n top: 4px; }\n .sendbird-user-list-item--small__operator {\n position: absolute;\n right: 24px;\n top: 10px; }\n .sendbird-theme--light .sendbird-user-list-item--small:hover, .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-light-background-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small:hover, .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed {\n background-color: var(--sendbird-dark-background-500); }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__action, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__action {\n display: block; }\n .sendbird-user-list-item--small:hover .sendbird-user-list-item--small__operator, .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-user-list-item--small__operator {\n display: none; }\n .sendbird-theme--light .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-light-primary-100); }\n .sendbird-theme--dark .sendbird-user-list-item--small.sendbird-icon--pressed .sendbird-iconbutton {\n background-color: var(--sendbird-dark-background-700); }\n"]} \ No newline at end of file diff --git a/dist/index.es.js b/dist/index.es.js deleted file mode 100644 index 60afa66..0000000 --- a/dist/index.es.js +++ /dev/null @@ -1,14565 +0,0 @@ -import React, { useLayoutEffect, useState, useEffect, useReducer, useMemo, useContext, useRef, Component, useCallback } from 'react'; -import PropTypes from 'prop-types'; -import Sb from 'sendbird'; -import cssVars from 'css-vars-ponyfill'; -import isToday from 'date-fns/isToday'; -import format from 'date-fns/format'; -import isYesterday from 'date-fns/isYesterday'; -import { createPortal } from 'react-dom'; -import isSameDay from 'date-fns/isSameDay'; -import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict'; - -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} - -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} - -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys.push.apply(keys, symbols); - } - - return keys; -} - -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - - return target; -} - -function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) _setPrototypeOf(subClass, superClass); -} - -function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); -} - -function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); -} - -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; -} - -function _possibleConstructorReturn(self, call) { - if (call && (typeof call === "object" || typeof call === "function")) { - return call; - } - - return _assertThisInitialized(self); -} - -function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); -} - -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); -} - -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } -} - -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} - -function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); -} - -function _iterableToArrayLimit(arr, i) { - if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { - return; - } - - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; -} - -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); -} - -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); -} - -var SendbirdSdkContext = React.createContext(); - -var withSendbirdContext = function withSendbirdContext(OriginalComponent, mapStoreToProps) { - var ContextAwareComponent = function ContextAwareComponent(props) { - return React.createElement(SendbirdSdkContext.Consumer, null, function (context) { - if (mapStoreToProps && typeof mapStoreToProps !== 'function') { - // eslint-disable-next-line no-console - console.warn('Second parameter to withSendbirdContext must be a pure function'); - } // todo - memoize - - - var mergedProps = mapStoreToProps && typeof mapStoreToProps === 'function' ? _objectSpread2({}, mapStoreToProps(context), {}, props) : _objectSpread2({}, context, {}, props); // eslint-disable-next-line react/jsx-props-no-spreading - - return React.createElement(OriginalComponent, mergedProps); - }); - }; - - var componentName = OriginalComponent.displayName || OriginalComponent.name || 'Component'; - ContextAwareComponent.displayName = "SendbirdAware".concat(componentName); - return ContextAwareComponent; -}; - -var INIT_SDK = 'INIT_SDK'; -var SET_SDK_LOADING = 'SET_SDK_LOADING'; -var RESET_SDK = 'RESET_SDK'; -var SDK_ERROR = 'SDK_ERROR'; - -var INIT_USER = 'INIT_USER'; -var RESET_USER = 'RESET_USER'; -var UPDATE_USER_INFO = 'UPDATE_USER_INFO'; - -var APP_VERSION_STRING = '1.3.0'; -var disconnectSdk = function disconnectSdk(_ref) { - var sdkDispatcher = _ref.sdkDispatcher, - userDispatcher = _ref.userDispatcher, - sdk = _ref.sdk, - onDisconnect = _ref.onDisconnect; - sdkDispatcher({ - type: SET_SDK_LOADING, - payload: true - }); - - if (sdk && sdk.disconnect) { - sdk.disconnect().then(function () { - sdkDispatcher({ - type: RESET_SDK - }); - userDispatcher({ - type: RESET_USER - }); - }).finally(function () { - onDisconnect(); - }); - } else { - onDisconnect(); - } -}; -var handleConnection = function handleConnection(_ref2, dispatchers) { - var userId = _ref2.userId, - appId = _ref2.appId, - nickname = _ref2.nickname, - profileUrl = _ref2.profileUrl, - accessToken = _ref2.accessToken, - sdk = _ref2.sdk, - logger = _ref2.logger; - var sdkDispatcher = dispatchers.sdkDispatcher, - userDispatcher = dispatchers.userDispatcher; - disconnectSdk({ - sdkDispatcher: sdkDispatcher, - userDispatcher: userDispatcher, - sdk: sdk, - logger: logger, - onDisconnect: function onDisconnect() { - logger.info('Setup connection'); - sdkDispatcher({ - type: SET_SDK_LOADING, - payload: true - }); - - if (userId && appId) { - var newSdk = new Sb({ - appId: appId - }); // to check if code is released version from rollup and *not from storybook* - // see rollup config file - - { - newSdk.addExtension('sb_uikit', APP_VERSION_STRING); - } - - var connectCbSucess = function connectCbSucess(user) { - sdkDispatcher({ - type: INIT_SDK, - payload: newSdk - }); - userDispatcher({ - type: INIT_USER, - payload: user - }); // use nickname/profileUrl if provided - // or set userID as nickname - - var newNickName = nickname || user.nickname; - var newProfileUrl = profileUrl || user.profileUrl; - newSdk.updateCurrentUserInfo(newNickName, newProfileUrl).then(function (namedUser) { - userDispatcher({ - type: UPDATE_USER_INFO, - payload: namedUser - }); - }); - }; - - var connectCbError = function connectCbError(e) { - logger.error('Connection failed', "".concat(e)); - sdkDispatcher({ - type: RESET_SDK - }); - sdkDispatcher({ - type: RESET_USER - }); - sdkDispatcher({ - type: SDK_ERROR - }); - }; - - if (accessToken) { - newSdk.connect(userId, accessToken).then(function (res) { - return connectCbSucess(res); - }).catch(function (err) { - return connectCbError(err); - }); - } else { - newSdk.connect(userId).then(function (res) { - return connectCbSucess(res); - }).catch(function (err) { - return connectCbError(err); - }); - } - } else { - sdkDispatcher({ - type: SDK_ERROR - }); - logger.warning('Connection failed', 'UserId or appId missing'); - } - } - }); -}; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; -} - -var isEmpty = function isEmpty(obj) { - if (obj === null || obj === undefined) { - return true; - } - - for (var prop in obj) { - if (obj.hasOwnProperty(prop)) { - return false; - } - } - - return JSON.stringify(obj) === JSON.stringify({}); -}; - -var useTheme = function useTheme(overrides) { - useLayoutEffect(function () { - if (!isEmpty(overrides)) { - cssVars({ - variables: __assign({ - '--sendbird-dark-primary-500': '#4d2aa6', - '--sendbird-dark-primary-400': '#6440C4', - '--sendbird-dark-primary-300': '#7B53EF', - '--sendbird-dark-primary-200': '#9E8CF5', - '--sendbird-dark-primary-100': '#E2DFFF', - '--sendbird-dark-secondary-500': '#007A7A', - '--sendbird-dark-secondary-400': '#189A8D', - '--sendbird-dark-secondary-300': '#2EBA9F', - '--sendbird-dark-secondary-200': '#6FD6BE', - '--sendbird-dark-secondary-100': '#AEF2DC', - '--sendbird-dark-information-100': '#b2d9ff', - '--sendbird-dark-error-500': '#A30E2D', - '--sendbird-dark-error-400': '#C11F41', - '--sendbird-dark-error-300': '#E53157', - '--sendbird-dark-error-200': '#FF6183', - '--sendbird-dark-error-100': '#FFABBD', - '--sendbird-dark-background-700': '#000000', - '--sendbird-dark-background-600': '#161616', - '--sendbird-dark-background-500': '#2C2C2C', - '--sendbird-dark-background-400': '#393939', - '--sendbird-dark-background-300': '#A8A8A8', - '--sendbird-dark-background-200': '#D9D9D9', - '--sendbird-dark-background-100': '#F0F0F0', - '--sendbird-dark-background-50': '#FFFFFF', - '--sendbird-dark-overlay': 'rgba(0, 0, 0, 0.32)', - '--sendbird-dark-onlight-01': 'rgba(0, 0, 0, 0.88)', - '--sendbird-dark-onlight-02': 'rgba(0, 0, 0, 0.50)', - '--sendbird-dark-onlight-03': 'rgba(0, 0, 0, 0.38)', - '--sendbird-dark-onlight-04': 'rgba(0, 0, 0, 0.12)', - '--sendbird-dark-ondark-01': 'rgba(255, 255, 255, 0.88)', - '--sendbird-dark-ondark-02': 'rgba(255, 255, 255, 0.50)', - '--sendbird-dark-ondark-03': 'rgba(255, 255, 255, 0.38)', - '--sendbird-dark-ondark-04': 'rgba(255, 255, 255, 0.12)', - '--sendbird-dark-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)', - '--sendbird-dark-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)', - '--sendbird-dark-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)', - '--sendbird-dark-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)', - '--sendbird-dark-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)', - '--sendbird-light-primary-500': '#4d2aa6', - '--sendbird-light-primary-400': '#6440C4', - '--sendbird-light-primary-300': '#7B53EF', - '--sendbird-light-primary-200': '#9E8CF5', - '--sendbird-light-primary-100': '#E2DFFF', - '--sendbird-light-secondary-500': '#007A7A', - '--sendbird-light-secondary-400': '#189A8D', - '--sendbird-light-secondary-300': '#2EBA9F', - '--sendbird-light-secondary-200': '#6FD6BE', - '--sendbird-light-secondary-100': '#AEF2DC', - '--sendbird-light-information-100': '#b2d9ff', - '--sendbird-light-error-500': '#A30E2D', - '--sendbird-light-error-400': '#C11F41', - '--sendbird-light-error-300': '#E53157', - '--sendbird-light-error-200': '#FF6183', - '--sendbird-light-error-100': '#FFABBD', - '--sendbird-light-background-700': '#000000', - '--sendbird-light-background-600': '#161616', - '--sendbird-light-background-500': '#2C2C2C', - '--sendbird-light-background-400': '#393939', - '--sendbird-light-background-300': '#A8A8A8', - '--sendbird-light-background-200': '#D9D9D9', - '--sendbird-light-background-100': '#F0F0F0', - '--sendbird-light-background-50': ' #FFFFFF', - '--sendbird-light-overlay': 'rgba(0, 0, 0, 0.32)', - '--sendbird-light-onlight-01': 'rgba(0, 0, 0, 0.88)', - '--sendbird-light-onlight-02': 'rgba(0, 0, 0, 0.50)', - '--sendbird-light-onlight-03': 'rgba(0, 0, 0, 0.38)', - '--sendbird-light-onlight-04': 'rgba(0, 0, 0, 0.12)', - '--sendbird-light-ondark-01': 'rgba(255, 255, 255, 0.88)', - '--sendbird-light-ondark-02': 'rgba(255, 255, 255, 0.50)', - '--sendbird-light-ondark-03': 'rgba(255, 255, 255, 0.38)', - '--sendbird-light-ondark-04': 'rgba(255, 255, 255, 0.12)', - '--sendbird-light-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)', - '--sendbird-light-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)', - '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)', - '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)', - '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)', - '--sendbird-light-theme-surface-2': '#EAEAEA' - }, overrides) - }); - } - }, [overrides]); -}; - -var sdkInitialState = { - initialized: false, - loading: false, - sdk: {}, - error: false -}; - -function reducer(state, action) { - switch (action.type) { - case SET_SDK_LOADING: - return _objectSpread2({}, state, { - initialized: false, - loading: action.payload - }); - - case SDK_ERROR: - return _objectSpread2({}, state, { - initialized: false, - loading: false, - error: true - }); - - case INIT_SDK: - return { - sdk: action.payload, - initialized: true, - loading: false, - error: false - }; - - case RESET_SDK: - return sdkInitialState; - - default: - return state; - } -} - -var userInitialState = { - initialized: false, - loading: false, - user: {} -}; - -function reducer$1(state, action) { - switch (action.type) { - case INIT_USER: - return { - initialized: true, - loading: false, - user: action.payload - }; - - case RESET_USER: - return userInitialState; - - case UPDATE_USER_INFO: - return _objectSpread2({}, state, { - user: action.payload - }); - - default: - return state; - } -} - -/* eslint-disable no-bitwise */ - -/* eslint-disable eqeqeq */ - -/* eslint-disable no-mixed-operators */ -// https://stackoverflow.com/a/2117523 -// used mainly for dom key generation -var uuidv4 = function uuidv4() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0; - var v = c === 'x' ? r : r & 0x3 | 0x8; - return v.toString(16); - }); -}; - -function useConnectionStatus(sdk, logger) { - var _useState = useState(true), - _useState2 = _slicedToArray(_useState, 2), - isOnline = _useState2[0], - setIsOnline = _useState2[1]; - - useEffect(function () { - var uniqueHandlerId = uuidv4(); - logger.warning('sdk changed', uniqueHandlerId); - var handler; - - if (sdk && sdk.ConnectionHandler) { - handler = new sdk.ConnectionHandler(); - - handler.onReconnectStarted = function () { - setIsOnline(false); - logger.warning('onReconnectStarted', { - isOnline: isOnline - }); - }; - - handler.onReconnectSucceeded = function () { - setIsOnline(true); - logger.warning('onReconnectSucceeded', { - isOnline: isOnline - }); - }; - - handler.onReconnectFailed = function () { - sdk.reconnect(); - logger.warning('onReconnectFailed'); - }; - - logger.info('Added ConnectionHandler', uniqueHandlerId); - sdk.addConnectionHandler(uniqueHandlerId, handler); - } - - return function () { - try { - sdk.removeConnectionHandler(uniqueHandlerId); - logger.info('Removed ConnectionHandler', uniqueHandlerId); - } catch (_unused) {// - } - }; - }, [sdk]); - useEffect(function () { - var tryReconnect = function tryReconnect() { - try { - logger.warning('Try reconnecting SDK'); - - if (sdk.getConnectionState() !== 'OPEN') { - // connection is not broken yet - sdk.reconnect(); - } - } catch (_unused2) {// - } - }; // addEventListener version - - - window.addEventListener('online', tryReconnect); - return function () { - window.removeEventListener('online', tryReconnect); - }; - }, [sdk]); // add offline-class to body - - useEffect(function () { - var body = document.querySelector('body'); - - if (!isOnline) { - try { - body.classList.add('sendbird__offline'); - logger.info('Added class sendbird__offline to body'); - } catch (e) {// - } - } else { - try { - body.classList.remove('sendbird__offline'); - logger.info('Removed class sendbird__offline from body'); - } catch (e) {// - } - } - }, [isOnline]); - return isOnline; -} - -var LOG_LEVELS = { - DEBUG: 'debug', - WARNING: 'warning', - ERROR: 'error', - INFO: 'info', - ALL: 'all' -}; - -var colorLog = function colorLog(level) { - switch (level) { - case LOG_LEVELS.WARNING: - return 'color: Orange'; - - case LOG_LEVELS.ERROR: - return 'color: Red'; - - default: - return 'color: Gray'; - } -}; - -var printLog = function printLog(_ref) { - var level = _ref.level, - title = _ref.title, - _ref$description = _ref.description, - description = _ref$description === void 0 ? '' : _ref$description; - // eslint-disable-next-line no-console - console.log("%c SendbirdUIKit | ".concat(level, " | ").concat(new Date().toISOString(), " | ").concat(title, " ").concat(description && '|'), colorLog(level), description); -}; -var getDefaultLogger = function getDefaultLogger() { - return { - info: function info() {}, - error: function error() {}, - warning: function warning() {} - }; -}; -var LoggerFactory = function LoggerFactory(lvl, customInterface) { - var logInterface = customInterface || printLog; - var lvlArray = Array.isArray(lvl) ? lvl : [lvl]; - - var applyLog = function applyLog(lgLvl) { - return function (title, description) { - return logInterface({ - level: lgLvl, - title: title, - description: description - }); - }; - }; - - var logger = lvlArray.reduce(function (accumulator, currentLvl) { - if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) { - return _objectSpread2({}, accumulator, { - info: applyLog(LOG_LEVELS.INFO), - error: applyLog(LOG_LEVELS.ERROR), - warning: applyLog(LOG_LEVELS.WARNING) - }); - } - - if (currentLvl === LOG_LEVELS.INFO) { - return _objectSpread2({}, accumulator, { - info: applyLog(LOG_LEVELS.INFO) - }); - } - - if (currentLvl === LOG_LEVELS.ERROR) { - return _objectSpread2({}, accumulator, { - error: applyLog(LOG_LEVELS.ERROR) - }); - } - - if (currentLvl === LOG_LEVELS.WARNING) { - return _objectSpread2({}, accumulator, { - warning: applyLog(LOG_LEVELS.WARNING) - }); - } - - return _objectSpread2({}, accumulator); - }, getDefaultLogger()); - return logger; -}; - -// https://davidwalsh.name/pubsub-javascript -var pubSubFactory = (function () { - var topics = {}; - var hOP = topics.hasOwnProperty; - return { - __getTopics: function __getTopics() { - return topics; - }, - subscribe: function subscribe(topic, listener) { - // Create the topic's object if not yet created - if (!hOP.call(topics, topic)) { - topics[topic] = []; - } // Add the listener to queue - - - var index = topics[topic].push(listener) - 1; // Provide handle back for removal of topic - - return { - remove: function remove() { - delete topics[topic][index]; - } - }; - }, - publish: function publish(topic, info) { - // If the topic doesn't exist, or there's no listeners in queue, just leave - if (!hOP.call(topics, topic)) { - return; - } // Cycle through topics queue, fire! - - - topics[topic].forEach(function (item) { - item(info !== undefined ? info : {}); - }); - } - }; -}); - -function useAppendDomNode() { - var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var rootSelector = arguments.length > 1 ? arguments[1] : undefined; - useEffect(function () { - var root = document.querySelector(rootSelector); - ids.forEach(function (id) { - var elem = document.createElement('div'); - elem.setAttribute('id', id); - root.appendChild(elem); - }); - return function () { - ids.forEach(function (id) { - var target = document.getElementById(id); - - if (target) { - root.removeChild(target); - } - }); - }; - }, []); -} - -var getStringSet = function getStringSet() { - var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en'; - var stringSet = { - en: { - TRYING_TO_CONNECT: 'Trying to connect…', - USER_PROFILE__MESSAGE: 'Message', - USER_PROFILE__USER_ID: 'User ID', - EDIT_PROFILE__TITLE: 'My profile', - EDIT_PROFILE__IMAGE_LABEL: 'Profile image', - EDIT_PROFILE__IMAGE_UPLOAD: 'Upload', - EDIT_PROFILE__NICKNAME_LABEL: 'Nickname', - EDIT_PROFILE__NICKNAME_PLACEHOLDER: 'Enter your nickname', - EDIT_PROFILE__USERID_LABEL: 'User ID', - EDIT_PROFILE__THEME_LABEL: 'Dark theme', - CHANNEL_LIST__TITLE: 'Channels', - CHANNEL__MESSAGE_INPUT__PLACE_HOLDER: 'Enter message', - CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED: 'Chat is unavailable in this channel', - CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED: 'Chat is unavailable because you are being muted', - CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE: 'new message(s) since', - CHANNEL__MESSAGE_LIST__NOTIFICATION__ON: 'on', - CHANNEL_SETTING__HEADER__TITLE: 'Channel information', - CHANNEL_SETTING__PROFILE__EDIT: 'Edit', - CHANNEL_SETTING__MEMBERS__TITLE: 'Members', - CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS: 'All members', - CHANNEL_SETTING__MEMBERS__INVITE_MEMBER: 'Invite users', - CHANNEL_SETTING__LEAVE_CHANNEL__TITLE: 'Leave channel', - CHANNEL_SETTING__OPERATORS__TITLE: 'Operators', - CHANNEL_SETTING__OPERATORS__TITLE_ALL: 'All operators', - CHANNEL_SETTING__OPERATORS__TITLE_ADD: 'Add operator', - CHANNEL_SETTING__MUTED_MEMBERS__TITLE: 'Muted members', - CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL: 'All muted members', - CHANNEL_SETTING__BANNED_MEMBERS__TITLE: 'Banned members', - CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL: 'All banned members', - CHANNEL_SETTING__FREEZE_CHANNEL: 'Freeze Channel', - BUTTON__CANCEL: 'Cancel', - BUTTON__DELETE: 'Delete', - BUTTON__SAVE: 'Save', - BUTTON__CREATE: 'Create', - BUTTON__INVITE: 'Invite', - BUTTON__CLOSE: 'Close', - BADGE__OVER: '+', - MODAL__DELETE_MESSAGE__TITLE: 'Delete this message?', - MODAL__CHANNEL_INFORMATION__TITLE: 'Edit channel information', - MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE: 'Channel image', - MODAL__CHANNEL_INFORMATION__UPLOAD: 'Upload', - MODAL__CHANNEL_INFORMATION__CHANNEL_NAME: 'Channel name', - MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER: 'Enter name', - MODAL__INVITE_MEMBER__TITLE: 'Invite member', - MODAL__INVITE_MEMBER__SELECTEC: 'selected', - MODAL__CREATE_CHANNEL__TITLE: 'New channel', - MODAL__CREATE_CHANNEL__SELECTED: 'selected', - MODAL__USER_LIST__TITLE: 'members', - TYPING_INDICATOR__IS_TYPING: 'is typing...', - TYPING_INDICATOR__AND: 'and', - TYPING_INDICATOR__ARE_TYPING: 'are typing...', - TYPING_INDICATOR__MULTIPLE_TYPING: 'Several people are typing...', - MESSAGE_STATUS__SENDING_FAILED: 'Couldn\'t send message.', - MESSAGE_STATUS__TRY_AGAIN: 'Try again', - MESSAGE_STATUS__OR: 'or', - MESSAGE_STATUS__DELETE: 'delete', - PLACE_HOLDER__NO_CHANNEL: 'No channels', - CHANNEL_FROZEN: 'Channel frozen', - MUTED_PL: 'Channel frozen', - PLACE_HOLDER__WRONG: 'Something went wrong', - PLACE_HOLDER__RETRY_TO_CONNECT: 'Retry', - NO_TITLE: 'No title', - NO_NAME: '(No name)', - NO_MEMBERS: '(No members)', - TOOLTIP__AND_YOU: ', and you', - TOOLTIP__YOU: 'you', - TOOLTIP__UNKOWN_USER: '(no name)', - UNKNOWN__UNKNOWN_MESSAGE_TYPE: '(Unknown message type)', - UNKNOWN__CANNOT_READ_MESSAGE: 'Cannot read this message.', - MESSAGE_EDITED: '(edited)' - } - }; - return stringSet[lang]; -}; - -var LocalizationContext = React.createContext({ - stringSet: getStringSet('en') -}); - -var LocalizationProvider = function LocalizationProvider(props) { - var children = props.children; - return React.createElement(LocalizationContext.Provider, { - value: props - }, children); -}; - -function Sendbird(props) { - var userId = props.userId, - appId = props.appId, - accessToken = props.accessToken, - children = props.children, - disableUserProfile = props.disableUserProfile, - renderUserProfile = props.renderUserProfile, - allowProfileEdit = props.allowProfileEdit, - theme = props.theme, - nickname = props.nickname, - profileUrl = props.profileUrl, - userListQuery = props.userListQuery, - _props$config = props.config, - config = _props$config === void 0 ? {} : _props$config, - colorSet = props.colorSet, - stringSet = props.stringSet; - var _config$logLevel = config.logLevel, - logLevel = _config$logLevel === void 0 ? '' : _config$logLevel; - - var _useState = useState(LoggerFactory(logLevel)), - _useState2 = _slicedToArray(_useState, 2), - logger = _useState2[0], - setLogger = _useState2[1]; - - var _useState3 = useState(), - _useState4 = _slicedToArray(_useState3, 2), - pubSub = _useState4[0], - setPubSub = _useState4[1]; - - var _useReducer = useReducer(reducer, sdkInitialState), - _useReducer2 = _slicedToArray(_useReducer, 2), - sdkStore = _useReducer2[0], - sdkDispatcher = _useReducer2[1]; - - var _useReducer3 = useReducer(reducer$1, userInitialState), - _useReducer4 = _slicedToArray(_useReducer3, 2), - userStore = _useReducer4[0], - userDispatcher = _useReducer4[1]; - - useTheme(colorSet); - useEffect(function () { - setPubSub(pubSubFactory()); - }, []); - useEffect(function () { - logger.info('App Init'); // dispatch action - - handleConnection({ - userId: userId, - appId: appId, - accessToken: accessToken, - sdkStore: sdkStore, - nickname: nickname, - profileUrl: profileUrl, - sdk: sdkStore.sdk, - logger: logger - }, { - sdkDispatcher: sdkDispatcher, - userDispatcher: userDispatcher - }); - }, [userId, appId, accessToken]); // to create a pubsub to communicate between parent and child - - useEffect(function () { - setLogger(LoggerFactory(logLevel)); - }, [logLevel]); - useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body'); // should move to reducer - - var _useState5 = useState(theme), - _useState6 = _slicedToArray(_useState5, 2), - currenttheme = _useState6[0], - setCurrenttheme = _useState6[1]; - - useEffect(function () { - setCurrenttheme(theme); - }, [theme]); // add-remove theme from body - - useEffect(function () { - logger.info('Setup theme', "Theme: ".concat(currenttheme)); - - try { - var body = document.querySelector('body'); - body.classList.add("sendbird-theme--".concat(currenttheme || 'light')); - logger.info('Finish setup theme'); // eslint-disable-next-line no-empty - } catch (e) { - logger.warning('Setup theme failed', "".concat(e)); - } - - return function () { - try { - var _body = document.querySelector('body'); - - _body.classList.remove('sendbird-theme--light'); - - _body.classList.remove('sendbird-theme--dark'); // eslint-disable-next-line no-empty - - } catch (_unused) {} - }; - }, [currenttheme]); - var isOnline = useConnectionStatus(sdkStore.sdk, logger); - var localeStringSet = React.useMemo(function () { - if (!stringSet) { - return getStringSet('en'); - } - - return _objectSpread2({}, getStringSet('en'), {}, stringSet); - }, [stringSet]); - return React.createElement(SendbirdSdkContext.Provider, { - value: { - stores: { - sdkStore: sdkStore, - userStore: userStore - }, - dispatchers: { - sdkDispatcher: sdkDispatcher, - userDispatcher: userDispatcher, - reconnect: function reconnect() { - handleConnection({ - userId: userId, - appId: appId, - accessToken: accessToken, - sdkStore: sdkStore, - nickname: nickname, - profileUrl: profileUrl, - logger: logger, - sdk: sdkStore.sdk - }, { - sdkDispatcher: sdkDispatcher, - userDispatcher: userDispatcher - }); - } - }, - config: { - disableUserProfile: disableUserProfile, - renderUserProfile: renderUserProfile, - allowProfileEdit: allowProfileEdit, - isOnline: isOnline, - userId: userId, - appId: appId, - accessToken: accessToken, - theme: currenttheme, - setCurrenttheme: setCurrenttheme, - userListQuery: userListQuery, - logger: logger, - pubSub: pubSub - } - } - }, React.createElement(LocalizationProvider, { - stringSet: localeStringSet - }, children)); -} -Sendbird.propTypes = { - userId: PropTypes.string.isRequired, - appId: PropTypes.string.isRequired, - accessToken: PropTypes.string, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, - theme: PropTypes.string, - nickname: PropTypes.string, - profileUrl: PropTypes.string, - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - allowProfileEdit: PropTypes.bool, - userListQuery: PropTypes.func, - config: PropTypes.shape({ - // None Error Warning Info 'All/Debug' - logLevel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - pubSub: PropTypes.shape({ - subscribe: PropTypes.func, - publish: PropTypes.func - }) - }), - stringSet: PropTypes.objectOf(PropTypes.string), - colorSet: PropTypes.objectOf(PropTypes.string) -}; -Sendbird.defaultProps = { - accessToken: '', - theme: 'light', - nickname: '', - profileUrl: '', - disableUserProfile: false, - renderUserProfile: null, - allowProfileEdit: false, - userListQuery: null, - config: {}, - stringSet: null, - colorSet: null -}; - -var UserProfileContext = React.createContext({ - disableUserProfile: true, - renderUserProfile: null -}); - -var UserProfileProvider = function UserProfileProvider(props) { - var children = props.children, - className = props.className; - return React.createElement(UserProfileContext.Provider, { - value: props - }, React.createElement("div", { - className: className - }, children)); -}; - -UserProfileProvider.propTypes = { - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, - // eslint-disable-next-line react/no-unused-prop-types - disableUserProfile: PropTypes.bool, - // eslint-disable-next-line react/no-unused-prop-types - renderUserProfile: PropTypes.func, - className: PropTypes.string -}; -UserProfileProvider.defaultProps = { - className: null, - disableUserProfile: false, - renderUserProfile: null -}; - -var RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST'; -var CREATE_CHANNEL = 'CREATE_CHANNEL'; -var LEAVE_CHANNEL_SUCCESS = 'LEAVE_CHANNEL_SUCCESS'; -var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL'; -var SHOW_CHANNEL_SETTINGS = 'SHOW_CHANNEL_SETTINGS'; -var HIDE_CHANNEL_SETTINGS = 'HIDE_CHANNEL_SETTINGS'; -var FETCH_CHANNELS_START = 'FETCH_CHANNELS_START'; -var FETCH_CHANNELS_SUCCESS = 'FETCH_CHANNELS_SUCCESS'; -var FETCH_CHANNELS_FAILURE = 'FETCH_CHANNELS_FAILURE'; -var INIT_CHANNELS_START = 'INIT_CHANNELS_START'; -var INIT_CHANNELS_SUCCESS = 'INIT_CHANNELS_SUCCESS'; -var INIT_CHANNELS_FAILURE = 'INIT_CHANNELS_FAILURE'; -var ON_USER_JOINED = 'ON_USER_JOINED'; -var ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED'; -var ON_LAST_MESSAGE_UPDATED = 'ON_LAST_MESSAGE_UPDATED'; -var ON_USER_LEFT = 'ON_USER_LEFT'; -var ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED'; -var ON_CHANNEL_ARCHIVED = 'ON_CHANNEL_ARCHIVED'; -var ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN'; -var ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN'; -var ON_READ_RECEIPT_UPDATED = 'ON_READ_RECEIPT_UPDATED'; -var ON_DELIVERY_RECEIPT_UPDATED = 'ON_DELIVERY_RECEIPT_UPDATED'; -var CHANNEL_REPLACED_TO_TOP = 'CHANNEL_REPLACED_TO_TOP'; - -var channelListInitialState = { - // we might not need this initialized state -> should remove - initialized: false, - loading: false, - allChannels: [], - currentChannel: null, - showSettings: false -}; - -function reducer$2(state, action) { - switch (action.type) { - case INIT_CHANNELS_START: - return _objectSpread2({}, state, { - loading: true - }); - - case RESET_CHANNEL_LIST: - return channelListInitialState; - - case INIT_CHANNELS_SUCCESS: - return _objectSpread2({}, state, { - initialized: true, - loading: false, - allChannels: action.payload, - currentChannel: action.payload && action.payload.length && action.payload.length > 0 ? action.payload[0].url : null - }); - - case FETCH_CHANNELS_SUCCESS: - { - var currentChannels = state.allChannels.map(function (c) { - return c.url; - }); - var filteredChannels = action.payload.filter(function (_ref) { - var url = _ref.url; - return !currentChannels.find(function (c) { - return c === url; - }); - }); - return _objectSpread2({}, state, { - allChannels: [].concat(_toConsumableArray(state.allChannels), _toConsumableArray(filteredChannels)) - }); - } - - case CREATE_CHANNEL: - { - return _objectSpread2({}, state, { - allChannels: [action.payload].concat(_toConsumableArray(state.allChannels.filter(function (channel) { - return channel.url !== action.payload.url; - }))), - currentChannel: action.payload.url - }); - } - - case ON_CHANNEL_ARCHIVED: - case LEAVE_CHANNEL_SUCCESS: - case ON_CHANNEL_DELETED: - { - var channelUrl = action.payload; - var leftCurrentChannel = state.currentChannel === channelUrl; - var newAllChannels = state.allChannels.filter(function (_ref2) { - var url = _ref2.url; - return url !== channelUrl; - }); - var currentChannel = leftCurrentChannel ? function () { - return newAllChannels.length > 0 ? newAllChannels[0].url : ''; - }() : state.currentChannel; - return _objectSpread2({}, state, { - currentChannel: currentChannel, - allChannels: newAllChannels - }); - } - - case ON_USER_LEFT: - { - var _action$payload = action.payload, - channel = _action$payload.channel, - isMe = _action$payload.isMe; - var url = channel.url; - - if (isMe) { - var _leftCurrentChannel = url === state.currentChannel; - - var _newAllChannels2 = state.allChannels.filter(function (c) { - return c.url !== url; - }); - - var _currentChannel = _leftCurrentChannel ? function () { - return _newAllChannels2.length > 0 ? _newAllChannels2[0].url : ''; - }() : state.currentChannel; - - return _objectSpread2({}, state, { - currentChannel: _currentChannel, - allChannels: _newAllChannels2 - }); - } // other user left - - - var _newAllChannels = state.allChannels.map(function (c) { - return c.url === url ? channel : c; - }); - - return _objectSpread2({}, state, { - allChannels: _newAllChannels - }); - } - - case ON_USER_JOINED: - case ON_CHANNEL_CHANGED: - case ON_READ_RECEIPT_UPDATED: - case ON_DELIVERY_RECEIPT_UPDATED: - { - var _state$allChannels = state.allChannels, - allChannels = _state$allChannels === void 0 ? [] : _state$allChannels; - var unreadMessageCount = action.payload.unreadMessageCount; - var _channel = action.payload; - - if (!_channel.lastMessage) { - return state; - } // if its only an unread message count change, dont push to top - - - if (unreadMessageCount === 0) { - var _currentChannel2 = allChannels.find(function (_ref3) { - var url = _ref3.url; - return url === _channel.url; - }); - - var currentUnReadCount = _currentChannel2 && _currentChannel2.unreadMessageCount; - - if (currentUnReadCount === 0) { - return _objectSpread2({}, state, { - allChannels: allChannels.map(function (c) { - if (c.url === _channel.url) { - return _channel; - } - - return c; - }) - }); - } - } - - return _objectSpread2({}, state, { - allChannels: [action.payload].concat(_toConsumableArray(state.allChannels.filter(function (_ref4) { - var url = _ref4.url; - return url !== action.payload.url; - }))) - }); - } - - case SET_CURRENT_CHANNEL: - return _objectSpread2({}, state, { - currentChannel: action.payload - }); - - case SHOW_CHANNEL_SETTINGS: - return _objectSpread2({}, state, { - showSettings: true - }); - - case HIDE_CHANNEL_SETTINGS: - return _objectSpread2({}, state, { - showSettings: false - }); - - case ON_LAST_MESSAGE_UPDATED: - return _objectSpread2({}, state, { - allChannels: state.allChannels.map(function (channel) { - if (channel.url === action.payload.url) { - return action.payload; - } - - return channel; - }) - }); - - case ON_CHANNEL_FROZEN: - return _objectSpread2({}, state, { - allChannels: state.allChannels.map(function (channel) { - if (channel.url === action.payload.url) { - // eslint-disable-next-line no-param-reassign - channel.isFrozen = true; - return channel; - } - - return channel; - }) - }); - - case ON_CHANNEL_UNFROZEN: - return _objectSpread2({}, state, { - allChannels: state.allChannels.map(function (channel) { - if (channel.url === action.payload.url) { - // eslint-disable-next-line no-param-reassign - channel.isFrozen = false; - return channel; - } - - return channel; - }) - }); - - case CHANNEL_REPLACED_TO_TOP: - return _objectSpread2({}, state, { - allChannels: [action.payload].concat(_toConsumableArray(state.allChannels.filter(function (channel) { - return channel.url !== action.payload.url; - }))) - }); - - default: - return state; - } -} - -/* - ImageRenderer displays image with url or source - it checks if the source exist with img tag first - if it exists onLoad is called, if not onError is called - and those properties switch img tag to real purposing element -*/ - -function ImageRenderer(_ref) { - var alt = _ref.alt, - url = _ref.url, - width = _ref.width, - height = _ref.height, - className = _ref.className, - defaultComponent = _ref.defaultComponent, - circle = _ref.circle; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift('sendbird-image-renderer'); - - var _useState = useState(null), - _useState2 = _slicedToArray(_useState, 2), - realElement = _useState2[0], - setRealElement = _useState2[1]; - - useEffect(function () { - setRealElement(null); - }, [url]); - return realElement || React.createElement("img", { - className: "sendbird-image-renderer--hidden-placeholder", - src: url, - alt: alt, - onError: function onError() { - setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent); - }, - onLoad: function onLoad() { - setRealElement(React.createElement("div", { - className: injectingClassName.join(' '), - style: { - height: height, - width: width, - backgroundRepeat: 'no-repeat', - backgroundPosition: 'center', - backgroundSize: 'cover', - backgroundImage: "url(".concat(url, ")"), - borderRadius: circle ? '50%' : null - } - })); - } - }); -} -ImageRenderer.propTypes = { - alt: PropTypes.string, - url: PropTypes.string.isRequired, - width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, - height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, - className: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]), - defaultComponent: PropTypes.oneOfType([PropTypes.element, PropTypes.func]).isRequired, - circle: PropTypes.bool -}; -ImageRenderer.defaultProps = { - alt: '', - className: '', - circle: false -}; - -var Type = { - ADD: 'ADD', - ATTACH: 'ATTACH', - ARROW_LEFT: 'ARROW_LEFT', - AVATAR_DARK: 'AVATAR_DARK', - AVATAR_LIGHT: 'AVATAR_LIGHT', - BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK', - BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT', - BROADCAST_DARK: 'BROADCAST_DARK', - BROADCAST_LIGHT: 'BROADCAST_LIGHT', - BROADCAST: 'BROADCAST', - FROZEN_DARK: 'FROZEN_DARK', - FROZEN_LIGHT: 'FROZEN_LIGHT', - CAMERA: 'CAMERA', - MORE: 'MORE', - MUTE: 'MUTE', - NO_THUMBNAIL: 'NO_THUMBNAIL', - CHECKBOX: 'CHECKBOX', - CHECKBOX_OFF: 'CHECKBOX_OFF', - CLOSE: 'CLOSE', - COPY: 'COPY', - CHAT: 'CHAT', - CREATE: 'CREATE', - DELETE: 'DELETE', - DISCONNECTED: 'DISCONNECTED', - DUMMY: 'DUMMY', - EDIT: 'EDIT', - ERROR: 'ERROR', - ERROR_FILLED: 'ERROR_FILLED', - EMOJI_FAILED: 'EMOJI_FAILED', - EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD', - EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY', - DELIVERED: 'DELIVERED', - DOCUMENT: 'DOCUMENT', - DOWNLOAD: 'DOWNLOAD', - FILE_AUDIO: 'FILE_AUDIO', - FILE_DOCUMENT: 'FILE_DOCUMENT', - GIF: 'GIF', - INFO: 'INFO', - LEAVE: 'LEAVE', - MEMBERS: 'MEMBERS', - NOTIFICATIONS: 'NOTIFICATIONS', - PHOTO: 'PHOTO', - PLAY: 'PLAY', - PLUS: 'PLUS', - READ: 'READ', - REFRESH: 'REFRESH', - SEND: 'SEND', - SENT: 'SENT', - SUPER_GROUP: 'SUPER_GROUP', - SHEVRON: 'SHEVRON', - SHEVRON_DOWN: 'SHEVRON_DOWN', - SPINNER: 'SPINNER', - SPINNER_LARGE: 'SPINNER_LARGE', - USER: 'USER', - ICON_OPERATOR: 'ICON_OPERATOR', - ICON_BANNED: 'ICON_BANNED', - ICON_FREEZE: 'ICON_FREEZE', - ICON_MUTED: 'ICON_MUTED', - ICON_MUTED_FG: 'ICON_MUTED_FG', - TOGGLE_ON: 'TOGGLE_ON', - TOGGLE_OFF: 'TOGGLE_OFF' -}; - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -var _ref = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-add_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M19 2a3 3 0 013 3v14a3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3zm0 2H5a1 1 0 00-1 1v14a1 1 0 001 1h14a1 1 0 001-1V5a1 1 0 00-1-1zm-7 3a1 1 0 01.993.883L13 8v3h3a1 1 0 01.117 1.993L16 13h-3v3a1 1 0 01-1.993.117L11 16v-3H8a1 1 0 01-.117-1.993L8 11h3V8a1 1 0 011-1z" -}); - -function SvgIconAdd(props) { - return React.createElement("svg", _extends({ - viewBox: "0 0 24 24" - }, props), _ref); -} - -function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); } - -var _ref$1 = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-attach_svg__fill", - fillOpacity: 0.88, - fillRule: "evenodd", - d: "M19.021 9.943l-8.424 8.023c-1.795 1.71-4.723 1.71-6.518 0-1.77-1.685-1.77-4.398 0-6.084l8.424-8.023c1.079-1.027 2.845-1.027 3.924 0a2.461 2.461 0 010 3.614l-8.433 8.022a.984.984 0 01-1.33 0 .772.772 0 010-1.142l7.782-7.403a.917.917 0 00-1.264-1.328L5.4 13.025a2.605 2.605 0 000 3.798 2.816 2.816 0 003.858 0l8.433-8.022a4.294 4.294 0 000-6.27C15.905.83 13.025.83 11.24 2.531l-8.425 8.023c-2.528 2.408-2.528 6.332 0 8.74 2.504 2.384 6.544 2.384 9.047 0l8.425-8.023a.917.917 0 10-1.265-1.328z" -}); - -function SvgIconAttach(props) { - return React.createElement("svg", _extends$1({ - viewBox: "0 0 22 22" - }, props), _ref$1); -} - -function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); } - -var _ref$2 = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-arrow-left_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12.707 3.293a1 1 0 01.083 1.32l-.083.094L6.415 11H21a1 1 0 01.117 1.993L21 13H6.415l6.292 6.293a1 1 0 01.083 1.32l-.083.094a1 1 0 01-1.32.083l-.094-.083-8-8a1 1 0 01-.083-1.32l.083-.094 8-8a1 1 0 011.414 0z" -}); - -function SvgIconArrowLeft(props) { - return React.createElement("svg", _extends$2({ - viewBox: "0 0 24 24" - }, props), _ref$2); -} - -function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); } - -var _ref$3 = -/*#__PURE__*/ -React.createElement("path", { - fill: "#393939", - d: "M0 0h56v56H0z" -}); - -var _ref2 = -/*#__PURE__*/ -React.createElement("path", { - fillOpacity: 0.88, - d: "M34.667 31.333a8.334 8.334 0 018.325 7.972l.008.362V43a1.667 1.667 0 01-3.322.194L39.667 43v-3.333a5 5 0 00-4.707-4.992l-.293-.008H21.333a5 5 0 00-4.991 4.706l-.009.294V43a1.667 1.667 0 01-3.322.194L13 43v-3.333a8.333 8.333 0 017.972-8.326l.361-.008h13.334zm-6.667-20A8.333 8.333 0 1128 28a8.333 8.333 0 010-16.667zm0 3.334a5 5 0 100 10 5 5 0 000-10z" -}); - -function SvgIconAvatarDark(props) { - return React.createElement("svg", _extends$3({ - viewBox: "0 0 56 56" - }, props), _ref$3, _ref2); -} - -function _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); } - -var _ref$4 = -/*#__PURE__*/ -React.createElement("path", { - fill: "#A8A8A8", - d: "M0 0h56v56H0z" -}); - -var _ref2$1 = -/*#__PURE__*/ -React.createElement("path", { - fill: "#FFF", - fillOpacity: 0.88, - d: "M34.667 31.333a8.334 8.334 0 018.325 7.972l.008.362V43a1.667 1.667 0 01-3.322.194L39.667 43v-3.333a5 5 0 00-4.707-4.992l-.293-.008H21.333a5 5 0 00-4.991 4.706l-.009.294V43a1.667 1.667 0 01-3.322.194L13 43v-3.333a8.333 8.333 0 017.972-8.326l.361-.008h13.334zm-6.667-20A8.333 8.333 0 1128 28a8.333 8.333 0 010-16.667zm0 3.334a5 5 0 100 10 5 5 0 000-10z" -}); - -function SvgIconAvatarLight(props) { - return React.createElement("svg", _extends$4({ - viewBox: "0 0 56 56" - }, props), _ref$4, _ref2$1); -} - -function _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); } - -var _ref$5 = -/*#__PURE__*/ -React.createElement("g", { - className: "icon-broadcast-lrg-dark_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React.createElement("circle", { - cx: 28, - cy: 28, - r: 28, - fill: "#6FD6BE" -}), React.createElement("path", { - fill: "#000", - fillOpacity: 0.88, - d: "M41.273 16.083c.04.128.06.262.06.397v23.04a1.333 1.333 0 01-1.731 1.273l-8.975-2.805A5.335 5.335 0 0120 37.333v-2.666h-2.667a4 4 0 01-3.995-3.8l-.005-.2v-5.334a4 4 0 014-4H20l19.602-6.125a1.332 1.332 0 011.67.875zM22.667 35.627v1.706a2.667 2.667 0 005.326.199l.007-.239-5.333-1.666zm16-17.334l-16 4.999v9.415l16 4.998V18.293zM20 24h-2.667c-.683 0-1.247.515-1.324 1.178l-.009.155v5.334c0 .736.597 1.333 1.333 1.333H20v-8z" -})); - -function SvgIconBroadcastLrgDark(props) { - return React.createElement("svg", _extends$5({ - viewBox: "0 0 56 56" - }, props), _ref$5); -} - -function _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); } - -var _ref$6 = -/*#__PURE__*/ -React.createElement("g", { - className: "icon-broadcast-lrg-light_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React.createElement("circle", { - cx: 28, - cy: 28, - r: 28, - fill: "#2EBA9F" -}), React.createElement("path", { - fill: "#FFF", - fillOpacity: 0.88, - d: "M41.273 16.083c.04.128.06.262.06.397v23.04a1.333 1.333 0 01-1.731 1.273l-8.975-2.805A5.335 5.335 0 0120 37.333v-2.666h-2.667a4 4 0 01-3.995-3.8l-.005-.2v-5.334a4 4 0 014-4H20l19.602-6.125a1.332 1.332 0 011.67.875zM22.667 35.627v1.706a2.667 2.667 0 005.326.199l.007-.239-5.333-1.666zm16-17.334l-16 4.999v9.415l16 4.998V18.293zM20 24h-2.667c-.683 0-1.247.515-1.324 1.178l-.009.155v5.334c0 .736.597 1.333 1.333 1.333H20v-8z" -})); - -function SvgIconBroadcastLrgLight(props) { - return React.createElement("svg", _extends$6({ - viewBox: "0 0 56 56" - }, props), _ref$6); -} - -function _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); } - -var _ref$7 = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-broadcast-dark_svg__fill", - fill: "#6FD6BE", - fillRule: "evenodd", - d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" -}); - -function SvgIconBroadcastDark(props) { - return React.createElement("svg", _extends$7({ - viewBox: "0 0 16 16" - }, props), _ref$7); -} - -function _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); } - -var _ref$8 = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-broadcast-light_svg__fill", - fill: "#2EBA9F", - fillRule: "evenodd", - d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" -}); - -function SvgIconBroadcastLight(props) { - return React.createElement("svg", _extends$8({ - viewBox: "0 0 16 16" - }, props), _ref$8); -} - -function _extends$9() { _extends$9 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); } - -var _ref$9 = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-broadcast_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" -}); - -function SvgIconBroadcast(props) { - return React.createElement("svg", _extends$9({ - viewBox: "0 0 16 16" - }, props), _ref$9); -} - -function _extends$a() { _extends$a = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); } - -var _ref$a = -/*#__PURE__*/ -React.createElement("path", { - className: "frozen-dark_svg__fill", - fill: "#9E8CF5", - fillRule: "evenodd", - d: "M10.409.806l.063.056c.24.24.259.618.055.88l-.055.063-1.805 1.804v3.236l2.801-1.618.662-2.465a.665.665 0 011.304.263l-.016.082-.56 2.088 2.088.56a.665.665 0 01.488.734l-.016.082a.666.666 0 01-.735.488l-.082-.016-2.465-.661L9.334 8l2.801 1.618 2.466-.66.082-.017a.667.667 0 01.735.488l.016.082a.666.666 0 01-.488.734l-2.088.56.56 2.088.016.082a.666.666 0 01-1.304.263l-.662-2.465-2.801-1.618v3.236l1.805 1.804a.668.668 0 01-.88.999l-.063-.056L8 13.61l-1.528 1.53a.668.668 0 01-.88.055l-.063-.056a.668.668 0 01-.056-.88l.056-.063 1.804-1.805V9.155L4.53 10.773l-.66 2.465a.667.667 0 01-1.304-.263l.017-.082.559-2.088-2.088-.56a.667.667 0 01-.488-.734l.017-.082a.665.665 0 01.734-.488l.082.016 2.466.66L6.666 8 3.864 6.382l-2.465.66-.082.017a.666.666 0 01-.734-.488L.566 6.49a.667.667 0 01.488-.734l2.088-.56-.56-2.088-.016-.082a.667.667 0 011.305-.263l.659 2.465 2.803 1.618V3.61L5.529 1.805a.668.668 0 01.88-.999l.063.056L8 2.39 9.53.862a.668.668 0 01.88-.056z" -}); - -function SvgFrozenDark(props) { - return React.createElement("svg", _extends$a({ - viewBox: "0 0 16 16" - }, props), _ref$a); -} - -function _extends$b() { _extends$b = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$b.apply(this, arguments); } - -var _ref$b = -/*#__PURE__*/ -React.createElement("path", { - className: "frozen-light_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M10.409.806l.063.056c.24.24.259.618.055.88l-.055.063-1.805 1.804v3.236l2.801-1.618.662-2.465a.665.665 0 011.304.263l-.016.082-.56 2.088 2.088.56a.665.665 0 01.488.734l-.016.082a.666.666 0 01-.735.488l-.082-.016-2.465-.661L9.334 8l2.801 1.618 2.466-.66.082-.017a.667.667 0 01.735.488l.016.082a.666.666 0 01-.488.734l-2.088.56.56 2.088.016.082a.666.666 0 01-1.304.263l-.662-2.465-2.801-1.618v3.236l1.805 1.804a.668.668 0 01-.88.999l-.063-.056L8 13.61l-1.528 1.53a.668.668 0 01-.88.055l-.063-.056a.668.668 0 01-.056-.88l.056-.063 1.804-1.805V9.155L4.53 10.773l-.66 2.465a.667.667 0 01-1.304-.263l.017-.082.559-2.088-2.088-.56a.667.667 0 01-.488-.734l.017-.082a.665.665 0 01.734-.488l.082.016 2.466.66L6.666 8 3.864 6.382l-2.465.66-.082.017a.666.666 0 01-.734-.488L.566 6.49a.667.667 0 01.488-.734l2.088-.56-.56-2.088-.016-.082a.667.667 0 011.305-.263l.659 2.465 2.803 1.618V3.61L5.529 1.805a.668.668 0 01.88-.999l.063.056L8 2.39 9.53.862a.668.668 0 01.88-.056z" -}); - -function SvgFrozenLight(props) { - return React.createElement("svg", _extends$b({ - viewBox: "0 0 16 16" - }, props), _ref$b); -} - -function _extends$c() { _extends$c = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$c.apply(this, arguments); } - -var _ref$c = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-camera_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M15 2a1 1 0 01.832.445L17.535 5H21a3 3 0 012.995 2.824L24 8v11a3 3 0 01-3 3H3a3 3 0 01-3-3V8a3 3 0 013-3h3.464l1.704-2.555a1 1 0 01.708-.437L9 2zm-.536 2H9.535L7.832 6.555a1 1 0 01-.708.437L7 7H3a1 1 0 00-1 1v11a1 1 0 001 1h18a1 1 0 001-1V8a1 1 0 00-1-1h-4a1 1 0 01-.832-.445L14.464 4zM12 8a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z" -}); - -function SvgIconCamera(props) { - return React.createElement("svg", _extends$c({ - viewBox: "0 0 24 24" - }, props), _ref$c); -} - -function _extends$d() { _extends$d = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$d.apply(this, arguments); } - -var _ref$d = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-more_svg__fill", - fillRule: "evenodd", - d: "M12 17a2 2 0 110 4 2 2 0 010-4zm0-6.5a2 2 0 110 4 2 2 0 010-4zM12 4a2 2 0 110 4 2 2 0 010-4z" -}); - -function SvgIconMore(props) { - return React.createElement("svg", _extends$d({ - viewBox: "0 0 24 24" - }, props), _ref$d); -} - -function _extends$e() { _extends$e = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$e.apply(this, arguments); } - -var _ref$e = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-mute_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M15.125 20.09c0 .602-.694 2.41-2.778 2.41-1.389 0-2.315-.804-2.778-2.41zM12.789 1.606a6.496 6.496 0 015.388 2.861l2.464-2.463a.788.788 0 011.025-.077l.088.077a.788.788 0 010 1.113L3.378 21.494a.788.788 0 01-1.025.077l-.088-.077a.788.788 0 010-1.113l1.9-1.903-.04-.004a.387.387 0 01-.241-.596l1.557-2.295.001-.208a545.875 545.875 0 00-.028-6.563l-.008-.614a6.503 6.503 0 016.414-6.59h.969zm6.381 5.246c.08.407.122.827.122 1.257l-.001 7.53 1.52 2.238a.387.387 0 01-.32.604H7.54l3.214-3.214 8.415-8.415z" -}); - -function SvgIconMute(props) { - return React.createElement("svg", _extends$e({ - viewBox: "0 0 24 24" - }, props), _ref$e); -} - -function _extends$f() { _extends$f = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$f.apply(this, arguments); } - -var _ref$f = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-no-thumbnail_svg__fill", - fillOpacity: 0.5, - fillRule: "evenodd", - d: "M30.333 4.667a2.333 2.333 0 110 4.666H11.667a2.334 2.334 0 00-2.334 2.334v32.666c0 1.001.63 1.855 1.516 2.186l24.834-24.836a2.336 2.336 0 013.3 0l7.684 7.683v-3.7c0-1.234.96-2.245 2.173-2.327l.16-.006a2.333 2.333 0 012.333 2.334v18.666a7 7 0 01-7 7H11.665a6.999 6.999 0 01-6.998-7V11.667a7 7 0 017-7zm7 21.966L17.3 46.666h27.034a2.333 2.333 0 002.328-2.173l.006-.16v-8.367l-9.334-9.333zM19.833 14a5.834 5.834 0 110 11.668 5.834 5.834 0 010-11.668zm0 4.667a1.166 1.166 0 100 2.332 1.166 1.166 0 000-2.332zm29.85-15.65a2.334 2.334 0 013.3 3.3L48.8 10.499l4.184 4.184c.87.87.91 2.256.119 3.173l-.119.127a2.334 2.334 0 01-3.3 0L45.5 13.8l-4.183 4.184c-.87.87-2.256.91-3.173.119l-.127-.119a2.334 2.334 0 010-3.3L42.2 10.5l-4.183-4.182a2.334 2.334 0 01-.119-3.173l.119-.127a2.334 2.334 0 013.3 0L45.5 7.2z" -}); - -function SvgIconNoThumbnail(props) { - return React.createElement("svg", _extends$f({ - viewBox: "0 0 56 56" - }, props), _ref$f); -} - -function _extends$g() { _extends$g = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); } - -var _ref$g = -/*#__PURE__*/ -React.createElement("g", { - className: "icon-checkbox_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd" -}, React.createElement("path", { - d: "M18 1H6a5 5 0 00-5 5v12a5 5 0 005 5h12a5 5 0 005-5V6a5 5 0 00-5-5zm0 2a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h12z" -}), React.createElement("path", { - d: "M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" -})); - -function SvgIconCheckbox(props) { - return React.createElement("svg", _extends$g({ - viewBox: "0 0 24 24" - }, props), _ref$g); -} - -function _extends$h() { _extends$h = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); } - -var _ref$h = -/*#__PURE__*/ -React.createElement("g", { - className: "icon-checkbox-off_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd" -}, React.createElement("path", { - d: "M18 1H6a5 5 0 00-5 5v12a5 5 0 005 5h12a5 5 0 005-5V6a5 5 0 00-5-5zm0 2a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h12z" -}), React.createElement("path", { - d: "M19 19H5V5h14v14zm0-16H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" -})); - -function SvgIconCheckboxOff(props) { - return React.createElement("svg", _extends$h({ - viewBox: "0 0 24 24" - }, props), _ref$h); -} - -function _extends$i() { _extends$i = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); } - -var _ref$i = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-close_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M6.613 5.21l.094.083L12 10.585l5.293-5.292a1 1 0 011.497 1.32l-.083.094L13.415 12l5.292 5.293a1 1 0 01-1.32 1.497l-.094-.083L12 13.415l-5.293 5.292a1 1 0 01-1.497-1.32l.083-.094L10.585 12 5.293 6.707a1 1 0 011.32-1.497z" -}); - -function SvgIconClose(props) { - return React.createElement("svg", _extends$i({ - viewBox: "0 0 24 24" - }, props), _ref$i); -} - -function _extends$j() { _extends$j = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); } - -var _ref$j = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-copy_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M20 8a3 3 0 013 3v9a3 3 0 01-3 3h-9a3 3 0 01-3-3v-9a3 3 0 013-3zm0 2h-9a1 1 0 00-1 1v9a1 1 0 001 1h9a1 1 0 001-1v-9a1 1 0 00-1-1zm-7-9a3 3 0 012.995 2.824L16 4v1a1 1 0 01-1.993.117L14 5V4a1 1 0 00-.883-.993L13 3H4a1 1 0 00-.993.883L3 4v9a1 1 0 00.883.993L4 14h1a1 1 0 01.117 1.993L5 16H4a3 3 0 01-2.995-2.824L1 13V4a3 3 0 012.824-2.995L4 1h9z" -}); - -function SvgIconCopy(props) { - return React.createElement("svg", _extends$j({ - viewBox: "0 0 24 24" - }, props), _ref$j); -} - -function _extends$k() { _extends$k = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); } - -var _ref$k = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-chat_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11c-1.67 0-3.255-.373-4.673-1.039l-.657.218c-2.237.716-3.8.964-4.69.742-1.049-.261-1.256-.72-.62-1.373.439-.524.805-1.178 1.097-1.963.234-.625.142-1.5-.276-2.625A10.933 10.933 0 011 12C1 5.925 5.925 1 12 1zm0 2a9 9 0 00-8.187 12.742l.152.314.051.101.04.107c.569 1.532.709 2.859.275 4.02l-.143.365-.072.162.088-.019a23.181 23.181 0 001.832-.511l.646-.213.765-.26.73.343A8.962 8.962 0 0012 21a9 9 0 000-18z" -}); - -function SvgIconChat(props) { - return React.createElement("svg", _extends$k({ - viewBox: "0 0 24 24" - }, props), _ref$k); -} - -function _extends$l() { _extends$l = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); } - -var _ref$l = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-supergroup_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M16.139 18.818c2.89 0 5.303 2.05 5.438 4.696l.006.235v1.626a1.166 1.166 0 01-2.326.136l-.007-.136v-1.626c0-1.343-1.255-2.501-2.903-2.592l-.208-.006H11.86c-1.679 0-3.001 1.105-3.105 2.431l-.006.167v1.626a1.166 1.166 0 01-2.325.136l-.008-.136v-1.626c0-2.68 2.329-4.806 5.19-4.926l.254-.005h4.278zm8.128-7.565c.116 0 .232.018.343.052 2.026.624 3.289 2.1 3.384 4.239l.006.26v5.6a1.166 1.166 0 01-2.325.136l-.008-.137v-5.599c-.001-1.135-.509-1.825-1.543-2.202l-.046-.016h-1.095c-.598 0-1.091-.45-1.158-1.03l-.008-.136c0-.598.45-1.092 1.03-1.159l.136-.008h1.284zm-19.25 0l.136.008c.58.067 1.03.56 1.03 1.159l-.008.136c-.067.58-.56 1.03-1.158 1.03H3.919l-.052.018c-.983.372-1.533 1.126-1.534 2.252v5.547l-.008.136A1.166 1.166 0 010 21.404v-5.548l.006-.259c.099-2.132 1.402-3.681 3.374-4.29.112-.035.228-.053.345-.053h1.292zM14 8.732c2.412 0 4.375 1.928 4.375 4.318 0 2.39-1.963 4.319-4.375 4.319S9.625 15.44 9.625 13.05c0-2.39 1.963-4.318 4.375-4.318zm0 2.333c-1.132 0-2.042.893-2.042 1.985s.91 1.986 2.042 1.986c1.132 0 2.042-.894 2.042-1.986s-.91-1.985-2.042-1.985zM7.583 1.167c2.412 0 4.375 1.929 4.375 4.318 0 2.39-1.963 4.32-4.375 4.32-2.411 0-4.375-1.93-4.375-4.32 0-2.39 1.964-4.318 4.375-4.318zm12.834 0c2.411 0 4.375 1.929 4.375 4.318 0 2.39-1.964 4.32-4.375 4.32-2.412 0-4.375-1.93-4.375-4.32 0-2.39 1.963-4.318 4.375-4.318zM7.583 3.5c-1.132 0-2.041.894-2.041 1.985 0 1.092.91 1.986 2.041 1.986 1.132 0 2.042-.894 2.042-1.986 0-1.091-.91-1.985-2.042-1.985zm12.834 0c-1.132 0-2.042.894-2.042 1.985 0 1.092.91 1.986 2.042 1.986 1.132 0 2.041-.894 2.041-1.986 0-1.091-.91-1.985-2.041-1.985z" -}); - -function SvgIconSupergroup(props) { - return React.createElement("svg", _extends$l({ - viewBox: "0 0 28 28" - }, props), _ref$l); -} - -function _extends$m() { _extends$m = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); } - -var _ref$m = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-create_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11c-1.67 0-3.255-.373-4.673-1.039l-.657.218c-2.237.716-3.8.964-4.69.742-1.049-.261-1.256-.72-.62-1.373.439-.524.805-1.178 1.097-1.963.234-.625.142-1.5-.276-2.625A10.933 10.933 0 011 12C1 5.925 5.925 1 12 1zm0 2a9 9 0 00-8.187 12.742l.152.314.051.101.04.107c.569 1.532.709 2.859.275 4.02l-.143.365-.072.162.088-.019a23.181 23.181 0 001.832-.511l.646-.213.765-.26.73.343A8.962 8.962 0 0012 21a9 9 0 000-18zm1 6v2h2c1.333 0 1.333 2 0 2h-2v2c0 1.333-2 1.333-2 0v-2H9c-1.333 0-1.333-2 0-2h2V9c0-1.333 2-1.333 2 0z" -}); - -function SvgIconCreate(props) { - return React.createElement("svg", _extends$m({ - viewBox: "0 0 24 24" - }, props), _ref$m); -} - -function _extends$n() { _extends$n = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$n.apply(this, arguments); } - -var _ref$n = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-delete_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M14 1a3 3 0 012.995 2.824L17 4v1h4a1 1 0 01.117 1.993L21 7h-1v13a3 3 0 01-2.824 2.995L17 23H7a3 3 0 01-2.995-2.824L4 20V7H3a1 1 0 01-.117-1.993L3 5h4V4a3 3 0 012.824-2.995L10 1h4zm4 6H6v13a1 1 0 00.883.993L7 21h10a1 1 0 00.993-.883L18 20V7zm-8 3a1 1 0 01.993.883L11 11v6a1 1 0 01-1.993.117L9 17v-6a1 1 0 011-1zm4 0a1 1 0 01.993.883L15 11v6a1 1 0 01-1.993.117L13 17v-6a1 1 0 011-1zm0-7h-4a1 1 0 00-.993.883L9 4v1h6V4a1 1 0 00-.883-.993L14 3z" -}); - -function SvgIconDelete(props) { - return React.createElement("svg", _extends$n({ - viewBox: "0 0 24 24" - }, props), _ref$n); -} - -function _extends$o() { _extends$o = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$o.apply(this, arguments); } - -var _ref$o = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-dummy_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" -}); - -function SvgIconDummy(props) { - return React.createElement("svg", _extends$o({ - viewBox: "0 0 24 24" - }, props), _ref$o); -} - -function _extends$p() { _extends$p = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$p.apply(this, arguments); } - -var _ref$p = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-edit_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M21.875 21.875a1.042 1.042 0 01.121 2.076l-.121.007H3.125a1.042 1.042 0 01-.121-2.076l.121-.007h18.75zM13.847 1.347a1.042 1.042 0 011.473 0l4.167 4.166a1.042 1.042 0 010 1.474L8.028 18.445c-.195.195-.46.305-.736.305H3.125a1.042 1.042 0 01-1.042-1.042v-4.166c0-.277.11-.542.305-.737zm.736 2.21L4.167 13.973v2.694h2.691L17.276 6.25l-2.693-2.693z" -}); - -function SvgIconEdit(props) { - return React.createElement("svg", _extends$p({ - viewBox: "0 0 26 26" - }, props), _ref$p); -} - -function _extends$q() { _extends$q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$q.apply(this, arguments); } - -var _ref$q = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-error_svg__fill", - fill: "#E53157", - fillRule: "evenodd", - d: "M8 1.265c.655 0 1.266.32 1.64.856l.072.11 5.652 9.436c.355.615.357 1.373.006 1.99-.33.579-.925.953-1.59 1.004l-.133.006H2.346a2.001 2.001 0 01-1.772-2.883l.067-.127 5.649-9.43A2 2 0 018 1.266zm0 1.333a.669.669 0 00-.52.248l-.048.07-5.641 9.417a.669.669 0 00.477.994l.085.006H13.64a.664.664 0 00.612-.914l-.036-.076L8.57 2.919a.663.663 0 00-.57-.32zm0 8.069A.667.667 0 118 12a.667.667 0 010-1.333zm0-5.334c.342 0 .624.258.662.59L8.667 6v2.667a.667.667 0 01-1.329.077l-.005-.077V6c0-.368.299-.667.667-.667z" -}); - -function SvgIconError(props) { - return React.createElement("svg", _extends$q({ - viewBox: "0 0 16 16" - }, props), _ref$q); -} - -function _extends$r() { _extends$r = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$r.apply(this, arguments); } - -var _ref$r = -/*#__PURE__*/ -React.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React.createElement("path", { - className: "icon-error-filled_svg__fill", - fill: "#E53157", - d: "M10.281 4.18L1.77 17.85a1.87 1.87 0 00-.005 1.924c.353.597 1.01.968 1.724.976h17.024a2.024 2.024 0 001.724-.976 1.87 1.87 0 00-.005-1.924L13.719 4.18A2.028 2.028 0 0012 3.25a2.03 2.03 0 00-1.719.93z" -}), React.createElement("path", { - fill: "#FFF", - fillRule: "nonzero", - d: "M11.125 12.875V8.5c0-1.167 1.75-1.167 1.75 0v4.375c0 1.167-1.75 1.167-1.75 0zm0 3.5c0-1.167 1.75-1.167 1.75 0s-1.75 1.167-1.75 0z" -})); - -function SvgIconErrorFilled(props) { - return React.createElement("svg", _extends$r({ - viewBox: "0 0 24 24" - }, props), _ref$r); -} - -function _extends$s() { _extends$s = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$s.apply(this, arguments); } - -var _ref$s = -/*#__PURE__*/ -React.createElement("g", { - className: "emoji-fail_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React.createElement("rect", { - width: 26.526, - height: 26.526, - x: 0.737, - y: 0.737, - fill: "#FFF", - rx: 4 -}), React.createElement("path", { - fill: "#000", - fillOpacity: 0.12, - d: "M14 23.456a9.457 9.457 0 11.001-18.913A9.457 9.457 0 0114 23.456zm0-1.72a7.736 7.736 0 100-15.473 7.737 7.737 0 000 15.474zm.714-6.005a.86.86 0 11-1.72 0v-.867a.86.86 0 01.588-.816 5.248 5.248 0 001.084-.544c.592-.395.907-.815.907-1.22a1.72 1.72 0 00-3.341-.574.86.86 0 11-1.622-.57 3.438 3.438 0 016.682 1.145c0 1.1-.651 1.969-1.672 2.65a6.81 6.81 0 01-.906.508v.288zm-1.72 2.425a.86.86 0 011.72 0v.142a.86.86 0 11-1.72 0V18.156z" -})); - -function SvgEmojiFail(props) { - return React.createElement("svg", _extends$s({ - viewBox: "0 0 28 28" - }, props), _ref$s); -} - -function _extends$t() { _extends$t = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$t.apply(this, arguments); } - -var _ref$t = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-reactions-add_svg__fill", - fillOpacity: 0.88, - fillRule: "evenodd", - d: "M11.033 1.107a9.98 9.98 0 012.669.362.734.734 0 01-.393 1.413A8.466 8.466 0 002.567 11.04 8.466 8.466 0 1019.2 8.8a.736.736 0 01.514-.902.735.735 0 01.901.514c.233.85.352 1.731.352 2.628 0 5.486-4.448 9.933-9.934 9.933-5.486 0-9.933-4.447-9.933-9.933s4.447-9.933 9.933-9.933zm3.68 11.96c.5 0 .854.49.696.965-.644 1.933-2.385 3.261-4.376 3.261-1.99 0-3.732-1.328-4.375-3.261a.733.733 0 01.597-.959l.098-.006h7.36zm-1.195 1.466h-4.97l.101.131a3.115 3.115 0 002.012 1.14l.198.018.174.005c.868 0 1.672-.38 2.254-1.012l.13-.15.101-.132zM7.353 7.547c.374 0 .683.28.728.641l.006.092v1.84a.734.734 0 01-1.461.092l-.006-.092V8.28c0-.405.328-.733.733-.733zm7.36 0c.374 0 .683.28.728.641l.006.092v1.84a.734.734 0 01-1.461.092l-.006-.092V8.28c0-.405.328-.733.733-.733zM18.398 0c.405 0 .733.328.733.733v2.218h2.209a.734.734 0 010 1.467h-2.21v2.209a.732.732 0 11-1.466 0V4.418h-2.217a.734.734 0 110-1.466l2.216-.001.001-2.218c0-.405.328-.733.733-.733z" -}); - -function SvgIconReactionsAdd(props) { - return React.createElement("svg", _extends$t({ - viewBox: "0 0 22 22" - }, props), _ref$t); -} - -function _extends$u() { _extends$u = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$u.apply(this, arguments); } - -var _ref$u = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-emoji-reactions-add_svg__fill", - fillOpacity: 0.38, - fillRule: "evenodd", - d: "M10.03 1.006c.828 0 1.643.112 2.426.33a.666.666 0 11-.357 1.284 7.741 7.741 0 00-2.069-.28 7.697 7.697 0 107.697 7.696c0-.696-.092-1.379-.272-2.037a.667.667 0 011.287-.352c.21.773.319 1.574.319 2.39a9.03 9.03 0 01-9.03 9.03 9.03 9.03 0 11-.001-18.06zm3.346 10.873c.455 0 .776.445.632.877-.585 1.757-2.168 2.965-3.978 2.965s-3.392-1.208-3.978-2.965a.667.667 0 01.538-.87l.095-.007h6.69zm-1.087 1.333H7.771l.092.12c.46.563 1.103.938 1.813 1.033l.196.018.158.005c.784 0 1.512-.341 2.04-.91l.128-.147.091-.12zM6.685 6.86c.34 0 .62.254.661.583l.006.083V9.2a.667.667 0 01-1.329.084L6.018 9.2V7.527c0-.368.299-.666.667-.666zm6.69 0c.34 0 .621.254.662.583l.005.083V9.2a.667.667 0 01-1.328.084L12.71 9.2V7.527c0-.368.299-.666.667-.666zM16.726 0c.368 0 .667.298.667.667l-.001 2.016H19.4a.667.667 0 010 1.334l-2.01-.001.002 2.008a.667.667 0 01-1.334 0V4.016h-2.016a.666.666 0 110-1.333h2.016V.667c0-.369.299-.667.667-.667z" -}); - -function SvgIconEmojiReactionsAdd(props) { - return React.createElement("svg", _extends$u({ - viewBox: "0 0 20 20" - }, props), _ref$u); -} - -function _extends$v() { _extends$v = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$v.apply(this, arguments); } - -var _ref$v = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-delivered_svg__fill", - fillOpacity: 0.38, - fillRule: "evenodd", - d: "M2.207 11.793l5 5a1 1 0 01-1.414 1.414l-5-5a1 1 0 011.414-1.414zm19.586-6a1 1 0 011.414 1.414l-11 11a1 1 0 01-1.414 0l-5-5a1 1 0 011.414-1.414l4.293 4.293zm-3.586 0a1 1 0 010 1.414l-5.999 5.999a1 1 0 01-1.414-1.414l5.999-6a1 1 0 011.414 0z" -}); - -function SvgIconDelivered(props) { - return React.createElement("svg", _extends$v({ - viewBox: "0 0 24 24" - }, props), _ref$v); -} - -function _extends$w() { _extends$w = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$w.apply(this, arguments); } - -var _ref$w = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-disconnected_svg__fill", - fillRule: "evenodd", - d: "M3.55 2.276l.093.081L10.9 9.615a.895.895 0 01.148.147l10.594 10.595a.91.91 0 01-1.193 1.367l-.093-.081-5.015-5.015a.913.913 0 01-.705-.15 4.545 4.545 0 00-5.265 0 .91.91 0 01-1.053-1.483 6.358 6.358 0 014.24-1.151l-2.529-2.53c-1.4.316-2.706.96-3.81 1.883a.91.91 0 01-1.167-1.394 10.854 10.854 0 013.504-1.962L6.445 7.728a13.518 13.518 0 00-3.461 2.226.909.909 0 01-1.204-1.362 15.38 15.38 0 013.299-2.229l-2.722-2.72A.91.91 0 013.55 2.276zm13.14 8.052c.812.397 1.572.894 2.262 1.479a.908.908 0 11-1.177 1.386 9.015 9.015 0 00-1.883-1.23.91.91 0 01.798-1.635zm5.53-1.737a.91.91 0 01-1.203 1.363A13.642 13.642 0 0010.9 6.588a.91.91 0 01-.146-1.813A15.457 15.457 0 0122.22 8.591z" -}); - -function SvgIconDisconnected(props) { - return React.createElement("svg", _extends$w({ - viewBox: "0 0 24 24" - }, props), _ref$w); -} - -function _extends$x() { _extends$x = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$x.apply(this, arguments); } - -var _ref$x = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-document_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M14 1a1.01 1.01 0 01.25.031l.03.009c.03.009.061.02.091.031l.027.012a.914.914 0 01.195.112c.04.03.078.062.114.098l-.093-.082.011.009.082.073 6 6a1.006 1.006 0 01.21.309l.012.027c.012.03.022.06.031.091l.008.03A.921.921 0 0121 8l-.008-.126.001.01L21 8v12a3 3 0 01-3 3H6a3 3 0 01-3-3V4a3 3 0 013-3h8zm-1 2H6a1 1 0 00-1 1v16a1 1 0 001 1h12a1 1 0 001-1V9h-5a1 1 0 01-.993-.883L13 8V3zm4.585 4L15 4.415V7h2.585z" -}); - -function SvgIconDocument(props) { - return React.createElement("svg", _extends$x({ - viewBox: "0 0 24 24" - }, props), _ref$x); -} - -function _extends$y() { _extends$y = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$y.apply(this, arguments); } - -var _ref$y = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-download_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M21 16a1 1 0 01.993.883L22 17v3a3 3 0 01-2.824 2.995L19 23H5a3 3 0 01-2.995-2.824L2 20v-3a1 1 0 011.993-.117L4 17v3a1 1 0 00.883.993L5 21h14a1 1 0 00.993-.883L20 20v-3a1 1 0 011-1zM12 1a1 1 0 01.993.883L13 2v11.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-4 4a1.006 1.006 0 01-.09.08l.09-.08a1.008 1.008 0 01-.674.292L12 17h-.032l-.054-.004L12 17a1.008 1.008 0 01-.613-.21 1.037 1.037 0 01-.094-.083l-4-4a1 1 0 011.32-1.497l.094.083L11 13.585V2a1 1 0 011-1z" -}); - -function SvgIconDownload(props) { - return React.createElement("svg", _extends$y({ - viewBox: "0 0 24 24" - }, props), _ref$y); -} - -function _extends$z() { _extends$z = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$z.apply(this, arguments); } - -var _ref$z = -/*#__PURE__*/ -React.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React.createElement("rect", { - fill: "#FFF", - fillRule: "nonzero", - rx: 10 -}), React.createElement("path", { - className: "icon-file-audio_svg__fill", - fill: "#7B53EF", - d: "M18.815 9.185c2.913 2.934 2.913 7.696 0 10.63a.617.617 0 01-.894-.013.67.67 0 01.012-.925 6.215 6.215 0 000-8.754.67.67 0 01-.012-.925.617.617 0 01.894-.013zm-5.291 0a.646.646 0 011.044.517v9.596c0 .544-.62.85-1.044.516l-3.31-2.702H7.646A.65.65 0 017 16.458v-3.916a.65.65 0 01.647-.654h2.566zm2.886 2.42a4.113 4.113 0 010 5.783.617.617 0 01-.893-.012.67.67 0 01.012-.925 2.772 2.772 0 000-3.908.67.67 0 01-.012-.925.617.617 0 01.893-.013z" -})); - -function SvgIconFileAudio(props) { - return React.createElement("svg", _extends$z({ - viewBox: "0 0 28 28" - }, props), _ref$z); -} - -function _extends$A() { _extends$A = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$A.apply(this, arguments); } - -var _ref$A = -/*#__PURE__*/ -React.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React.createElement("rect", { - fill: "#FFF", - fillRule: "nonzero", - rx: 10 -}), React.createElement("path", { - className: "icon-file-document_svg__fill", - fill: "#7B53EF", - d: "M16.317 5.667H9.05C7.907 5.667 7 6.58 7 7.687v12.625c0 1.107.907 2.021 2.05 2.021h9.9c1.143 0 2.05-.914 2.05-2.02v-9.97a.673.673 0 00-.198-.473l-3.95-3.984a.753.753 0 00-.535-.22z" -}), React.createElement("path", { - fill: "#FFF", - d: "M17.025 16.667c.354 0 .642.302.642.675 0 .372-.288.675-.642.675h-6.383c-.355 0-.642-.303-.642-.675 0-.373.287-.675.642-.675zm0-2.667c.354 0 .642.302.642.675 0 .373-.288.675-.642.675h-6.383c-.355 0-.642-.302-.642-.675 0-.373.287-.675.642-.675zm-3.357-2.667c.369 0 .668.303.668.675 0 .373-.3.675-.668.675h-3a.672.672 0 01-.668-.675c0-.372.3-.675.668-.675z" -})); - -function SvgIconFileDocument(props) { - return React.createElement("svg", _extends$A({ - viewBox: "0 0 28 28" - }, props), _ref$A); -} - -function _extends$B() { _extends$B = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$B.apply(this, arguments); } - -var _ref$B = -/*#__PURE__*/ -React.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React.createElement("circle", { - cx: 28, - cy: 28, - r: 28, - fill: "#FFF", - fillOpacity: 0.88 -}), React.createElement("path", { - className: "icon-gif_svg__fill", - fill: "#000", - fillOpacity: 0.55, - d: "M20.608 35.182c1.094 0 2.09-.162 2.99-.487.899-.325 1.595-.783 2.087-1.372v-5.296h-5.223v2.015h2.489v2.287c-.438.438-1.17.657-2.197.657-1.02 0-1.796-.356-2.324-1.067-.529-.71-.793-1.762-.793-3.153v-.848c.006-1.38.252-2.418.738-3.117.486-.699 1.194-1.048 2.124-1.048.729 0 1.302.176 1.718.528.416.353.685.909.806 1.668h2.662c-.164-1.434-.69-2.526-1.577-3.276s-2.118-1.126-3.691-1.126c-1.13 0-2.116.257-2.958.77-.842.514-1.486 1.255-1.932 2.224-.447.97-.67 2.116-.67 3.44v.903c.012 1.288.253 2.41.724 3.363.471.954 1.14 1.682 2.006 2.183.865.502 1.873.752 3.021.752zm10.2-.182V21.73h-2.735V35h2.734zm5.268 0v-5.423h5.25V27.37h-5.25v-3.427h5.906v-2.215h-8.64V35h2.734z" -})); - -function SvgIconGif(props) { - return React.createElement("svg", _extends$B({ - viewBox: "0 0 56 56" - }, props), _ref$B); -} - -function _extends$C() { _extends$C = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$C.apply(this, arguments); } - -var _ref$C = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-info_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 2a9 9 0 100 18 9 9 0 000-18zm0 8a1 1 0 011 1v4a1 1 0 01-2 0v-4a1 1 0 011-1zm0-3a1 1 0 110 2 1 1 0 010-2z" -}); - -function SvgIconInfo(props) { - return React.createElement("svg", _extends$C({ - viewBox: "0 0 24 24" - }, props), _ref$C); -} - -function _extends$D() { _extends$D = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$D.apply(this, arguments); } - -var _ref$D = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-leave_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 2a1 1 0 01.117 1.993L12 4H4a1 1 0 00-.993.883L3 5v14a1 1 0 00.883.993L4 20h8a1 1 0 01.117 1.993L12 22H4a3 3 0 01-2.995-2.824L1 19V5a3 3 0 012.824-2.995L4 2h8zm6.613 5.21l.094.083 4 4a1 1 0 01.083 1.32l-.083.094-4 4a1 1 0 01-1.497-1.32l.083-.094 1.792-1.793H7.5a1 1 0 01-.117-1.993L7.5 11.5h12.585l-2.792-2.793a1 1 0 01-.083-1.32l.083-.094a1 1 0 011.32-.083z" -}); - -function SvgIconLeave(props) { - return React.createElement("svg", _extends$D({ - viewBox: "0 0 24 24" - }, props), _ref$D); -} - -function _extends$E() { _extends$E = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$E.apply(this, arguments); } - -var _ref$E = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-members_svg__fill", - fillRule: "evenodd", - d: "M13 14a5 5 0 014.995 4.783L18 19v2a1 1 0 01-1.993.117L16 21v-2a3 3 0 00-2.824-2.995L13 16H5a3 3 0 00-2.995 2.824L2 19v2a1 1 0 01-1.993.117L0 21v-2a5 5 0 014.783-4.995L5 14h8zm7.25.162a5 5 0 013.745 4.611L24 19v2a1 1 0 01-1.993.117L22 21v-2a3 3 0 00-2.25-2.902 1 1 0 11.5-1.936zM9 2a5 5 0 110 10A5 5 0 019 2zm7.248.161a5 5 0 010 9.688 1 1 0 01-.496-1.938 3 3 0 000-5.812 1 1 0 11.496-1.938zM9 4a3 3 0 100 6 3 3 0 000-6z" -}); - -function SvgIconMembers(props) { - return React.createElement("svg", _extends$E({ - viewBox: "0 0 24 24" - }, props), _ref$E); -} - -function _extends$F() { _extends$F = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$F.apply(this, arguments); } - -var _ref$F = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-notifications_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M13.73 20a1 1 0 01.865 1.502 3 3 0 01-5.19 0 1 1 0 01.752-1.496L10.27 20h3.46zM12 1a8 8 0 017.996 7.75L20 9v5a2 2 0 001.85 1.995l.283.012c1.111.12 1.154 1.73.128 1.965l-.128.021L22 18H2l-.133-.007c-1.156-.124-1.156-1.862 0-1.986l.282-.012a2 2 0 001.845-1.838L4 14V9a8 8 0 018-8zm0 2a6 6 0 00-5.996 5.775L6 9v5c0 .586-.126 1.142-.352 1.643l-.103.212-.082.145h13.073l-.08-.145a3.973 3.973 0 01-.43-1.402l-.021-.253L18 14V9a6 6 0 00-6-6z" -}); - -function SvgIconNotifications(props) { - return React.createElement("svg", _extends$F({ - viewBox: "0 0 24 24" - }, props), _ref$F); -} - -function _extends$G() { _extends$G = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$G.apply(this, arguments); } - -var _ref$G = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-photo_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M19 2a3 3 0 013 3v14a3 3 0 01-3 3H4.941v-.002l-.117-.003A3 3 0 012 19V5a3 3 0 013-3zm-3 9.415L7.414 20H19a1 1 0 00.993-.883L20 19v-3.585l-4-4zM19 4H5a1 1 0 00-1 1v14a1 1 0 00.65.937L15.292 9.293a1 1 0 011.32-.083l.094.083L20 12.585V5a1 1 0 00-.883-.993L19 4zM8.5 6a2.5 2.5 0 110 5 2.5 2.5 0 010-5zm0 2a.5.5 0 100 1 .5.5 0 000-1z" -}); - -function SvgIconPhoto(props) { - return React.createElement("svg", _extends$G({ - viewBox: "0 0 24 24" - }, props), _ref$G); -} - -function _extends$H() { _extends$H = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$H.apply(this, arguments); } - -var _ref$H = -/*#__PURE__*/ -React.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React.createElement("circle", { - cx: 28, - cy: 28, - r: 28, - fill: "#FFF", - fillOpacity: 0.88 -}), React.createElement("path", { - className: "icon-play_svg__fill", - fill: "#000", - fillOpacity: 0.55, - d: "M38.91 29.987c1.009-.63 1.007-1.664.007-2.304l-17.29-11.055c-1.006-.643-1.809-.2-1.793 1.004l.277 21.891c.015 1.198.847 1.657 1.855 1.029L38.91 29.987z" -})); - -function SvgIconPlay(props) { - return React.createElement("svg", _extends$H({ - viewBox: "0 0 56 56" - }, props), _ref$H); -} - -function _extends$I() { _extends$I = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$I.apply(this, arguments); } - -var _ref$I = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-plus_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M13 11h7c1.333 0 1.333 2 0 2h-7v7c0 1.333-2 1.333-2 0v-7H4c-1.333 0-1.333-2 0-2h7V4c0-1.333 2-1.333 2 0v7z" -}); - -function SvgIconPlus(props) { - return React.createElement("svg", _extends$I({ - viewBox: "0 0 24 24" - }, props), _ref$I); -} - -function _extends$J() { _extends$J = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$J.apply(this, arguments); } - -var _ref$J = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-read_svg__fill", - fill: "#2EBA9F", - fillRule: "evenodd", - d: "M2.207 11.793l5 5a1 1 0 01-1.414 1.414l-5-5a1 1 0 011.414-1.414zm19.586-6a1 1 0 011.414 1.414l-11 11a1 1 0 01-1.414 0l-5-5a1 1 0 011.414-1.414l4.293 4.293zm-3.586 0a1 1 0 010 1.414l-5.999 5.999a1 1 0 01-1.414-1.414l5.999-6a1 1 0 011.414 0z" -}); - -function SvgIconRead(props) { - return React.createElement("svg", _extends$J({ - viewBox: "0 0 24 24" - }, props), _ref$J); -} - -function _extends$K() { _extends$K = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$K.apply(this, arguments); } - -var _ref$K = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-refresh_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M14.419 4.51l.175.167 2.073 1.927V4.167c0-.428.321-.78.736-.828l.097-.006c.427 0 .78.322.828.736l.005.098v5c0 .427-.321.78-.736.827L17.5 10h-5a.833.833 0 01-.097-1.661l.097-.006h3.578L13.44 5.88a5.982 5.982 0 00-7.05-.986C4.083 6.15 2.898 8.756 3.48 11.286c.58 2.534 2.792 4.385 5.425 4.537 2.635.152 5.05-1.433 5.928-3.883a.833.833 0 011.569.561c-1.127 3.15-4.223 5.18-7.593 4.986-3.37-.195-6.206-2.57-6.954-5.828-.748-3.261.778-6.617 3.738-8.229 2.884-1.57 6.453-1.118 8.826 1.08z" -}); - -function SvgIconRefresh(props) { - return React.createElement("svg", _extends$K({ - width: 20, - height: 20 - }, props), _ref$K); -} - -function _extends$L() { _extends$L = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$L.apply(this, arguments); } - -var _ref$L = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-send_svg__fill", - fillRule: "evenodd", - d: "M20.554 10.117L2.52 1.024C1.613.619.605 1.428 1.008 2.337l2.115 5.685a2 2 0 001.545 1.275l10.345 1.73-10.345 1.728a2 2 0 00-1.545 1.275l-2.115 5.685c-.302.91.605 1.718 1.511 1.213l18.035-9.094c.706-.303.706-1.313 0-1.717z" -}); - -function SvgIconSend(props) { - return React.createElement("svg", _extends$L({ - viewBox: "0 0 22 22" - }, props), _ref$L); -} - -function _extends$M() { _extends$M = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$M.apply(this, arguments); } - -var _ref$M = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-sent_svg__fill", - fillOpacity: 0.38, - fillRule: "evenodd", - d: "M4.707 11.793a1 1 0 10-1.414 1.414l5 5a1 1 0 001.414 0l11-11a1 1 0 10-1.414-1.414L9 16.086l-4.293-4.293z" -}); - -function SvgIconSent(props) { - return React.createElement("svg", _extends$M({ - viewBox: "0 0 24 24" - }, props), _ref$M); -} - -function _extends$N() { _extends$N = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$N.apply(this, arguments); } - -var _ref$N = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-shevron_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M8.293 17.293a1 1 0 001.414 1.414l6-6a1 1 0 000-1.414l-6-6a1 1 0 00-1.414 1.414L13.586 12l-5.293 5.293z" -}); - -function SvgIconShevron(props) { - return React.createElement("svg", _extends$N({ - viewBox: "0 0 24 24" - }, props), _ref$N); -} - -function _extends$O() { _extends$O = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$O.apply(this, arguments); } - -var _ref$O = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-shevron-down_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M6.045 8.205a1.125 1.125 0 10-1.59 1.59l6.75 6.75c.439.44 1.151.44 1.59 0l6.75-6.75a1.125 1.125 0 10-1.59-1.59L12 14.159 6.045 8.205z" -}); - -function SvgIconShevronDown(props) { - return React.createElement("svg", _extends$O({ - viewBox: "0 0 24 24" - }, props), _ref$O); -} - -function _extends$P() { _extends$P = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$P.apply(this, arguments); } - -var _ref$P = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-spinner-small_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 22.5c5.799 0 10.5-4.701 10.5-10.5S17.799 1.5 12 1.5 1.5 6.201 1.5 12a1.432 1.432 0 002.864 0A7.636 7.636 0 1112 19.636a1.432 1.432 0 000 2.864z" -}); - -function SvgIconSpinnerSmall(props) { - return React.createElement("svg", _extends$P({ - viewBox: "0 0 24 24" - }, props), _ref$P); -} - -function _extends$Q() { _extends$Q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Q.apply(this, arguments); } - -var _ref$Q = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-spinner-large_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24a2.323 2.323 0 104.645 0C4.645 13.31 13.311 4.645 24 4.645c10.69 0 19.355 8.666 19.355 19.355 0 10.69-8.666 19.355-19.355 19.355A2.323 2.323 0 0024 48z" -}); - -function SvgIconSpinnerLarge(props) { - return React.createElement("svg", _extends$Q({ - viewBox: "0 0 48 48" - }, props), _ref$Q); -} - -function _extends$R() { _extends$R = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$R.apply(this, arguments); } - -var _ref$R = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-user_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M16 14a5 5 0 014.995 4.783L21 19v2a1 1 0 01-1.993.117L19 21v-2a3 3 0 00-2.824-2.995L16 16H8a3 3 0 00-2.995 2.824L5 19v2a1 1 0 01-1.993.117L3 21v-2a5 5 0 014.783-4.995L8 14h8zM12 2a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z" -}); - -function SvgIconUser(props) { - return React.createElement("svg", _extends$R({ - viewBox: "0 0 24 24" - }, props), _ref$R); -} - -function _extends$S() { _extends$S = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$S.apply(this, arguments); } - -var _ref$S = -/*#__PURE__*/ -React.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React.createElement("path", { - className: "icon-operator_svg__stroke", - d: "M2 6l5 4 5-7 5 7 5-4-3 14H5z" -}), React.createElement("circle", { - className: "icon-operator_svg__fill", - cx: 12, - cy: 14, - r: 2 -})); - -function SvgIconOperator(props) { - return React.createElement("svg", _extends$S({ - viewBox: "0 0 24 24" - }, props), _ref$S); -} - -function _extends$T() { _extends$T = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$T.apply(this, arguments); } - -var _ref$T = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-banned_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 2a9 9 0 10.001 18.001A9 9 0 0012 3zm4 8a1 1 0 010 2H8a1 1 0 010-2h8z" -}); - -function SvgIconBanned(props) { - return React.createElement("svg", _extends$T({ - viewBox: "0 0 24 24" - }, props), _ref$T); -} - -function _extends$U() { _extends$U = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$U.apply(this, arguments); } - -var _ref$U = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-muted_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M20.857 7.357l.026.045A9.96 9.96 0 0122 12a9.937 9.937 0 01-1.074 4.51c-.38 1.021-.463 1.817-.25 2.386.265.713.598 1.308.997 1.784.578.594.39 1.01-.565 1.249-.763.19-2.073 0-3.929-.571l-.333-.105-.598-.198A9.965 9.965 0 0112 22a9.952 9.952 0 01-4.622-1.13l-.022-.011 1.5-1.5c.982.42 2.046.641 3.144.641 1.073 0 2.114-.21 3.079-.613l.318-.142.722-.339 1.355.449.26.082c.228.07.445.133.65.19l.298.08.182.045-.063-.157-.075-.223c-.295-.974-.189-2.057.225-3.275l.1-.284.04-.107.198-.406A7.949 7.949 0 0020 12a7.97 7.97 0 00-.64-3.143l1.497-1.5zM12 2c2.401 0 4.604.846 6.328 2.257l1.965-1.964a1 1 0 011.497 1.32l-.083.094-18 18a1 1 0 01-1.497-1.32l.083-.094 1.963-1.965a9.956 9.956 0 01-2.25-5.998L2 12C2 6.477 6.477 2 12 2zm0 2a8 8 0 00-6.32 12.906L16.905 5.68a7.957 7.957 0 00-4.607-1.675L12 4z" -}); - -function SvgIconMuted(props) { - return React.createElement("svg", _extends$U({ - viewBox: "0 0 24 24" - }, props), _ref$U); -} - -function _extends$V() { _extends$V = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$V.apply(this, arguments); } - -var _ref$V = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-muted-foreground_svg__fill", - fill: "#FFF", - fillOpacity: 0.88, - fillRule: "evenodd", - d: "M13.904 4.904l.018.03c.476.919.745 1.96.745 3.066a6.628 6.628 0 01-.716 3.006c-.253.682-.309 1.212-.168 1.591.178.476.4.872.666 1.19.385.396.26.674-.377.832-.503.125-1.361.003-2.576-.367l-.266-.083-.398-.132c-.86.404-1.82.63-2.832.63a6.632 6.632 0 01-3.082-.754l-.014-.007 1-1c.655.28 1.364.427 2.096.427a5.32 5.32 0 001.999-.386l.266-.117.481-.226.903.299.174.055c.152.047.296.089.433.126l.199.054.121.03-.042-.105-.05-.149c-.192-.635-.129-1.34.133-2.132l.084-.24.026-.071.132-.271a5.294 5.294 0 00.474-2.2c0-.732-.147-1.44-.427-2.096l.998-1zm.567-3.375c.24.24.26.618.056.88l-.056.062-12 12a.666.666 0 01-.998-.88l.056-.062 1.31-1.31a6.636 6.636 0 01-1.5-3.94L1.333 8A6.667 6.667 0 0112.22 2.838l1.309-1.31c.26-.26.682-.26.942 0zM8 2.667a5.332 5.332 0 00-4.213 8.603l7.484-7.484a5.32 5.32 0 00-3.006-1.113L8 2.667z" -}); - -function SvgIconMutedForeground(props) { - return React.createElement("svg", _extends$V({ - viewBox: "0 0 16 16" - }, props), _ref$V); -} - -function _extends$W() { _extends$W = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$W.apply(this, arguments); } - -var _ref$W = -/*#__PURE__*/ -React.createElement("path", { - className: "icon-freeze_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M9.613 1.21l.095.083L12 3.585l2.293-2.292a1 1 0 011.32-.083l.095.083a1 1 0 01.083 1.32l-.083.094L13 5.414v4.853l4.203-2.427.992-3.697a1 1 0 011.957.395l-.025.123-.84 3.131 3.133.84c.492.132.8.61.732 1.102l-.025.123c-.132.492-.61.8-1.102.732l-.123-.025-3.698-.991L14.001 12l4.203 2.426 3.698-.99.123-.025c.492-.068.97.24 1.102.732l.025.123a1 1 0 01-.732 1.102l-3.133.839.84 3.132.025.123a1 1 0 01-1.957.395l-.992-3.698L13 13.732v4.853l2.708 2.708a1 1 0 01-1.32 1.497l-.095-.083L12 20.414l-2.292 2.293a1 1 0 01-1.32.083l-.095-.083a1 1 0 01-.083-1.32l.083-.094L11 18.585v-4.853l-4.203 2.427-.99 3.698a1.002 1.002 0 01-1.958-.395l.025-.123.839-3.131-3.132-.84c-.492-.132-.8-.61-.732-1.102l.025-.123c.132-.492.61-.8 1.102-.732l.123.025 3.697.99 4.203-2.427-4.203-2.426-3.697.991-.123.025c-.492.068-.97-.24-1.102-.732L.85 9.734a1 1 0 01.732-1.102l3.132-.84-.839-3.131-.025-.123a1 1 0 011.957-.395l.991 3.697L11 10.267V5.414L8.293 2.707a1 1 0 011.32-1.497z" -}); - -function SvgIconFreeze(props) { - return React.createElement("svg", _extends$W({ - viewBox: "0 0 24 24" - }, props), _ref$W); -} - -function _extends$X() { _extends$X = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$X.apply(this, arguments); } - -var _ref$X = -/*#__PURE__*/ -React.createElement("g", { - className: "icon-toggleon_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React.createElement("rect", { - width: 40, - height: 20, - x: 2, - y: 2, - fill: "#7B53EF", - rx: 10 -}), React.createElement("circle", { - cx: 32, - cy: 12, - r: 6, - fill: "#FFF" -}), React.createElement("path", { - fill: "#7B53EF", - d: "M32 0H12C5.373 0 0 5.373 0 12s5.373 12 12 12h20c6.627 0 12-5.373 12-12S38.627 0 32 0zm0 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20z" -})); - -function SvgIconToggleon(props) { - return React.createElement("svg", _extends$X({ - viewBox: "0 0 44 24" - }, props), _ref$X); -} - -function _extends$Y() { _extends$Y = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Y.apply(this, arguments); } - -var _ref$Y = -/*#__PURE__*/ -React.createElement("g", { - className: "icon-toggleoff_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React.createElement("rect", { - width: 40, - height: 20, - x: 2, - y: 2, - fill: "#A8A8A8", - rx: 10 -}), React.createElement("circle", { - cx: 12, - cy: 12, - r: 6, - fill: "#FFF" -}), React.createElement("path", { - fill: "#A8A8A8", - d: "M32 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20zm0 1H12a9 9 0 00-.265 17.996L12 21h20a9 9 0 00.265-17.996L32 3z" -}), React.createElement("path", { - fill: "#FFF", - d: "M32 0H12C5.373 0 0 5.373 0 12s5.373 12 12 12h20c6.627 0 12-5.373 12-12S38.627 0 32 0zm0 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20z" -})); - -function SvgIconToggleoff(props) { - return React.createElement("svg", _extends$Y({ - viewBox: "0 0 44 24" - }, props), _ref$Y); -} - -var Colors = { - DEFAULT: 'DEFAULT', - PRIMARY: 'PRIMARY', - SECONDARY: 'SECONDARY', - CONTENT: 'CONTENT', - CONTENT_INVERSE: 'CONTENT_INVERSE', - WHITE: 'WHITE', - SENT: 'SENT', - READ: 'READ', - ON_BACKGROUND_3: 'ON_BACKGROUND_3' -}; - -function changeColorToClassName(color) { - switch (color) { - case Colors.PRIMARY: - return 'sendbird-color--primary'; - - case Colors.SECONDARY: - return 'sendbird-color--secondary'; - - case Colors.CONTENT: - return 'sendbird-color--content'; - - case Colors.CONTENT_INVERSE: - return 'sendbird-color--content-inverse'; - - case Colors.WHITE: - return 'sendbird-color--white'; - - case Colors.SENT: - return 'sendbird-color--sent'; - - case Colors.READ: - return 'sendbird-color--read'; - - case Colors.ON_BACKGROUND_3: - return 'sendbird-color--on-background'; - - default: - return ''; - } -} - -function changeTypeToIconComponent(type) { - switch (type) { - case Type.ADD: - return React.createElement(SvgIconAdd, null); - - case Type.ARROW_LEFT: - return React.createElement(SvgIconArrowLeft, null); - - case Type.CAMERA: - return React.createElement(SvgIconCamera, null); - - case Type.ATTACH: - return React.createElement(SvgIconAttach, null); - - case Type.AVATAR_DARK: - return React.createElement(SvgIconAvatarDark, null); - - case Type.AVATAR_LIGHT: - return React.createElement(SvgIconAvatarLight, null); - - case Type.BROADCAST_LARGE_DARK: - return React.createElement(SvgIconBroadcastLrgDark, null); - - case Type.BROADCAST_LARGE_LIGHT: - return React.createElement(SvgIconBroadcastLrgLight, null); - - case Type.BROADCAST_DARK: - return React.createElement(SvgIconBroadcastDark, null); - - case Type.BROADCAST_LIGHT: - return React.createElement(SvgIconBroadcastLight, null); - - case Type.BROADCAST: - return React.createElement(SvgIconBroadcast, null); - - case Type.FROZEN_DARK: - return React.createElement(SvgFrozenDark, null); - - case Type.FROZEN_LIGHT: - return React.createElement(SvgFrozenLight, null); - - case Type.MORE: - return React.createElement(SvgIconMore, null); - - case Type.MUTE: - return React.createElement(SvgIconMute, null); - - case Type.NO_THUMBNAIL: - return React.createElement(SvgIconNoThumbnail, null); - - case Type.CHECKBOX: - return React.createElement(SvgIconCheckbox, null); - - case Type.CHECKBOX_OFF: - return React.createElement(SvgIconCheckboxOff, null); - - case Type.CLOSE: - return React.createElement(SvgIconClose, null); - - case Type.COPY: - return React.createElement(SvgIconCopy, null); - - case Type.CHAT: - return React.createElement(SvgIconChat, null); - - case Type.SUPER_GROUP: - return React.createElement(SvgIconSupergroup, null); - - case Type.CREATE: - return React.createElement(SvgIconCreate, null); - - case Type.DELETE: - return React.createElement(SvgIconDelete, null); - - case Type.DISCONNECTED: - return React.createElement(SvgIconDisconnected, null); - - case Type.DUMMY: - return React.createElement(SvgIconDummy, null); - - case Type.EDIT: - return React.createElement(SvgIconEdit, null); - - case Type.ERROR: - return React.createElement(SvgIconError, null); - - case Type.ERROR_FILLED: - return React.createElement(SvgIconErrorFilled, null); - - case Type.EMOJI_FAILED: - return React.createElement(SvgEmojiFail, null); - - case Type.EMOJI_REACTIONS_ADD: - return React.createElement(SvgIconReactionsAdd, null); - - case Type.EMOJI_REACTIONS_ADD_GRAY: - return React.createElement(SvgIconEmojiReactionsAdd, null); - - case Type.DELIVERED: - return React.createElement(SvgIconDelivered, null); - - case Type.DOCUMENT: - return React.createElement(SvgIconDocument, null); - - case Type.DOWNLOAD: - return React.createElement(SvgIconDownload, null); - - case Type.FILE_AUDIO: - return React.createElement(SvgIconFileAudio, null); - - case Type.FILE_DOCUMENT: - return React.createElement(SvgIconFileDocument, null); - - case Type.GIF: - return React.createElement(SvgIconGif, null); - - case Type.INFO: - return React.createElement(SvgIconInfo, null); - - case Type.LEAVE: - return React.createElement(SvgIconLeave, null); - - case Type.MEMBERS: - return React.createElement(SvgIconMembers, null); - - case Type.NOTIFICATIONS: - return React.createElement(SvgIconNotifications, null); - - case Type.PHOTO: - return React.createElement(SvgIconPhoto, null); - - case Type.PLAY: - return React.createElement(SvgIconPlay, null); - - case Type.PLUS: - return React.createElement(SvgIconPlus, null); - - case Type.READ: - return React.createElement(SvgIconRead, null); - - case Type.REFRESH: - return React.createElement(SvgIconRefresh, null); - - case Type.SEND: - return React.createElement(SvgIconSend, null); - - case Type.SENT: - return React.createElement(SvgIconSent, null); - - case Type.SHEVRON: - return React.createElement(SvgIconShevron, null); - - case Type.SHEVRON_DOWN: - return React.createElement(SvgIconShevronDown, null); - - case Type.SPINNER: - return React.createElement(SvgIconSpinnerSmall, null); - - case Type.SPINNER_LARGE: - return React.createElement(SvgIconSpinnerLarge, null); - - case Type.USER: - return React.createElement(SvgIconUser, null); - - case Type.ICON_OPERATOR: - return React.createElement(SvgIconOperator, null); - - case Type.ICON_BANNED: - return React.createElement(SvgIconBanned, null); - - case Type.ICON_MUTED: - return React.createElement(SvgIconMuted, null); - - case Type.ICON_MUTED_FG: - return React.createElement(SvgIconMutedForeground, null); - - case Type.ICON_FREEZE: - return React.createElement(SvgIconFreeze, null); - - case Type.TOGGLE_ON: - return React.createElement(SvgIconToggleon, null); - - case Type.TOGGLE_OFF: - return React.createElement(SvgIconToggleoff, null); - - default: - return null; - } -} - -function Icon(_ref) { - var type = _ref.type, - width = _ref.width, - height = _ref.height, - children = _ref.children, - className = _ref.className, - onClick = _ref.onClick, - fillColor = _ref.fillColor; - var iconStyle = { - width: typeof width === 'string' ? width : "".concat(width, "px"), - height: typeof height === 'string' ? height : "".concat(height, "px") - }; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - onClick: onClick, - onKeyDown: onClick, - role: "button", - tabIndex: "0", - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-icon', changeColorToClassName(fillColor)]).join(' '), - style: iconStyle - }, children || changeTypeToIconComponent(type)); -} -Icon.propTypes = { - type: PropTypes.oneOfType([PropTypes.oneOf(Object.keys(Type)), PropTypes.string]).isRequired, - width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - onClick: PropTypes.func, - children: PropTypes.element, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - fillColor: PropTypes.oneOf(Object.keys(Colors)) -}; -Icon.defaultProps = { - onClick: function onClick() {}, - width: 26, - height: 26, - children: null, - className: '', - fillColor: Colors.DEFAULT -}; -var IconTypes = Type; -var IconColors = Colors; - -var imageRendererClassName = 'sendbird-avatar-img'; - -var defaultComponent = function defaultComponent(_a) { - var width = _a.width, - height = _a.height; - return function () { - return document.querySelector('.sendbird-theme--dark') ? React.createElement(Icon, { - className: imageRendererClassName, - type: IconTypes.AVATAR_DARK, - width: width, - height: height - }) : React.createElement(Icon, { - className: imageRendererClassName, - type: IconTypes.AVATAR_LIGHT, - width: width, - height: height - }); - }; -}; - -var AvatarInner = function AvatarInner(_a) { - var _b = _a.src, - src = _b === void 0 ? '' : _b, - _c = _a.alt, - alt = _c === void 0 ? '' : _c, - height = _a.height, - width = _a.width; - - if (typeof src === 'string') { - return React.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src, - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }); - } - - if (src && src.length) { - if (src.length === 1) { - return React.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[0], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }); - } - - if (src.length === 2) { - return React.createElement("div", { - className: "sendbird-avatar--inner__two-child" - }, React.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[0], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }), React.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[1], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - })); - } - - if (src.length === 3) { - return React.createElement(React.Fragment, null, React.createElement("div", { - className: "sendbird-avatar--inner__three-child--upper" - }, React.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[0], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - })), React.createElement("div", { - className: "sendbird-avatar--inner__three-child--lower" - }, React.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[1], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }), React.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[2], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }))); - } - - return React.createElement("div", { - className: "sendbird-avatar--inner__four-child" - }, src.slice(0, 4).map(function (i) { - return React.createElement(ImageRenderer, { - className: imageRendererClassName, - url: i, - height: height, - width: width, - alt: alt, - key: uuidv4(), - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }); - })); - } // default img - - - return React.createElement(ImageRenderer, { - className: imageRendererClassName, - url: "", - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }); -}; - -function Avatar(_a, ref) { - var _b = _a.src, - src = _b === void 0 ? '' : _b, - _c = _a.alt, - alt = _c === void 0 ? '' : _c, - _d = _a.width, - width = _d === void 0 ? '56px' : _d, - _e = _a.height, - height = _e === void 0 ? '56px' : _e, - onClick = _a.onClick, - _f = _a.className, - className = _f === void 0 ? '' : _f; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - className: __spreadArrays(injectingClassName, ['sendbird-avatar']).join(' '), - ref: ref, - style: { - height: height, - width: width - }, - onClick: onClick, - role: "button", - tabIndex: 0, - onKeyDown: onClick - }, React.createElement(AvatarInner, { - src: src, - height: height, - width: width, - alt: alt - })); -} - -var Avatar$1 = React.forwardRef(Avatar); - -var DEFAULT_URL_PREFIX = 'https://static.sendbird.com/sample/cover/cover_'; -var getChannelAvatarSource = function getChannelAvatarSource(channel, currentUserId) { - if (channel && channel.coverUrl) { - if (!new RegExp("^" + DEFAULT_URL_PREFIX).test(channel.coverUrl)) { - return channel.coverUrl; - } - } - - return channel && channel.members ? channel.members.filter(function (member) { - return member.userId !== currentUserId; - }).map(function (_a) { - var profileUrl = _a.profileUrl; - return profileUrl; - }) : []; -}; -var useDefaultAvatar = function useDefaultAvatar(channel) { - if (channel && channel.coverUrl) { - if (new RegExp("^" + DEFAULT_URL_PREFIX).test(channel.coverUrl)) { - return true; - } - - return false; - } - - return true; -}; - -function ChannelAvatar(_a) { - var channel = _a.channel, - userId = _a.userId, - theme = _a.theme, - _b = _a.height, - height = _b === void 0 ? 56 : _b, - _c = _a.width, - width = _c === void 0 ? 56 : _c; - var isBroadcast = channel.isBroadcast; - var memoizedAvatar = useMemo(function () { - return isBroadcast ? useDefaultAvatar(channel) ? theme === 'dark' ? React.createElement(Icon, { - type: IconTypes.BROADCAST_LARGE_DARK, - width: width, - height: height, - className: "sendbird-chat-header__default--broadcast-channel-dark" - }) : React.createElement(Icon, { - type: IconTypes.BROADCAST_LARGE_LIGHT, - width: width, - height: height, - className: "sendbird-chat-header__default--broadcast-channel-light" - }) : React.createElement(Avatar$1, { - className: "sendbird-chat-header__avatar--broadcast-channel", - src: getChannelAvatarSource(channel, userId), - width: width, - height: height, - alt: channel.name - }) : React.createElement(Avatar$1, { - className: "sendbird-chat-header__avatar--group-channel", - src: getChannelAvatarSource(channel, userId), - width: width + "px", - height: height + "px", - alt: channel.name - }); - }, [channel.members, channel.coverUrl, theme]); - return React.createElement(React.Fragment, null, memoizedAvatar); -} - -var Typography = { - H_1: 'H_1', - H_2: 'H_2', - SUBTITLE_1: 'SUBTITLE_1', - SUBTITLE_2: 'SUBTITLE_2', - BODY_1: 'BODY_1', - BODY_2: 'BODY_2', - BUTTON_1: 'BUTTON_1', - BUTTON_2: 'BUTTON_2', - CAPTION_1: 'CAPTION_1', - CAPTION_2: 'CAPTION_2', - CAPTION_3: 'CAPTION_3' -}; -var Colors$1 = { - ONBACKGROUND_1: 'ONBACKGROUND_1', - ONBACKGROUND_2: 'ONBACKGROUND_2', - ONBACKGROUND_3: 'ONBACKGROUND_3', - ONCONTENT_1: 'ONCONTENT_1', - ONCONTENT_2: 'ONCONTENT_2', - PRIMARY: 'PRIMARY', - ERROR: 'ERROR' -}; - -function changeTypographyToClassName(type) { - switch (type) { - case Typography.H_1: - return 'sendbird-label--h-1'; - - case Typography.H_2: - return 'sendbird-label--h-2'; - - case Typography.SUBTITLE_1: - return 'sendbird-label--subtitle-1'; - - case Typography.SUBTITLE_2: - return 'sendbird-label--subtitle-2'; - - case Typography.BODY_1: - return 'sendbird-label--body-1'; - - case Typography.BODY_2: - return 'sendbird-label--body-2'; - - case Typography.BUTTON_1: - return 'sendbird-label--button-1'; - - case Typography.BUTTON_2: - return 'sendbird-label--button-2'; - - case Typography.CAPTION_1: - return 'sendbird-label--caption-1'; - - case Typography.CAPTION_2: - return 'sendbird-label--caption-2'; - - case Typography.CAPTION_3: - return 'sendbird-label--caption-3'; - - default: - return null; - } -} -function changeColorToClassName$1(color) { - switch (color) { - case Colors$1.ONBACKGROUND_1: - return 'sendbird-label--color-onbackground-1'; - - case Colors$1.ONBACKGROUND_2: - return 'sendbird-label--color-onbackground-2'; - - case Colors$1.ONBACKGROUND_3: - return 'sendbird-label--color-onbackground-3'; - - case Colors$1.ONCONTENT_1: - return 'sendbird-label--color-oncontent-1'; - - case Colors$1.ONCONTENT_2: - return 'sendbird-label--color-oncontent-2'; - - case Colors$1.PRIMARY: - return 'sendbird-label--color-primary'; - - case Colors$1.ERROR: - return 'sendbird-label--color-error'; - - default: - return null; - } -} - -var CLASS_NAME = 'sendbird-label'; -function Label(_ref) { - var type = _ref.type, - color = _ref.color, - children = _ref.children, - className = _ref.className; - var injectingClassName = Array.isArray(className) ? [CLASS_NAME].concat(_toConsumableArray(className)) : [CLASS_NAME, className]; - - if (type) { - injectingClassName.push(changeTypographyToClassName(type)); - } - - if (color) { - injectingClassName.push(changeColorToClassName$1(color)); - } - - return React.createElement("span", { - className: injectingClassName.join(' ') - }, children); -} -Label.propTypes = { - type: PropTypes.oneOf([].concat(_toConsumableArray(Object.keys(Typography)), [''])), - color: PropTypes.oneOf([].concat(_toConsumableArray(Object.keys(Colors$1)), [''])), - children: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.element, PropTypes.any]), - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -Label.defaultProps = { - type: '', - color: '', - className: [], - children: null -}; -var LabelTypography = Typography; -var LabelColors = Colors$1; -var LabelStringSet = getStringSet('en'); - -function Badge(_ref) { - var count = _ref.count, - maxLevel = _ref.maxLevel, - className = _ref.className; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var maximumNumber = parseInt('9'.repeat(maxLevel > 6 ? 6 : maxLevel), 10); - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-badge']).join(' ') - }, React.createElement("div", { - className: "sendbird-badge__text" - }, React.createElement(Label, { - type: LabelTypography.CAPTION_2, - color: LabelColors.ONCONTENT_1 - }, count > maximumNumber ? "".concat(maximumNumber).concat(stringSet.BADGE__OVER) : count))); -} -Badge.propTypes = { - count: PropTypes.number.isRequired, - maxLevel: PropTypes.number, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -Badge.defaultProps = { - maxLevel: 2, - className: [] -}; - -var MessageStatusType = { - PENDING: 'PENDING', - SENT: 'SENT', - DELIVERED: 'DELIVERED', - READ: 'READ', - FAILED: 'FAILED' -}; - -var truncate = function truncate(fullStr, strLen) { - if (fullStr === null || fullStr === undefined) return ''; - if (fullStr.length <= strLen) return fullStr; - var separator = '...'; - var sepLen = separator.length; - var charsToShow = strLen - sepLen; - var frontChars = Math.ceil(charsToShow / 2); - var backChars = Math.floor(charsToShow / 2); - return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars); -}; -var getIsSentFromStatus = function getIsSentFromStatus(status) { - return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; -}; - -var getChannelTitle = function getChannelTitle() { - var channel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var currentUserId = arguments.length > 1 ? arguments[1] : undefined; - var stringSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LabelStringSet; - - if (!channel || !channel.name && !channel.members) { - return stringSet.NO_TITLE; - } - - if (channel.name && channel.name !== 'Group Channel') { - return channel.name; - } - - if (channel.members.length === 1) { - return stringSet.NO_MEMBERS; - } - - return channel.members.filter(function (_ref) { - var userId = _ref.userId; - return userId !== currentUserId; - }).map(function (_ref2) { - var nickname = _ref2.nickname; - return nickname || stringSet.NO_NAME; - }).join(', '); -}; -var getLastMessageCreatedAt = function getLastMessageCreatedAt(channel) { - if (!channel || !channel.lastMessage) { - return ''; - } - - var date = channel.lastMessage.createdAt; - - if (isToday(date)) { - return format(date, 'p'); - } - - if (isYesterday(date)) { - return 'Yesterday'; - } - - return format(date, 'MMM dd'); -}; -var getTotalMembers = function getTotalMembers(channel) { - return channel && channel.memberCount ? channel.memberCount : 0; -}; - -var getPrettyLastMessage = function getPrettyLastMessage() { - var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var MAXLEN = 30; - var messageType = message.messageType, - name = message.name; - - if (messageType === 'file') { - return truncate(name, MAXLEN); - } - - return message.message; -}; - -var getLastMessage = function getLastMessage(channel) { - return channel && channel.lastMessage ? getPrettyLastMessage(channel.lastMessage) : ''; -}; -var getChannelUnreadMessageCount = function getChannelUnreadMessageCount(channel) { - return channel && channel.unreadMessageCount ? channel.unreadMessageCount : 0; -}; - -function ChannelPreview(_ref) { - var channel = _ref.channel, - isActive = _ref.isActive, - ChannelAction = _ref.ChannelAction, - theme = _ref.theme, - onClick = _ref.onClick, - tabIndex = _ref.tabIndex, - currentUser = _ref.currentUser; - var userId = currentUser.userId; - var isBroadcast = channel.isBroadcast, - isFrozen = channel.isFrozen; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.createElement("div", { - role: "link", - tabIndex: tabIndex, - onClick: onClick, - onKeyPress: onClick, - className: "\n sendbird-channel-preview\n ".concat(isActive ? 'sendbird-channel-preview--active' : null, "\n ") - }, React.createElement("div", { - className: "sendbird-channel-preview__avatar" - }, React.createElement(ChannelAvatar, { - channel: channel, - userId: userId, - theme: theme - })), React.createElement("div", { - className: "sendbird-channel-preview__content" - }, React.createElement("div", { - className: "sendbird-channel-preview__content__upper" - }, React.createElement("div", { - className: "sendbird-channel-preview__content__upper__header" - }, isBroadcast && React.createElement("div", { - className: "sendbird-channel-preview__broadcast-icon" - }, React.createElement(Icon, { - type: theme === 'dark' ? IconTypes.BROADCAST_DARK : IconTypes.BROADCAST_LIGHT, - height: 12, - width: 12 - })), React.createElement(Label, { - className: "sendbird-channel-preview__content__upper__header__channel-name", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, getChannelTitle(channel, userId, stringSet)), React.createElement(Label, { - className: "sendbird-channel-preview__content__upper__header__total-members", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getTotalMembers(channel)), isFrozen && React.createElement("div", { - title: "Frozen", - className: "sendbird-channel-preview__frozen-icon" - }, React.createElement(Icon, { - type: theme === 'dark' ? IconTypes.FROZEN_DARK : IconTypes.FROZEN_LIGHT, - height: 12, - width: 12 - }))), React.createElement(Label, { - className: "sendbird-channel-preview__content__upper__last-message-at", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getLastMessageCreatedAt(channel))), React.createElement("div", { - className: "sendbird-channel-preview__content__lower" - }, React.createElement(Label, { - className: "sendbird-channel-preview__content__lower__last-message", - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_3 - }, getLastMessage(channel)), React.createElement("div", { - className: "sendbird-channel-preview__content__lower__unread-message-count" - }, getChannelUnreadMessageCount(channel) ? React.createElement(Badge, { - count: getChannelUnreadMessageCount(channel) - }) : null))), React.createElement("div", { - className: "sendbird-channel-preview__action" - }, ChannelAction)); -} -ChannelPreview.propTypes = { - isActive: PropTypes.bool, - theme: PropTypes.string, - channel: PropTypes.shape({ - members: PropTypes.arrayOf(PropTypes.shape({})), - coverUrl: PropTypes.string, - isBroadcast: PropTypes.bool, - isFrozen: PropTypes.bool - }), - ChannelAction: PropTypes.element.isRequired, - onClick: PropTypes.func, - tabIndex: PropTypes.number, - currentUser: PropTypes.shape({ - userId: PropTypes.string - }) -}; -ChannelPreview.defaultProps = { - channel: {}, - isActive: false, - theme: 'light', - onClick: function onClick() {}, - tabIndex: 0, - currentUser: {} -}; - -var CLASS_NAME$1 = 'sendbird-iconbutton'; -var IconButton = React.forwardRef(function (props, ref) { - var children = props.children, - className = props.className, - _props$disabled = props.disabled, - disabled = _props$disabled === void 0 ? false : _props$disabled, - type = props.type, - height = props.height, - width = props.width, - _onClick = props.onClick, - _onBlur = props.onBlur; - - var _useState = useState(''), - _useState2 = _slicedToArray(_useState, 2), - pressed = _useState2[0], - setPressed = _useState2[1]; - - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift(CLASS_NAME$1); - return (// eslint-disable-next-line react/button-has-type - React.createElement("button", { - className: "".concat(injectingClassName.join(' '), " ").concat(pressed), - disabled: disabled, - ref: ref, - type: type, - style: { - height: height, - width: width - }, - onClick: function onClick(e) { - if (disabled) { - return; - } - - setPressed('sendbird-iconbutton--pressed'); - - _onClick(e); - }, - onBlur: function onBlur(e) { - setPressed(''); - - _onBlur(e); - } - }, React.createElement("span", { - className: "sendbird-iconbutton__inner" - }, children)) - ); -}); -IconButton.propTypes = { - height: PropTypes.string, - width: PropTypes.string, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, - type: PropTypes.string, - disabled: PropTypes.bool, - onClick: PropTypes.func, - onBlur: PropTypes.func -}; -IconButton.defaultProps = { - height: '56px', - width: '56px', - className: '', - type: 'button', - disabled: false, - onClick: function onClick() {}, - onBlur: function onBlur() {} -}; - -function ChannelHeader(_ref) { - var user = _ref.user, - iconButton = _ref.iconButton, - onEdit = _ref.onEdit, - renderHeader = _ref.renderHeader, - allowProfileEdit = _ref.allowProfileEdit; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.createElement("div", { - className: "\n ".concat(allowProfileEdit && 'sendbird-channel-header--allow-edit', "\n sendbird-channel-header\n ") - }, renderHeader ? renderHeader() : React.createElement("div", { - className: "sendbird-channel-header__title", - role: "button", - onKeyDown: onEdit, - onClick: onEdit, - tabIndex: "0" - }, React.createElement("div", { - className: "sendbird-channel-header__title--left" - }, React.createElement(Avatar$1, { - height: "32px", - width: "32px", - src: user.profileUrl, - alt: user.nickname - })), React.createElement("div", { - className: "sendbird-channel-header__title--right" - }, React.createElement(Label, { - className: "sendbird-channel-header__title--name", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, user.nickname || stringSet.NO_NAME), React.createElement(Label, { - className: "sendbird-channel-header__title--user-id", - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_2 - }, user.userId))), React.createElement("div", { - className: "sendbird-channel-header__right-icon" - }, iconButton)); -} -ChannelHeader.propTypes = { - user: PropTypes.shape({ - profileUrl: PropTypes.string, - nickname: PropTypes.string, - userId: PropTypes.string - }), - renderHeader: PropTypes.func, - allowProfileEdit: PropTypes.bool, - onEdit: PropTypes.func.isRequired, - iconButton: PropTypes.oneOfType([PropTypes.element, PropTypes.instanceOf(IconButton)]) -}; -ChannelHeader.defaultProps = { - user: {}, - renderHeader: null, - allowProfileEdit: false, - iconButton: null -}; - -// simple component to be used as modal root -var MODAL_ROOT = 'sendbird-modal-root'; - -var Type$1 = { - PRIMARY: 'PRIMARY', - SECONDARY: 'SECONDARY', - DANGER: 'DANGER', - DISABLED: 'DISABLED' -}; -var Size = { - BIG: 'BIG', - SMALL: 'SMALL' -}; - -function changeTypeToClassName(type) { - switch (type) { - case Type$1.PRIMARY: - return 'sendbird-button--primary'; - - case Type$1.SECONDARY: - return 'sendbird-button--secondary'; - - case Type$1.DANGER: - return 'sendbird-button--danger'; - - case Type$1.DISABLED: - return 'sendbird-button--disabled'; - - default: - return null; - } -} -function changeSizeToClassName(size) { - switch (size) { - case Size.BIG: - return 'sendbird-button--big'; - - case Size.SMALL: - return 'sendbird-button--small'; - - default: - return null; - } -} - -function Button(_ref) { - var type = _ref.type, - size = _ref.size, - children = _ref.children, - disabled = _ref.disabled, - onClick = _ref.onClick, - className = _ref.className; - var injectingClassNames = ['sendbird-button', disabled ? 'sendbird-button__disabled' : '', changeTypeToClassName(type), changeSizeToClassName(size)].concat(_toConsumableArray(Array.isArray(className) ? className : [className])).join(' '); - return React.createElement("button", { - type: "button", - className: injectingClassNames, - onClick: onClick, - disabled: disabled - }, React.createElement(Label, { - className: "sendbird-button__text", - type: LabelTypography.BUTTON_1, - color: LabelColors.ONCONTENT_1 - }, children)); -} -Button.propTypes = { - children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.arrayOf(PropTypes.element)]), - disabled: PropTypes.bool, - type: PropTypes.oneOf(Object.keys(Type$1)), - size: PropTypes.oneOf(Object.keys(Size)), - onClick: PropTypes.func, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -Button.defaultProps = { - children: 'Button', - type: Type$1.PRIMARY, - disabled: false, - size: Size.BIG, - onClick: function onClick() {}, - className: '' -}; - -var ModalHeader = function ModalHeader(_ref) { - var titleText = _ref.titleText; - return React.createElement("div", { - className: "sendbird-modal-header" - }, React.createElement(Label, { - type: LabelTypography.H_1, - color: LabelColors.ONBACKGROUND_1 - }, titleText)); -}; -ModalHeader.propTypes = { - titleText: PropTypes.string.isRequired -}; -var ModalBody = function ModalBody(_ref2) { - var children = _ref2.children; - return React.createElement("div", { - className: "sendbird-modal-body" - }, children); -}; -ModalBody.propTypes = { - children: PropTypes.oneOfType([PropTypes.element.isRequired, PropTypes.arrayOf(PropTypes.element.isRequired)]) -}; -ModalBody.defaultProps = { - children: null -}; -var ModalFooter = function ModalFooter(_ref3) { - var onSubmit = _ref3.onSubmit, - onCancel = _ref3.onCancel, - _ref3$disabled = _ref3.disabled, - disabled = _ref3$disabled === void 0 ? false : _ref3$disabled, - submitText = _ref3.submitText, - type = _ref3.type; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.createElement("div", { - className: "sendbird-modal-footer" - }, React.createElement(Button, { - type: Type$1.SECONDARY, - onClick: onCancel - }, React.createElement(Label, { - type: LabelTypography.BUTTON_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.BUTTON__CANCEL)), React.createElement(Button, { - type: type, - disabled: disabled, - onClick: onSubmit - }, submitText)); -}; -ModalFooter.propTypes = { - onCancel: PropTypes.func.isRequired, - onSubmit: PropTypes.func.isRequired, - submitText: PropTypes.string.isRequired, - disabled: PropTypes.bool, - type: PropTypes.string -}; -ModalFooter.defaultProps = { - disabled: false, - type: Type$1.DANGER -}; - -function Modal(props) { - var children = props.children, - onCancel = props.onCancel, - onSubmit = props.onSubmit, - disabled = props.disabled, - submitText = props.submitText, - titleText = props.titleText, - hideFooter = props.hideFooter, - type = props.type; - return createPortal(React.createElement("div", { - className: "sendbird-modal" - }, React.createElement("div", { - className: "sendbird-modal-content" - }, React.createElement(ModalHeader, { - titleText: titleText - }), React.createElement(ModalBody, null, children), !hideFooter && React.createElement(ModalFooter, { - disabled: disabled, - onCancel: onCancel, - onSubmit: onSubmit, - submitText: submitText, - type: type - }), React.createElement("div", { - className: "sendbird-modal-close" - }, React.createElement(IconButton, { - width: "32px", - height: "32px", - onClick: onCancel - }, React.createElement(Icon, { - type: IconTypes.CLOSE, - fillColor: IconColors.SECONDARY, - width: "24px", - height: "24px" - })))), React.createElement("div", { - className: "sendbird-modal-backdrop" - })), document.getElementById(MODAL_ROOT)); -} - -Modal.propTypes = { - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]), - onCancel: PropTypes.func.isRequired, - onSubmit: PropTypes.func.isRequired, - hideFooter: PropTypes.bool, - disabled: PropTypes.bool, - type: PropTypes.string -}; -Modal.defaultProps = { - children: null, - hideFooter: false, - disabled: false, - type: Type$1.DANGER -}; - -var InputLabel = function InputLabel(_ref) { - var children = _ref.children; - return React.createElement(Label, { - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_1, - className: "sendbird-input-label" - }, children); -}; -InputLabel.propTypes = { - children: PropTypes.string.isRequired -}; // future: add validations? onChange? more props etc etc - -var Input = React.forwardRef(function (props, ref) { - var value = props.value, - placeHolder = props.placeHolder, - disabled = props.disabled, - name = props.name, - required = props.required; - - var _useState = useState(value), - _useState2 = _slicedToArray(_useState, 2), - inputValue = _useState2[0], - setInputValue = _useState2[1]; - - return React.createElement("div", { - className: "sendbird-input" - }, React.createElement("input", { - required: required, - ref: ref, - name: name, - disabled: disabled, - value: inputValue, - className: "sendbird-input--input", - onChange: function onChange(e) { - setInputValue(e.target.value); - } - }), placeHolder && !inputValue && React.createElement(Label, { - className: "sendbird-input--placeholder", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_3 - }, placeHolder)); -}); -Input.propTypes = { - value: PropTypes.string, - placeHolder: PropTypes.string, - name: PropTypes.string.isRequired, - disabled: PropTypes.bool, - required: PropTypes.bool -}; -Input.defaultProps = { - value: '', - placeHolder: '', - disabled: false, - required: false -}; - -var Colors$2 = { - ONBACKGROUND_1: 'ONBACKGROUND_1', - ONBACKGROUND_2: 'ONBACKGROUND_2', - ONBACKGROUND_3: 'ONBACKGROUND_3', - ONBACKGROUND_4: 'ONBACKGROUND_4', - ONCONTENT_1: 'ONCONTENT_1', - PRIMARY: 'PRIMARY', - ERROR: 'ERROR' -}; -function changeColorToClassName$2(color) { - switch (color) { - case Colors$2.ONBACKGROUND_1: - return 'sendbird-color--onbackground-1'; - - case Colors$2.ONBACKGROUND_2: - return 'sendbird-color--onbackground-2'; - - case Colors$2.ONBACKGROUND_3: - return 'sendbird-color--onbackground-3'; - - case Colors$2.ONBACKGROUND_4: - return 'sendbird-color--onbackground-4'; - - case Colors$2.ONCONTENT_1: - return 'sendbird-color--oncontent-1'; - - case Colors$2.PRIMARY: - return 'sendbird-color--primary'; - - case Colors$2.ERROR: - return 'sendbird-color--error'; - - default: - return null; - } -} - -function TextButton(_ref) { - var color = _ref.color, - children = _ref.children, - disabled = _ref.disabled, - className = _ref.className, - onClick = _ref.onClick, - notUnderline = _ref.notUnderline; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - role: "button", - tabIndex: 0, - className: [].concat(_toConsumableArray(injectingClassName), [changeColorToClassName$2(color), notUnderline ? 'sendbird-textbutton--not-underline' : 'sendbird-textbutton', disabled ? 'sendbird-textbutton--disabled' : '']).join(' '), - onClick: onClick, - onKeyPress: onClick - }, children); -} -TextButton.propTypes = { - color: PropTypes.string, - children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - onClick: PropTypes.func, - notUnderline: PropTypes.bool, - disabled: PropTypes.bool -}; -TextButton.defaultProps = { - color: Colors$2.ONBACKGROUND_1, - className: '', - onClick: function onClick() {}, - notUnderline: false, - disabled: false -}; - -var noop = function noop() {}; -var getMessageCreatedAt = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var getSenderName = function getSenderName(message) { - return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); -}; -var getSenderProfileUrl = function getSenderProfileUrl(message) { - return message.sender && message.sender.profileUrl; -}; - -function EditUserProfile(_a) { - var user = _a.user, - onCancel = _a.onCancel, - _onSubmit = _a.onSubmit, - _b = _a.onThemeChange, - onThemeChange = _b === void 0 ? null : _b, - _c = _a.theme, - theme = _c === void 0 ? 'light' : _c, - _d = _a.changeTheme, - changeTheme = _d === void 0 ? noop : _d; - var hiddenInputRef = useRef(null); - var inputRef = useRef(null); - var formRef = useRef(null); - var stringSet = useContext(LocalizationContext).stringSet; - - var _e = useState(null), - currentImg = _e[0], - setCurrentImg = _e[1]; - - var _f = useState(null), - newFile = _f[0], - setNewFile = _f[1]; - - return React.createElement(Modal, { - titleText: stringSet.EDIT_PROFILE__TITLE, - submitText: stringSet.BUTTON__SAVE, - onCancel: onCancel, - onSubmit: function onSubmit() { - if (user.nickname !== '' && !inputRef.current.value) { - if (formRef.current.reportValidity) { - // might not work in explorer - formRef.current.reportValidity(); - } - - return; - } - - _onSubmit(inputRef.current.value, newFile); - - onCancel(); - }, - type: Type$1.PRIMARY - }, React.createElement("form", { - className: "sendbird__edit-user-profile", - ref: formRef, - onSubmit: function onSubmit(e) { - e.preventDefault(); - } - }, React.createElement("section", { - className: "sendbird__edit-user-profile__img" - }, React.createElement(InputLabel, null, stringSet.EDIT_PROFILE__IMAGE_LABEL), React.createElement("div", { - className: "sendbird__edit-user__avatar" - }, React.createElement(Avatar$1, { - height: "80px", - width: "80px", - src: currentImg || user.profileUrl - })), React.createElement("input", { - ref: hiddenInputRef, - type: "file", - accept: "image/gif, image/jpeg, image/png", - style: { - display: 'none' - }, - onChange: function onChange(e) { - setCurrentImg(URL.createObjectURL(e.target.files[0])); - setNewFile(e.target.files[0]); - hiddenInputRef.current.value = ''; - } - }), React.createElement(TextButton, { - className: "sendbird__edit-user__avatar-button", - onClick: function onClick() { - return hiddenInputRef.current.click(); - }, - notUnderline: true - }, React.createElement(Label, { - type: LabelTypography.BUTTON_1, - color: LabelColors.PRIMARY - }, stringSet.EDIT_PROFILE__IMAGE_UPLOAD))), React.createElement("section", { - className: "sendbird__edit-user__name" - }, React.createElement(InputLabel, null, stringSet.EDIT_PROFILE__NICKNAME_LABEL), React.createElement(Input, { - required: user.nickname !== '', - name: "sendbird__edit-user__name", - ref: inputRef, - value: user.nickname, - placeHolder: stringSet.EDIT_PROFILE__NICKNAME_PLACEHOLDER - })), React.createElement("section", { - className: "sendbird__edit-user__userid" - }, React.createElement(InputLabel, null, stringSet.EDIT_PROFILE__USERID_LABEL), React.createElement(Input, { - disabled: true, - name: "sendbird__edit-user__userid", - value: user.userId - })), React.createElement("section", { - className: "sendbird__edit-user__theme" - }, React.createElement(InputLabel, null, stringSet.EDIT_PROFILE__THEME_LABEL), React.createElement("div", { - className: "sendbird__edit-user__theme-icon" - }, theme === 'dark' ? React.createElement(Icon, { - onClick: function onClick() { - changeTheme('light'); - - if (onThemeChange && typeof onThemeChange === 'function') { - onThemeChange('light'); - } - }, - type: IconTypes.TOGGLE_ON, - width: 44, - height: 24 - }) : React.createElement(Icon, { - onClick: function onClick() { - changeTheme('dark'); - - if (onThemeChange && typeof onThemeChange === 'function') { - onThemeChange('dark'); - } - }, - type: IconTypes.TOGGLE_OFF, - width: 44, - height: 24 - }))))); -} - -var mapStoreToProps = function mapStoreToProps(store) { - return { - theme: store.config.theme, - changeTheme: store.config.setCurrenttheme - }; -}; - -var ConnectedEditUserProfile = withSendbirdContext(EditUserProfile, mapStoreToProps); - -function Types() { - return { - LOADING: 'LOADING', - NO_CHANNELS: 'NO_CHANNELS', - WRONG: 'WRONG' - }; -} -var PlaceHolderTypes = Types(); - -function MutedAvatarOverlay(props) { - var _a = props.height, - height = _a === void 0 ? 24 : _a, - _b = props.width, - width = _b === void 0 ? 24 : _b; - return React.createElement("div", { - className: "sendbird-muted-avatar", - style: { - height: height + "px", - width: width + "px" - } - }, React.createElement("div", { - className: "sendbird-muted-avatar__icon" - }, React.createElement("div", { - className: "sendbird-muted-avatar__bg", - style: { - height: height + "px", - width: width + "px" - } - }), React.createElement(Icon, { - fillColor: IconColors.WHITE, - type: IconTypes.ICON_MUTED, - width: height - 8 + "px", - height: width - 8 + "px" - }))); -} - -function Checkbox(_ref) { - var id = _ref.id, - checked = _ref.checked, - onChange = _ref.onChange; - - var _useState = useState(checked), - _useState2 = _slicedToArray(_useState, 2), - isChecked = _useState2[0], - setCheck = _useState2[1]; - - return React.createElement("label", { - className: "sendbird-checkbox", - htmlFor: id - }, React.createElement("input", { - id: id, - type: "checkbox", - checked: isChecked, - onClick: function onClick() { - return setCheck(!isChecked); - }, - onChange: onChange - }), React.createElement("span", { - className: "sendbird-checkbox--checkmark" - })); -} -Checkbox.propTypes = { - id: PropTypes.string, - checked: PropTypes.bool, - onChange: PropTypes.func -}; -Checkbox.defaultProps = { - id: 'sendbird-checkbox-input', - checked: false, - onChange: function onChange() {} -}; - -var SEND_MESSAGE_START = 'SEND_MESSAGE_START'; -var SEND_USER_MESSAGE = 'SEND_USER_MESSAGE'; -var SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE'; -var UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE'; -var DELETE_MESSAGE = 'DELETE_MESSAGE'; -var LEAVE_CHANNEL = 'LEAVE_CHANNEL'; -var CREATE_CHANNEL$1 = 'CREATE_CHANNEL'; - -var getSdk = function getSdk(store) { - var _store$stores = store.stores, - stores = _store$stores === void 0 ? {} : _store$stores; - var _stores$sdkStore = stores.sdkStore, - sdkStore = _stores$sdkStore === void 0 ? {} : _stores$sdkStore; - var sdk = sdkStore.sdk; - return sdk; -}; -var getPubSub = function getPubSub(store) { - var _store$config = store.config, - config = _store$config === void 0 ? {} : _store$config; - var pubSub = config.pubSub; - return pubSub; -}; // SendBird disconnect. Invalidates currentUser -// eslint-disable-next-line max-len - -var getConnect = function getConnect(store) { - return function (userId, accessToken) { - return new Promise(function (resolve, reject) { - var sdk = getSdk(store); - - if (!sdk) { - reject(new Error('Sdk not found')); - } - - if (!accessToken) { - sdk.connect(userId).then(function (res) { - return resolve(res); - }).catch(function (err) { - return reject(err); - }); - } else { - sdk.connect(userId, accessToken).then(function (res) { - return resolve(res); - }).catch(function (err) { - return reject(err); - }); - } - }); - }; -}; // SendBird disconnect. Invalidates currentUser - -var getDisconnect = function getDisconnect(store) { - return function () { - return new Promise(function (resolve, reject) { - var sdk = getSdk(store); - - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.disconnect().then(function (res) { - return resolve(res); - }).catch(function (err) { - return reject(err); - }); - }); - }; -}; // Using the updateCurrentUserInfo() method -// you can update a user's nickname and profile image with a URL -// eslint-disable-next-line max-len - -var getUpdateUserInfo = function getUpdateUserInfo(store) { - return function (nickName, profileUrl) { - return new Promise(function (resolve, reject) { - var sdk = getSdk(store); - - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.updateCurrentUserInfo(nickName, profileUrl).then(function (res) { - return resolve(res); - }).catch(function (err) { - return reject(err); - }); - }); - }; -}; -var getSendUserMessage = function getSendUserMessage(store) { - return function (channelUrl, userMessageParams) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - var promisify = function promisify() { - var pendingMsg = null; - var pendingPromise = new Promise(function (resolve_, reject_) { - pendingMsg = channel.sendUserMessage(userMessageParams, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = res; - var error = err; - - if (swapParams) { - message = err; - error = res; - } - - if (error) { - reject_(error); - return; - } - - resolve_(message); - pubsub.publish(SEND_USER_MESSAGE, { - message: message, - channel: channel - }); - }); - pubsub.publish(SEND_MESSAGE_START, { - message: pendingMsg, - channel: channel - }); - }); - - pendingPromise.get = function () { - return pendingMsg; - }; - - return pendingPromise; - }; - - resolve(promisify()); - }).catch(reject); - }); - }; -}; -var getSendFileMessage = function getSendFileMessage(store) { - return function (channelUrl, fileMessageParams) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - var promisify = function promisify() { - var pendingMsg = null; - var pendingPromise = new Promise(function (resolve_, reject_) { - pendingMsg = channel.sendFileMessage(fileMessageParams, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = res; - var error = err; - - if (swapParams) { - message = err; - error = res; - } - - if (error) { - reject_(error); - return; - } - - resolve_(message); - pubsub.publish(SEND_FILE_MESSAGE, { - message: message, - channel: channel - }); - }); - }); - - if (fileMessageParams.file) { - // keep the file's local version in pendingMsg.localUrl - // because promise doesnt allow overriding of pendingMsg.url - // eslint-disable-next-line no-param-reassign - pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file); - } - - if (fileMessageParams.fileUrl) { - // eslint-disable-next-line no-param-reassign - pendingMsg.localUrl = fileMessageParams.fileUrl; - } // eslint-disable-next-line no-param-reassign - - - pendingMsg.requestState = 'pending'; - pubsub.publish(SEND_MESSAGE_START, { - message: pendingMsg, - channel: channel - }); - - pendingPromise.get = function () { - return pendingMsg; - }; - - return pendingPromise; - }; - - resolve(promisify()); - }).catch(reject); - }); - }; -}; -var getUpdateUserMessage = function getUpdateUserMessage(store) { - return function (channelUrl, messageId, params) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.updateUserMessage(messageId, params, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = res; - var error = err; - - if (swapParams) { - message = err; - error = res; - } - - if (error) { - reject(error); - return; - } - - resolve(message); - pubsub.publish(UPDATE_USER_MESSAGE, { - message: message, - channel: channel, - // workaround for updating channelPreview on message-edit - // https://sendbird.atlassian.net/browse/UIKIT-268 - fromSelector: true - }); - }); - }).catch(reject); - }); - }; -}; -var getDeleteMessage = function getDeleteMessage(store) { - return function (channelUrl, message) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - var messageId = message.messageId; - channel.deleteMessage(message, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var error = err; - - if (swapParams) { - error = res; - } - - if (error) { - reject(error); - return; - } - - resolve(message); - pubsub.publish(DELETE_MESSAGE, { - messageId: messageId, - channel: channel - }); - }); - }).catch(reject); - }); - }; -}; -var getResendUserMessage = function getResendUserMessage(store) { - return function (channelUrl, failedMessage) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.resendUserMessage(failedMessage).then(function (message) { - resolve(message); - pubsub.publish(SEND_USER_MESSAGE, { - message: message, - channel: channel - }); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var getResendFileMessage = function getResendFileMessage(store) { - return function (channelUrl, failedMessage) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.resendFileMessage(failedMessage).then(function (message) { - resolve(message); - pubsub.publish(SEND_FILE_MESSAGE, { - message: message, - channel: channel - }); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var getCreateChannel = function getCreateChannel(store) { - return function (params) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.createChannel(params).then(function (channel) { - resolve(channel); - pubsub.publish(CREATE_CHANNEL$1, { - channel: channel - }); - }).catch(reject); - }); - }; -}; -var getLeaveChannel = function getLeaveChannel(store) { - return function (channelUrl) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.leave().then(function () { - resolve(channel); - pubsub.publish(LEAVE_CHANNEL, { - channel: channel - }); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var getFreezeChannel = function getFreezeChannel(store) { - return function (channelUrl) { - var sdk = getSdk(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.freeze().then(function () { - // do not need pubsub here - event listener works - resolve(channel); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var getUnFreezeChannel = function getUnFreezeChannel(store) { - return function (channelUrl) { - var sdk = getSdk(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.unfreeze().then(function () { - // do not need pubsub here - event listener works - resolve(channel); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var selectors = { - getSdk: getSdk, - getConnect: getConnect, - getDisconnect: getDisconnect, - getUpdateUserInfo: getUpdateUserInfo, - getSendUserMessage: getSendUserMessage, - getSendFileMessage: getSendFileMessage, - getUpdateUserMessage: getUpdateUserMessage, - getDeleteMessage: getDeleteMessage, - getResendUserMessage: getResendUserMessage, - getResendFileMessage: getResendFileMessage, - getFreezeChannel: getFreezeChannel, - getUnFreezeChannel: getUnFreezeChannel, - getCreateChannel: getCreateChannel, - getLeaveChannel: getLeaveChannel -}; - -function UserProfile(_a) { - var user = _a.user, - currentUserId = _a.currentUserId, - sdk = _a.sdk, - logger = _a.logger, - createChannel = _a.createChannel, - onSuccess = _a.onSuccess; - var stringSet = useContext(LocalizationContext).stringSet; - return React.createElement("div", { - className: "sendbird__user-profile" - }, React.createElement("section", { - className: "sendbird__user-profile-avatar" - }, React.createElement(Avatar$1, { - height: "80px", - width: "80px", - src: user.profileUrl - })), React.createElement("section", { - className: "sendbird__user-profile-name" - }, React.createElement(Label, { - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, user.nickname || stringSet.NO_NAME)), user.userId !== currentUserId && React.createElement("section", { - className: "sendbird__user-profile-message" - }, React.createElement(Button, { - type: Type$1.SECONDARY, - onClick: function onClick() { - var params = new sdk.GroupChannelParams(); - params.isDistinct = true; - params.addUserIds([user.userId]); - onSuccess(); - createChannel(params).then(function (groupChannel) { - logger.info('UserProfile, channel create', groupChannel); - }); - } - }, stringSet.USER_PROFILE__MESSAGE)), React.createElement("div", { - className: "sendbird__user-profile-seperator" - }), React.createElement("section", { - className: "sendbird__user-profile-userId" - }, React.createElement(Label, { - className: "sendbird__user-profile-userId--label", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, stringSet.USER_PROFILE__USER_ID), React.createElement(Label, { - className: "sendbird__user-profile-userId--value", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, user.userId))); -} - -var mapStoreToProps$1 = function mapStoreToProps(store) { - return { - sdk: getSdk(store), - createChannel: getCreateChannel(store), - logger: store.config.logger, - pubsub: store.config.pubSub - }; -}; - -var ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps$1); - -var MenuItems = -/*#__PURE__*/ -function (_Component) { - _inherits(MenuItems, _Component); - - function MenuItems(props) { - var _this; - - _classCallCheck(this, MenuItems); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(MenuItems).call(this, props)); - - _defineProperty(_assertThisInitialized(_this), "showParent", function () { - var _this$props$parentCon = _this.props.parentContainRef, - parentContainRef = _this$props$parentCon === void 0 ? {} : _this$props$parentCon; - var current = parentContainRef.current; - - if (parentContainRef && current) { - current.classList.add('sendbird-icon--pressed'); - } - }); - - _defineProperty(_assertThisInitialized(_this), "hideParent", function () { - var _this$props$parentCon2 = _this.props.parentContainRef, - parentContainRef = _this$props$parentCon2 === void 0 ? {} : _this$props$parentCon2; - var current = parentContainRef.current; - - if (parentContainRef && current) { - current.classList.remove('sendbird-icon--pressed'); - } - }); - - _defineProperty(_assertThisInitialized(_this), "setupEvents", function () { - var closeDropdown = _this.props.closeDropdown; - - var _assertThisInitialize = _assertThisInitialized(_this), - menuRef = _assertThisInitialize.menuRef; - - var handleClickOutside = function handleClickOutside(event) { - if (menuRef.current && !menuRef.current.contains(event.target)) { - closeDropdown(); - } - }; - - _this.setState({ - handleClickOutside: handleClickOutside - }); - - document.addEventListener('mousedown', handleClickOutside); - }); - - _defineProperty(_assertThisInitialized(_this), "cleanUpEvents", function () { - var handleClickOutside = _this.state.handleClickOutside; - document.removeEventListener('mousedown', handleClickOutside); - }); - - _defineProperty(_assertThisInitialized(_this), "getMenuPosition", function () { - var _this$props = _this.props, - parentRef = _this$props.parentRef, - openLeft = _this$props.openLeft; - var parentRect = parentRef.current.getBoundingClientRect(); - var x = parentRect.x || parentRect.left; - var y = parentRect.y || parentRect.top; - var menuStyle = { - top: y, - left: x - }; - if (!_this.menuRef.current) return menuStyle; - var _window = window, - innerWidth = _window.innerWidth, - innerHeight = _window.innerHeight; - - var rect = _this.menuRef.current.getBoundingClientRect(); - - if (y + rect.height > innerHeight) { - menuStyle.top -= rect.height; - } - - if (x + rect.width > innerWidth && !openLeft) { - menuStyle.left -= rect.width; - } - - if (menuStyle.top < 0) { - menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0; - } - - if (menuStyle.left < 0) { - menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0; - } - - menuStyle.top += 32; - - if (openLeft) { - var padding = Number.isNaN(rect.width - 30) ? 108 // default - : rect.width - 30; - menuStyle.left -= padding; - } - - return _this.setState({ - menuStyle: menuStyle - }); - }); - - _this.menuRef = React.createRef(); - _this.state = { - menuStyle: {}, - handleClickOutside: function handleClickOutside() {} - }; - return _this; - } - - _createClass(MenuItems, [{ - key: "componentDidMount", - value: function componentDidMount() { - this.setupEvents(); - this.getMenuPosition(); - this.showParent(); - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - this.cleanUpEvents(); - this.hideParent(); - } - }, { - key: "render", - value: function render() { - var menuStyle = this.state.menuStyle; - var _this$props2 = this.props, - children = _this$props2.children, - style = _this$props2.style; - return createPortal(React.createElement(React.Fragment, null, React.createElement("div", { - className: "sendbird-dropdown__menu-backdrop" - }), React.createElement("ul", { - className: "sendbird-dropdown__menu", - ref: this.menuRef, - style: _objectSpread2({ - display: 'inline-block', - position: 'fixed', - left: "".concat(Math.round(menuStyle.left), "px"), - top: "".concat(Math.round(menuStyle.top), "px") - }, style) - }, children)), document.getElementById('sendbird-dropdown-portal')); - } - }]); - - return MenuItems; -}(Component); -MenuItems.propTypes = { - closeDropdown: PropTypes.func.isRequired, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired, - style: PropTypes.shape({}), - // https://stackoverflow.com/a/51127130 - parentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ - current: PropTypes.instanceOf(Element) - })]).isRequired, - parentContainRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ - current: PropTypes.instanceOf(Element) - })]).isRequired, - openLeft: PropTypes.bool -}; -MenuItems.defaultProps = { - style: {}, - openLeft: false -}; - -var componentClassName = 'sendbird-sort-by-row'; -function SortByRow(_ref) { - var className = _ref.className, - maxItemCount = _ref.maxItemCount, - itemWidth = _ref.itemWidth, - itemHeight = _ref.itemHeight, - children = _ref.children; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift(componentClassName); - - if (children.length > maxItemCount) { - var result = []; - - for (var i = 0; i < children.length; i += maxItemCount) { - result.push(React.createElement("div", { - className: injectingClassName.join(' '), - style: { - width: itemWidth * maxItemCount, - height: itemHeight - }, - key: className + i - }, children.slice(i, i + maxItemCount))); - } - - return result; - } - - return React.createElement("div", { - className: injectingClassName.join(' '), - style: { - width: itemWidth * children.length, - height: itemHeight - } - }, children); -} -SortByRow.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - maxItemCount: PropTypes.number.isRequired, - itemWidth: PropTypes.number.isRequired, - itemHeight: PropTypes.number.isRequired, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).isRequired -}; -SortByRow.defaultProps = { - className: '' -}; - -var EmojiListItems = -/*#__PURE__*/ -function (_Component) { - _inherits(EmojiListItems, _Component); - - function EmojiListItems(props) { - var _this; - - _classCallCheck(this, EmojiListItems); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(EmojiListItems).call(this, props)); - - _defineProperty(_assertThisInitialized(_this), "showParent", function () { - var _this$props$parentCon = _this.props.parentContainRef, - parentContainRef = _this$props$parentCon === void 0 ? {} : _this$props$parentCon; - var current = parentContainRef.current; - - if (parentContainRef && current) { - current.classList.add('sendbird-reactions--pressed'); - } - }); - - _defineProperty(_assertThisInitialized(_this), "hideParent", function () { - var _this$props$parentCon2 = _this.props.parentContainRef, - parentContainRef = _this$props$parentCon2 === void 0 ? {} : _this$props$parentCon2; - var current = parentContainRef.current; - - if (parentContainRef && current) { - current.classList.remove('sendbird-reactions--pressed'); - } - }); - - _defineProperty(_assertThisInitialized(_this), "setupEvents", function () { - var closeDropdown = _this.props.closeDropdown; - - var _assertThisInitialize = _assertThisInitialized(_this), - reactionRef = _assertThisInitialize.reactionRef; - - var handleClickOutside = function handleClickOutside(event) { - if (reactionRef.current && !reactionRef.current.contains(event.target)) { - closeDropdown(); - } - }; - - _this.setState({ - handleClickOutside: handleClickOutside - }); - - document.addEventListener('mousedown', handleClickOutside); - }); - - _defineProperty(_assertThisInitialized(_this), "cleanUpEvents", function () { - var handleClickOutside = _this.state.handleClickOutside; - document.removeEventListener('mousedown', handleClickOutside); - }); - - _defineProperty(_assertThisInitialized(_this), "getBarPosition", function () { - var _this$props = _this.props, - parentRef = _this$props.parentRef, - spaceFromTrigger = _this$props.spaceFromTrigger; - var spaceFromTriggerX = spaceFromTrigger.x || 0; - var spaceFromTriggerY = spaceFromTrigger.y || 0; - var parentRect = parentRef.current.getBoundingClientRect(); - var x = parentRect.x || parentRect.left; - var y = parentRect.y || parentRect.top; - var reactionStyle = { - top: y, - left: x - }; - if (!_this.reactionRef.current) return reactionStyle; - - var rect = _this.reactionRef.current.getBoundingClientRect(); // const childRect = this.reactionRef.current.children[0].getBoundingClientRect(); - - - if (reactionStyle.top < rect.height) { - reactionStyle.top += parentRect.height; - reactionStyle.top += spaceFromTriggerY; - } else { - reactionStyle.top -= rect.height; - reactionStyle.top -= spaceFromTriggerY; - } - - reactionStyle.left -= rect.width / 2; - reactionStyle.left += parentRect.height / 2 - 2; - reactionStyle.left += spaceFromTriggerX; - var maximumLeft = window.innerWidth - rect.width; - - if (maximumLeft < reactionStyle.left) { - reactionStyle.left = maximumLeft; - } - - if (reactionStyle.left < 0) { - reactionStyle.left = 0; - } - - return _this.setState({ - reactionStyle: reactionStyle - }); - }); - - _this.reactionRef = React.createRef(); - _this.state = { - reactionStyle: {}, - handleClickOutside: function handleClickOutside() {} - }; - return _this; - } - - _createClass(EmojiListItems, [{ - key: "componentDidMount", - value: function componentDidMount() { - this.setupEvents(); - this.getBarPosition(); - this.showParent(); - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - this.cleanUpEvents(); - this.hideParent(); - } - }, { - key: "render", - value: function render() { - var reactionStyle = this.state.reactionStyle; - var children = this.props.children; - return createPortal(React.createElement(React.Fragment, null, React.createElement("div", { - className: "sendbird-dropdown__menu-backdrop" - }), React.createElement("ul", { - className: "sendbird-dropdown__reaction-bar", - ref: this.reactionRef, - style: { - display: 'inline-block', - position: 'fixed', - left: "".concat(Math.round(reactionStyle.left), "px"), - top: "".concat(Math.round(reactionStyle.top), "px") - } - }, React.createElement(SortByRow, { - className: "sendbird-dropdown__reaction-bar__row", - maxItemCount: 8, - itemWidth: 44, - itemHeight: 40 - }, children))), document.getElementById('sendbird-emoji-list-portal')); - } - }]); - - return EmojiListItems; -}(Component); -EmojiListItems.propTypes = { - closeDropdown: PropTypes.func.isRequired, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired, - parentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ - current: PropTypes.instanceOf(Element) - })]).isRequired, - parentContainRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ - current: PropTypes.instanceOf(Element) - })]).isRequired, - spaceFromTrigger: PropTypes.shape({ - x: PropTypes.number, - y: PropTypes.number - }) -}; -EmojiListItems.defaultProps = { - spaceFromTrigger: {} -}; - -var ENTER = 13; -var MenuItems$1 = MenuItems; -var EmojiListItems$1 = EmojiListItems; -var MenuItem = function MenuItem(_ref) { - var children = _ref.children, - onClick = _ref.onClick, - className = _ref.className; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("li", { - tabIndex: 0, - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-dropdown__menu-item']).join(' '), - onClick: onClick, - onKeyPress: function onKeyPress(e) { - if (e.keyCode === ENTER) { - onClick(e); - } - }, - role: "menuitem" - }, React.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1, - className: "sendbird-dropdown__menu-item__text" - }, children)); -}; -MenuItem.propTypes = { - onClick: PropTypes.func.isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired -}; -MenuItem.defaultProps = { - className: '' -}; -function ContextMenu(_ref2) { - var menuTrigger = _ref2.menuTrigger, - menuItems = _ref2.menuItems; - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - showMenu = _useState2[0], - setShowMenu = _useState2[1]; - - return React.createElement("div", { - className: "sendbird-context-menu", - style: { - display: 'inline' - } - }, menuTrigger(function () { - return setShowMenu(!showMenu); - }), showMenu && menuItems(function () { - return setShowMenu(false); - })); -} -ContextMenu.propTypes = { - menuTrigger: PropTypes.func.isRequired, - menuItems: PropTypes.func.isRequired -}; - -var COMPONENT_NAME = 'sendbird-user-list-item'; -function UserListItem(_ref) { - var user = _ref.user, - className = _ref.className, - checkBox = _ref.checkBox, - currentUser = _ref.currentUser, - checked = _ref.checked, - _onChange = _ref.onChange, - action = _ref.action; - var injectingClassNames = Array.isArray(className) ? className : [className]; - var uniqueKey = user.userId; - var actionRef = React.useRef(null); - var parentRef = React.useRef(null); - var avatarRef = React.useRef(null); - - var _useContext = useContext(UserProfileContext), - disableUserProfile = _useContext.disableUserProfile, - renderUserProfile = _useContext.renderUserProfile; - - var _useContext2 = useContext(LocalizationContext), - stringSet = _useContext2.stringSet; - - return React.createElement("div", { - ref: parentRef, - className: [COMPONENT_NAME].concat(_toConsumableArray(injectingClassNames)).join(' ') - }, user.isMuted && React.createElement(MutedAvatarOverlay, { - height: 40, - width: 40 - }), React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(Avatar$1, { - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - ref: avatarRef, - className: "".concat(COMPONENT_NAME, "__avatar"), - src: user.profileUrl, - width: "40px", - height: "40px" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - openLeft: true, - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: user, - currentUserId: currentUser, - close: closeDropdown - }) : React.createElement(ConnectedUserProfile, { - user: user, - currentUserId: currentUser, - onSuccess: closeDropdown - })); - } - }), React.createElement(Label, { - className: "".concat(COMPONENT_NAME, "__title"), - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, user.nickname || stringSet.NO_NAME, currentUser === user.userId && ' (You)'), // if there is now nickname, display userId - !user.nickname && React.createElement(Label, { - className: "".concat(COMPONENT_NAME, "__subtitle"), - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, user.userId), checkBox && // eslint-disable-next-line jsx-a11y/label-has-associated-control - React.createElement("label", { - className: "".concat(COMPONENT_NAME, "__checkbox"), - htmlFor: uniqueKey - }, React.createElement(Checkbox, { - id: uniqueKey, - checked: checked, - onChange: function onChange(event) { - return _onChange(event); - } - })), user.role === 'operator' && React.createElement(Label, { - className: "".concat(COMPONENT_NAME, "__operator"), - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_2 - }, "Operator"), action && React.createElement("div", { - ref: actionRef, - className: "".concat(COMPONENT_NAME, "__action") - }, action({ - actionRef: actionRef, - parentRef: parentRef - }))); -} -UserListItem.propTypes = { - user: PropTypes.shape({ - userId: PropTypes.string, - role: PropTypes.string, - isMuted: PropTypes.bool, - nickname: PropTypes.string, - profileUrl: PropTypes.string - }).isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - currentUser: PropTypes.string, - action: PropTypes.element, - checkBox: PropTypes.bool, - checked: PropTypes.bool, - onChange: PropTypes.func -}; -UserListItem.defaultProps = { - className: '', - currentUser: '', - checkBox: false, - checked: false, - action: null, - onChange: function onChange() {} -}; - -var filterUser = function filterUser(idsToFilter) { - return function (currentId) { - return idsToFilter.includes(currentId); - }; -}; - -var InviteMembers = function InviteMembers(props) { - var userQueryCreator = props.userQueryCreator, - closeModal = props.closeModal, - _onSubmit = props.onSubmit, - submitText = props.submitText, - titleText = props.titleText, - idsToFilter = props.idsToFilter, - swapParams = props.swapParams; - - var _useState = useState([]), - _useState2 = _slicedToArray(_useState, 2), - users = _useState2[0], - setUsers = _useState2[1]; - - var _useState3 = useState({}), - _useState4 = _slicedToArray(_useState3, 2), - selectedUsers = _useState4[0], - setSelectedUsers = _useState4[1]; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var _useState5 = useState({}), - _useState6 = _slicedToArray(_useState5, 2), - usersDataSource = _useState6[0], - setUsersDataSource = _useState6[1]; - - var selectedCount = Object.keys(selectedUsers).length; - useEffect(function () { - var applicationUserListQuery = userQueryCreator(); - setUsersDataSource(applicationUserListQuery); - applicationUserListQuery.next(function (res, err) { - // eslint-disable-next-line no-underscore-dangle - var users_ = res; - var error = err; - - if (swapParams) { - users_ = err; - error = users_; - } - - if (error) { - return; - } - - setUsers(users_); - }); - }, []); - return React.createElement(Modal, { - onCancel: closeModal, - onSubmit: function onSubmit() { - var selectedUserList = Object.keys(selectedUsers); - - if (selectedUserList.length > 0) { - _onSubmit(selectedUserList); - - closeModal(); - } - }, - submitText: submitText, - titleText: titleText, - type: Type$1.PRIMARY - }, React.createElement("div", null, React.createElement(Label, { - color: selectedCount > 0 ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3, - type: LabelTypography.CAPTION_1 - }, "".concat(selectedCount, " ").concat(stringSet.MODAL__INVITE_MEMBER__SELECTEC)), React.createElement("div", { - className: "sendbird-create-channel--scroll", - onScroll: function onScroll(e) { - var hasNext = usersDataSource.hasNext; - var fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight; - - if (hasNext && fetchMore) { - usersDataSource.next(function (usersBatch, error) { - if (error) { - return; - } - - setUsers([].concat(_toConsumableArray(users), _toConsumableArray(usersBatch))); - }); - } - } - }, users.map(function (user) { - return !filterUser(idsToFilter)(user.userId) && React.createElement(UserListItem, { - key: user.userId, - user: user, - checkBox: true, - checked: selectedUsers[user.userId], - onChange: function onChange(event) { - var modifiedSelectedUsers = _objectSpread2({}, selectedUsers, _defineProperty({}, event.target.id, event.target.checked)); - - if (!event.target.checked) { - delete modifiedSelectedUsers[event.target.id]; - } - - setSelectedUsers(modifiedSelectedUsers); - } - }); - })))); -}; - -InviteMembers.propTypes = { - idsToFilter: PropTypes.arrayOf(PropTypes.string), - swapParams: PropTypes.bool, - userQueryCreator: PropTypes.func.isRequired, - closeModal: PropTypes.func.isRequired, - onSubmit: PropTypes.func.isRequired, - submitText: PropTypes.string, - titleText: PropTypes.string -}; -InviteMembers.defaultProps = { - swapParams: false, - submitText: 'create', - titleText: 'Create new channel', - idsToFilter: [] -}; - -var createDefaultUserListQuery = function createDefaultUserListQuery(_ref) { - var sdk = _ref.sdk, - _ref$userFilledApplic = _ref.userFilledApplicationUserListQuery, - userFilledApplicationUserListQuery = _ref$userFilledApplic === void 0 ? {} : _ref$userFilledApplic; - var params = sdk.createApplicationUserListQuery(); - - if (userFilledApplicationUserListQuery) { - Object.keys(userFilledApplicationUserListQuery).forEach(function (key) { - params[key] = userFilledApplicationUserListQuery[key]; - }); - } - - return params; -}; - -var getApplicationAttributes = function getApplicationAttributes() { - var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _sdk$appInfo = sdk.appInfo, - appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; - var _appInfo$applicationA = appInfo.applicationAttributes, - applicationAttributes = _appInfo$applicationA === void 0 ? [] : _appInfo$applicationA; - return applicationAttributes; -}; - -var isBroadcastChannelEnabled = function isBroadcastChannelEnabled() { - var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel'; - var applicationAttributes = getApplicationAttributes(sdk); - - if (Array.isArray(applicationAttributes)) { - return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL); - } - - return false; -}; -var isSuperGroupChannelEnabled = function isSuperGroupChannelEnabled() { - var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel'; - var applicationAttributes = getApplicationAttributes(sdk); - - if (Array.isArray(applicationAttributes)) { - return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL); - } - - return false; -}; -var setChannelType = function setChannelType(params, type) { - if (type === 'broadcast') { - // eslint-disable-next-line no-param-reassign - params.isBroadcast = true; - } - - if (type === 'supergroup') { - // eslint-disable-next-line no-param-reassign - params.isSuper = true; - } - - return params; -}; -var createChannel = function createChannel(sdk, selectedUsers, onBeforeCreateChannel, userId) { - var type = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'group'; - return new Promise(function (resolve, reject) { - // have custom params - if (onBeforeCreateChannel) { - var _params = onBeforeCreateChannel(selectedUsers); - - setChannelType(_params, type); - sdk.GroupChannel.createChannel(_params, function (response, error) { - var swapParams = sdk.getErrorFirstCallback(); - var groupChannel = response; - var err = error; - - if (swapParams) { - groupChannel = error; - err = response; - } - - if (err) { - reject(err); - } - - resolve(groupChannel); - }); - return; - } - - var params = new sdk.GroupChannelParams(); - params.addUserIds(selectedUsers); - params.isDistinct = false; - - if (userId) { - params.operatorUserIds = [userId]; - } - - setChannelType(params, type); // do not have custom params - - sdk.GroupChannel.createChannel(params, function (response, error) { - var swapParams = sdk.getErrorFirstCallback(); - var groupChannel = response; - var err = error; - - if (swapParams) { - groupChannel = error; - err = response; - } - - if (err) { - reject(err); - } - - resolve(groupChannel); - }); - }); -}; - -function AddChannel(_ref) { - var sdk = _ref.sdk, - disabled = _ref.disabled, - channelListDispatcher = _ref.channelListDispatcher, - onBeforeCreateChannel = _ref.onBeforeCreateChannel, - userId = _ref.userId, - userFilledApplicationUserListQuery = _ref.userFilledApplicationUserListQuery, - userListQuery = _ref.userListQuery; - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - showModal = _useState2[0], - setShowModal = _useState2[1]; - - var _useState3 = useState(0), - _useState4 = _slicedToArray(_useState3, 2), - step = _useState4[0], - setStep = _useState4[1]; - - var _useState5 = useState('group'), - _useState6 = _slicedToArray(_useState5, 2), - type = _useState6[0], - setType = _useState6[1]; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - if (!sdk || !sdk.createApplicationUserListQuery) { - return null; - } - - var isBroadcastAvailable = isBroadcastChannelEnabled(sdk); - var isSupergroupAvailable = isSuperGroupChannelEnabled(sdk); - return React.createElement(React.Fragment, null, React.createElement(IconButton, { - height: "32px", - width: "32px", - onClick: function onClick() { - setShowModal(true); - }, - disabled: disabled - }, React.createElement(Icon, { - type: IconTypes.CREATE, - fillColor: IconColors.PRIMARY, - width: "24px", - height: "24px" - })), showModal && step === 0 && React.createElement(Modal, { - titleText: "New channel", - hideFooter: true, - onCancel: function onCancel() { - setShowModal(false); - }, - onSubmit: function onSubmit() {} - }, React.createElement("div", { - className: "sendbird-add-channel__rectangle-wrap" - }, React.createElement("div", { - className: "sendbird-add-channel__rectangle", - onClick: function onClick() { - setType('group'); - setStep(1); - }, - role: "button", - tabIndex: 0, - onKeyDown: function onKeyDown() { - setType('group'); - setStep(1); - } - }, React.createElement(Icon, { - type: IconTypes.CHAT - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, "Group")), isSupergroupAvailable && React.createElement("div", { - className: "sendbird-add-channel__rectangle", - onClick: function onClick() { - setType('supergroup'); - setStep(1); - }, - role: "button", - tabIndex: 0, - onKeyDown: function onKeyDown() { - setType('supergroup'); - setStep(1); - } - }, React.createElement(Icon, { - type: IconTypes.SUPER_GROUP - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, "Super group")), isBroadcastAvailable && React.createElement("div", { - className: "sendbird-add-channel__rectangle", - onClick: function onClick() { - setType('broadcast'); - setStep(1); - }, - role: "button", - tabIndex: 0, - onKeyDown: function onKeyDown() { - setType('broadcast'); - setStep(1); - } - }, React.createElement(Icon, { - type: IconTypes.BROADCAST - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, "Broadcast")))), showModal && step === 1 && React.createElement(InviteMembers, { - swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), - titleText: stringSet.MODAL__CREATE_CHANNEL__TITLE, - submitText: stringSet.BUTTON__CREATE, - closeModal: function closeModal() { - setStep(0); - setShowModal(false); - }, - idsToFilter: [userId], - userQueryCreator: function userQueryCreator() { - return userListQuery && typeof userListQuery === 'function' ? userListQuery() : createDefaultUserListQuery({ - sdk: sdk, - userFilledApplicationUserListQuery: userFilledApplicationUserListQuery - }); - }, - onSubmit: function onSubmit(selectedUsers) { - return createChannel(sdk, selectedUsers, onBeforeCreateChannel, userId, type).then(function (channel) { - // maybe - do this in event listener - channelListDispatcher({ - type: CREATE_CHANNEL, - payload: channel - }); - }); - } - })); -} -AddChannel.propTypes = { - sdk: PropTypes.shape({ - getErrorFirstCallback: PropTypes.func, - createApplicationUserListQuery: PropTypes.func - }).isRequired, - disabled: PropTypes.bool, - channelListDispatcher: PropTypes.func.isRequired, - userFilledApplicationUserListQuery: PropTypes.shape({}), - onBeforeCreateChannel: PropTypes.func, - userId: PropTypes.string.isRequired, - userListQuery: PropTypes.func -}; -AddChannel.defaultProps = { - disabled: false, - userFilledApplicationUserListQuery: {}, - onBeforeCreateChannel: null, - userListQuery: null -}; - -var LeaveChannel = function LeaveChannel(props) { - var onCloseModal = props.onCloseModal, - onLeaveChannel = props.onLeaveChannel; - return React.createElement(Modal, { - onCancel: onCloseModal, - onSubmit: onLeaveChannel, - submitText: "Leave", - titleText: "Leave this channel?" - }); -}; - -LeaveChannel.propTypes = { - onCloseModal: PropTypes.func.isRequired, - onLeaveChannel: PropTypes.func.isRequired -}; - -function ChannelPreviewAction(_ref) { - var disabled = _ref.disabled, - onLeaveChannel = _ref.onLeaveChannel; - var parentRef = useRef(null); - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - showModal = _useState2[0], - setShowModal = _useState2[1]; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.createElement("div", { - role: "button", - style: { - display: 'inline-block' - }, - onKeyDown: function onKeyDown(e) { - e.stopPropagation(); - }, - tabIndex: 0, - onClick: function onClick(e) { - e.stopPropagation(); - } - }, React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: parentRef, - onClick: toggleDropdown, - height: "32px", - width: "32px" - }, React.createElement(Icon, { - type: IconTypes.MORE, - fillColor: IconColors.PRIMARY, - width: "24px", - height: "24px" - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: parentRef, - parentContainRef: parentRef, - closeDropdown: closeDropdown - }, React.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - setShowModal(true); - closeDropdown(); - } - }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE)); - } - }), showModal && React.createElement(LeaveChannel, { - onCloseModal: function onCloseModal() { - return setShowModal(false); - }, - onLeaveChannel: onLeaveChannel - })); -} -ChannelPreviewAction.propTypes = { - disabled: PropTypes.bool, - onLeaveChannel: PropTypes.func.isRequired -}; -ChannelPreviewAction.defaultProps = { - disabled: false -}; - -function Loader(_ref) { - var children = _ref.children, - className = _ref.className, - width = _ref.width, - height = _ref.height; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-loader']).join(' '), - style: { - width: typeof width === 'string' ? width : "".concat(width, "px"), - height: typeof height === 'string' ? height : "".concat(height, "px") - } - }, children); -} -Loader.propTypes = { - children: PropTypes.element, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) -}; -Loader.defaultProps = { - children: React.createElement(Icon, { - type: IconTypes.SPINNER, - width: "26px", - height: "26px" - }), - className: '', - width: '26px', - height: '26px' -}; - -function PlaceHolder(_ref) { - var className = _ref.className, - type = _ref.type, - retryToConnect = _ref.retryToConnect; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-place-holder']).join(' ') - }, type === PlaceHolderTypes.LOADING ? React.createElement(Loader, { - width: "48px", - height: "48px" - }, React.createElement(Icon, { - type: IconTypes.SPINNER_LARGE, - width: "48px", - height: "48px" - })) : null, type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG ? React.createElement("div", { - className: "sendbird-place-holder__body" - }, type === PlaceHolderTypes.NO_CHANNELS && React.createElement(Icon, { - className: "sendbird-place-holder__body__icon", - type: IconTypes.CHAT, - fillColor: IconColors.ON_BACKGROUND_3, - width: "64px", - height: "64px" - }), type === PlaceHolderTypes.WRONG && React.createElement(Icon, { - className: "sendbird-place-holder__body__icon", - type: IconTypes.ERROR, - fillColor: IconColors.ON_BACKGROUND_3, - width: "64px", - height: "64px" - }), React.createElement(Label, { - className: "sendbird-place-holder__body__text", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, type === PlaceHolderTypes.NO_CHANNELS ? stringSet.PLACE_HOLDER__NO_CHANNEL : stringSet.PLACE_HOLDER__WRONG), retryToConnect ? React.createElement("div", { - className: "sendbird-place-holder__body__reconnect", - role: "button", - tabIndex: 0, - onClick: retryToConnect, - onKeyPress: retryToConnect - }, React.createElement(Icon, { - className: "sendbird-place-holder__body__reconnect__icon", - type: IconTypes.REFRESH, - fillColor: IconColors.PRIMARY, - width: "20px", - height: "20px" - }), React.createElement(Label, { - className: "sendbird-place-holder__body__reconnect__text", - type: LabelTypography.BUTTON_1, - color: LabelColors.PRIMARY - }, stringSet.PLACE_HOLDER__RETRY_TO_CONNECT)) : null) : null); -} -PlaceHolder.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - type: PropTypes.oneOfType([PropTypes.oneOf(Object.keys(PlaceHolderTypes)), PropTypes.string]).isRequired, - retryToConnect: PropTypes.func -}; -PlaceHolder.defaultProps = { - className: '', - retryToConnect: null -}; - -function ChannelsPlaceholder(_ref) { - var type = _ref.type; - return React.createElement("div", { - className: "sendbird-channel-list" - }, React.createElement(PlaceHolder, { - type: type - })); -} -ChannelsPlaceholder.propTypes = { - type: PropTypes.string.isRequired -}; - -var createEventHandler = function createEventHandler(_ref) { - var sdk = _ref.sdk, - sdkChannelHandlerId = _ref.sdkChannelHandlerId, - channelListDispatcher = _ref.channelListDispatcher, - logger = _ref.logger; - var ChannelHandler = new sdk.ChannelHandler(); - - ChannelHandler.onChannelChanged = function (channel) { - logger.info('ChannelList: onChannelChanged', channel); - channelListDispatcher({ - type: ON_CHANNEL_CHANGED, - payload: channel - }); - }; - - ChannelHandler.onChannelDeleted = function (channelUrl) { - logger.info('ChannelList: onChannelDeleted', channelUrl); - channelListDispatcher({ - type: ON_CHANNEL_DELETED, - payload: channelUrl - }); - }; - - ChannelHandler.onUserJoined = function (channel) { - logger.info('ChannelList: onUserJoined', channel); - - if (channel.lastMessage) { - channelListDispatcher({ - type: ON_USER_JOINED, - payload: channel - }); - } - }; - - ChannelHandler.onUserBanned = function (channel, user) { - var currentUser = sdk.currentUser; - logger.info('Channel | useHandleChannelEvents: onUserBanned', channel); - - if (user.userId === currentUser.userId) { - channelListDispatcher({ - type: ON_USER_LEFT, - payload: { - channel: channel, - isMe: true - } - }); - } else { - channelListDispatcher({ - type: ON_USER_LEFT, - payload: { - channel: channel, - isMe: false - } - }); - } - }; - - ChannelHandler.onUserLeft = function (channel, leftUser) { - var currentUser = sdk.currentUser; - var isMe = currentUser.userId === leftUser.userId; - logger.info('ChannelList: onUserLeft', channel); - channelListDispatcher({ - type: ON_USER_LEFT, - payload: { - channel: channel, - isMe: isMe - } - }); - }; - - ChannelHandler.onReadStatus = function (channel) { - logger.info('ChannelList: onReadStatus', channel); - channelListDispatcher({ - type: ON_READ_RECEIPT_UPDATED, - payload: channel - }); - }; - - ChannelHandler.onDeliveryReceiptUpdated = function (channel) { - logger.info('ChannelList: onDeliveryReceiptUpdated', channel); - - if (channel.lastMessage) { - channelListDispatcher({ - type: ON_DELIVERY_RECEIPT_UPDATED, - payload: channel - }); - } - }; - - ChannelHandler.onMessageUpdated = function (channel, message) { - if (channel.lastMessage.isEqual(message)) { - logger.info('ChannelList: onMessageUpdated', channel); - channelListDispatcher({ - type: ON_LAST_MESSAGE_UPDATED, - payload: channel - }); - } - }; - - ChannelHandler.onChannelHidden = function (channel) { - logger.info('ChannelList: onChannelHidden', channel); - channelListDispatcher({ - type: ON_CHANNEL_ARCHIVED, - payload: channel.url - }); - }; - - ChannelHandler.onChannelFrozen = function (channel) { - logger.info('ChannelList: onChannelFrozen', channel); - channelListDispatcher({ - type: ON_CHANNEL_FROZEN, - payload: channel - }); - }; - - ChannelHandler.onChannelUnfrozen = function (channel) { - logger.info('ChannelList: onChannelUnfrozen', channel); - channelListDispatcher({ - type: ON_CHANNEL_UNFROZEN, - payload: channel - }); - }; - - logger.info('ChannelList: Added channelHandler'); - sdk.addChannelHandler(sdkChannelHandlerId, ChannelHandler); -}; - -var createApplicationUserListQuery = function createApplicationUserListQuery(_ref2) { - var sdk = _ref2.sdk, - _ref2$userFilledChann = _ref2.userFilledChannelListQuery, - userFilledChannelListQuery = _ref2$userFilledChann === void 0 ? {} : _ref2$userFilledChann; - var channelListQuery = sdk.GroupChannel.createMyGroupChannelListQuery(); - channelListQuery.includeEmpty = false; - channelListQuery.order = 'latest_last_message'; // 'chronological', 'latest_last_message', 'channel_name_alphabetical', and 'metadata_value_alphabetical' - - channelListQuery.limit = 20; // The value of pagination limit could be set up to 100. - - if (userFilledChannelListQuery) { - Object.keys(userFilledChannelListQuery).forEach(function (key) { - channelListQuery[key] = userFilledChannelListQuery[key]; - }); - } - - return channelListQuery; -}; -/** - * Setup event listener - * create channel source query - * addloading screen - */ - - -function setupChannelList(_ref3) { - var sdk = _ref3.sdk, - sdkChannelHandlerId = _ref3.sdkChannelHandlerId, - channelListDispatcher = _ref3.channelListDispatcher, - setChannelSource = _ref3.setChannelSource, - onChannelSelect = _ref3.onChannelSelect, - userFilledChannelListQuery = _ref3.userFilledChannelListQuery, - logger = _ref3.logger, - sortChannelList = _ref3.sortChannelList; - createEventHandler({ - sdk: sdk, - channelListDispatcher: channelListDispatcher, - sdkChannelHandlerId: sdkChannelHandlerId, - logger: logger - }); - logger.info('ChannelList - creating query', { - userFilledChannelListQuery: userFilledChannelListQuery - }); - var channelListQuery = createApplicationUserListQuery({ - sdk: sdk, - userFilledChannelListQuery: userFilledChannelListQuery - }); - logger.info('ChannelList - created query', channelListQuery); - setChannelSource(channelListQuery); - channelListDispatcher({ - type: INIT_CHANNELS_START - }); - logger.info('ChannelList - fetching channels'); - - if (channelListQuery.hasNext) { - channelListQuery.next(function (response, error) { - var swapParams = sdk.getErrorFirstCallback(); - var channelList = response; - var err = error; - - if (swapParams) { - channelList = error; - err = response; - } - - logger.info('ChannelList - fetched channels', channelList); - - if (err) { - logger.error('ChannelList - couldnt fetch channels', err); - channelListDispatcher({ - type: INIT_CHANNELS_FAILURE - }); - return; - } // select first channel - - - logger.info('ChannelList - highlight channel', channelList[0]); - var sorted = channelList; - - if (sortChannelList && typeof sortChannelList === 'function') { - sorted = sortChannelList(channelList); - logger.info('ChannelList - channel list sorted', sorted); - } - - onChannelSelect(sorted[0]); - channelListDispatcher({ - type: INIT_CHANNELS_SUCCESS, - payload: sorted - }); - - if (channelList && typeof channelList.forEach === 'function') { - logger.info('ChannelList - mark all channels as delivered'); - channelList.forEach(function (c) { - return c.markAsDelivered(); - }); - } - }); - } else { - logger.warning('ChannelList - there are no more channels'); - } -} - -var pubSubHandleRemover = function pubSubHandleRemover(subscriber) { - subscriber.forEach(function (s) { - try { - s.remove(); - } catch (_unused) {// - } - }); -}; -var pubSubHandler = function pubSubHandler(pubSub, channelListDispatcher) { - var subScriber = new Map(); - if (!pubSub) return subScriber; - subScriber.set(CREATE_CHANNEL$1, pubSub.subscribe(CREATE_CHANNEL$1, function (msg) { - var channel = msg.channel; - channelListDispatcher({ - type: 'CREATE_CHANNEL', - payload: channel - }); - })); - subScriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, function (msg) { - var channel = msg.channel, - message = msg.message; - var updatedChannel = channel; - updatedChannel.lastMessage = message; - - if (channel) { - channelListDispatcher({ - type: ON_LAST_MESSAGE_UPDATED, - payload: updatedChannel - }); - } - })); - subScriber.set(LEAVE_CHANNEL, pubSub.subscribe(LEAVE_CHANNEL, function (msg) { - var channel = msg.channel; - channelListDispatcher({ - type: LEAVE_CHANNEL_SUCCESS, - payload: channel.url - }); - })); - subScriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, function (msg) { - var channel = msg.channel; - channelListDispatcher({ - type: CHANNEL_REPLACED_TO_TOP, - payload: channel - }); - })); - return subScriber; -}; - -var noop$1 = function noop() {}; - -function ChannelList(props) { - var _props$stores = props.stores, - _props$stores$sdkStor = _props$stores.sdkStore, - sdkStore = _props$stores$sdkStor === void 0 ? {} : _props$stores$sdkStor, - _props$stores$userSto = _props$stores.userStore, - userStore = _props$stores$userSto === void 0 ? {} : _props$stores$userSto, - _props$config = props.config, - userId = _props$config.userId, - isOnline = _props$config.isOnline, - userListQuery = _props$config.userListQuery, - logger = _props$config.logger, - pubSub = _props$config.pubSub, - theme = _props$config.theme, - userDispatcher = props.dispatchers.userDispatcher, - _props$queries = props.queries, - queries = _props$queries === void 0 ? {} : _props$queries, - renderChannelPreview = props.renderChannelPreview, - renderHeader = props.renderHeader, - renderUserProfile = props.renderUserProfile, - disableUserProfile = props.disableUserProfile, - allowProfileEdit = props.allowProfileEdit, - sortChannelList = props.sortChannelList, - onProfileEditSuccess = props.onProfileEditSuccess, - onThemeChange = props.onThemeChange, - onBeforeCreateChannel = props.onBeforeCreateChannel, - onChannelSelect = props.onChannelSelect; - var _props$config2 = props.config, - config = _props$config2 === void 0 ? {} : _props$config2; // enable if it is true atleast once(both are flase by default) - - var enableEditProfile = allowProfileEdit || config.allowProfileEdit; - var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; - var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; - var _sdkStore$sdk = sdkStore.sdk, - sdk = _sdkStore$sdk === void 0 ? {} : _sdkStore$sdk; - var userFilledChannelListQuery = queries.channelListQuery; - var userFilledApplicationUserListQuery = queries.applicationUserListQuery; - var sdkError = sdkStore.error; - - var _useState = useState({}), - _useState2 = _slicedToArray(_useState, 2), - user = _useState2[0], - setUser = _useState2[1]; - - useEffect(function () { - setUser(userStore.user); - }, [userStore.user]); - var sdkIntialized = sdkStore.initialized; - - var _useReducer = useReducer(reducer$2, channelListInitialState), - _useReducer2 = _slicedToArray(_useReducer, 2), - channelListStore = _useReducer2[0], - channelListDispatcher = _useReducer2[1]; - - var _useState3 = useState({}), - _useState4 = _slicedToArray(_useState3, 2), - channelSource = _useState4[0], - setChannelSource = _useState4[1]; - - var _useState5 = useState(null), - _useState6 = _slicedToArray(_useState5, 2), - sdkChannelHandlerId = _useState6[0], - setSdkChannelHandlerId = _useState6[1]; - - var _useState7 = useState(false), - _useState8 = _slicedToArray(_useState7, 2), - showProfileEdit = _useState8[0], - setShowProfileEdit = _useState8[1]; - - var loading = channelListStore.loading, - currentChannel = channelListStore.currentChannel; - useEffect(function () { - var subscriber = pubSubHandler(pubSub, channelListDispatcher); - return function () { - pubSubHandleRemover(subscriber); - }; - }, [sdkIntialized]); - useEffect(function () { - setSdkChannelHandlerId(uuidv4); - - if (sdkIntialized) { - logger.info('ChannelList: Setup channelHandlers'); - setupChannelList({ - sdk: sdk, - sdkChannelHandlerId: sdkChannelHandlerId, - channelListDispatcher: channelListDispatcher, - setChannelSource: setChannelSource, - onChannelSelect: onChannelSelect, - userFilledChannelListQuery: userFilledChannelListQuery, - logger: logger, - sortChannelList: sortChannelList - }); - } else { - logger.info('ChannelList: Removing channelHandlers'); // remove previous channelHandlers - - if (sdk && sdk.removeChannelHandler) { - sdk.removeChannelHandler(sdkChannelHandlerId); - } // remove channelSource - - - setChannelSource({}); // cleanup - - channelListDispatcher({ - type: RESET_CHANNEL_LIST - }); - } - - return function () { - logger.info('ChannelList: Removing channelHandlers'); - - if (sdk && sdk.removeChannelHandler) { - sdk.removeChannelHandler(sdkChannelHandlerId); - } - }; - }, [sdkIntialized, userFilledChannelListQuery, sortChannelList]); - var allChannels = channelListStore.allChannels; - var sortedChannels = sortChannelList && typeof sortChannelList === 'function' ? sortChannelList(allChannels) : allChannels; - - if (sortedChannels.length !== allChannels.length) { - var warning = "ChannelList: You have removed/added extra channels on sortChannelList\n this could cause unexpected problems"; // eslint-disable-next-line no-console - - console.warn(warning, { - before: allChannels, - after: sortedChannels - }); - logger.warning(warning, { - before: allChannels, - after: sortedChannels - }); - } - - useEffect(function () { - if (!sdk || !sdk.GroupChannel) { - return; - } - - sdk.GroupChannel.getChannel(currentChannel, function (groupChannel) { - if (groupChannel) { - onChannelSelect(groupChannel); - } else { - onChannelSelect(null); - } - }); - }, [currentChannel]); - return React.createElement(UserProfileProvider, { - disableUserProfile: userDefinedDisableUserProfile, - renderUserProfile: userDefinedRenderProfile, - className: "sendbird-channel-list" - }, React.createElement("div", { - className: "sendbird-channel-list__header" - }, React.createElement(ChannelHeader, { - renderHeader: renderHeader, - user: user, - onEdit: function onEdit() { - if (enableEditProfile) { - setShowProfileEdit(true); - } - }, - allowProfileEdit: enableEditProfile, - iconButton: React.createElement(AddChannel, { - disabled: !isOnline, - userListQuery: userListQuery, - sdk: sdk, - channelListDispatcher: channelListDispatcher, - userId: userId, - userFilledApplicationUserListQuery: userFilledApplicationUserListQuery, - onBeforeCreateChannel: onBeforeCreateChannel - }) - })), showProfileEdit && React.createElement(ConnectedEditUserProfile, { - onThemeChange: onThemeChange, - user: user, - onCancel: function onCancel() { - setShowProfileEdit(false); - }, - onSubmit: function onSubmit(newName, newFile) { - sdk.updateCurrentUserInfoWithProfileImage(newName, newFile, function (updatedUser) { - userDispatcher({ - type: UPDATE_USER_INFO, - payload: updatedUser - }); - - if (onProfileEditSuccess && typeof onProfileEditSuccess === 'function') { - onProfileEditSuccess(updatedUser); - } - }); - } - }), React.createElement("div", { - className: "sendbird-channel-list__body", - onScroll: function onScroll(e) { - var fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight; - - if (fetchMore && channelSource.hasNext) { - logger.info('ChannelList: Fetching more channels'); - channelListDispatcher({ - type: FETCH_CHANNELS_START - }); - channelSource.next(function (response, error) { - var swapParams = sdk.getErrorFirstCallback(); - var channelList = response; - var err = error; - - if (swapParams) { - channelList = error; - err = response; - } - - if (err) { - logger.info('ChannelList: Fetching channels failed', err); - channelListDispatcher({ - type: FETCH_CHANNELS_FAILURE, - payload: channelList - }); - return; - } - - logger.info('ChannelList: Fetching channels successful', channelList); - channelListDispatcher({ - type: FETCH_CHANNELS_SUCCESS, - payload: channelList - }); - - if (channelList && typeof channelList.forEach === 'function') { - logger.info('ChannelList: Marking all channels as read'); - channelList.forEach(function (c) { - return c.markAsDelivered(); - }); - } - }); - } - } - }, sdkError && React.createElement(ChannelsPlaceholder, { - type: PlaceHolderTypes.WRONG - }), React.createElement("div", null, sortedChannels && sortedChannels.map(function (channel, idx) { - var _onLeaveChannel = function onLeaveChannel(c, cb) { - logger.info('ChannelList: Leaving channel', c); - c.leave().then(function (res) { - logger.info('ChannelList: Leaving channel success', res); - - if (cb && typeof cb === 'function') { - cb(res, null); - } - - channelListDispatcher({ - type: LEAVE_CHANNEL_SUCCESS, - payload: channel.url - }); - }).catch(function (err) { - logger.error('ChannelList: Leaving channel failed', err); - - if (cb && typeof cb === 'function') { - cb(null, err); - } - }); - }; - - var onClick = function onClick() { - if (!isOnline) { - return; - } - - logger.info('ChannelList: Clicked on channel:', channel); - channelListDispatcher({ - type: SET_CURRENT_CHANNEL, - payload: channel.url - }); - }; - - return renderChannelPreview ? // eslint-disable-next-line - React.createElement("div", { - key: channel.url, - onClick: onClick - }, renderChannelPreview({ - channel: channel, - onLeaveChannel: _onLeaveChannel - })) : React.createElement(ChannelPreview, { - key: channel.url, - tabIndex: idx, - onClick: onClick, - channel: channel, - currentUser: user, - theme: theme, - isActive: channel.url === currentChannel // todo - potential performance hit refactor - , - ChannelAction: React.createElement(ChannelPreviewAction, { - disabled: !isOnline, - onLeaveChannel: function onLeaveChannel() { - return _onLeaveChannel(channel); - } - }) - }); - })), (!sdkIntialized || loading) && React.createElement(ChannelsPlaceholder, { - type: PlaceHolderTypes.LOADING - }), // placeholder - (!allChannels || allChannels.length === 0) && React.createElement(ChannelsPlaceholder, { - type: PlaceHolderTypes.NO_CHANNELS - }))); -} - -ChannelList.propTypes = { - stores: PropTypes.shape({ - sdkStore: PropTypes.shape({ - initialized: PropTypes.bool - }), - userStore: PropTypes.shape({ - user: PropTypes.shape({}) - }) - }).isRequired, - dispatchers: PropTypes.shape({ - userDispatcher: PropTypes.func - }).isRequired, - config: PropTypes.shape({ - userId: PropTypes.string.isRequired, - userListQuery: PropTypes.func, - theme: PropTypes.string, - isOnline: PropTypes.bool, - logger: PropTypes.shape({ - info: PropTypes.func, - error: PropTypes.func, - warning: PropTypes.func - }), - pubSub: PropTypes.shape({ - subscribe: PropTypes.func, - publish: PropTypes.func - }) - }).isRequired, - queries: PropTypes.shape({ - channelListQuery: PropTypes.shape({ - channelNameContainsFilter: PropTypes.string, - channelUrlsFilter: PropTypes.arrayOf(PropTypes.string), - customTypesFilter: PropTypes.arrayOf(PropTypes.string), - customTypeStartsWithFilter: PropTypes.string, - hiddenChannelFilter: PropTypes.string, - includeEmpty: PropTypes.bool, - limit: PropTypes.number, - memberStateFilter: PropTypes.string, - metadataOrderKeyFilter: PropTypes.string, - nicknameContainsFilter: PropTypes.string, - order: PropTypes.string, - publicChannelFilter: PropTypes.string, - superChannelFilter: PropTypes.string, - unreadChannelFilter: PropTypes.string, - userIdsExactFilter: PropTypes.arrayOf(PropTypes.string), - userIdsIncludeFilter: PropTypes.arrayOf(PropTypes.string), - userIdsIncludeFilterQueryType: PropTypes.string - }), - applicationUserListQuery: PropTypes.shape({ - limit: PropTypes.number, - userIdsFilter: PropTypes.arrayOf(PropTypes.string), - metaDataKeyFilter: PropTypes.string, - metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string) - }) - }), - onBeforeCreateChannel: PropTypes.func, - renderChannelPreview: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - allowProfileEdit: PropTypes.bool, - sortChannelList: PropTypes.func, - onThemeChange: PropTypes.func, - onProfileEditSuccess: PropTypes.func, - renderHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - onChannelSelect: PropTypes.func -}; -ChannelList.defaultProps = { - onBeforeCreateChannel: null, - renderChannelPreview: null, - renderHeader: null, - disableUserProfile: false, - renderUserProfile: null, - allowProfileEdit: false, - onThemeChange: null, - sortChannelList: null, - onProfileEditSuccess: null, - queries: {}, - onChannelSelect: noop$1 -}; -var ChannelList$1 = withSendbirdContext(ChannelList); - -var RESET_MESSAGES = 'RESET_MESSAGES'; -var RESET_STATE = 'RESET_STATE'; -var CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES'; -var GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START'; -var GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS'; -var SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START'; -var SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS'; -var SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE'; -var RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START'; -var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED'; -var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED'; -var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED'; -var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID'; -var SET_CURRENT_CHANNEL$1 = 'SET_CURRENT_CHANNEL'; -var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID'; -var MARK_AS_READ = 'MARK_AS_READ'; -var ON_REACTION_UPDATED = 'ON_REACTION_UPDATED'; -var SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER'; -var SET_READ_STATUS = 'SET_READ_STATUS'; - -// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types -var SUPPORTED_MIMES = { - IMAGE: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp' // not supported in IE - ], - VIDEO: ['video/mpeg', 'video/ogg', 'video/webm', 'video/mp4'] -}; -var isImage = function isImage(type) { - return SUPPORTED_MIMES.IMAGE.includes(type); -}; -var isVideo = function isVideo(type) { - return SUPPORTED_MIMES.VIDEO.includes(type); -}; -var unSupported = function unSupported(type) { - return !(isImage(type) || isVideo(type)); -}; - -var MessageTypes = { - ADMIN: 'ADMIN', - USER: 'USER', - FILE: 'FILE', - THUMBNAIL: 'THUMBNAIL', - OG: 'OG' -}; -var SendingMessageStatus = { - NONE: 'none', - SUCCEEDED: 'succeeded', - FAILED: 'failed', - PENDING: 'pending' -}; -var getMessageType = function getMessageType(message) { - if (message.isUserMessage && message.isUserMessage() || message.messageType === 'user') { - return message.ogMetaData ? MessageTypes.OG : MessageTypes.USER; - } - - if (message.isAdminMessage && message.isAdminMessage()) { - return MessageTypes.ADMIN; - } - - if (message.isFileMessage && message.isFileMessage() || message.messageType === 'file') { - return isImage(message.type) || isVideo(message.type) ? MessageTypes.THUMBNAIL : MessageTypes.FILE; - } - - return ''; -}; - -var UNDEFINED = 'undefined'; -var SUCCEEDED = SendingMessageStatus.SUCCEEDED, - FAILED = SendingMessageStatus.FAILED, - PENDING = SendingMessageStatus.PENDING; -var scrollIntoLast = function scrollIntoLast(selector) { - var intialTry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var MAX_TRIES = 10; - var currentTry = intialTry; - - if (currentTry > MAX_TRIES) { - return; - } - - try { - var nodes = document.querySelectorAll(selector); - var last = nodes[nodes.length - 1]; - last.scrollIntoView(false); - /** alignToTop: false */ - } catch (error) { - setTimeout(function () { - scrollIntoLast(selector, currentTry + 1); - }, 500 * currentTry); - } -}; -var pubSubHandleRemover$1 = function pubSubHandleRemover(subscriber) { - subscriber.forEach(function (s) { - try { - s.remove(); - } catch (_unused) {// - } - }); -}; -var pubSubHandler$1 = function pubSubHandler(channelUrl, pubSub, dispatcher) { - var subscriber = new Map(); - if (!pubSub || !pubSub.subscribe) return subscriber; - subscriber.set(SEND_USER_MESSAGE, pubSub.subscribe(SEND_USER_MESSAGE, function (msg) { - var channel = msg.channel, - message = msg.message; - scrollIntoLast('.sendbird-msg--scroll-ref'); - - if (channel && channelUrl === channel.url) { - dispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - } - })); - subscriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, function (msg) { - var channel = msg.channel, - message = msg.message; - - if (channel && channelUrl === channel.url) { - dispatcher({ - type: SEND_MESSAGEGE_START, - payload: message - }); - } - })); - subscriber.set(SEND_FILE_MESSAGE, pubSub.subscribe(SEND_FILE_MESSAGE, function (msg) { - var channel = msg.channel, - message = msg.message; - scrollIntoLast('.sendbird-msg--scroll-ref'); - - if (channel && channelUrl === channel.url) { - dispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - } - })); - subscriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, function (msg) { - var channel = msg.channel, - message = msg.message, - fromSelector = msg.fromSelector; - - if (fromSelector && channel && channelUrl === channel.url) { - dispatcher({ - type: ON_MESSAGE_UPDATED, - payload: message - }); - } - })); - subscriber.set(DELETE_MESSAGE, pubSub.subscribe(DELETE_MESSAGE, function (msg) { - var channel = msg.channel, - messageId = msg.messageId; - - if (channel && channelUrl === channel.url) { - dispatcher({ - type: ON_MESSAGE_DELETED, - payload: messageId - }); - } - })); - return subscriber; -}; -var getParsedStatus = function getParsedStatus(message, currentGroupChannel) { - if (message.requestState === FAILED) { - return MessageStatusType.FAILED; - } - - if (message.requestState === PENDING) { - return MessageStatusType.PENDING; - } - - if (message.requestState === SUCCEEDED) { - if (!currentGroupChannel) { - return MessageStatusType.SENT; - } - - var unreadCount = currentGroupChannel.getReadReceipt(message); - - if (unreadCount === 0) { - return MessageStatusType.READ; - } - - var isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0; - - if (isDelivered) { - return MessageStatusType.DELIVERED; - } - - return MessageStatusType.SENT; - } - - return null; -}; -var isOperator = function isOperator() { - var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var myRole = groupChannel.myRole; - return myRole === 'operator'; -}; -var isDisabledBecauseFrozen = function isDisabledBecauseFrozen() { - var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var isFrozen = groupChannel.isFrozen; - return isFrozen && !isOperator(groupChannel); -}; -var isDisabledBecauseMuted = function isDisabledBecauseMuted() { - var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var myMutedState = groupChannel.myMutedState; - return myMutedState === 'muted'; -}; -var getEmojiCategoriesFromEmojiContainer = function getEmojiCategoriesFromEmojiContainer() { - var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []; -}; -var getAllEmojisFromEmojiContainer = function getAllEmojisFromEmojiContainer() { - var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _emojiContainer$emoji = emojiContainer.emojiCategories, - emojiCategories = _emojiContainer$emoji === void 0 ? [] : _emojiContainer$emoji; - var allEmojis = []; - - for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) { - var emojis = emojiCategories[categoryIndex].emojis; - - for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) { - allEmojis.push(emojis[emojiIndex]); - } - } - - return allEmojis; -}; -var getEmojisFromEmojiContainer = function getEmojisFromEmojiContainer() { - var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var emojiCategoryId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - return emojiContainer.emojiCategories ? emojiContainer.emojiCategories.filter(function (emojiCategory) { - return emojiCategory.id === emojiCategoryId; - })[0].emojis : []; -}; -var getAllEmojisMapFromEmojiContainer = function getAllEmojisMapFromEmojiContainer() { - var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _emojiContainer$emoji2 = emojiContainer.emojiCategories, - emojiCategories = _emojiContainer$emoji2 === void 0 ? [] : _emojiContainer$emoji2; - var allEmojisMap = new Map(); - - for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) { - var emojis = emojiCategories[categoryIndex].emojis; - - for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) { - var _emojis$emojiIndex = emojis[emojiIndex], - key = _emojis$emojiIndex.key, - url = _emojis$emojiIndex.url; - allEmojisMap.set(key, url); - } - } - - return allEmojisMap; -}; -var getNicknamesMapFromMembers = function getNicknamesMapFromMembers() { - var members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var nicknamesMap = new Map(); - - for (var memberIndex = 0; memberIndex < members.length; memberIndex += 1) { - var _members$memberIndex = members[memberIndex], - userId = _members$memberIndex.userId, - nickname = _members$memberIndex.nickname; - nicknamesMap.set(userId, nickname); - } - - return nicknamesMap; -}; -var getMessageCreatedAt$1 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var isSameGroup = function isSameGroup(message, comparingMessage) { - if (!message || !comparingMessage || !message.sender || !comparingMessage.sender || !message.createdAt || !comparingMessage.createdAt || !message.sender.userId || !comparingMessage.sender.userId) { - return false; - } - - return message.sendingStatus === comparingMessage.sendingStatus && message.sender.userId === comparingMessage.sender.userId && getMessageCreatedAt$1(message) === getMessageCreatedAt$1(comparingMessage); -}; -var compareMessagesForGrouping = function compareMessagesForGrouping(prevMessage, currMessage, nextMessage) { - return [isSameGroup(prevMessage, currMessage), isSameGroup(currMessage, nextMessage)]; -}; -var passUnsuccessfullMessages = function passUnsuccessfullMessages(allMessages, newMessage) { - var _newMessage$sendingSt = newMessage.sendingStatus, - sendingStatus = _newMessage$sendingSt === void 0 ? UNDEFINED : _newMessage$sendingSt; - - if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) { - var lastIndexOfSucceededMessage = allMessages.map(function (message) { - return message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED : UNDEFINED); - }).lastIndexOf(SUCCEEDED); - - if (lastIndexOfSucceededMessage + 1 < allMessages.length) { - var messages = _toConsumableArray(allMessages); - - messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage); - return messages; - } - } - - return [].concat(_toConsumableArray(allMessages), [newMessage]); -}; - -var messagesInitialState = { - initialized: false, - loading: false, - allMessages: [], - currentGroupChannel: { - members: [] - }, - hasMore: false, - lastMessageTimeStamp: 0, - emojiContainer: {}, - readStatus: {}, - unreadCount: 0, - unreadSince: null, - isInvalid: false -}; - -var isEmpty$1 = function isEmpty(val) { - return val === null || val === undefined; -}; // Some Ids return string and number inconsistently -// only use to comapre IDs - - -function compareIds (a, b) { - if (isEmpty$1(a) || isEmpty$1(b)) { - return false; - } - - var aString = a.toString(); - var bString = b.toString(); - return aString === bString; -} - -var SUCCEEDED$1 = SendingMessageStatus.SUCCEEDED, - FAILED$1 = SendingMessageStatus.FAILED, - PENDING$1 = SendingMessageStatus.PENDING; -function reducer$3(state, action) { - switch (action.type) { - case RESET_STATE: - return messagesInitialState; - - case RESET_MESSAGES: - return _objectSpread2({}, state, { - // when user switches channel, if the previous channel `hasMore` - // the onScroll gets called twice, setting hasMore false prevents this - hasMore: false, - allMessages: [] - }); - - case GET_PREV_MESSAGES_START: - return _objectSpread2({}, state, { - loading: true - }); - - case CLEAR_SENT_MESSAGES: - return _objectSpread2({}, state, { - allMessages: _toConsumableArray(state.allMessages.filter(function (m) { - return m.sendingStatus !== SUCCEEDED$1; - })) - }); - - case GET_PREV_MESSAGES_SUCESS: - { - var recivedMessages = action.payload.messages || []; - var _action$payload$curre = action.payload.currentGroupChannel, - currentGroupChannel = _action$payload$curre === void 0 ? {} : _action$payload$curre; - var stateChannel = state.currentGroupChannel || {}; - var stateChannelUrl = stateChannel.url; - var actionChannelUrl = currentGroupChannel.url; - - if (actionChannelUrl !== stateChannelUrl) { - return state; - } // remove duplicate messages - - - var filteredAllMessages = state.allMessages.filter(function (msg) { - return !recivedMessages.find(function (_ref) { - var messageId = _ref.messageId; - return compareIds(messageId, msg.messageId); - }); - }); - return _objectSpread2({}, state, { - loading: false, - initialized: true, - hasMore: action.payload.hasMore, - lastMessageTimeStamp: action.payload.lastMessageTimeStamp, - allMessages: [].concat(_toConsumableArray(recivedMessages), _toConsumableArray(filteredAllMessages)) - }); - } - - case SEND_MESSAGEGE_START: - return _objectSpread2({}, state, { - allMessages: [].concat(_toConsumableArray(state.allMessages), [_objectSpread2({}, action.payload)]) - }); - - case SEND_MESSAGEGE_SUCESS: - { - var newMessages = state.allMessages.map(function (m) { - return compareIds(m.reqId, action.payload.reqId) ? action.payload : m; - }); - - _toConsumableArray(newMessages).sort(function (a, b) { - return a.sendingStatus && b.sendingStatus && a.sendingStatus === SUCCEEDED$1 && (b.sendingStatus === PENDING$1 || b.sendingStatus === FAILED$1) ? -1 : 1; - }); - - return _objectSpread2({}, state, { - allMessages: newMessages - }); - } - - case SEND_MESSAGEGE_FAILURE: - { - // eslint-disable-next-line no-param-reassign - action.payload.failed = true; - return _objectSpread2({}, state, { - allMessages: state.allMessages.map(function (m) { - return compareIds(m.reqId, action.payload.reqId) ? action.payload : m; - }) - }); - } - - case SET_CURRENT_CHANNEL$1: - { - return _objectSpread2({}, state, { - currentGroupChannel: action.payload, - isInvalid: false - }); - } - - case SET_CHANNEL_INVALID: - { - return _objectSpread2({}, state, { - isInvalid: true - }); - } - - case ON_MESSAGE_RECEIVED: - { - var _action$payload = action.payload, - channel = _action$payload.channel, - message = _action$payload.message; - - var _state$currentGroupCh = state.currentGroupChannel, - _currentGroupChannel = _state$currentGroupCh === void 0 ? {} : _state$currentGroupCh, - unreadCount = state.unreadCount, - unreadSince = state.unreadSince; - - var currentGroupChannelUrl = _currentGroupChannel.url; - - if (!compareIds(channel.url, currentGroupChannelUrl)) { - return state; - } // Excluded overlapping messages - - - if (!(state.allMessages.map(function (msg) { - return msg.messageId; - }).indexOf(message.messageId) < 0)) { - return state; - } - - if (message.isAdminMessage && message.isAdminMessage()) { - return _objectSpread2({}, state, { - allMessages: passUnsuccessfullMessages(state.allMessages, message) - }); - } - - return _objectSpread2({}, state, { - unreadCount: unreadCount + 1, - unreadSince: unreadCount === 0 ? format(new Date(), 'p MMM dd') : unreadSince, - allMessages: passUnsuccessfullMessages(state.allMessages, message) - }); - } - - case ON_MESSAGE_UPDATED: - return _objectSpread2({}, state, { - allMessages: state.allMessages.map(function (m) { - return compareIds(m.messageId, action.payload.messageId) ? action.payload : m; - }) - }); - - case RESEND_MESSAGEGE_START: - return _objectSpread2({}, state, { - allMessages: state.allMessages.map(function (m) { - return compareIds(m.reqId, action.payload.reqId) ? action.payload : m; - }) - }); - - case MARK_AS_READ: - return _objectSpread2({}, state, { - unreadCount: 0, - unreadSince: null - }); - - case ON_MESSAGE_DELETED: - return _objectSpread2({}, state, { - allMessages: state.allMessages.filter(function (m) { - return !compareIds(m.messageId, action.payload); - }) - }); - - case ON_MESSAGE_DELETED_BY_REQ_ID: - return _objectSpread2({}, state, { - allMessages: state.allMessages.filter(function (m) { - return !compareIds(m.reqId, action.payload); - }) - }); - - case SET_EMOJI_CONTAINER: - { - return _objectSpread2({}, state, { - emojiContainer: action.payload - }); - } - - case SET_READ_STATUS: - { - return _objectSpread2({}, state, { - readStatus: action.payload - }); - } - - case ON_REACTION_UPDATED: - { - return _objectSpread2({}, state, { - allMessages: state.allMessages.map(function (m) { - if (compareIds(m.messageId, action.payload.messageId)) { - if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') { - m.applyReactionEvent(action.payload); - } - - return m; - } - - return m; - }) - }); - } - - default: - return state; - } -} - -/** - * Handles ChannelEvents and send values to dispatcher using messagesDispatcher - * messagesDispatcher: Dispatcher - * sdk: sdkInstance - * logger: loggerInstance - * channelUrl: string - * sdkInit: bool - */ - -function useHandleChannelEvents(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - sdkInit = _ref.sdkInit; - var messagesDispatcher = _ref2.messagesDispatcher, - sdk = _ref2.sdk, - logger = _ref2.logger; - var channelUrl = currentGroupChannel && currentGroupChannel.url; - useEffect(function () { - var messageReciverId = uuidv4(); - - if (channelUrl && sdk && sdk.ChannelHandler) { - var ChannelHandler = new sdk.ChannelHandler(); - logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReciverId); - - ChannelHandler.onMessageReceived = function (channel, message) { - if (compareIds(channel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onMessageReceived', message); - messagesDispatcher({ - type: ON_MESSAGE_RECEIVED, - payload: { - channel: channel, - message: message - } - }); - } - }; - - ChannelHandler.onMessageUpdated = function (_, message) { - logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message); - messagesDispatcher({ - type: ON_MESSAGE_UPDATED, - payload: message - }); - }; - - ChannelHandler.onMessageDeleted = function (_, messageId) { - logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId); - messagesDispatcher({ - type: ON_MESSAGE_DELETED, - payload: messageId - }); - }; - - ChannelHandler.onReactionUpdated = function (_, reactionEvent) { - logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent); - messagesDispatcher({ - type: ON_REACTION_UPDATED, - payload: reactionEvent - }); - }; - - ChannelHandler.onChannelChanged = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onChannelFrozen = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onChannelUnfrozen = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onUserMuted = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onUserUnmuted = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onUserBanned = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onOperatorUpdated = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; // Add this channel event handler to the SendBird object. - - - sdk.addChannelHandler(messageReciverId, ChannelHandler); - } - - return function () { - if (sdk && sdk.removeChannelHandler) { - logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReciverId); - sdk.removeChannelHandler(messageReciverId); - } - }; - }, [channelUrl, sdkInit]); -} - -function useSetChannel(_ref, _ref2) { - var channelUrl = _ref.channelUrl, - sdkInit = _ref.sdkInit; - var messagesDispatcher = _ref2.messagesDispatcher, - sdk = _ref2.sdk, - logger = _ref2.logger; - useEffect(function () { - if (channelUrl && sdkInit && sdk && sdk.GroupChannel) { - logger.info('Channel | useSetChannel fetching channel', channelUrl); - sdk.GroupChannel.getChannel(channelUrl).then(function (groupChannel) { - logger.info('Channel | useSetChannel fetched channel', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - logger.info('Channel: Mark as read', groupChannel); // this order is important - this mark as read should update the event handler up above - - groupChannel.markAsRead(); - }).catch(function (e) { - logger.warning('Channel | useSetChannel fetch channel failed', { - channelUrl: channelUrl, - e: e - }); - messagesDispatcher({ - type: SET_CHANNEL_INVALID - }); - }); - sdk.getAllEmoji(function (emojiContainer_, err) { - if (err) { - logger.error('Channel: Getting emojis failed', err); - return; - } - - logger.info('Channel: Getting emojis success', emojiContainer_); - messagesDispatcher({ - type: SET_EMOJI_CONTAINER, - payload: emojiContainer_ - }); - }); - } - }, [channelUrl, sdkInit]); -} - -function useInitialMessagesFetch(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - userFilledMessageListQuery = _ref.userFilledMessageListQuery; - var sdk = _ref2.sdk, - logger = _ref2.logger, - messagesDispatcher = _ref2.messagesDispatcher; - var channelUrl = currentGroupChannel && currentGroupChannel.url; - useEffect(function () { - logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel); - messagesDispatcher({ - type: RESET_MESSAGES - }); - - if (sdk && sdk.MessageListParams && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) { - var messageListParams = new sdk.MessageListParams(); - messageListParams.prevResultSize = 30; - messageListParams.isInclusive = true; - messageListParams.includeReplies = false; - messageListParams.includeReaction = true; - - if (userFilledMessageListQuery) { - Object.keys(userFilledMessageListQuery).forEach(function (key) { - messageListParams[key] = userFilledMessageListQuery[key]; - }); - } - - logger.info('Channel: Fetching messages', { - currentGroupChannel: currentGroupChannel, - userFilledMessageListQuery: userFilledMessageListQuery - }); - currentGroupChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams).then(function (messages) { - var hasMore = messages && messages.length > 0; - var lastMessageTimeStamp = hasMore ? messages[0].createdAt : null; - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: messages, - hasMore: hasMore, - lastMessageTimeStamp: lastMessageTimeStamp, - currentGroupChannel: currentGroupChannel - } - }); - }).catch(function (error) { - logger.error('Channel: Fetching messages failed', error); - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: [], - hasMore: false, - lastMessageTimeStamp: 0, - currentGroupChannel: currentGroupChannel - } - }); - }).finally(function () { - currentGroupChannel.markAsRead(); - setTimeout(function () { - return scrollIntoLast('.sendbird-msg--scroll-ref'); - }); - }); - } - }, [channelUrl, userFilledMessageListQuery]); -} - -function useHandleReconnect(_ref, _ref2) { - var isOnline = _ref.isOnline; - var logger = _ref2.logger, - sdk = _ref2.sdk, - currentGroupChannel = _ref2.currentGroupChannel, - messagesDispatcher = _ref2.messagesDispatcher, - userFilledMessageListQuery = _ref2.userFilledMessageListQuery; - useEffect(function () { - var wasOffline = !isOnline; - return function () { - // state changed from offline to online - if (wasOffline) { - logger.info('Refreshing conversation state'); - var _sdk$appInfo = sdk.appInfo, - appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; - var useReaction = appInfo.isUsingReaction || false; - var messageListParams = new sdk.MessageListParams(); - messageListParams.prevResultSize = 30; - messageListParams.includeReplies = false; - messageListParams.includeReaction = useReaction; - - if (userFilledMessageListQuery) { - Object.keys(userFilledMessageListQuery).forEach(function (key) { - messageListParams[key] = userFilledMessageListQuery[key]; - }); - } - - logger.info('Channel: Fetching messages', { - currentGroupChannel: currentGroupChannel, - userFilledMessageListQuery: userFilledMessageListQuery - }); - messagesDispatcher({ - type: GET_PREV_MESSAGES_START - }); - sdk.GroupChannel.getChannel(currentGroupChannel.url).then(function (groupChannel) { - var lastMessageTime = new Date().getTime(); - groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams).then(function (messages) { - messagesDispatcher({ - type: CLEAR_SENT_MESSAGES - }); - var hasMore = messages && messages.length > 0; - var lastMessageTimeStamp = hasMore ? messages[0].createdAt : null; - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: messages, - hasMore: hasMore, - lastMessageTimeStamp: lastMessageTimeStamp, - currentGroupChannel: currentGroupChannel - } - }); - setTimeout(function () { - return scrollIntoLast('.sendbird-msg--scroll-ref'); - }); - }).catch(function (error) { - logger.error('Channel: Fetching messages failed', error); - }).finally(function () { - currentGroupChannel.markAsRead(); - }); - }); - } - }; - }, [isOnline]); -} - -function useScrollCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - lastMessageTimeStamp = _ref.lastMessageTimeStamp, - userFilledMessageListQuery = _ref.userFilledMessageListQuery; - var hasMore = _ref2.hasMore, - logger = _ref2.logger, - messagesDispatcher = _ref2.messagesDispatcher, - sdk = _ref2.sdk; - return useCallback(function (cb) { - if (!hasMore) { - return; - } - - var messageListParams = new sdk.MessageListParams(); - messageListParams.prevResultSize = 30; - messageListParams.includeReplies = false; - messageListParams.includeReaction = true; - - if (userFilledMessageListQuery) { - Object.keys(userFilledMessageListQuery).forEach(function (key) { - messageListParams[key] = userFilledMessageListQuery[key]; - }); - } - - logger.info('Channel: Fetching messages', { - currentGroupChannel: currentGroupChannel, - userFilledMessageListQuery: userFilledMessageListQuery - }); - currentGroupChannel.getMessagesByTimestamp(lastMessageTimeStamp || new Date().getTime(), messageListParams).then(function (messages) { - var hasMoreMessages = messages && messages.length > 0; - var lastMessageTs = hasMoreMessages ? messages[0].createdAt : null; - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: messages, - hasMore: hasMoreMessages, - lastMessageTimeStamp: lastMessageTs, - currentGroupChannel: currentGroupChannel - } - }); - cb([messages, null]); - }).catch(function (error) { - logger.error('Channel: Fetching messages failed', error); - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: [], - hasMore: false, - lastMessageTimeStamp: 0, - currentGroupChannel: currentGroupChannel - } - }); - cb([null, error]); - }).finally(function () { - currentGroupChannel.markAsRead(); - }); - }, [currentGroupChannel, lastMessageTimeStamp]); -} - -function useDeleteMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - messagesDispatcher = _ref.messagesDispatcher; - var logger = _ref2.logger; - return useCallback(function (message, cb) { - logger.info('Channel | useDeleteMessageCallback: Deleting message', message); - var requestState = message.requestState; - logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState); // Message is only on local - - if (requestState === 'failed' || requestState === 'pending') { - logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message); - messagesDispatcher({ - type: ON_MESSAGE_DELETED_BY_REQ_ID, - payload: message.reqId - }); - - if (cb) { - cb(); - } - - return; - } // Message is on server - - - currentGroupChannel.deleteMessage(message, function (err) { - logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState); - - if (cb) { - cb(err); - } - - if (!err) { - logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message); - messagesDispatcher({ - type: ON_MESSAGE_DELETED, - payload: message.messageId - }); - } else { - logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err); - } - }); - }, [currentGroupChannel, messagesDispatcher]); -} - -function useUpdateMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - messagesDispatcher = _ref.messagesDispatcher, - onBeforeUpdateUserMessage = _ref.onBeforeUpdateUserMessage; - var logger = _ref2.logger, - pubSub = _ref2.pubSub, - sdk = _ref2.sdk; - return useCallback(function (messageId, text, cb) { - var createParamsDefault = function createParamsDefault(txt) { - var params = new sdk.UserMessageParams(); - params.message = txt; - return params; - }; - - var createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function'; - - if (createCustomPrams) { - logger.info('Channel: creting params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage); - } - - var params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(text) : createParamsDefault(text); - currentGroupChannel.updateUserMessage(messageId, params, function (r, e) { - logger.info('Channel: Updating message!', params); - var swapParams = sdk.getErrorFirstCallback(); - var message = r; - var err = e; - - if (swapParams) { - message = e; - err = r; - } - - if (cb) { - cb(err, message); - } - - if (!err) { - logger.info('Channel: Updating message success!', message); - messagesDispatcher({ - type: ON_MESSAGE_UPDATED, - payload: message - }); - pubSub.publish(UPDATE_USER_MESSAGE, { - message: message, - channel: currentGroupChannel - }); - } else { - logger.warning('Channel: Updating message failed!', err); - } - }); - }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]); -} - -function useResendMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - messagesDispatcher = _ref.messagesDispatcher; - var logger = _ref2.logger; - return useCallback(function (failedMessage) { - logger.info('Channel: Resending message has started', failedMessage); - var messageType = failedMessage.messageType, - file = failedMessage.file; - - if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) { - // eslint-disable-next-line no-param-reassign - failedMessage.requestState = 'pending'; - messagesDispatcher({ - type: RESEND_MESSAGEGE_START, - payload: failedMessage - }); // userMessage - - if (messageType === 'user') { - currentGroupChannel.resendUserMessage(failedMessage).then(function (message) { - logger.info('Channel: Resending message success!', { - message: message - }); - messagesDispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - }).catch(function (e) { - logger.warning('Channel: Resending message failed!', { - e: e - }); // eslint-disable-next-line no-param-reassign - - failedMessage.requestState = 'failed'; - messagesDispatcher({ - type: SEND_MESSAGEGE_FAILURE, - payload: failedMessage - }); - }); // eslint-disable-next-line no-param-reassign - - failedMessage.requestState = 'pending'; - messagesDispatcher({ - type: RESEND_MESSAGEGE_START, - payload: failedMessage - }); - return; - } - - if (messageType === 'file') { - currentGroupChannel.resendFileMessage(failedMessage, file).then(function (message) { - logger.info('Channel: Resending file message success!', { - message: message - }); - messagesDispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - }).catch(function (e) { - logger.warning('Channel: Resending file message failed!', { - e: e - }); // eslint-disable-next-line no-param-reassign - - failedMessage.requestState = 'failed'; - messagesDispatcher({ - type: SEND_MESSAGEGE_FAILURE, - payload: failedMessage - }); - }); // eslint-disable-next-line no-param-reassign - - failedMessage.requestState = 'pending'; - messagesDispatcher({ - type: RESEND_MESSAGEGE_START, - payload: failedMessage - }); - } - } else { - // to alert user on console - // eslint-disable-next-line no-console - console.error('Message is not resendable'); - logger.warning('Message is not resendable', failedMessage); - } - }, [currentGroupChannel, messagesDispatcher]); -} - -function useSendMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - onBeforeSendUserMessage = _ref.onBeforeSendUserMessage; - var sdk = _ref2.sdk, - logger = _ref2.logger, - pubSub = _ref2.pubSub, - messagesDispatcher = _ref2.messagesDispatcher; - var messageInputRef = useRef(null); - var sendMessage = useCallback(function () { - var text = messageInputRef.current.value; - - var createParamsDefault = function createParamsDefault(txt) { - var message = typeof txt === 'string' ? txt.trim() : txt; - var params = new sdk.UserMessageParams(); - params.message = message; - return params; - }; - - var createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function'; - - if (createCustomPrams) { - logger.info('Channel: creting params using onBeforeSendUserMessage', onBeforeSendUserMessage); - } - - var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text); - logger.info('Channel: Sending message has started', params); - var pendingMsg = currentGroupChannel.sendUserMessage(params, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = res; - var error = err; - - if (swapParams) { - message = err; - error = res; - } // sending params instead of pending message - // to make sure that we can resend the message once it fails - - - if (error) { - logger.warning('Channel: Sending message failed!', { - message: message - }); - messagesDispatcher({ - type: SEND_MESSAGEGE_FAILURE, - payload: message - }); - return; - } - - logger.info('Channel: Sending message success!', message); - messagesDispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - }); - pubSub.publish(SEND_MESSAGE_START, { - /* pubSub is used instead of messagesDispatcher - to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */ - message: pendingMsg, - channel: currentGroupChannel - }); - setTimeout(function () { - return scrollIntoLast('.sendbird-msg--scroll-ref'); - }); - }, [currentGroupChannel, onBeforeSendUserMessage]); - return [messageInputRef, sendMessage]; -} - -function useSendFileMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - onBeforeSendFileMessage = _ref.onBeforeSendFileMessage; - var sdk = _ref2.sdk, - logger = _ref2.logger, - pubSub = _ref2.pubSub, - messagesDispatcher = _ref2.messagesDispatcher; - var sendMessage = useCallback(function (file) { - var createParamsDefault = function createParamsDefault(file_) { - var params = new sdk.FileMessageParams(); - params.file = file_; - return params; - }; - - var createCustomPrams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function'; - - if (createCustomPrams) { - logger.info('Channel: creting params using onBeforeSendFileMessage', onBeforeSendFileMessage); - } - - var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefault(file); - logger.info('Channel: Uploading file message start!', params); - var pendingMsg = currentGroupChannel.sendFileMessage(params, function (response, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = response; - var error = err; - - if (swapParams) { - message = err; - error = response; - } - - if (error) { - // sending params instead of pending message - // to make sure that we can resend the message once it fails - logger.error('Channel: Sending file message failed!', message); - message.localUrl = URL.createObjectURL(file); - message.file = file; - messagesDispatcher({ - type: SEND_MESSAGEGE_FAILURE, - payload: message - }); - return; - } - - logger.info('Channel: Sending message success!', message); - messagesDispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - }); - pubSub.publish(SEND_MESSAGE_START, { - /* pubSub is used instead of messagesDispatcher - to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */ - message: _objectSpread2({}, pendingMsg, { - url: URL.createObjectURL(file), - // pending thumbnail message seems to be failed - requestState: 'pending' - }), - channel: currentGroupChannel - }); - setTimeout(function () { - return scrollIntoLast('.sendbird-msg--scroll-ref'); - }, 1000); - }, [currentGroupChannel, onBeforeSendFileMessage]); - return [sendMessage]; -} - -function useSetReadStatus(_ref, _ref2) { - var allMessages = _ref.allMessages, - currentGroupChannel = _ref.currentGroupChannel; - var messagesDispatcher = _ref2.messagesDispatcher, - sdk = _ref2.sdk, - logger = _ref2.logger; - useEffect(function () { - if (!sdk.ChannelHandler || !currentGroupChannel.url) { - return function () {}; - } // todo: move to reducer? - - - var setReadStatus = function setReadStatus() { - var allReadStatus = allMessages.reduce(function (accumulator, msg) { - if (msg.messageId !== 0) { - return _objectSpread2({}, accumulator, _defineProperty({}, msg.messageId, getParsedStatus(msg, currentGroupChannel))); - } - - return accumulator; - }, {}); - messagesDispatcher({ - type: SET_READ_STATUS, - payload: allReadStatus - }); - }; - - if (allMessages.length > 0) { - setReadStatus(); - } - - var channelUrl = currentGroupChannel.url; - var handler = new sdk.ChannelHandler(); - - var handleMessageStatus = function handleMessageStatus(c) { - if (channelUrl === c.url) { - setReadStatus(); - } - }; - - handler.onDeliveryReceiptUpdated = handleMessageStatus; - handler.onReadReceiptUpdated = handleMessageStatus; // Add this channel event handler to the SendBird object. - - var handlerId = uuidv4(); - logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId); - sdk.addChannelHandler(handlerId, handler); - return function () { - if (sdk && sdk.removeChannelHandler) { - logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId); - sdk.removeChannelHandler(handlerId); - } - }; - }, [allMessages, currentGroupChannel]); -} - -var ReactionButton = React.forwardRef(function (props, ref) { - var children = props.children, - width = props.width, - height = props.height, - _onClick = props.onClick, - selected = props.selected, - className = props.className; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - ref: ref, - className: "sendbird-reaction-button".concat(selected ? '--selected' : '', " ").concat(injectingClassName.join(' ')), - style: { - width: typeof width === 'string' ? "".concat(width.slice(0, -2) - 2, "px") : "".concat(width - 2, "px"), - height: typeof height === 'string' ? "".concat(height.slice(0, -2) - 2, "px") : "".concat(height - 2, "px") - }, - onClick: function onClick(e) { - return _onClick(e); - }, - role: "button", - onKeyDown: function onKeyDown(e) { - return _onClick(e); - }, - tabIndex: 0 - }, React.createElement("div", { - className: "sendbird-reaction-button__inner" - }, children)); -}); -ReactionButton.propTypes = { - children: PropTypes.element.isRequired, - onClick: PropTypes.func, - selected: PropTypes.bool, - width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -ReactionButton.defaultProps = { - selected: false, - width: '36px', - height: '36px', - onClick: function onClick() {}, - className: '' -}; - -function useMemoizedEmojiListItems(_ref, _ref2) { - var emojiContainer = _ref.emojiContainer, - toggleReaction = _ref.toggleReaction; - var useReaction = _ref2.useReaction, - logger = _ref2.logger, - userId = _ref2.userId, - emojiAllList = _ref2.emojiAllList; - return useMemo(function () { - return function (_ref3) { - var parentRef = _ref3.parentRef, - parentContainRef = _ref3.parentContainRef, - message = _ref3.message, - closeDropdown = _ref3.closeDropdown, - _ref3$spaceFromTrigge = _ref3.spaceFromTrigger, - spaceFromTrigger = _ref3$spaceFromTrigge === void 0 ? {} : _ref3$spaceFromTrigge; - - if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) { - logger.warning('Channel: Invalid Params in memoizedEmojiListItems'); - return null; - } - - return React.createElement(EmojiListItems$1, { - parentRef: parentRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: spaceFromTrigger - }, emojiAllList.map(function (emoji) { - var reactedReaction = message.reactions.filter(function (reaction) { - return reaction.key === emoji.key; - })[0]; - var isReacted = reactedReaction ? !(reactedReaction.userIds.indexOf(userId) < 0) : false; - return React.createElement(ReactionButton, { - key: emoji.key, - width: "36px", - height: "36px", - selected: isReacted, - onClick: function onClick() { - closeDropdown(); - toggleReaction(message, emoji.key, isReacted); - } - }, React.createElement(ImageRenderer, { - url: emoji.url, - width: "28px", - height: "28px", - defaultComponent: React.createElement(Icon, { - width: "28px", - height: "28px", - type: IconTypes.EMOJI_FAILED - }) - })); - })); - }; - }, [emojiContainer, toggleReaction]); -} - -function useToggleReactionCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel; - var logger = _ref2.logger; - return useCallback(function (message, key, isReacted) { - if (isReacted) { - currentGroupChannel.deleteReaction(message, key).then(function (res) { - logger.info('Delete reaction success', res); - }).catch(function (err) { - logger.warning('Delete reaction failed', err); - }); - return; - } - - currentGroupChannel.addReaction(message, key).then(function (res) { - logger.info('Add reaction success', res); - }).catch(function (err) { - logger.warning('Add reaction failed', err); - }); - }, [currentGroupChannel]); -} - -function MessageStatus(_ref) { - var message = _ref.message, - status = _ref.status, - className = _ref.className; - var injectingClassName = Array.isArray(className) ? className : [className]; - - var label = function label() { - switch (status) { - case MessageStatusType.FAILED: - case MessageStatusType.PENDING: - { - return null; - } - - case MessageStatusType.SENT: - case MessageStatusType.DELIVERED: - case MessageStatusType.READ: - { - return React.createElement(Label, { - className: "sendbird-message-status__text", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt(message)); - } - - default: - return null; - } - }; - - var icon = { - PENDING: React.createElement(Loader, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px" - }, React.createElement(Icon, { - type: IconTypes.SPINNER, - width: "16px", - height: "16px" - })), - SENT: React.createElement(Icon, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px", - type: IconTypes.SENT, - fillColor: IconColors.SENT - }), - DELIVERED: React.createElement(Icon, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px", - type: IconTypes.DELIVERED, - fillColor: IconColors.SENT - }), - READ: React.createElement(Icon, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px", - type: IconTypes.READ, - fillColor: IconColors.READ - }), - FAILED: React.createElement(Icon, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px", - type: IconTypes.ERROR - }) - }; - return React.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-message-status']).join(' ') - }, icon[status], React.createElement("br", null), label()); -} -MessageStatus.propTypes = { - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - status: PropTypes.string, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -MessageStatus.defaultProps = { - message: null, - status: '', - className: '' -}; - -var ReactionBadge = React.forwardRef(function (props, ref) { - var className = props.className, - children = props.children, - count = props.count, - selected = props.selected, - isAdd = props.isAdd, - onClick = props.onClick; - var injectingClassName = Array.isArray(className) ? className : [className]; - - if (selected && !isAdd) { - injectingClassName.unshift('sendbird-reaction-badge--selected'); - } else if (isAdd) { - injectingClassName.push('sendbird-reaction-badge--is-add'); - } else { - injectingClassName.unshift('sendbird-reaction-badge'); - } - - return React.createElement("div", { - ref: ref, - tabIndex: 0, - role: "button", - className: injectingClassName.join(' '), - onClick: onClick, - onKeyDown: onClick - }, React.createElement("div", { - className: "sendbird-reaction-badge__inner" - }, React.createElement("div", { - className: "sendbird-reaction-badge__inner__icon" - }, children), React.createElement(Label, { - className: children && count ? 'sendbird-reaction-badge__inner__count' : '', - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_1 - }, count))); -}); -ReactionBadge.propTypes = { - children: PropTypes.element.isRequired, - count: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - selected: PropTypes.bool, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - isAdd: PropTypes.bool, - onClick: PropTypes.func -}; -ReactionBadge.defaultProps = { - className: '', - count: '', - selected: false, - isAdd: false, - onClick: function onClick() {} -}; - -var CLASS_NAME$2 = 'sendbird-tooltip'; -function Tooltip(_ref) { - var className = _ref.className, - children = _ref.children; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift(CLASS_NAME$2); - return React.createElement("div", { - className: injectingClassName.join(' ') - }, React.createElement(Label, { - className: "".concat(CLASS_NAME$2, "__text") - }, children)); -} -Tooltip.propTypes = { - className: PropTypes.string, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.string), PropTypes.string]) -}; -Tooltip.defaultProps = { - className: '', - children: '' -}; - -var CLASS_NAME$3 = 'sendbird-tooltip-wrapper'; -var SPACE_FROM_TRIGGER = 8; -function TooltipWrapper(_ref) { - var className = _ref.className, - children = _ref.children, - hoverTooltip = _ref.hoverTooltip; - var injectingClassName = Array.isArray(className) ? [CLASS_NAME$3].concat(_toConsumableArray(className)) : [CLASS_NAME$3, className]; - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - showHoverTooltip = _useState2[0], - setShowHoverTooltip = _useState2[1]; - - var childrenRef = useRef(null); - return React.createElement("div", { - className: injectingClassName.join(' '), - onMouseOver: function onMouseOver() { - setShowHoverTooltip(true); - }, - onFocus: function onFocus() { - setShowHoverTooltip(true); - }, - onMouseOut: function onMouseOut() { - setShowHoverTooltip(false); - }, - onBlur: function onBlur() { - setShowHoverTooltip(false); - } - }, React.createElement("div", { - className: "".concat(CLASS_NAME$3, "__children"), - ref: childrenRef - }, children), showHoverTooltip && React.createElement("div", { - className: "".concat(CLASS_NAME$3, "__hover-tooltip"), - style: { - bottom: "calc(100% + ".concat(SPACE_FROM_TRIGGER, "px)") - } - }, React.createElement("div", { - className: "".concat(CLASS_NAME$3, "__hover-tooltip__inner") - }, React.createElement("div", { - className: "".concat(CLASS_NAME$3, "__hover-tooltip__inner__tooltip-container"), - style: { - left: childrenRef.current && "calc(".concat(childrenRef.current.offsetWidth / 2, "px - 50%)") - } - }, hoverTooltip)))); -} -TooltipWrapper.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.element.isRequired, - hoverTooltip: PropTypes.oneOfType([PropTypes.element, PropTypes.func]).isRequired -}; -TooltipWrapper.defaultProps = { - className: '' -}; - -function EmojiReactions(_ref) { - var className = _ref.className, - userId = _ref.userId, - message = _ref.message, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift('sendbird-emoji-reactions'); - var MemoizedEmojiListItems = memoizedEmojiListItems; - var imageWidth = '20px'; - var imageHeight = '20px'; - var emojiReactionAddRef = useRef(null); - var _message$reactions = message.reactions, - reactions = _message$reactions === void 0 ? [] : _message$reactions; - var messageReactions = reactions; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.createElement("div", { - className: injectingClassName.join(' ') - }, React.createElement("div", { - className: "sendbird-emoji-reactions--inner" - }, messageReactions && messageReactions.map(function (reaction) { - var _reaction$userIds = reaction.userIds, - userIds = _reaction$userIds === void 0 ? [] : _reaction$userIds; - var emojiUrl = emojiAllMap.get(reaction.key) || ''; - var reactedUserCount = userIds.length; - var reactedByMe = !(userIds.indexOf(userId) < 0); - var nicknames = userIds.filter(function (currentUserId) { - return currentUserId !== userId; - }).map(function (currentUserId) { - return membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER; - }); - var stringSetForMe = nicknames.length > 0 ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU; - return React.createElement(TooltipWrapper, { - className: "sendbird-emoji-reactions__emoji-reaction", - key: reaction.key, - hoverTooltip: userIds.length > 0 && React.createElement(Tooltip, null, React.createElement(React.Fragment, null, "".concat(nicknames.join(', ')).concat(reactedByMe ? stringSetForMe : ''))) - }, React.createElement(ReactionBadge, { - count: reactedUserCount, - selected: reactedByMe, - onClick: function onClick() { - return toggleReaction(message, reaction.key, reactedByMe); - } - }, React.createElement(ImageRenderer, { - circle: true, - url: emojiUrl, - width: imageWidth, - height: imageHeight, - defaultComponent: React.createElement(Icon, { - width: imageWidth, - height: imageHeight, - type: IconTypes.EMOJI_FAILED - }) - }))); - }), messageReactions.length < emojiAllMap.size && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(ReactionBadge, { - isAdd: true, - onClick: toggleDropdown, - className: "sendbird-emoji-reactions__emoji-reaction-add", - ref: emojiReactionAddRef - }, React.createElement(Icon, { - width: imageWidth, - height: imageHeight, - fillColor: IconColors.ON_BACKGROUND_3, - type: IconTypes.EMOJI_REACTIONS_ADD - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: emojiReactionAddRef, - parentContainRef: emojiReactionAddRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 4 - } - }); - } - }))); -} -EmojiReactions.propTypes = { - userId: PropTypes.string, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - message: PropTypes.shape({ - reactions: PropTypes.arrayOf(PropTypes.shape({})) - }).isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func -}; -EmojiReactions.defaultProps = { - className: '', - membersMap: new Map(), - userId: '', - toggleReaction: function toggleReaction() {}, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -var copyToClipboard = function copyToClipboard(text) { - if (window.clipboardData && window.clipboardData.setData) { - // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible. - return window.clipboardData.setData('Text', text); - } - - if (document.queryCommandSupported && document.queryCommandSupported('copy')) { - var textarea = document.createElement('textarea'); - textarea.textContent = text; - textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. - - document.body.appendChild(textarea); - textarea.select(); - - try { - return document.execCommand('copy'); // Security exception may be thrown by some browsers. - } catch (ex) { - return false; - } finally { - document.body.removeChild(textarea); - } - } - - return false; -}; -var getMessageCreatedAt$2 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var getSenderName$1 = function getSenderName(message) { - return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); -}; -var getSenderProfileUrl$1 = function getSenderProfileUrl(message) { - return message.sender && message.sender.profileUrl; -}; -var getIsSentFromStatus$1 = function getIsSentFromStatus(status) { - return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; -}; - -var WORD_TYPOGRAPHY = LabelTypography.BODY_1; -var EDITED_COLOR = LabelColors.ONBACKGROUND_2; -function useMemoizedMessageText(_ref) { - var message = _ref.message, - updatedAt = _ref.updatedAt, - className = _ref.className; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return useMemo(function () { - return function () { - var splitMessage = message.split(/\r/); - var matchedMessage = splitMessage.map(function (word) { - return word !== '' ? word : React.createElement("br", null); - }); - - if (updatedAt > 0) { - matchedMessage.push(React.createElement(Label, { - key: uuidv4(), - className: className, - type: WORD_TYPOGRAPHY, - color: EDITED_COLOR - }, " ".concat(stringSet.MESSAGE_EDITED, " "))); - } - - return matchedMessage; - }; - }, [message, updatedAt, className]); -} - -var MOUSE_ENTER = 'mouseenter'; -var MOUSE_LEAVE = 'mouseleave'; - -var useMouseHover = function useMouseHover(_ref) { - var ref = _ref.ref, - setHover = _ref.setHover; - - var handleMouseOver = function handleMouseOver() { - if (ref.current) { - setHover(true); - } - }; - - var handleMouseOut = function handleMouseOut() { - if (ref.current) { - setHover(false); - } - }; - - useEffect(function () { - var current = ref.current; - current.addEventListener(MOUSE_ENTER, handleMouseOver); - current.addEventListener(MOUSE_LEAVE, handleMouseOut); - return function () { - current.removeEventListener(MOUSE_ENTER, handleMouseOver); - current.removeEventListener(MOUSE_LEAVE, handleMouseOut); - }; - }); -}; - -var noop$2 = function noop() {}; - -var GROUPING_PADDING = '1px'; -var NORMAL_PADDING = '8px'; -function Message(props) { - var isByMe = props.isByMe, - userId = props.userId, - message = props.message, - className = props.className, - resendMessage = props.resendMessage, - disabled = props.disabled, - showEdit = props.showEdit, - showRemove = props.showRemove, - status = props.status, - useReaction = props.useReaction, - emojiAllMap = props.emojiAllMap, - membersMap = props.membersMap, - toggleReaction = props.toggleReaction, - memoizedEmojiListItems = props.memoizedEmojiListItems, - chainTop = props.chainTop, - chainBottom = props.chainBottom; - if (!message) return null; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.push("sendbird-message".concat(isByMe ? '--outgoing' : '--incoming')); - var memoizedMessageText = useMemoizedMessageText({ - message: message.message, - updatedAt: message.updatedAt, - className: 'sendbird-user-message-word' - }); - return React.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-message']).join(' ') - }, isByMe ? React.createElement(OutgoingUserMessage, { - userId: userId, - message: message, - resendMessage: resendMessage, - disabled: disabled, - showEdit: showEdit, - showRemove: showRemove, - status: status, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedMessageText: memoizedMessageText, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - }) : React.createElement(IncomingUserMessage, { - userId: userId, - message: message, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedMessageText: memoizedMessageText, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })); -} -Message.propTypes = { - isByMe: PropTypes.bool, - disabled: PropTypes.bool, - userId: PropTypes.string, - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])).isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - showEdit: PropTypes.func, - status: PropTypes.string, - showRemove: PropTypes.func, - resendMessage: PropTypes.func, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -Message.defaultProps = { - isByMe: false, - disabled: false, - userId: '', - resendMessage: noop$2, - className: '', - showEdit: noop$2, - showRemove: noop$2, - status: '', - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$2, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - }, - chainTop: false, - chainBottom: false -}; - -function OutgoingUserMessage(_ref) { - var userId = _ref.userId, - message = _ref.message, - showEdit = _ref.showEdit, - disabled = _ref.disabled, - showRemove = _ref.showRemove, - status = _ref.status, - resendMessage = _ref.resendMessage, - useReaction = _ref.useReaction, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedMessageText = _ref.memoizedMessageText, - memoizedEmojiListItems = _ref.memoizedEmojiListItems, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom; - var MemoizedMessageText = memoizedMessageText; - var MemoizedEmojiListItems = memoizedEmojiListItems; // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED - - var messageRef = useRef(null); - var parentRefReactions = useRef(null); - var parentRefMenus = useRef(null); - var parentContainRef = useRef(null); - var isMessageSent = getIsSentFromStatus$1(status); - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React.createElement("div", { - className: "sendbird-user-message--outgoing", - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING, - paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING - } - }, React.createElement("div", { - className: "sendbird-user-message--inner" - }, React.createElement("div", { - className: "sendbird-user-message__left-padding" - }, React.createElement("div", { - className: "sendbird-user-message__more", - ref: parentContainRef - }, React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - ref: parentRefMenus, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: parentRefMenus // for catching location(x, y) of MenuItems - , - parentContainRef: parentContainRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - openLeft: true - }, isMessageSent && React.createElement(MenuItem, { - className: "sendbird-user-message--copy", - onClick: function onClick() { - copyToClipboard(message.message); - closeDropdown(); - } - }, "Copy"), isMessageSent && React.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showEdit(true); - closeDropdown(); - } - }, "Edit"), message && message.isResendable && message.isResendable() && React.createElement(MenuItem, { - onClick: function onClick() { - resendMessage(message); - closeDropdown(); - } - }, "Resend"), React.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - }), isMessageSent && useReaction && emojiAllMap.size > 0 && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__add-reaction", - ref: parentRefReactions, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: parentRefReactions, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React.createElement("div", { - className: "sendbird-user-message__status" - }, React.createElement(MessageStatus, { - message: message, - status: status // onDelete={() => { showRemove(true); }} - // onResend={() => resendMessage(message)} - // duplicated and should replace to more - - }))), React.createElement("div", { - className: "sendbird-user-message__text-balloon" - }, React.createElement("div", { - className: "sendbird-user-message__text-balloon__inner" - }, React.createElement("div", { - className: "sendbird-user-message__text-balloon__inner__text-place" - }, React.createElement(Label, { - className: "sendbird-user-message__text-balloon__inner__text-place__text", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, React.createElement(MemoizedMessageText, null))), useReaction && message.reactions && message.reactions.length > 0 && React.createElement(EmojiReactions, { - className: "sendbird-user-message__text-balloon__inner__emoji-reactions", - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }))))); -} - -function IncomingUserMessage(_ref2) { - var userId = _ref2.userId, - message = _ref2.message, - useReaction = _ref2.useReaction, - emojiAllMap = _ref2.emojiAllMap, - membersMap = _ref2.membersMap, - toggleReaction = _ref2.toggleReaction, - memoizedMessageText = _ref2.memoizedMessageText, - memoizedEmojiListItems = _ref2.memoizedEmojiListItems, - chainTop = _ref2.chainTop, - chainBottom = _ref2.chainBottom; - var MemoizedMessageText = memoizedMessageText; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var messageRef = useRef(null); - var parentRefReactions = useRef(null); - var parentRefMenus = useRef(null); - var parentContainRef = useRef(null); - var avatarRef = useRef(null); - - var _React$useContext = React.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - var _useState5 = useState(false), - _useState6 = _slicedToArray(_useState5, 2), - mousehover = _useState6[0], - setMousehover = _useState6[1]; - - var _useState7 = useState(false), - _useState8 = _slicedToArray(_useState7, 2), - moreActive = _useState8[0], - setMoreActive = _useState8[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React.createElement("div", { - ref: messageRef, - className: "sendbird-user-message--incoming", - style: { - paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING, - paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING - } - }, React.createElement("div", { - className: "sendbird-user-message--inner" - }, React.createElement("div", { - className: "sendbird-user-message--body" - }, !chainBottom && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(Avatar$1, { - ref: avatarRef, - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "sendbird-user-message__avatar", - src: getSenderProfileUrl$1(message), - width: "28px", - height: "28px" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - }), !chainTop && React.createElement(Label, { - className: "sendbird-user-message__sender-name", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getSenderName$1(message)), React.createElement("div", { - className: "sendbird-user-message__text-balloon" - }, React.createElement("div", { - className: "sendbird-user-message__text-balloon__inner" - }, React.createElement("div", { - className: "sendbird-user-message__text-balloon__inner__text-place" - }, React.createElement(Label, { - className: "sendbird-user-message__text-balloon__inner__text-place__text", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, React.createElement(MemoizedMessageText, null))), showEmojiReactions && React.createElement(EmojiReactions, { - className: "sendbird-user-message__text-balloon__inner__emoji-reactions", - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - })))), React.createElement("div", { - className: "sendbird-user-message__right-padding" - }, React.createElement("div", { - className: "sendbird-user-message__more", - ref: parentContainRef - }, showReactionAddButton && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: parentRefReactions, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MemoizedEmojiListItems, { - parentRef: parentRefReactions, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - message: message, - spaceFromTrigger: { - y: 2 - } - }); - } - }), React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: parentRefMenus, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: parentRefMenus, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown - }, React.createElement(MenuItem, { - className: "sendbird-user-message--copy", - onClick: function onClick() { - copyToClipboard(message.message); - closeDropdown(); - } - }, "Copy")); - } - })), !chainBottom && !(mousehover || moreActive) && React.createElement(Label, { - className: "sendbird-user-message__sent-at", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt$2(message))))); -} - -IncomingUserMessage.propTypes = { - userId: PropTypes.string.isRequired, - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedMessageText: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -IncomingUserMessage.defaultProps = { - message: {}, - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$2, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; -OutgoingUserMessage.propTypes = { - userId: PropTypes.string.isRequired, - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - showEdit: PropTypes.func, - showRemove: PropTypes.func, - disabled: PropTypes.bool, - resendMessage: PropTypes.func, - status: PropTypes.string.isRequired, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedMessageText: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingUserMessage.defaultProps = { - message: {}, - resendMessage: noop$2, - showEdit: noop$2, - showRemove: noop$2, - disabled: false, - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$2, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -function AdminMessage(_ref) { - var className = _ref.className, - message = _ref.message; - - if (!message.messageType || message.messageType !== 'admin') { - // change to use message.isAdminMessage() - return null; - } - - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-admin-message']).join(' ') - }, React.createElement(Label, { - className: "sendbird-admin-message__text", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, message.message)); -} -AdminMessage.propTypes = { - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -AdminMessage.defaultProps = { - message: {}, - className: '' -}; - -var getMessageCreatedAt$3 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var getIsSentFromStatus$2 = function getIsSentFromStatus(status) { - return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; -}; - -var noop$3 = function noop() {}; - -var OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message'; -var INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message'; -var GROUPING_PADDING$1 = '1px'; -var NORMAL_PADDING$1 = '8px'; -function ThumbnailMessage(_ref) { - var _ref$message = _ref.message, - message = _ref$message === void 0 ? {} : _ref$message, - userId = _ref.userId, - disabled = _ref.disabled, - isByMe = _ref.isByMe, - onClick = _ref.onClick, - showRemove = _ref.showRemove, - status = _ref.status, - resendMessage = _ref.resendMessage, - useReaction = _ref.useReaction, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom; - return isByMe ? React.createElement(OutgoingThumbnailMessage, { - userId: userId, - status: status, - message: message, - onClick: onClick, - disabled: disabled, - chainTop: chainTop, - showRemove: showRemove, - membersMap: membersMap, - chainBottom: chainBottom, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - resendMessage: resendMessage, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }) : React.createElement(IncomingThumbnailMessage, { - userId: userId, - status: status, - message: message, - onClick: onClick, - chainTop: chainTop, - membersMap: membersMap, - chainBottom: chainBottom, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }); -} -function OutgoingThumbnailMessage(_ref2) { - var _ref2$message = _ref2.message, - message = _ref2$message === void 0 ? {} : _ref2$message, - userId = _ref2.userId, - disabled = _ref2.disabled, - onClick = _ref2.onClick, - showRemove = _ref2.showRemove, - status = _ref2.status, - resendMessage = _ref2.resendMessage, - useReaction = _ref2.useReaction, - emojiAllMap = _ref2.emojiAllMap, - membersMap = _ref2.membersMap, - toggleReaction = _ref2.toggleReaction, - memoizedEmojiListItems = _ref2.memoizedEmojiListItems, - chainTop = _ref2.chainTop, - chainBottom = _ref2.chainBottom; - var type = message.type, - url = message.url, - localUrl = message.localUrl; - var messageRef = useRef(null); - var parentContainRef = useRef(null); - var menuRef = useRef(null); - var reactionAddRef = useRef(null); - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var isMessageSent = getIsSentFromStatus$2(status); - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React.createElement("div", { - className: OUTGOING_THUMBNAIL_MESSAGE, - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPING_PADDING$1 : NORMAL_PADDING$1, - paddingBottom: chainBottom ? GROUPING_PADDING$1 : NORMAL_PADDING$1 - } - }, React.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "--inner") - }, React.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "__left-padding") - }, React.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-left-padding__more"), - ref: parentContainRef - }, React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: menuRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - color: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: menuRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - openLeft: true - }, message && message.isResendable && message.isResendable() && React.createElement(MenuItem, { - onClick: function onClick() { - resendMessage(message); - closeDropdown(); - } - }, "Resend"), React.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - }), isMessageSent && showReactionAddButton && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: reactionAddRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - color: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: reactionAddRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React.createElement(MessageStatus, { - message: message, - status: status, - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-left-padding__status") - })), React.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "__body") - }, React.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap") - }, React.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap--inner"), - onClick: isMessageSent ? function () { - return onClick(true); - } : function () {}, - onKeyDown: isMessageSent ? function () { - return onClick(true); - } : function () {}, - tabIndex: 0, - role: "button" - }, isVideo(type) && React.createElement(React.Fragment, null, React.createElement("video", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__video") - }, React.createElement("source", { - src: url || localUrl, - type: type - })), React.createElement(Icon, { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__video-icon"), - width: "56px", - height: "56px", - type: IconTypes.PLAY - })), isImage(type) && React.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__img"), - style: { - backgroundImage: "url(".concat(url || localUrl, ")"), - height: '280px', - width: '404px', - backgroundSize: 'cover', - backgroundRepeat: 'no-repeat', - backgroundPosition: 'center' - } - }), unSupported(type) && React.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__other") - }, "Unknown type"), React.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap__overlay") - })), useReaction && message.reactions && message.reactions.length > 0 && React.createElement(EmojiReactions, { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap__emoji-reactions"), - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }))))); -} -function IncomingThumbnailMessage(_ref3) { - var _ref3$message = _ref3.message, - message = _ref3$message === void 0 ? {} : _ref3$message, - userId = _ref3.userId, - onClick = _ref3.onClick, - status = _ref3.status, - useReaction = _ref3.useReaction, - emojiAllMap = _ref3.emojiAllMap, - membersMap = _ref3.membersMap, - toggleReaction = _ref3.toggleReaction, - memoizedEmojiListItems = _ref3.memoizedEmojiListItems, - chainTop = _ref3.chainTop, - chainBottom = _ref3.chainBottom; - var type = message.type, - url = message.url, - localUrl = message.localUrl; - - var _React$useContext = React.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - var messageRef = useRef(null); - var parentContainRef = useRef(null); - var reactionAddRef = useRef(null); - var avatarRef = useRef(null); - - var _useState5 = useState(false), - _useState6 = _slicedToArray(_useState5, 2), - mousehover = _useState6[0], - setMousehover = _useState6[1]; - - var _useState7 = useState(false), - _useState8 = _slicedToArray(_useState7, 2), - moreActive = _useState8[0], - setMoreActive = _useState8[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var isMessageSent = getIsSentFromStatus$2(status); - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React.createElement("div", { - className: INCOMING_THUMBNAIL_MESSAGE, - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPING_PADDING$1 : NORMAL_PADDING$1, - paddingBottom: chainBottom ? GROUPING_PADDING$1 : NORMAL_PADDING$1 - } - }, !chainTop && React.createElement(Label, { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__sender-name"), - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getSenderName(message) || ''), React.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "--inner") - }, React.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__body") - }, React.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap") - }, !chainBottom && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(Avatar$1, { - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__avatar"), - src: getSenderProfileUrl(message), - width: "28px", - height: "28px" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - }), React.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap--inner"), - role: "button", - tabIndex: 0, - onClick: isMessageSent ? function () { - return onClick(true); - } : function () {}, - onKeyDown: isMessageSent ? function () { - return onClick(true); - } : function () {} - }, isVideo(type) && React.createElement(React.Fragment, null, React.createElement("video", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__video") - }, React.createElement("source", { - src: url || localUrl, - type: type - })), React.createElement(Icon, { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__video-icon"), - width: "56px", - height: "56px", - type: IconTypes.PLAY - })), isImage(type) && React.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__img"), - style: { - backgroundImage: "url(".concat(url || localUrl, ")"), - height: '280px', - width: '404px', - backgroundSize: 'cover', - backgroundRepeat: 'no-repeat', - backgroundPosition: 'center' - } - }), unSupported(type) && React.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__other") - }, "Unknown type"), React.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap-overlay") - })), useReaction && message.reactions && message.reactions.length > 0 && React.createElement(EmojiReactions, { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__wrap__emoji-reactions"), - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }))), React.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__right-padding") - }, !chainBottom && !(mousehover || moreActive) && React.createElement(Label, { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__sent-at"), - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt$3(message)), React.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__more"), - ref: parentContainRef - }, showReactionAddButton && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: reactionAddRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - color: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: reactionAddRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - }))))); -} -ThumbnailMessage.propTypes = { - message: PropTypes.shape({ - type: PropTypes.string, - url: PropTypes.string, - localUrl: PropTypes.string - }).isRequired, - userId: PropTypes.string, - resendMessage: PropTypes.func, - status: PropTypes.string, - isByMe: PropTypes.bool, - disabled: PropTypes.bool, - onClick: PropTypes.func, - showRemove: PropTypes.func, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -ThumbnailMessage.defaultProps = { - isByMe: false, - disabled: false, - resendMessage: noop$3, - onClick: noop$3, - showRemove: noop$3, - status: '', - userId: '', - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$3, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - }, - chainTop: false, - chainBottom: false -}; -OutgoingThumbnailMessage.propTypes = { - message: PropTypes.shape({ - type: PropTypes.string, - url: PropTypes.string, - localUrl: PropTypes.string - }).isRequired, - userId: PropTypes.string.isRequired, - disabled: PropTypes.bool.isRequired, - resendMessage: PropTypes.func.isRequired, - status: PropTypes.string, - onClick: PropTypes.func.isRequired, - showRemove: PropTypes.func.isRequired, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - toggleReaction: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingThumbnailMessage.defaultProps = { - status: '' -}; -IncomingThumbnailMessage.propTypes = { - message: PropTypes.shape({ - type: PropTypes.string, - url: PropTypes.string, - localUrl: PropTypes.string - }).isRequired, - userId: PropTypes.string.isRequired, - onClick: PropTypes.func.isRequired, - status: PropTypes.string, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - toggleReaction: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -IncomingThumbnailMessage.defaultProps = { - status: '' -}; - -var MAX_TRUNCATE_LENGTH = 40; -var GROUPAING_PADDING = '1px'; -var NORMAL_PADDING$2 = '8px'; - -var noop$4 = function noop() {}; - -function checkFileType(fileUrl) { - var result = null; - var imageFile = /(\.gif|\.jpg|\.jpeg|\.txt|\.pdf)$/i; - var audioFile = /(\.mp3)$/i; - - if (imageFile.test(fileUrl)) { - result = IconTypes.FILE_DOCUMENT; - } else if (audioFile.test(fileUrl)) { - result = IconTypes.FILE_AUDIO; - } - - return result; -} - -function OutgoingFileMessage(_ref) { - var message = _ref.message, - userId = _ref.userId, - status = _ref.status, - showRemove = _ref.showRemove, - disabled = _ref.disabled, - resendMessage = _ref.resendMessage, - useReaction = _ref.useReaction, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom; - var url = message.url; - - var openFileUrl = function openFileUrl() { - window.open(url); - }; - - var messageRef = useRef(null); - var parentContainRef = useRef(null); - var menuRef = useRef(null); - var reactionAddButtonRef = useRef(null); - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var isMessageSent = getIsSentFromStatus(status); - var showEmojiReactions = isMessageSent && useReaction && message.reactions && message.reactions.length > 0; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React.createElement("div", { - className: "sendbird-file-message__outgoing", - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING$2, - paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING$2 - } - }, React.createElement("div", { - className: "sendbird-file-message--inner" - }, React.createElement("div", { - className: "sendbird-file-message__left-padding" - }, React.createElement("div", { - className: "sendbird-file-message__more", - ref: parentContainRef - }, React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: menuRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: menuRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - openLeft: true - }, message && message.isResendable && message.isResendable() && React.createElement(MenuItem, { - onClick: function onClick() { - resendMessage(message); - closeDropdown(); - } - }, "Resend"), React.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - }), showReactionAddButton && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: reactionAddButtonRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: reactionAddButtonRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React.createElement("div", { - className: "sendbird-file-message__status" - }, React.createElement(MessageStatus, { - message: message, - status: status - }))), React.createElement("div", { - className: "sendbird-file-message__tooltip" - }, React.createElement("div", { - className: "sendbird-file-message__tooltip__inner" - }, checkFileType(url) ? React.createElement(Icon, { - className: "sendbird-file-message__tooltip__icon", - width: "28px", - height: "28px", - type: checkFileType(url) - }) : null, React.createElement(TextButton, { - className: "sendbird-file-message__tooltip__text", - onClick: openFileUrl - }, React.createElement(Label, { - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, truncate(message.url, MAX_TRUNCATE_LENGTH)))), showEmojiReactions && React.createElement(EmojiReactions, { - className: "sendbird-file-message__tooltip__emoji-reactions", - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - })))); -} -function IncomingFileMessage(_ref2) { - var message = _ref2.message, - userId = _ref2.userId, - useReaction = _ref2.useReaction, - emojiAllMap = _ref2.emojiAllMap, - membersMap = _ref2.membersMap, - toggleReaction = _ref2.toggleReaction, - memoizedEmojiListItems = _ref2.memoizedEmojiListItems, - chainTop = _ref2.chainTop, - chainBottom = _ref2.chainBottom; - - var openFileUrl = function openFileUrl() { - window.open(message.url); - }; - - var messageRef = useRef(null); - - var _React$useContext = React.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - var parentContainRef = useRef(null); - var avatarRef = useRef(null); - var reactionAddButtonRef = useRef(null); - - var _useState5 = useState(false), - _useState6 = _slicedToArray(_useState5, 2), - mousehover = _useState6[0], - setMousehover = _useState6[1]; - - var _useState7 = useState(false), - _useState8 = _slicedToArray(_useState7, 2), - moreActive = _useState8[0], - setMoreActive = _useState8[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var MemoizedEmojiListItems = memoizedEmojiListItems; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React.createElement("div", { - className: "sendbird-file-message__incoming", - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING$2, - paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING$2 - } - }, React.createElement("div", { - className: "sendbird-file-message--inner" - }, React.createElement("div", { - className: "sendbird-file-message__body" - }, !chainBottom && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(Avatar$1, { - ref: avatarRef, - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "sendbird-file-message__avatar", - src: getSenderProfileUrl(message), - width: "28px", - height: "28px" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - }), !chainTop && React.createElement(Label, { - className: "sendbird-file-message__sender-name", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getSenderName(message)), React.createElement("div", { - className: "sendbird-file-message__tooltip" - }, React.createElement("div", { - className: "sendbird-file-message__tooltip__inner" - }, checkFileType(message.url) ? React.createElement(Icon, { - className: "sendbird-file-message__tooltip__icon", - width: "28px", - height: "28px", - type: checkFileType(message.url) - }) : null, React.createElement(TextButton, { - className: "sendbird-file-message__tooltip__text", - onClick: openFileUrl - }, React.createElement(Label, { - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, truncate(message.url, MAX_TRUNCATE_LENGTH)))), useReaction && message.reactions && message.reactions.length > 0 && React.createElement(EmojiReactions, { - className: "sendbird-file-message__tooltip__emoji-reactions", - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }))), React.createElement("div", { - className: "sendbird-file-message__right-padding" - }, React.createElement("div", { - className: "sendbird-file-message__more", - ref: parentContainRef - }, showReactionAddButton && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: reactionAddButtonRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: reactionAddButtonRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React.createElement(Label, { - className: "sendbird-file-message__sent-at", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt(message))))); -} -OutgoingFileMessage.propTypes = { - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - userId: PropTypes.string, - status: PropTypes.string, - showRemove: PropTypes.func, - resendMessage: PropTypes.func, - useReaction: PropTypes.bool.isRequired, - disabled: PropTypes.bool, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingFileMessage.defaultProps = { - status: '', - showRemove: noop$4, - resendMessage: noop$4, - message: {}, - userId: '', - disabled: false, - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$4, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; -IncomingFileMessage.propTypes = { - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - userId: PropTypes.string, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -IncomingFileMessage.defaultProps = { - message: {}, - userId: '', - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$4, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -var MessageSwitch = function MessageSwitch(_ref3) { - var message = _ref3.message, - userId = _ref3.userId, - disabled = _ref3.disabled, - isByMe = _ref3.isByMe, - showRemove = _ref3.showRemove, - status = _ref3.status, - resendMessage = _ref3.resendMessage, - useReaction = _ref3.useReaction, - emojiAllMap = _ref3.emojiAllMap, - membersMap = _ref3.membersMap, - toggleReaction = _ref3.toggleReaction, - memoizedEmojiListItems = _ref3.memoizedEmojiListItems, - chainTop = _ref3.chainTop, - chainBottom = _ref3.chainBottom; - return React.createElement("div", { - className: "sendbird-file-message".concat(isByMe ? '--outgoing' : '--incoming') - }, isByMe ? React.createElement(OutgoingFileMessage, { - message: message, - userId: userId, - disabled: disabled, - showRemove: showRemove, - status: status, - resendMessage: resendMessage, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - }) : React.createElement(IncomingFileMessage, { - userId: userId, - message: message, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })); -}; - -MessageSwitch.propTypes = { - message: PropTypes.shape({}), - userId: PropTypes.string, - isByMe: PropTypes.bool, - disabled: PropTypes.bool, - showRemove: PropTypes.func, - resendMessage: PropTypes.func, - status: PropTypes.string.isRequired, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -MessageSwitch.defaultProps = { - message: {}, - isByMe: false, - disabled: false, - showRemove: noop$4, - resendMessage: noop$4, - userId: '', - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$4, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - }, - chainTop: false, - chainBottom: false -}; - -function DateSeparator(_ref) { - var className = _ref.className, - children = _ref.children, - separatorColor = _ref.separatorColor; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-separator']).join(' ') - }, React.createElement("div", { - className: ["".concat(changeColorToClassName$2(separatorColor), "--background-color"), 'sendbird-separator__left'].join(' ') - }), React.createElement("div", { - className: "sendbird-separator__text" - }, children), React.createElement("div", { - className: ["".concat(changeColorToClassName$2(separatorColor), "--background-color"), 'sendbird-separator__right'].join(' ') - })); -} -DateSeparator.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.element]), - separatorColor: PropTypes.string -}; -DateSeparator.defaultProps = { - className: '', - children: React.createElement(Label, { - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, "Date Separator"), - separatorColor: Colors$2.ONBACKGROUND_4 -}; - -// import IconAttach from '../../svgs/icon-attach.svg'; - -var LINE_HEIGHT = 76; - -var noop$5 = function noop() {}; - -var KeyCode = { - SHIFT: 16, - ENTER: 13 -}; - -var handleUploadFile = function handleUploadFile(callback) { - return function (event) { - if (event.target.files && event.target.files[0]) { - callback(event.target.files[0]); - } // eslint-disable-next-line no-param-reassign - - - event.target.value = ''; - }; -}; - -var MessageInput = React.forwardRef(function (props, ref) { - var isEdit = props.isEdit, - disabled = props.disabled, - value = props.value, - name = props.name, - placeholder = props.placeholder, - maxLength = props.maxLength, - onFileUpload = props.onFileUpload, - onSendMessage = props.onSendMessage, - onCancelEdit = props.onCancelEdit, - onStartTyping = props.onStartTyping; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var fileInputRef = useRef(null); - - var _useState = useState(value), - _useState2 = _slicedToArray(_useState, 2), - inputValue = _useState2[0], - setInputValue = _useState2[1]; - - var _useState3 = useState(false), - _useState4 = _slicedToArray(_useState3, 2), - isShiftPressed = _useState4[0], - setIsShiftPressed = _useState4[1]; - - var setHeight = function setHeight() { - var elem = ref.current; - var MAX_HEIGHT = window.document.body.offsetHeight * 0.6; - - if (elem.scrollHeight >= LINE_HEIGHT) { - if (MAX_HEIGHT < elem.scrollHeight) { - elem.style.height = 'auto'; - elem.style.height = "".concat(MAX_HEIGHT, "px"); - } else { - elem.style.height = 'auto'; - elem.style.height = "".concat(elem.scrollHeight, "px"); - } - } else { - elem.style.height = ''; - } - }; // after setHeight called twice, the textarea goes to the initialized - - - useEffect(function () { - setHeight(); - return setHeight; - }, [inputValue]); - - var sendMessage = function sendMessage() { - if (inputValue) { - var trimmedInputValue = inputValue.trim(); - - if (isEdit) { - onSendMessage(name, trimmedInputValue, function () { - onCancelEdit(); - }); - } else { - onSendMessage(trimmedInputValue); - setInputValue(''); - } - } - }; - - return React.createElement("form", { - className: "\n ".concat(isEdit ? 'sendbird-message-input__edit' : '', "\n ").concat(disabled ? 'sendbird-message-input-form__disabled' : '', "\n ") - }, React.createElement("div", { - className: "\n sendbird-message-input\n ".concat(disabled ? 'sendbird-message-input__disabled' : '', "\n ") - }, React.createElement("textarea", { - disabled: disabled, - ref: ref, - name: name, - value: inputValue, - className: "sendbird-message-input--textarea", - maxLength: maxLength, - onChange: function onChange(e) { - setInputValue(e.target.value); - onStartTyping(); - }, - onKeyDown: function onKeyDown(e) { - if (e.keyCode === KeyCode.SHIFT) { - setIsShiftPressed(true); - } - - if (!isShiftPressed && e.keyCode === KeyCode.ENTER) { - e.preventDefault(); - sendMessage(); - } - }, - onKeyUp: function onKeyUp(e) { - if (e.keyCode === KeyCode.SHIFT) { - setIsShiftPressed(false); - } - } - }), !inputValue && React.createElement(Label, { - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_3, - className: "sendbird-message-input--placeholder" - }, placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER), !isEdit && !inputValue && React.createElement(IconButton, { - className: "sendbird-message-input--attach", - height: "32px", - width: "32px", - onClick: function onClick() { - // todo: clear previous input - fileInputRef.current.click(); - } - }, React.createElement(Icon, { - type: IconTypes.ATTACH, - width: "20px", - height: "20px" - }), React.createElement("input", { - type: "file", - ref: fileInputRef, - onChange: handleUploadFile(onFileUpload), - className: "sendbird-message-input--attach-input" - })), !isEdit && inputValue && React.createElement(IconButton, { - className: "sendbird-message-input--send", - height: "32px", - width: "32px", - onClick: sendMessage - }, React.createElement(Icon, { - type: IconTypes.SEND, - fillColor: IconColors.PRIMARY, - width: "20px", - height: "20px" - }))), isEdit && React.createElement("div", { - className: "sendbird-message-input--edit-action" - }, React.createElement(Button, { - className: "sendbird-message-input--edit-action__cancel", - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: onCancelEdit - }, stringSet.BUTTON__CANCEL), React.createElement(Button, { - className: "sendbird-message-input--edit-action__save", - type: Type$1.PRIMARY, - size: Size.SMALL, - onClick: function onClick() { - if (inputValue) { - var trimmedInputValue = inputValue.trim(); - onSendMessage(name, trimmedInputValue, function () { - onCancelEdit(); - }); - } - } - }, stringSet.BUTTON__SAVE))); -}); -MessageInput.propTypes = { - placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), - isEdit: PropTypes.bool, - name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - value: PropTypes.string, - disabled: PropTypes.bool, - maxLength: PropTypes.number, - onFileUpload: PropTypes.func, - onSendMessage: PropTypes.func, - onStartTyping: PropTypes.func, - onCancelEdit: PropTypes.func -}; -MessageInput.defaultProps = { - value: '', - onSendMessage: noop$5, - name: 'sendbird-message-input', - isEdit: false, - disabled: false, - placeholder: '', - maxLength: 5000, - onFileUpload: noop$5, - onCancelEdit: noop$5, - onStartTyping: noop$5 -}; - -var FileViewerComponent = function FileViewerComponent(_ref) { - var profileUrl = _ref.profileUrl, - nickname = _ref.nickname, - type = _ref.type, - url = _ref.url, - name = _ref.name, - onClose = _ref.onClose, - onDelete = _ref.onDelete, - isByMe = _ref.isByMe; - return React.createElement("div", { - className: "sendbird-fileviewer" - }, React.createElement("div", { - className: "sendbird-fileviewer__header" - }, React.createElement("div", { - className: "sendbird-fileviewer__header-left" - }, React.createElement("div", { - className: "sendbird-fileviewer__header-avatar" - }, React.createElement(Avatar$1, { - height: "32px", - width: "32px", - src: profileUrl - })), React.createElement(Label, { - className: "sendbird-fileviewer__header-filename", - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, name), React.createElement(Label, { - className: "sendbird-fileviewer__header-sendername", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, nickname)), React.createElement("div", { - className: "sendbird-fileviewer__header-right" - }, !unSupported(type) && React.createElement("div", { - className: "sendbird-fileviewer__header-actions" - }, React.createElement("a", { - href: url, - rel: "noopener noreferrer", - target: "_blank", - className: "sendbird-fileviewer__header-download" - }, React.createElement(Icon, { - type: IconTypes.DOWNLOAD, - height: "24px", - width: "24px" - })), onDelete && isByMe && React.createElement("div", { - className: "sendbird-fileviewer__header-delete" - }, React.createElement(Icon, { - type: IconTypes.DELETE, - height: "24px", - width: "24px", - onClick: onDelete - }))), React.createElement("div", { - className: "sendbird-fileviewer__header-close" - }, React.createElement(Icon, { - type: IconTypes.CLOSE, - height: "24px", - width: "24px", - onClick: onClose - })))), React.createElement("div", { - className: "sendbird-fileviewer__content" - }, isVideo(type) && // eslint-disable-next-line jsx-a11y/media-has-caption - React.createElement("video", { - controls: true, - className: "sendbird-fileviewer__video" - }, React.createElement("source", { - src: url, - type: type - })), isImage(type) && React.createElement("img", { - src: url, - alt: name, - className: "sendbird-fileviewer__img" - }), unSupported(type) && React.createElement("div", { - className: "sendbird-fileviewer__unsupported" - }, React.createElement(Label, { - type: LabelTypography.H_1, - color: LabelColors.ONBACKGROUND_1 - }, "Unsupoprted message")))); -}; -FileViewerComponent.propTypes = { - profileUrl: PropTypes.string.isRequired, - nickname: PropTypes.string.isRequired, - type: PropTypes.string.isRequired, - url: PropTypes.string.isRequired, - name: PropTypes.string.isRequired, - onClose: PropTypes.func.isRequired, - onDelete: PropTypes.func.isRequired, - isByMe: PropTypes.bool -}; -FileViewerComponent.defaultProps = { - isByMe: true -}; -function FileViewer(props) { - var onClose = props.onClose, - message = props.message, - onDelete = props.onDelete, - isByMe = props.isByMe; - var sender = message.sender, - type = message.type, - url = message.url, - _message$name = message.name, - name = _message$name === void 0 ? '' : _message$name; - var profileUrl = sender.profileUrl, - _sender$nickname = sender.nickname, - nickname = _sender$nickname === void 0 ? '' : _sender$nickname; - return createPortal(React.createElement(FileViewerComponent, { - profileUrl: profileUrl, - nickname: nickname, - type: type, - url: url, - name: name, - onClose: onClose, - onDelete: onDelete, - isByMe: isByMe - }), document.getElementById(MODAL_ROOT)); -} -FileViewer.propTypes = { - onClose: PropTypes.func.isRequired, - message: PropTypes.shape({ - sender: PropTypes.shape({ - profileUrl: PropTypes.string, - nickname: PropTypes.string - }), - type: PropTypes.string, - url: PropTypes.string, - name: PropTypes.string - }).isRequired, - onDelete: PropTypes.func.isRequired, - isByMe: PropTypes.bool -}; -FileViewer.defaultProps = { - isByMe: true -}; - -var RemoveMessage = function RemoveMessage(props) { - var onCloseModal = props.onCloseModal, - onDeleteMessage = props.onDeleteMessage; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.createElement(Modal, { - onCancel: onCloseModal, - onSubmit: onDeleteMessage, - submitText: "Delete", - titleText: stringSet.MODAL__DELETE_MESSAGE__TITLE - }); -}; - -RemoveMessage.propTypes = { - onCloseModal: PropTypes.func.isRequired, - onDeleteMessage: PropTypes.func.isRequired -}; - -var getMessageCreatedAt$4 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; - -var CLASS_NAME$4 = 'sendbird-unknown-message'; -var GROUPING_PADDING$2 = '1px'; -var NORMAL_PADDING$3 = '8px'; -function UnknownMessage(_ref) { - var message = _ref.message, - isByMe = _ref.isByMe, - status = _ref.status, - className = _ref.className, - showRemove = _ref.showRemove, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift(CLASS_NAME$4); - injectingClassName.push("".concat(CLASS_NAME$4).concat(isByMe ? '--outgoing' : '--incoming')); - return React.createElement("div", { - className: injectingClassName.join(' ') - }, isByMe ? React.createElement(OutgoingUnknownMessage, { - status: status, - message: message, - chainTop: chainTop, - showRemove: showRemove, - chainBottom: chainBottom - }) : React.createElement(IncomingUnknownMessage, { - message: message, - chainTop: chainTop, - chainBottom: chainBottom - })); -} -UnknownMessage.propTypes = { - message: PropTypes.shape({}).isRequired, - isByMe: PropTypes.bool, - status: PropTypes.string, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - showRemove: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -UnknownMessage.defaultProps = { - isByMe: false, - status: '', - className: '', - showRemove: function showRemove() {}, - chainTop: false, - chainBottom: false -}; - -function OutgoingUnknownMessage(_ref2) { - var message = _ref2.message, - status = _ref2.status, - showRemove = _ref2.showRemove, - chainTop = _ref2.chainTop, - chainBottom = _ref2.chainBottom; - var className = 'sendbird-outgoing-unknown-message'; - var messageRef = useRef(null); - var parentContainRef = useRef(null); - var menuRef = useRef(null); - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React.createElement("div", { - ref: messageRef, - className: className, - style: { - paddingTop: chainTop ? GROUPING_PADDING$2 : NORMAL_PADDING$3, - paddingBottom: chainBottom ? GROUPING_PADDING$2 : NORMAL_PADDING$3 - } - }, React.createElement("div", { - className: "".concat(className, "--inner") - }, React.createElement("div", { - className: "".concat(className, "--left-padding") - }, React.createElement("div", { - className: "".concat(className, "__more"), - ref: parentContainRef - }, React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "".concat(className, "__more__menu"), - ref: menuRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: menuRef // for catching location(x, y) of MenuItems - , - parentContainRef: parentContainRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - openLeft: true - }, React.createElement(MenuItem, { - onClick: function onClick() { - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - })), !chainBottom && !(mousehover || moreActive) && React.createElement("div", { - className: "".concat(className, "__message-status") - }, React.createElement(MessageStatus, { - message: message, - status: status - }))), React.createElement("div", { - className: "".concat(className, "__body") - }, React.createElement("div", { - className: "".concat(className, "__body__text-balloon") - }, React.createElement(Label, { - className: "".concat(className, "__body__text-balloon__header"), - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React.createElement(Label, { - className: "".concat(className, "__body__text-balloon__description"), - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, stringSet.UNKNOWN__CANNOT_READ_MESSAGE))))); -} - -function IncomingUnknownMessage(_ref3) { - var message = _ref3.message, - chainTop = _ref3.chainTop, - chainBottom = _ref3.chainBottom; - var className = 'sendbird-incoming-unknown-message'; - var sender = message.sender; - var avatarRef = useRef(null); - - var _useContext2 = useContext(LocalizationContext), - stringSet = _useContext2.stringSet; - - var _React$useContext = React.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - return React.createElement("div", { - className: className, - style: { - paddingTop: chainTop ? GROUPING_PADDING$2 : NORMAL_PADDING$3, - paddingBottom: chainBottom ? GROUPING_PADDING$2 : NORMAL_PADDING$3 - } - }, React.createElement("div", { - className: "".concat(className, "--inner") - }, React.createElement("div", { - className: "".concat(className, "__left") - }, !chainBottom && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(Avatar$1, { - ref: avatarRef, - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "".concat(className, "__left__sender-profile-image"), - src: sender.profileUrl, - width: "28px", - height: "28px", - alt: "sender-profile-image" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - })), React.createElement("div", { - className: "".concat(className, "__body") - }, !chainTop && React.createElement(Label, { - className: "".concat(className, "__body__sender-name"), - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, sender.nickname || stringSet.NO_NAME), React.createElement("div", { - className: "".concat(className, "__body__text-balloon") - }, React.createElement(Label, { - className: "".concat(className, "__body__text-balloon__header"), - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React.createElement(Label, { - className: "".concat(className, "__body__text-balloon__description"), - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, stringSet.UNKNOWN__CANNOT_READ_MESSAGE))), React.createElement("div", { - className: "".concat(className, "--right-padding") - }, !chainBottom && React.createElement(Label, { - className: "".concat(className, "__sent-at"), - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt$4(message))))); -} - -OutgoingUnknownMessage.propTypes = { - message: PropTypes.shape({}).isRequired, - status: PropTypes.string.isRequired, - showRemove: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingUnknownMessage.defaultProps = { - showRemove: function showRemove() {} -}; -IncomingUnknownMessage.propTypes = { - message: PropTypes.shape({ - sender: PropTypes.shape({ - nickname: PropTypes.string, - profileUrl: PropTypes.string - }) - }).isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; - -var URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; -var OG_MESSAGE = 'sendbird-og-message'; -var OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message'; -var INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message'; - -var createUrlTester = function createUrlTester(regexp) { - return function (text) { - return regexp.test(text); - }; -}; -var getIsSentFromStatus$3 = function getIsSentFromStatus(status) { - return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; -}; -var copyToClipboard$1 = function copyToClipboard(text) { - try { - if (window.clipboardData && window.clipboardData.setData) { - // Internet Explorer-specific code path - // to prevent textarea being shown while dialog is visible. - return window.clipboardData.setData('Text', text); - } - - if (document.queryCommandSupported && document.queryCommandSupported('copy')) { - var textarea = document.createElement('textarea'); - textarea.textContent = text; - textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. - - document.body.appendChild(textarea); - textarea.select(); - - try { - return document.execCommand('copy'); // Security exception may be thrown by some browsers. - } catch (ex) { - return false; - } finally { - document.body.removeChild(textarea); - } - } - - return false; - } catch (err) { - return err; - } -}; -var getSenderProfileUrl$2 = function getSenderProfileUrl(message) { - return message.sender && message.sender.profileUrl; -}; -var getSenderName$2 = function getSenderName(message) { - return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); -}; -var getMessageCreatedAt$5 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var checkOGIsEnalbed = function checkOGIsEnalbed(message) { - var ogMetaData = message.ogMetaData; - - if (!ogMetaData) { - return false; - } - - var url = ogMetaData.url; - - if (!url) { - return false; - } - - return true; -}; - -var LINK_LABEL = 'sendbird-link-label'; -var http = /https?:\/\//; -function LinkLabel(_ref) { - var className = _ref.className, - src = _ref.src, - type = _ref.type, - color = _ref.color, - children = _ref.children; - var injecingClassName = Array.isArray(className) ? className : [className]; - var url = http.test(src) ? src : "http://".concat(src); - return React.createElement("a", { - className: "".concat(LINK_LABEL, " ").concat(injecingClassName.join(' ')), - href: url - }, React.createElement(Label, { - type: type, - color: color, - className: "".concat(LINK_LABEL, "__label") - }, children)); -} -LinkLabel.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.arrayOf(PropTypes.string), PropTypes.arrayOf(PropTypes.element)]).isRequired, - src: PropTypes.string.isRequired, - type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired, - color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired -}; -LinkLabel.defaultProps = { - className: '' -}; - -var WORD_TYPOGRAPHY$1 = LabelTypography.BODY_1; -var WORD_COLOR = LabelColors.ONBACKGROUND_1; -var EDITED_COLOR$1 = LabelColors.ONBACKGROUND_2; -var isUrl = createUrlTester(URL_REG); -function useMemoizedMessageText$1(_ref) { - var message = _ref.message, - updatedAt = _ref.updatedAt, - className = _ref.className; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return useMemo(function () { - return function () { - var splitMessage = message.split(' '); - var matchedMessage = splitMessage.map(function (word) { - return isUrl(word) ? React.createElement(LinkLabel, { - key: uuidv4(), - className: className, - src: word, - type: WORD_TYPOGRAPHY$1, - color: WORD_COLOR - }, word) : React.createElement(Label, { - key: uuidv4(), - className: className, - type: WORD_TYPOGRAPHY$1, - color: WORD_COLOR - }, word); - }); - - if (updatedAt > 0) { - matchedMessage.push(React.createElement(Label, { - key: uuidv4(), - className: className, - type: WORD_TYPOGRAPHY$1, - color: EDITED_COLOR$1 - }, stringSet.MESSAGE_EDITED)); - } // return (<>{matchedMessage}); - - - return matchedMessage; - }; - }, [message, updatedAt, className]); -} - -var GROUPING_PADDING$3 = '1px'; -var NORAML_PADDING = '8px'; - -var OGMessageSwitch = function OGMessageSwitch(_ref) { - var isByMe = _ref.isByMe, - userId = _ref.userId, - status = _ref.status, - message = _ref.message, - disabled = _ref.disabled, - showEdit = _ref.showEdit, - chainTop = _ref.chainTop, - className = _ref.className, - membersMap = _ref.membersMap, - showRemove = _ref.showRemove, - useReaction = _ref.useReaction, - emojiAllMap = _ref.emojiAllMap, - chainBottom = _ref.chainBottom, - resendMessage = _ref.resendMessage, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems; - var ogMetaData = message.ogMetaData; - var injectingClassName = Array.isArray(className) ? className : [className]; - var memoizedMessageText = useMemoizedMessageText$1({ - message: message.message, - updatedAt: message.updatedAt, - className: 'sendbird-og-message-word' - }); - - var openLink = function openLink() { - if (checkOGIsEnalbed(message)) { - var url = ogMetaData.url; - window.open(url); - } - }; - - return React.createElement("div", { - className: "".concat(OG_MESSAGE, " ").concat(OG_MESSAGE).concat(isByMe ? '--outgoing' : '--incoming', " ").concat(injectingClassName.join(' ')) - }, isByMe ? React.createElement(OutgoingOGMessage, { - status: status, - userId: userId, - message: message, - disabled: disabled, - openLink: openLink, - showEdit: showEdit, - chainTop: chainTop, - showRemove: showRemove, - membersMap: membersMap, - chainBottom: chainBottom, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - resendMessage: resendMessage, - toggleReaction: toggleReaction, - memoizedMessageText: memoizedMessageText, - memoizedEmojiListItems: memoizedEmojiListItems - }) : React.createElement(IncomingOGMessage, { - userId: userId, - message: message, - openLink: openLink, - chainTop: chainTop, - membersMap: membersMap, - chainBottom: chainBottom, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - toggleReaction: toggleReaction, - memoizedMessageText: memoizedMessageText, - memoizedEmojiListItems: memoizedEmojiListItems - })); -}; - -function OutgoingOGMessage(props) { - var status = props.status, - userId = props.userId, - message = props.message, - disabled = props.disabled, - openLink = props.openLink, - showEdit = props.showEdit, - chainTop = props.chainTop, - showRemove = props.showRemove, - membersMap = props.membersMap, - chainBottom = props.chainBottom, - emojiAllMap = props.emojiAllMap, - useReaction = props.useReaction, - resendMessage = props.resendMessage, - toggleReaction = props.toggleReaction, - memoizedMessageText = props.memoizedMessageText, - memoizedEmojiListItems = props.memoizedEmojiListItems; - var ogMetaData = message.ogMetaData; - var defaultImage = ogMetaData.defaultImage; - var MemoizedMessageText = memoizedMessageText; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var messageRef = useRef(null); - var parentRefReactions = useRef(null); - var parentRefMenus = useRef(null); - var parentContainRef = useRef(null); - var isMessageSent = getIsSentFromStatus$3(status); - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React.createElement("div", { - ref: messageRef, - className: OUTGOING_OG_MESSAGE, - style: { - paddingTop: chainTop ? GROUPING_PADDING$3 : NORAML_PADDING, - paddingBottom: chainBottom ? GROUPING_PADDING$3 : NORAML_PADDING - } - }, React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "--inner") - }, React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "--left-padding") - }, React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__more"), - ref: parentContainRef - }, React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "".concat(OUTGOING_OG_MESSAGE, "__more__menu"), - ref: parentRefMenus, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: parentRefMenus // for catching location(x, y) of MenuItems - , - parentContainRef: parentContainRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - openLeft: true - }, isMessageSent && React.createElement(MenuItem, { - className: "".concat(OUTGOING_OG_MESSAGE, "__more__menu__copy"), - onClick: function onClick() { - copyToClipboard$1(message.message); - closeDropdown(); - } - }, "Copy"), isMessageSent && React.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showEdit(true); - closeDropdown(); - } - }, "Edit"), message && message.isResendable && message.isResendable() && React.createElement(MenuItem, { - onClick: function onClick() { - resendMessage(message); - closeDropdown(); - } - }, "Resend"), React.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - }), isMessageSent && useReaction && emojiAllMap.size > 0 && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "".concat(OUTGOING_OG_MESSAGE, "__more__add-reaction"), - ref: parentRefReactions, - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: parentRefReactions, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__message-status") - }, React.createElement(MessageStatus, { - message: message, - status: status - }))), React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "--body") - }, React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__text-balloon") - }, React.createElement(MemoizedMessageText, null)), React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail ").concat(checkOGIsEnalbed(message) ? '' : "".concat(OUTGOING_OG_MESSAGE, "__thumbnail--disabled")), - onClick: openLink, - onKeyDown: openLink, - role: "button", - tabIndex: 0 - }, defaultImage && React.createElement(ImageRenderer, { - url: defaultImage.url || '', - alt: defaultImage.alt, - className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail__image"), - width: "320px", - height: "180px", - defaultComponent: React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail__image__placeholder") - }, React.createElement(Icon, { - width: "56px", - height: "56px", - type: IconTypes.NO_THUMBNAIL - })) - })), React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag ").concat(checkOGIsEnalbed(message) ? '' : "".concat(OUTGOING_OG_MESSAGE, "__og-tag--disabled")), - onClick: openLink, - onKeyDown: openLink, - role: "button", - tabIndex: 0 - }, ogMetaData.title && React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__title") - }, React.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, ogMetaData.title)), ogMetaData.description && React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__description") - }, React.createElement(Label, { - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_1, - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__description__label") - }, ogMetaData.description)), ogMetaData.url && React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__url") - }, React.createElement(Label, { - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2, - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__url__label") - }, ogMetaData.url)), showEmojiReactions && React.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__emoji-reactions--wrapper"), - onClick: function onClick(event) { - return event.stopPropagation(); - }, - onKeyDown: function onKeyDown(event) { - return event.stopPropagation(); - }, - role: "button", - tabIndex: 0 - }, React.createElement(EmojiReactions, { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__emoji-reactions"), - userId: userId, - message: message, - membersMap: membersMap, - emojiAllMap: emojiAllMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - })))))); -} - -function IncomingOGMessage(props) { - var userId = props.userId, - message = props.message, - openLink = props.openLink, - chainTop = props.chainTop, - membersMap = props.membersMap, - chainBottom = props.chainBottom, - useReaction = props.useReaction, - emojiAllMap = props.emojiAllMap, - toggleReaction = props.toggleReaction, - memoizedMessageText = props.memoizedMessageText, - memoizedEmojiListItems = props.memoizedEmojiListItems; - var ogMetaData = message.ogMetaData; - var defaultImage = ogMetaData.defaultImage; - var MemoizedMessageText = memoizedMessageText; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var messageRef = useRef(null); - var avatarRef = useRef(null); - var parentRefReactions = useRef(null); - var parentRefMenus = useRef(null); - var parentContainRef = useRef(null); - - var _React$useContext = React.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - var _useState5 = useState(false), - _useState6 = _slicedToArray(_useState5, 2), - mousehover = _useState6[0], - setMousehover = _useState6[1]; - - var _useState7 = useState(false), - _useState8 = _slicedToArray(_useState7, 2), - moreActive = _useState8[0], - setMoreActive = _useState8[1]; - - var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React.createElement("div", { - ref: messageRef, - className: INCOMING_OG_MESSAGE, - style: { - paddingTop: chainTop ? GROUPING_PADDING$3 : NORAML_PADDING, - paddingBottom: chainBottom ? GROUPING_PADDING$3 : NORAML_PADDING - } - }, React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "--inner") - }, React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "--body") - }, !chainBottom && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(Avatar$1, { - ref: avatarRef, - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "".concat(INCOMING_OG_MESSAGE, "__avatar"), - src: getSenderProfileUrl$2(message), - width: "28px", - height: "28px", - alt: "sender-profile-image" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - }), !chainTop && React.createElement(Label, { - className: "".concat(INCOMING_OG_MESSAGE, "__sender-name"), - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getSenderName$2(message)), React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__text-balloon") - }, React.createElement(MemoizedMessageText, null)), React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail ").concat(checkOGIsEnalbed(message) ? '' : "".concat(INCOMING_OG_MESSAGE, "__thumbnail--disabled")), - onClick: openLink, - onKeyDown: openLink, - role: "button", - tabIndex: 0 - }, defaultImage && React.createElement(ImageRenderer, { - url: defaultImage.url || '', - alt: defaultImage.alt || '', - className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail__image"), - width: "320px", - height: "180px", - defaultComponent: React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail__image__placeholder") - }, React.createElement(Icon, { - width: "56px", - height: "56px", - type: IconTypes.NO_THUMBNAIL - })) - })), React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag ").concat(checkOGIsEnalbed(message) ? '' : "".concat(INCOMING_OG_MESSAGE, "__og-tag--disabled")), - onClick: openLink, - onKeyDown: openLink, - role: "button", - tabIndex: 0 - }, ogMetaData.title && React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__title") - }, React.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, ogMetaData.title)), ogMetaData.description && React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__description") - }, React.createElement(Label, { - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_1, - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__description__label") - }, ogMetaData.description)), ogMetaData.url && React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__url") - }, React.createElement(Label, { - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2, - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__url__label") - }, ogMetaData.url)), showEmojiReactions && React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__emoji-reactions--wrapper"), - onClick: function onClick(event) { - return event.stopPropagation(); - }, - onKeyDown: function onKeyDown(event) { - return event.stopPropagation(); - }, - role: "button", - tabIndex: 0 - }, React.createElement(EmojiReactions, { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__emoji-reactions"), - userId: userId, - message: message, - membersMap: membersMap, - emojiAllMap: emojiAllMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - })))), React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "--right-padding") - }, !chainBottom && !(mousehover || moreActive) && React.createElement(Label, { - className: "".concat(INCOMING_OG_MESSAGE, "__sent-at"), - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt$5(message)), React.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__more"), - ref: parentContainRef - }, showReactionAddButton && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: parentRefReactions, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MemoizedEmojiListItems, { - parentRef: parentRefReactions, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - message: message, - spaceFromTrigger: { - y: 2 - } - }); - } - }), React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - ref: parentRefMenus, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentRef: parentRefMenus, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown - }, React.createElement(MenuItem, { - className: "".concat(INCOMING_OG_MESSAGE, "__more__menu__copy"), - onClick: function onClick() { - copyToClipboard$1(message.message); - closeDropdown(); - } - }, "Copy")); - } - }))))); -} - -var noop$6 = function noop() {}; - -OGMessageSwitch.propTypes = { - isByMe: PropTypes.bool.isRequired, - userId: PropTypes.string.isRequired, - message: PropTypes.shape({ - message: PropTypes.string, - sender: PropTypes.shape({}), - ogMetaData: PropTypes.shape({ - title: PropTypes.string, - description: PropTypes.string, - url: PropTypes.string, - defaultImage: PropTypes.shape({ - url: PropTypes.string, - alt: PropTypes.string - }) - }), - reactions: PropTypes.array, - updatedAt: PropTypes.number - }).isRequired, - useReaction: PropTypes.bool.isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - status: PropTypes.string, - disabled: PropTypes.bool, - showEdit: PropTypes.func, - showRemove: PropTypes.func, - resendMessage: PropTypes.func, - toggleReaction: PropTypes.func, - membersMap: PropTypes.instanceOf(Map), - emojiAllMap: PropTypes.instanceOf(Map), - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -OGMessageSwitch.defaultProps = { - className: '', - status: '', - disabled: false, - showEdit: noop$6, - showRemove: noop$6, - resendMessage: noop$6, - toggleReaction: noop$6, - membersMap: new Map(), - emojiAllMap: new Map(), - memoizedEmojiListItems: noop$6, - chainTop: false, - chainBottom: false -}; -OutgoingOGMessage.propTypes = { - status: PropTypes.string, - userId: PropTypes.string.isRequired, - message: PropTypes.shape({ - message: PropTypes.string, - ogMetaData: PropTypes.shape({ - title: PropTypes.string, - description: PropTypes.string, - url: PropTypes.string, - defaultImage: PropTypes.shape({ - url: PropTypes.string, - alt: PropTypes.string - }) - }), - reactions: PropTypes.array, - updatedAt: PropTypes.number, - isResendable: PropTypes.func, - errorCode: PropTypes.number - }).isRequired, - disabled: PropTypes.bool.isRequired, - openLink: PropTypes.func.isRequired, - showEdit: PropTypes.func.isRequired, - showRemove: PropTypes.func.isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - useReaction: PropTypes.bool.isRequired, - resendMessage: PropTypes.func.isRequired, - toggleReaction: PropTypes.func.isRequired, - memoizedMessageText: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingOGMessage.defaultProps = { - status: '' -}; -IncomingOGMessage.propTypes = { - userId: PropTypes.string.isRequired, - message: PropTypes.shape({ - message: PropTypes.string, - sender: PropTypes.shape({}), - ogMetaData: PropTypes.shape({ - title: PropTypes.string, - description: PropTypes.string, - url: PropTypes.string, - defaultImage: PropTypes.shape({ - url: PropTypes.string, - alt: PropTypes.string - }) - }), - reactions: PropTypes.array, - updatedAt: PropTypes.number - }).isRequired, - openLink: PropTypes.func.isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - useReaction: PropTypes.bool.isRequired, - toggleReaction: PropTypes.func.isRequired, - memoizedMessageText: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; - -function MessageHoc(_ref) { - var _MessageTypes$ADMIN$M; - - var message = _ref.message, - userId = _ref.userId, - disabled = _ref.disabled, - editDisabled = _ref.editDisabled, - hasSeperator = _ref.hasSeperator, - deleteMessage = _ref.deleteMessage, - updateMessage = _ref.updateMessage, - status = _ref.status, - resendMessage = _ref.resendMessage, - useReaction = _ref.useReaction, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems; - var _message$sender = message.sender, - sender = _message$sender === void 0 ? {} : _message$sender; - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - showEdit = _useState2[0], - setShowEdit = _useState2[1]; - - var _useState3 = useState(false), - _useState4 = _slicedToArray(_useState3, 2), - showRemove = _useState4[0], - setShowRemove = _useState4[1]; - - var _useState5 = useState(false), - _useState6 = _slicedToArray(_useState5, 2), - showFileViewer = _useState6[0], - setShowFileViewer = _useState6[1]; - - var editMessageInputRef = useRef(null); - var isByMe = userId === sender.userId || message.requestState === 'pending' || message.requestState === 'failed'; - - if (showEdit) { - return React.createElement(MessageInput, { - isEdit: true, - disabled: editDisabled, - ref: editMessageInputRef, - name: message.messageId, - onSendMessage: updateMessage, - onCancelEdit: function onCancelEdit() { - setShowEdit(false); - }, - value: message.message - }); - } - - return React.createElement("div", { - className: "sendbird-msg-hoc sendbird-msg--scroll-ref" - }, hasSeperator && React.createElement(DateSeparator, null, React.createElement(Label, { - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, format(message.createdAt, 'MMMM dd, yyyy'))), (_MessageTypes$ADMIN$M = {}, _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.ADMIN, React.createElement(AdminMessage, { - message: message - })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.FILE, React.createElement(MessageSwitch, { - message: message, - userId: userId, - disabled: disabled, - isByMe: isByMe, - showRemove: setShowRemove, - resendMessage: resendMessage, - status: status, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.OG, React.createElement(OGMessageSwitch, { - message: message, - status: status, - isByMe: isByMe, - userId: userId, - showEdit: setShowEdit, - disabled: disabled, - showRemove: setShowRemove, - resendMessage: resendMessage, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.THUMBNAIL, React.createElement(ThumbnailMessage, { - disabled: disabled, - message: message, - userId: userId, - isByMe: isByMe, - showRemove: setShowRemove, - resendMessage: resendMessage, - onClick: setShowFileViewer, - status: status, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.USER, React.createElement(Message, { - message: message, - disabled: disabled, - isByMe: isByMe, - userId: userId, - showEdit: setShowEdit, - showRemove: setShowRemove, - resendMessage: resendMessage, - status: status, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })), _MessageTypes$ADMIN$M)[getMessageType(message)], showRemove && React.createElement(RemoveMessage, { - onCloseModal: function onCloseModal() { - return setShowRemove(false); - }, - onDeleteMessage: function onDeleteMessage() { - deleteMessage(message); - } - }), showFileViewer && React.createElement(FileViewer, { - onClose: function onClose() { - return setShowFileViewer(false); - }, - message: message, - onDelete: function onDelete() { - deleteMessage(message, function () { - setShowFileViewer(false); - }); - }, - isByMe: isByMe - }), !(message.isFileMessage && message.isFileMessage() || message.messageType === 'file') && !(message.isAdminMessage && message.isAdminMessage()) && !(message.isUserMessage && message.isUserMessage() || message.messageType === 'user') && !showFileViewer && React.createElement(UnknownMessage, { - message: message, - status: status, - isByMe: isByMe, - showRemove: setShowRemove, - chainTop: chainTop, - chainBottom: chainBottom - })); -} -MessageHoc.propTypes = { - userId: PropTypes.string, - message: PropTypes.shape({ - isFileMessage: PropTypes.func, - isAdminMessage: PropTypes.func, - isUserMessage: PropTypes.func, - isDateSeperator: PropTypes.func, - // should be a number, but there's a bug in SDK shich returns string - messageId: PropTypes.number, - type: PropTypes.string, - createdAt: PropTypes.number, - message: PropTypes.string, - requestState: PropTypes.string, - messageType: PropTypes.string, - sender: PropTypes.shape({ - userId: PropTypes.string - }), - ogMetaData: PropTypes.shape({}) - }), - hasSeperator: PropTypes.bool, - disabled: PropTypes.bool, - editDisabled: PropTypes.bool, - deleteMessage: PropTypes.func.isRequired, - updateMessage: PropTypes.func.isRequired, - resendMessage: PropTypes.func.isRequired, - status: PropTypes.string, - useReaction: PropTypes.bool.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func -}; -MessageHoc.defaultProps = { - userId: '', - editDisabled: false, - message: {}, - hasSeperator: false, - disabled: false, - status: '', - toggleReaction: function toggleReaction() {}, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -var ConversationScroll = -/*#__PURE__*/ -function (_Component) { - _inherits(ConversationScroll, _Component); - - function ConversationScroll() { - var _getPrototypeOf2; - - var _this; - - _classCallCheck(this, ConversationScroll); - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ConversationScroll)).call.apply(_getPrototypeOf2, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this), "onScroll", function (e) { - var _this$props = _this.props, - scrollRef = _this$props.scrollRef, - hasMore = _this$props.hasMore, - messagesDispatcher = _this$props.messagesDispatcher, - onScroll = _this$props.onScroll, - currentGroupChannel = _this$props.currentGroupChannel; - var element = e.target; - var scrollTop = element.scrollTop, - clientHeight = element.clientHeight, - scrollHeight = element.scrollHeight; - - if (scrollTop === 0) { - if (!hasMore) { - return; - } - - var nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref'); - var first = nodes[0]; - onScroll(function (_ref) { - var _ref2 = _slicedToArray(_ref, 1), - messages = _ref2[0]; - - if (messages) { - // https://github.com/scabbiaza/react-scroll-position-on-updating-dom - first.scrollIntoView(); - } - }); - } - - setTimeout(function () { - // mark as read if scroll is at end - if (clientHeight + scrollTop === scrollHeight) { - messagesDispatcher({ - type: MARK_AS_READ - }); - currentGroupChannel.markAsRead(); - } - }, 500); - }); - - return _this; - } - - _createClass(ConversationScroll, [{ - key: "render", - value: function render() { - var _this$props2 = this.props, - userId = _this$props2.userId, - disabled = _this$props2.disabled, - scrollRef = _this$props2.scrollRef, - readStatus = _this$props2.readStatus, - membersMap = _this$props2.membersMap, - initialized = _this$props2.initialized, - allMessages = _this$props2.allMessages, - useReaction = _this$props2.useReaction, - emojiAllMap = _this$props2.emojiAllMap, - editDisabled = _this$props2.editDisabled, - deleteMessage = _this$props2.deleteMessage, - updateMessage = _this$props2.updateMessage, - resendMessage = _this$props2.resendMessage, - renderChatItem = _this$props2.renderChatItem, - emojiContainer = _this$props2.emojiContainer, - toggleReaction = _this$props2.toggleReaction, - useMessageGrouping = _this$props2.useMessageGrouping, - currentGroupChannel = _this$props2.currentGroupChannel, - memoizedEmojiListItems = _this$props2.memoizedEmojiListItems; - return React.createElement("div", { - className: "sendbird-conversation__messages" - }, React.createElement("div", { - ref: scrollRef, - className: "sendbird-conversation__scroll-container", - onScroll: this.onScroll - }, React.createElement("div", { - className: "sendbird-conversation__padding" - }), React.createElement("div", { - className: "sendbird-conversation__messages-padding" - }, initialized && allMessages.map(function (m, idx) { - var previousMessage = allMessages[idx - 1]; - var nextMessage = allMessages[idx + 1]; - - var _ref3 = useMessageGrouping ? compareMessagesForGrouping(previousMessage, m, nextMessage) : [false, false], - _ref4 = _slicedToArray(_ref3, 2), - chainTop = _ref4[0], - chainBottom = _ref4[1]; - - var previousMessageCreatedAt = previousMessage && previousMessage.createdAt; - var currentCreatedAt = m.createdAt; // https://stackoverflow.com/a/41855608 - - var hasSeperator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt)); - - if (renderChatItem) { - return React.createElement("div", { - key: m.messageId || m.reqId, - className: "sendbird-msg--scroll-ref" - }, renderChatItem({ - message: m, - channel: currentGroupChannel, - onDeleteMessage: deleteMessage, - onUpdateMessage: updateMessage, - onResendMessage: resendMessage, - emojiContainer: emojiContainer - })); - } - - return React.createElement(MessageHoc, { - key: m.messageId || m.reqId, - userId: userId, - status: readStatus[m.messageId] || getParsedStatus(m, currentGroupChannel) // show status for pending/failed messages - , - message: m, - disabled: disabled, - membersMap: membersMap, - chainTop: chainTop, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - editDisabled: editDisabled, - hasSeperator: hasSeperator, - chainBottom: chainBottom, - updateMessage: updateMessage, - deleteMessage: deleteMessage, - resendMessage: resendMessage, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }); - })))); - } - }]); - - return ConversationScroll; -}(Component); -ConversationScroll.propTypes = { - // https://stackoverflow.com/a/52646941 - scrollRef: PropTypes.shape({ - current: PropTypes.oneOfType([PropTypes.element, PropTypes.shape({})]) - }).isRequired, - hasMore: PropTypes.bool, - messagesDispatcher: PropTypes.func.isRequired, - onScroll: PropTypes.func, - initialized: PropTypes.bool, - editDisabled: PropTypes.bool, - disabled: PropTypes.bool, - userId: PropTypes.string, - allMessages: PropTypes.arrayOf(PropTypes.shape({ - createdAt: PropTypes.number - })).isRequired, - deleteMessage: PropTypes.func.isRequired, - resendMessage: PropTypes.func.isRequired, - updateMessage: PropTypes.func.isRequired, - readStatus: PropTypes.shape({}).isRequired, - currentGroupChannel: PropTypes.shape({ - markAsRead: PropTypes.func, - members: PropTypes.arrayOf(PropTypes.shape({})) - }).isRequired, - renderChatItem: PropTypes.element, - useReaction: PropTypes.bool, - emojiContainer: PropTypes.shape({}), - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - useMessageGrouping: PropTypes.bool, - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func -}; -ConversationScroll.defaultProps = { - hasMore: false, - editDisabled: false, - disabled: false, - initialized: false, - userId: '', - renderChatItem: null, - onScroll: null, - useReaction: true, - emojiContainer: {}, - emojiAllMap: new Map(), - membersMap: new Map(), - useMessageGrouping: true, - toggleReaction: function toggleReaction() {}, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -function Notification(_ref) { - var count = _ref.count, - time = _ref.time, - onClick = _ref.onClick; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var timeArray = time.split(' '); - timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON); - return (// eslint-disable-next-line - React.createElement("div", { - className: "sendbird-notification", - onClick: onClick - }, React.createElement(Label, { - className: "sendbird-notification__text", - color: LabelColors.ONCONTENT_1, - type: LabelTypography.CAPTION_2 - }, "".concat(count, " "), stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE, " ".concat(timeArray.join(' '))), React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.SHEVRON_DOWN, - fillColor: IconColors.CONTENT - })) - ); -} -Notification.propTypes = { - count: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - time: PropTypes.string, - onClick: PropTypes.func.isRequired -}; -Notification.defaultProps = { - count: 0, - time: '' -}; - -var FrozenNotification = function FrozenNotification() { - var stringSet = useContext(LocalizationContext).stringSet; - return React.createElement("div", { - className: "sendbird-notification sendbird-notification--frozen" - }, React.createElement(Label, { - className: "sendbird-notification__text", - type: LabelTypography.CAPTION_2 - }, stringSet.CHANNEL_FROZEN)); -}; - -var TypingIndicatorText = function TypingIndicatorText(_ref) { - var members = _ref.members; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - if (!members || members.length === 0) { - return ''; - } - - if (members && members.length === 1) { - return "".concat(members[0].nickname, " ").concat(stringSet.TYPING_INDICATOR__IS_TYPING); - } - - if (members && members.length === 2) { - return "".concat(members[0].nickname, " ").concat(stringSet.TYPING_INDICATOR__AND, " ").concat(members[1].nickname, " ").concat(stringSet.TYPING_INDICATOR__ARE_TYPING); - } - - return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING; -}; - -function TypingIndicator(_ref2) { - var channelUrl = _ref2.channelUrl, - sb = _ref2.sb, - logger = _ref2.logger; - - var _useState = useState(uuidv4()), - _useState2 = _slicedToArray(_useState, 2), - handlerId = _useState2[0], - setHandlerId = _useState2[1]; - - var _useState3 = useState([]), - _useState4 = _slicedToArray(_useState3, 2), - typingMembers = _useState4[0], - setTypingMembers = _useState4[1]; - - useEffect(function () { - if (sb && sb.ChannelHandler) { - sb.removeChannelHandler(handlerId); - var newHandlerId = uuidv4(); - var handler = new sb.ChannelHandler(); // there is a possible warning in here - setState called after unmount - - handler.onTypingStatusUpdated = function (groupChannel) { - logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel); - var members = groupChannel.getTypingMembers(); - - if (groupChannel.url === channelUrl) { - setTypingMembers(members); - } - }; - - sb.addChannelHandler(newHandlerId, handler); - setHandlerId(newHandlerId); - } - - return function () { - setTypingMembers([]); - - if (sb && sb.removeChannelHandler) { - sb.removeChannelHandler(handlerId); - } - }; - }, [channelUrl]); - return React.createElement(Label, { - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, React.createElement(TypingIndicatorText, { - members: typingMembers - })); -} - -TypingIndicator.propTypes = { - channelUrl: PropTypes.string.isRequired, - sb: PropTypes.shape({ - ChannelHandler: PropTypes.func, - removeChannelHandler: PropTypes.func, - addChannelHandler: PropTypes.func - }).isRequired, - logger: PropTypes.shape({ - info: PropTypes.func - }).isRequired -}; - -// Logic required to handle message input rendering - -var MessageInputWrapper = function MessageInputWrapper(_a, ref) { - var channel = _a.channel, - user = _a.user, - onSendMessage = _a.onSendMessage, - onFileUpload = _a.onFileUpload, - renderMessageInput = _a.renderMessageInput, - isOnline = _a.isOnline, - initialized = _a.initialized; - var stringSet = useContext(LocalizationContext).stringSet; - var disabled = !initialized || isDisabledBecauseFrozen(channel) || isDisabledBecauseMuted(channel) || !isOnline; - var isOperator$1 = isOperator(channel); - var isBroadcast = channel.isBroadcast; // custom message - - if (renderMessageInput) { - return renderMessageInput({ - channel: channel, - user: user, - disabled: disabled - }); - } // broadcast channel + not operator - - - if (isBroadcast && !isOperator$1) { - return null; - } // other conditions - - - return React.createElement(MessageInput, { - placeholder: isDisabledBecauseFrozen(channel) && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED || isDisabledBecauseMuted(channel) && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED, - ref: ref, - disabled: disabled, - onStartTyping: function onStartTyping() { - channel.startTyping(); - }, - onSendMessage: onSendMessage, - onFileUpload: onFileUpload - }); -}; - -var MessageInputWrapper$1 = React.forwardRef(MessageInputWrapper); - -function ConnectionStatus() { - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.createElement("div", { - className: "sendbird-conversation__connection-status" - }, React.createElement(Label, { - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_2 - }, stringSet.TRYING_TO_CONNECT), React.createElement(Icon, { - type: IconTypes.DISCONNECTED, - fillColor: IconColors.SENT, - height: "14px", - width: "14px" - })); -} - -var prettyDate = function prettyDate(date) { - return formatDistanceToNowStrict(date, { - addSuffix: true - }); -}; -var getOthersLastSeenAt = function getOthersLastSeenAt(channel) { - if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) { - return ''; - } - - var lastSeenList = _toConsumableArray(Object.values(channel.getReadStatus())); - - var lastSeenAt = lastSeenList.length > 0 ? lastSeenList[0].last_seen_at : 0; - - if (lastSeenAt === 0) { - return ''; - } - - return prettyDate(lastSeenAt); -}; -var getChannelTitle$1 = function getChannelTitle() { - var channel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var currentUserId = arguments.length > 1 ? arguments[1] : undefined; - var stringSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LabelStringSet; - - if (!channel || !channel.name && !channel.members) { - return stringSet.NO_TITLE; - } - - if (channel.name && channel.name !== 'Group Channel') { - return channel.name; - } - - if (channel.members.length === 1) { - return stringSet.NO_MEMBERS; - } - - return channel.members.filter(function (_ref) { - var userId = _ref.userId; - return userId !== currentUserId; - }).map(function (_ref2) { - var nickname = _ref2.nickname; - return nickname || stringSet.NO_NAME; - }).join(', '); -}; - -function AutoRefresh(_ref) { - var repeatFunc = _ref.repeatFunc; - - var _useState = useState(repeatFunc()), - _useState2 = _slicedToArray(_useState, 2), - label = _useState2[0], - setLabel = _useState2[1]; - - useEffect(function () { - var interval = setInterval(function () { - if (label !== repeatFunc()) { - setLabel(repeatFunc()); - } - }, 10000); - return function () { - clearInterval(interval); - }; - }, []); - return React.createElement("div", { - className: "sendbird-repeat-text" - }, label); -} -AutoRefresh.propTypes = { - repeatFunc: PropTypes.func.isRequired -}; - -function ChatHeader(props) { - var currentGroupChannel = props.currentGroupChannel, - currentUser = props.currentUser, - title = props.title, - subTitle = props.subTitle, - isActive = props.isActive, - isMuted = props.isMuted, - onActionClick = props.onActionClick, - theme = props.theme; - var userId = currentUser.userId; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.createElement("div", { - className: "sendbird-chat-header" - }, React.createElement("div", { - className: "sendbird-chat-header__left" - }, React.createElement(ChannelAvatar, { - theme: theme, - channel: currentGroupChannel, - userId: userId, - height: 32, - width: 32 - }), React.createElement(Label, { - className: "sendbird-chat-header__title", - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, title || getChannelTitle$1(currentGroupChannel, userId, stringSet)), typeof isActive === 'string' && isActive === 'true' || typeof isActive === 'boolean' && isActive ? React.createElement("div", { - className: "sendbird-chat-header__active" - }) : null, React.createElement(Label, { - className: "sendbird-chat-header__subtitle", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, subTitle || React.createElement(AutoRefresh, { - repeatFunc: function repeatFunc() { - return getOthersLastSeenAt(currentGroupChannel); - } - }))), React.createElement("div", { - className: "sendbird-chat-header__right" - }, typeof isMuted === 'string' && isMuted === 'true' || typeof isMuted === 'boolean' && isMuted ? React.createElement(Icon, { - className: "sendbird-chat-header__mute", - type: IconTypes.MUTE, - width: "24px", - height: "24px" - }) : null, React.createElement(IconButton, { - className: "sendbird-chat-header__info", - width: "32px", - height: "32px", - onClick: onActionClick - }, React.createElement(Icon, { - type: IconTypes.INFO, - fillColor: IconColors.PRIMARY, - width: "24px", - height: "24px" - })))); -} -ChatHeader.propTypes = { - currentGroupChannel: PropTypes.shape({ - members: PropTypes.arrayOf(PropTypes.shape({})), - coverUrl: PropTypes.string - }), - theme: PropTypes.string, - currentUser: PropTypes.shape({ - userId: PropTypes.string - }), - title: PropTypes.string, - subTitle: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), - isActive: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), - isMuted: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), - onActionClick: PropTypes.func -}; -ChatHeader.defaultProps = { - currentGroupChannel: {}, - title: '', - theme: 'light', - subTitle: '', - isActive: false, - isMuted: false, - currentUser: {}, - onActionClick: function onActionClick() {} -}; - -var noop$7 = function noop() {}; - -var ConversationPanel = function ConversationPanel(props) { - var channelUrl = props.channelUrl, - _props$stores = props.stores, - sdkStore = _props$stores.sdkStore, - userStore = _props$stores.userStore, - _props$config = props.config, - userId = _props$config.userId, - logger = _props$config.logger, - pubSub = _props$config.pubSub, - isOnline = _props$config.isOnline, - theme = _props$config.theme, - reconnect = props.dispatchers.reconnect, - _props$queries = props.queries, - queries = _props$queries === void 0 ? {} : _props$queries, - useReaction = props.useReaction, - renderChatItem = props.renderChatItem, - renderChatHeader = props.renderChatHeader, - renderMessageInput = props.renderMessageInput, - useMessageGrouping = props.useMessageGrouping, - onChatHeaderActionClick = props.onChatHeaderActionClick, - onBeforeSendUserMessage = props.onBeforeSendUserMessage, - onBeforeSendFileMessage = props.onBeforeSendFileMessage, - onBeforeUpdateUserMessage = props.onBeforeUpdateUserMessage; - var sdk = sdkStore.sdk; - var config = props.config; - var sdkError = sdkStore.error; - var sdkInit = sdkStore.initialized; - var user = userStore.user; - - if (queries.messageListQuery) { - // eslint-disable-next-line no-console - console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead'); - } - - var userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery; - - var _useReducer = useReducer(reducer$3, messagesInitialState), - _useReducer2 = _slicedToArray(_useReducer, 2), - messagesStore = _useReducer2[0], - messagesDispatcher = _useReducer2[1]; - - var scrollRef = useRef(null); - var allMessages = messagesStore.allMessages, - loading = messagesStore.loading, - hasMore = messagesStore.hasMore, - initialized = messagesStore.initialized, - unreadCount = messagesStore.unreadCount, - disableUserProfile = messagesStore.disableUserProfile, - renderUserProfile = messagesStore.renderUserProfile, - unreadSince = messagesStore.unreadSince, - invalidChannel = messagesStore.invalidChannel, - _messagesStore$curren = messagesStore.currentGroupChannel, - currentGroupChannel = _messagesStore$curren === void 0 ? {} : _messagesStore$curren, - lastMessageTimeStamp = messagesStore.lastMessageTimeStamp, - emojiContainer = messagesStore.emojiContainer, - readStatus = messagesStore.readStatus; - var isFrozen = currentGroupChannel.isFrozen, - isBroadcast = currentGroupChannel.isBroadcast; - var _sdk$appInfo = sdk.appInfo, - appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; - var usingReaction = appInfo.isUsingReaction && !isBroadcast || useReaction || false; - var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; - var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; - var emojiAllMap = useMemo(function () { - return usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map(); - }, [emojiContainer]); - var emojiAllList = useMemo(function () { - return usingReaction ? getAllEmojisFromEmojiContainer(emojiContainer) : []; - }, [emojiContainer]); - var nicknamesMap = useMemo(function () { - return usingReaction ? getNicknamesMapFromMembers(currentGroupChannel.members) : new Map(); - }, [currentGroupChannel.members]); - var onScrollCallback = useScrollCallback({ - currentGroupChannel: currentGroupChannel, - lastMessageTimeStamp: lastMessageTimeStamp, - userFilledMessageListQuery: userFilledMessageListQuery - }, { - hasMore: hasMore, - logger: logger, - messagesDispatcher: messagesDispatcher, - sdk: sdk - }); - var toggleReaction = useToggleReactionCallback({ - currentGroupChannel: currentGroupChannel - }, { - logger: logger - }); - var memoizedEmojiListItems = useMemoizedEmojiListItems({ - emojiContainer: emojiContainer, - toggleReaction: toggleReaction - }, { - useReaction: usingReaction, - logger: logger, - userId: userId, - emojiAllList: emojiAllList - }); // to create message-datasource - - useSetChannel({ - channelUrl: channelUrl, - sdkInit: sdkInit - }, { - messagesDispatcher: messagesDispatcher, - sdk: sdk, - logger: logger - }); // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher - - useHandleChannelEvents({ - currentGroupChannel: currentGroupChannel, - sdkInit: sdkInit, - userId: userId - }, { - messagesDispatcher: messagesDispatcher, - sdk: sdk, - logger: logger - }); - useInitialMessagesFetch({ - currentGroupChannel: currentGroupChannel, - userFilledMessageListQuery: userFilledMessageListQuery - }, { - sdk: sdk, - logger: logger, - messagesDispatcher: messagesDispatcher - }); // handles API calls from withSendbird - - useEffect(function () { - var subScriber = pubSubHandler$1(channelUrl, pubSub, messagesDispatcher); - return function () { - pubSubHandleRemover$1(subScriber); - }; - }, [channelUrl, sdkInit]); // to create initial read status - - useSetReadStatus({ - allMessages: allMessages, - currentGroupChannel: currentGroupChannel - }, { - messagesDispatcher: messagesDispatcher, - sdk: sdk, - logger: logger - }); // handling connection breaks - - useHandleReconnect({ - isOnline: isOnline - }, { - logger: logger, - sdk: sdk, - currentGroupChannel: currentGroupChannel, - messagesDispatcher: messagesDispatcher, - userFilledMessageListQuery: userFilledMessageListQuery - }); - var deleteMessage = useDeleteMessageCallback({ - currentGroupChannel: currentGroupChannel, - messagesDispatcher: messagesDispatcher - }, { - logger: logger - }); - var updateMessage = useUpdateMessageCallback({ - currentGroupChannel: currentGroupChannel, - messagesDispatcher: messagesDispatcher, - onBeforeUpdateUserMessage: onBeforeUpdateUserMessage - }, { - logger: logger, - sdk: sdk, - pubSub: pubSub - }); - var resendMessage = useResendMessageCallback({ - currentGroupChannel: currentGroupChannel, - messagesDispatcher: messagesDispatcher - }, { - logger: logger - }); - - var _useSendMessageCallba = useSendMessageCallback({ - currentGroupChannel: currentGroupChannel, - onBeforeSendUserMessage: onBeforeSendUserMessage - }, { - sdk: sdk, - logger: logger, - pubSub: pubSub, - messagesDispatcher: messagesDispatcher - }), - _useSendMessageCallba2 = _slicedToArray(_useSendMessageCallba, 2), - messageInputRef = _useSendMessageCallba2[0], - onSendMessage = _useSendMessageCallba2[1]; - - var _useSendFileMessageCa = useSendFileMessageCallback({ - currentGroupChannel: currentGroupChannel, - onBeforeSendFileMessage: onBeforeSendFileMessage - }, { - sdk: sdk, - logger: logger, - pubSub: pubSub, - messagesDispatcher: messagesDispatcher - }), - _useSendFileMessageCa2 = _slicedToArray(_useSendFileMessageCa, 1), - onSendFileMessage = _useSendFileMessageCa2[0]; - - if (sdkError) { - return React.createElement("div", { - className: "sendbird-conversation" - }, React.createElement(PlaceHolder, { - type: PlaceHolderTypes.WRONG, - retryToConnect: function retryToConnect() { - logger.info('Channel: reconnecting'); - reconnect(); - } - })); - } - - if (!channelUrl) { - return React.createElement("div", { - className: "sendbird-conversation" - }, React.createElement(PlaceHolder, { - type: PlaceHolderTypes.NO_CHANNELS - })); - } - - if (loading) { - return React.createElement("div", { - className: "sendbird-conversation" - }, React.createElement(PlaceHolder, { - type: PlaceHolderTypes.LOADING - })); - } - - if (invalidChannel) { - return React.createElement("div", { - className: "sendbird-conversation" - }, React.createElement(PlaceHolder, { - type: PlaceHolderTypes.WRONG - })); - } - - return React.createElement(UserProfileProvider, { - className: "sendbird-conversation", - disableUserProfile: userDefinedDisableUserProfile, - renderUserProfile: userDefinedRenderProfile - }, renderChatHeader ? renderChatHeader({ - channel: currentGroupChannel, - user: user - }) : React.createElement(ChatHeader, { - theme: theme, - currentGroupChannel: currentGroupChannel, - currentUser: user, - onActionClick: onChatHeaderActionClick, - subTitle: currentGroupChannel.members && currentGroupChannel.members.length !== 2, - isActive: false, - isMuted: false - }), isFrozen && React.createElement(FrozenNotification, null), unreadCount > 0 && React.createElement(Notification, { - count: unreadCount, - onClick: function onClick() { - scrollIntoLast('.sendbird-msg--scroll-ref'); // there is no scroll - - if (scrollRef.current.scrollTop === 0) { - currentGroupChannel.markAsRead(); - messagesDispatcher({ - type: MARK_AS_READ - }); - } - }, - time: unreadSince - }), React.createElement(ConversationScroll, { - swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), - userId: userId, - hasMore: hasMore, - disabled: !isOnline, - onScroll: onScrollCallback, - scrollRef: scrollRef, - readStatus: readStatus, - initialized: initialized, - useReaction: usingReaction, - allMessages: allMessages, - emojiAllMap: emojiAllMap, - membersMap: nicknamesMap, - editDisabled: isDisabledBecauseFrozen(currentGroupChannel), - deleteMessage: deleteMessage, - updateMessage: updateMessage, - resendMessage: resendMessage, - toggleReaction: toggleReaction, - emojiContainer: emojiContainer, - renderChatItem: renderChatItem, - useMessageGrouping: useMessageGrouping, - messagesDispatcher: messagesDispatcher, - currentGroupChannel: currentGroupChannel, - memoizedEmojiListItems: memoizedEmojiListItems - }), React.createElement("div", { - className: "sendbird-conversation__footer" - }, React.createElement(MessageInputWrapper$1, { - channel: currentGroupChannel, - user: user, - ref: messageInputRef, - onSendMessage: onSendMessage, - onFileUpload: onSendFileMessage, - renderMessageInput: renderMessageInput, - isOnline: isOnline, - initialized: initialized - }), React.createElement("div", { - className: "sendbird-conversation__typing-indicator" - }, React.createElement(TypingIndicator, { - channelUrl: channelUrl, - sb: sdk, - logger: logger - })), !isOnline && React.createElement(ConnectionStatus, { - sdkInit: sdkInit, - sb: sdk, - logger: logger - }))); -}; -ConversationPanel.propTypes = { - channelUrl: PropTypes.string, - stores: PropTypes.shape({ - sdkStore: PropTypes.shape({ - initialized: PropTypes.bool, - sdk: PropTypes.shape({ - getErrorFirstCallback: PropTypes.func, - removeChannelHandler: PropTypes.func, - GroupChannel: PropTypes.any, - ChannelHandler: PropTypes.any, - addChannelHandler: PropTypes.func, - UserMessageParams: PropTypes.any, - FileMessageParams: PropTypes.any, - getAllEmoji: PropTypes.func, - appInfo: PropTypes.shape({}) - }), - error: PropTypes.bool - }), - userStore: PropTypes.shape({ - user: PropTypes.shape({}) - }) - }).isRequired, - dispatchers: PropTypes.shape({ - reconnect: PropTypes.func - }).isRequired, - config: PropTypes.shape({ - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - userId: PropTypes.string.isRequired, - isOnline: PropTypes.bool.isRequired, - theme: PropTypes.string, - logger: PropTypes.shape({ - info: PropTypes.func, - error: PropTypes.func, - warning: PropTypes.func - }), - pubSub: PropTypes.shape({ - subscribe: PropTypes.func, - publish: PropTypes.func - }) - }).isRequired, - queries: PropTypes.shape({ - messageListParams: PropTypes.shape({ - includeMetaArray: PropTypes.bool, - includeParentMessageText: PropTypes.bool, - includeReaction: PropTypes.bool, - includeReplies: PropTypes.bool, - includeThreadInfo: PropTypes.bool, - limit: PropTypes.number, - reverse: PropTypes.bool, - senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string) - }), - // deprecate in v1.3 - messageListQuery: PropTypes.shape({ - includeMetaArray: PropTypes.bool, - includeParentMessageText: PropTypes.bool, - includeReaction: PropTypes.bool, - includeReplies: PropTypes.bool, - includeThreadInfo: PropTypes.bool, - limit: PropTypes.number, - reverse: PropTypes.bool, - senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string) - }) - }), - onBeforeSendUserMessage: PropTypes.func, - // onBeforeSendUserMessage(text) - onBeforeSendFileMessage: PropTypes.func, - // onBeforeSendFileMessage(File) - onBeforeUpdateUserMessage: PropTypes.func, - renderChatItem: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - renderMessageInput: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - renderChatHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - onChatHeaderActionClick: PropTypes.func, - useReaction: PropTypes.bool, - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - useMessageGrouping: PropTypes.bool -}; -ConversationPanel.defaultProps = { - channelUrl: null, - queries: {}, - onBeforeSendUserMessage: null, - onBeforeSendFileMessage: null, - onBeforeUpdateUserMessage: null, - renderChatItem: null, - renderMessageInput: null, - renderChatHeader: null, - useReaction: true, - disableUserProfile: false, - renderUserProfile: null, - useMessageGrouping: true, - onChatHeaderActionClick: noop$7 -}; -var getEmojiCategoriesFromEmojiContainer$1 = getEmojiCategoriesFromEmojiContainer, - getAllEmojisFromEmojiContainer$1 = getAllEmojisFromEmojiContainer, - getEmojisFromEmojiContainer$1 = getEmojisFromEmojiContainer; -var Conversation = withSendbirdContext(ConversationPanel); - -var EditDetails = function EditDetails(props) { - var _onSubmit = props.onSubmit, - onCancel = props.onCancel, - channel = props.channel, - userId = props.userId, - theme = props.theme; - var inputRef = useRef(null); - var formRef = useRef(null); - var hiddenInputRef = useRef(null); - - var _useState = useState(null), - _useState2 = _slicedToArray(_useState, 2), - currentImg = _useState2[0], - setCurrentImg = _useState2[1]; - - var _useState3 = useState(null), - _useState4 = _slicedToArray(_useState3, 2), - newFile = _useState4[0], - setNewFile = _useState4[1]; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var title = channel.name; - return React.createElement(Modal, { - titleText: stringSet.MODAL__CHANNEL_INFORMATION__TITLE, - submitText: stringSet.BUTTON__SAVE, - onCancel: onCancel, - onSubmit: function onSubmit() { - if (title !== '' && !inputRef.current.value) { - if (formRef.current.reportValidity) { - // might not work in explorer - formRef.current.reportValidity(); - } - - return; - } - - _onSubmit(newFile, inputRef.current.value); - - onCancel(); - }, - type: Type$1.PRIMARY - }, React.createElement("form", { - className: "channel-profile-form", - ref: formRef, - onSubmit: function onSubmit(e) { - e.preventDefault(); - } - }, React.createElement("div", { - className: "channel-profile-form__img-section" - }, React.createElement(InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE), React.createElement("div", { - className: "channel-profile-form__avatar" - }, currentImg ? React.createElement(Avatar$1, { - height: "80px", - width: "80px", - src: currentImg - }) : React.createElement(ChannelAvatar, { - height: 80, - width: 80, - channel: channel, - userId: userId, - theme: theme - })), React.createElement("input", { - ref: hiddenInputRef, - type: "file", - accept: "image/gif, image/jpeg, image/png", - style: { - display: 'none' - }, - onChange: function onChange(e) { - setCurrentImg(URL.createObjectURL(e.target.files[0])); - setNewFile(e.target.files[0]); - hiddenInputRef.current.value = ''; - } - }), React.createElement(TextButton, { - className: "channel-profile-form__avatar-button", - onClick: function onClick() { - return hiddenInputRef.current.click(); - }, - notUnderline: true - }, React.createElement(Label, { - type: LabelTypography.BUTTON_1, - color: LabelColors.PRIMARY - }, stringSet.MODAL__CHANNEL_INFORMATION__UPLOAD))), React.createElement("div", { - className: "channel-profile-form__name-section" - }, React.createElement(InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME), React.createElement(Input, { - required: title !== '', - name: "channel-profile-form__name", - ref: inputRef, - value: title, - placeHolder: stringSet.MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER - })))); -}; - -EditDetails.propTypes = { - onSubmit: PropTypes.func.isRequired, - onCancel: PropTypes.func.isRequired, - channel: PropTypes.shape({ - name: PropTypes.string - }).isRequired, - userId: PropTypes.string.isRequired, - theme: PropTypes.string.isRequired -}; - -var ChannelProfile = function ChannelProfile(props) { - var disabled = props.disabled, - channel = props.channel, - userId = props.userId, - theme = props.theme, - onChannelInfoChange = props.onChannelInfoChange; - var title = channel.name; - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - showModal = _useState2[0], - setShowModal = _useState2[1]; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.createElement("div", { - className: "sendbird-channel-profile" - }, React.createElement("div", { - className: "sendbird-channel-profile--inner" - }, React.createElement("div", { - className: "sendbird-channel-profile__avatar" - }, React.createElement(ChannelAvatar, { - channel: channel, - userId: userId, - theme: theme - })), React.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1, - className: "sendbird-channel-profile__title" - }, title), React.createElement(TextButton, { - disabled: disabled, - className: "sendbird-channel-profile__edit", - onClick: function onClick() { - if (disabled) { - return; - } - - setShowModal(true); - }, - notUnderline: true - }, React.createElement(Label, { - type: LabelTypography.BUTTON_1, - color: disabled ? LabelColors.ONBACKGROUND_2 : LabelColors.PRIMARY - }, stringSet.CHANNEL_SETTING__PROFILE__EDIT)), showModal && React.createElement(EditDetails, { - onCancel: function onCancel() { - return setShowModal(false); - }, - onSubmit: onChannelInfoChange, - channel: channel, - userId: userId, - theme: theme - }))); -}; - -ChannelProfile.propTypes = { - channel: PropTypes.shape({ - name: PropTypes.string - }).isRequired, - userId: PropTypes.string.isRequired, - theme: PropTypes.string, - disabled: PropTypes.bool, - onChannelInfoChange: PropTypes.func -}; -ChannelProfile.defaultProps = { - theme: 'light', - disabled: false, - onChannelInfoChange: function onChannelInfoChange() {} -}; - -function MembersModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel, - currentUser = _a.currentUser; - - var _b = useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = useState(null), - memberQuery = _c[0], - setMemberQuery = _c[1]; - - useEffect(function () { - var memberListQuery = channel.createMemberListQuery(); - memberListQuery.limit = 20; - memberListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - }); - setMemberQuery(memberListQuery); - }, []); - return React.createElement("div", null, React.createElement(Modal, { - hideFooter: true, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: noop, - titleText: "All Members" - }, React.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = memberQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - memberQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React.createElement(UserListItem, { - user: member, - key: member.userId, - currentUser: currentUser, - action: function action(_a) { - var parentRef = _a.parentRef, - actionRef = _a.actionRef; - return React.createElement(React.Fragment, null, channel.myRole === 'operator' && React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React.createElement(MenuItem, { - onClick: function onClick() { - if (member.role !== 'operator') { - channel.addOperators([member.userId], function () { - setMembers(members.map(function (m) { - if (m.userId === member.userId) { - return __assign(__assign({}, member), { - role: 'operator' - }); - } - - return m; - })); - closeDropdown(); - }); - } else { - channel.removeOperators([member.userId], function () { - setMembers(members.map(function (m) { - if (m.userId === member.userId) { - return __assign(__assign({}, member), { - role: '' - }); - } - - return m; - })); - closeDropdown(); - }); - } - } - }, member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'), // No muted members in broadcast channel - !channel.isBroadcast && React.createElement(MenuItem, { - onClick: function onClick() { - if (member.isMuted) { - channel.unmuteUser(member, function () { - setMembers(members.map(function (m) { - if (m.userId === member.userId) { - return __assign(__assign({}, member), { - isMuted: false - }); - } - - return m; - })); - closeDropdown(); - }); - } else { - channel.muteUser(member, function () { - setMembers(members.map(function (m) { - if (m.userId === member.userId) { - return __assign(__assign({}, member), { - isMuted: true - }); - } - - return m; - })); - closeDropdown(); - }); - } - } - }, member.isMuted ? 'Unmute' : 'Mute'), React.createElement(MenuItem, { - onClick: function onClick() { - channel.banUser(member, -1, '', function () { - setMembers(members.filter(function (_a) { - var userId = _a.userId; - return userId !== member.userId; - })); - }); - } - }, "Ban")); - } - })); - } - }); - })))); -} - -var SHOWN_MEMBER_MAX = 10; - -var UserListItem$1 = function UserListItem(_ref) { - var _ref$member = _ref.member, - member = _ref$member === void 0 ? {} : _ref$member, - _ref$currentUser = _ref.currentUser, - currentUser = _ref$currentUser === void 0 ? '' : _ref$currentUser; - var avatarRef = useRef(null); - - var _useContext = useContext(UserProfileContext), - disableUserProfile = _useContext.disableUserProfile, - renderUserProfile = _useContext.renderUserProfile; - - var _useContext2 = useContext(LocalizationContext), - stringSet = _useContext2.stringSet; - - return React.createElement("div", { - className: "sendbird-members-accordion__member" - }, React.createElement("div", { - className: "sendbird-members-accordion__member-avatar" - }, React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(Avatar$1, { - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - ref: avatarRef, - src: member.profileUrl, - width: 24, - height: 24 - }); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - openLeft: true, - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: member, - currentUserId: currentUser, - close: closeDropdown - }) : React.createElement(ConnectedUserProfile, { - user: member, - currentUserId: currentUser, - onSuccess: closeDropdown - })); - } - })), React.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, member.nickname || stringSet.NO_NAME, currentUser === member.userId && ' (You)')); -}; - -UserListItem$1.propTypes = { - member: PropTypes.shape({ - userId: PropTypes.string, - profileUrl: PropTypes.string, - nickname: PropTypes.string - }).isRequired, - currentUser: PropTypes.string.isRequired -}; - -var MemebersAccordion = function MemebersAccordion(_ref2) { - var channel = _ref2.channel, - disabled = _ref2.disabled, - currentUser = _ref2.currentUser, - userQueryCreator = _ref2.userQueryCreator, - onInviteMemebers = _ref2.onInviteMemebers, - swapParams = _ref2.swapParams; - var members = channel.members || []; - - var _useState = useState(false), - _useState2 = _slicedToArray(_useState, 2), - showMoreModal = _useState2[0], - setShowMoreModal = _useState2[1]; - - var _useState3 = useState(false), - _useState4 = _slicedToArray(_useState3, 2), - showAddUserModal = _useState4[0], - setShowAddUserModal = _useState4[1]; - - var _useContext3 = useContext(LocalizationContext), - stringSet = _useContext3.stringSet; - - return React.createElement("div", { - className: "sendbird-members-accordion" - }, React.createElement("div", { - className: "sendbird-members-accordion__list" - }, members.slice(0, SHOWN_MEMBER_MAX).map(function (member) { - return React.createElement(UserListItem$1, { - member: member, - currentUser: currentUser, - key: member.userId - }); - })), React.createElement("div", { - className: "sendbird-members-accordion__footer" - }, members.length >= SHOWN_MEMBER_MAX && React.createElement(Button, { - className: "sendbird-members-accordion__footer__all-members", - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - return setShowMoreModal(true); - } - }, stringSet.CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS), members.length >= SHOWN_MEMBER_MAX && showMoreModal && React.createElement(MembersModal, { - currentUser: currentUser, - hideModal: function hideModal() { - setShowMoreModal(false); - }, - channel: channel - }), React.createElement(Button, { - className: "sendbird-members-accordion__footer__invite-users", - type: Type$1.SECONDARY, - size: Size.SMALL, - disabled: disabled, - onClick: function onClick() { - if (disabled) { - return; - } - - setShowAddUserModal(true); - } - }, stringSet.CHANNEL_SETTING__MEMBERS__INVITE_MEMBER), showAddUserModal && React.createElement(InviteMembers, { - swapParams: swapParams, - titleText: stringSet.MODAL__INVITE_MEMBER__TITLE, - submitText: stringSet.BUTTON__INVITE, - closeModal: function closeModal() { - return setShowAddUserModal(false); - }, - idsToFilter: members.map(function (member) { - return member.userId; - }), - userQueryCreator: userQueryCreator, - onSubmit: onInviteMemebers - }))); -}; - -MemebersAccordion.propTypes = { - swapParams: PropTypes.bool, - disabled: PropTypes.bool, - channel: PropTypes.shape({ - members: PropTypes.arrayOf(PropTypes.shape({})) - }), - currentUser: PropTypes.string, - userQueryCreator: PropTypes.func.isRequired, - onInviteMemebers: PropTypes.func.isRequired -}; -MemebersAccordion.defaultProps = { - swapParams: false, - currentUser: '', - disabled: false, - channel: {} -}; - -var Context = React.createContext({ - opened: '', - setOpened: noop -}); -var Consumer = Context.Consumer; -var Provider = Context.Provider; - -// Wraps all the accordions in an accordion set -function AccordionGroup(_a) { - var children = _a.children, - _b = _a.className, - className = _b === void 0 ? '' : _b; - - var _c = useState(''), - opened = _c[0], - setOpened = _c[1]; - - return React.createElement(Provider, { - value: { - opened: opened, - setOpened: setOpened - } - }, React.createElement("div", { - className: className - }, children)); -} - -function Accordion(_a) { - var id = _a.id, - renderTitle = _a.renderTitle, - renderContent = _a.renderContent, - renderFooter = _a.renderFooter, - className = _a.className; - - var _b = useState(false), - showAccordion = _b[0], - setShowAccordion = _b[1]; - - return React.createElement(Consumer, null, function (value) { - var opened = value.opened, - setOpened = value.setOpened; - - if (id === opened) { - setShowAccordion(true); - } else { - setShowAccordion(false); - } - - var handleClick = function handleClick() { - if (showAccordion) { - setOpened(''); - } else { - setOpened(id); - } - }; - - return React.createElement(React.Fragment, null, React.createElement("div", { - id: id, - role: "switch", - "aria-checked": false, - tabIndex: 0, - onKeyDown: handleClick, - className: "sendbird-accordion__panel-heder " + className, - onClick: handleClick - }, renderTitle(), React.createElement(Icon, { - type: IconTypes.SHEVRON, - className: ['sendbird-accordion__panel-icon-right', 'sendbird-accordion__panel-icon--chevron', showAccordion ? 'sendbird-accordion__panel-icon--open' : ''].join(' '), - height: "24px", - width: "24px" - })), showAccordion && React.createElement("div", { - className: "sendbird-accordion" - }, React.createElement("div", { - className: "sendbird-accordion__list" - }, renderContent()), renderFooter && React.createElement("div", { - className: "sendbird-accordion__footer" - }, renderFooter()))); - }); -} -var AccordionGroup$1 = AccordionGroup; - -// might move to reusable/UI -var COMPONENT_NAME$1 = 'sendbird-user-list-item--small'; - -var UserListItem$2 = function UserListItem(_a) { - var user = _a.user, - className = _a.className, - currentUser = _a.currentUser, - action = _a.action; - var actionRef = useRef(null); - var parentRef = useRef(null); - var avatarRef = useRef(null); - var stringSet = useContext(LocalizationContext).stringSet; - - var _b = useContext(UserProfileContext), - disableUserProfile = _b.disableUserProfile, - renderUserProfile = _b.renderUserProfile; - - var injectingClassNames = Array.isArray(className) ? className : [className]; - return React.createElement("div", { - ref: parentRef, - className: __spreadArrays([COMPONENT_NAME$1], injectingClassNames).join(' ') - }, user.isMuted && React.createElement(MutedAvatarOverlay, null), React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(Avatar$1, { - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - ref: avatarRef, - className: COMPONENT_NAME$1 + "__avatar", - src: user.profileUrl, - width: 24, - height: 24 - }); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - openLeft: true, - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: user, - currentUserId: currentUser, - close: closeDropdown - }) : React.createElement(ConnectedUserProfile, { - user: user, - currentUserId: currentUser, - onSuccess: closeDropdown - })); - } - }), React.createElement(Label, { - className: COMPONENT_NAME$1 + "__title", - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, user.nickname || stringSet.NO_NAME, currentUser === user.userId && " (You)"), !user.nickname && React.createElement(Label, { - className: COMPONENT_NAME$1 + "__subtitle", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, user.userId), user.role === 'operator' && React.createElement(Label, { - className: COMPONENT_NAME$1 + "__operator", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_2 - }, "Operator"), action && React.createElement("div", { - ref: actionRef, - className: COMPONENT_NAME$1 + "__action" - }, action({ - actionRef: actionRef, - parentRef: parentRef - }))); -}; - -function OperatorsModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel, - currentUser = _a.currentUser; - - var _b = useState([]), - operators = _b[0], - setOperators = _b[1]; - - var _c = useState(null), - operatorQuery = _c[0], - setOperatorQuery = _c[1]; - - useEffect(function () { - var operatorListQuery = channel.createOperatorListQuery(); - operatorListQuery.limit = 20; - operatorListQuery.next(function (operators, error) { - if (error) { - return; - } - - setOperators(operators); - }); - setOperatorQuery(operatorListQuery); - }, []); - return React.createElement("div", null, React.createElement(Modal, { - hideFooter: true, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: noop, - titleText: "All operators" - }, React.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = operatorQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - operatorQuery.next(function (o, error) { - if (error) { - return; - } - - setOperators(__spreadArrays(operators, o)); - }); - } - } - }, operators.map(function (member) { - return React.createElement(UserListItem, { - currentUser: currentUser, - user: member, - key: member.userId, - action: function action(_a) { - var parentRef = _a.parentRef, - actionRef = _a.actionRef; - return React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React.createElement(MenuItem, { - onClick: function onClick() { - channel.removeOperators([member.userId], function (response, error) { - if (error) { - return; - } - - setOperators(operators.filter(function (_a) { - var userId = _a.userId; - return userId !== member.userId; - })); - }); - closeDropdown(); - } - }, "Dismiss operator")); - } - }); - } - }); - })))); -} - -function AddOperatorsModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel, - _onSubmit = _a.onSubmit; - - var _b = useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = useState({}), - selectedMembers = _c[0], - setSelectedMembers = _c[1]; - - var _d = useState(null), - memberQuery = _d[0], - setMemberQuery = _d[1]; - - var stringSet = useContext(LocalizationContext).stringSet; - useEffect(function () { - var memberListQuery = channel.createMemberListQuery(); - memberListQuery.limit = 20; - memberListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - }); - setMemberQuery(memberListQuery); - }, []); - var selectedCount = Object.keys(selectedMembers).filter(function (m) { - return selectedMembers[m]; - }).length; - return React.createElement("div", null, React.createElement(Modal, { - type: Type$1.PRIMARY, - submitText: "Add", - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: function onSubmit() { - var members = Object.keys(selectedMembers).filter(function (m) { - return selectedMembers[m]; - }); - - _onSubmit(members); - }, - titleText: "Select members" - }, React.createElement(Label, { - color: selectedCount > 0 ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3, - type: LabelTypography.CAPTION_1 - }, selectedCount + " " + stringSet.MODAL__INVITE_MEMBER__SELECTEC), React.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = memberQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - memberQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React.createElement(UserListItem, { - checkBox: true, - checked: selectedMembers[member.userId], - onChange: function onChange(event) { - var _a; - - var modifiedSelectedMembers = __assign(__assign({}, selectedMembers), (_a = {}, _a[event.target.id] = event.target.checked, _a)); - - if (!event.target.checked) { - delete modifiedSelectedMembers[event.target.id]; - } - - setSelectedMembers(modifiedSelectedMembers); - }, - user: member, - key: member.userId - }); - })))); -} - -var OperatorList = function OperatorList(_a) { - var sdk = _a.sdk, - channel = _a.channel; - - var _b = useState([]), - operators = _b[0], - setOperators = _b[1]; - - var _c = useState(false), - showMore = _c[0], - setShowMore = _c[1]; - - var _d = useState(false), - showAdd = _d[0], - setShowAdd = _d[1]; - - var _e = useState(false), - hasNext = _e[0], - setHasNext = _e[1]; - - var stringSet = useContext(LocalizationContext).stringSet; - useEffect(function () { - if (!channel) { - setOperators([]); - return; - } - - var operatorListQuery = channel.createOperatorListQuery(); - operatorListQuery.limit = 10; - operatorListQuery.next(function (operators, error) { - if (error) { - return; - } - - setOperators(operators); - setHasNext(operatorListQuery.hasNext); - }); - }, [channel]); - var refershList = useCallback(function () { - if (!channel) { - setOperators([]); - return; - } - - var operatorListQuery = channel.createOperatorListQuery(); - operatorListQuery.limit = 10; - operatorListQuery.next(function (operators, error) { - if (error) { - return; - } - - setOperators(operators); - setHasNext(operatorListQuery.hasNext); - }); - }, [channel]); - return React.createElement(React.Fragment, null, operators.map(function (operator) { - return React.createElement(UserListItem$2, { - key: operator.userId, - user: operator, - currentUser: sdk.currentUser.userId, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React.createElement(MenuItem, { - onClick: function onClick() { - channel.removeOperators([operator.userId], function (response, error) { - if (error) { - return; - } - - setOperators(operators.filter(function (_a) { - var userId = _a.userId; - return userId !== operator.userId; - })); - }); - closeDropdown(); - } - }, "Dismiss operator")); - } - }); - } - }); - }), hasNext && React.createElement("div", { - className: "sendbird-channel-settings-accordion__footer" - }, React.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - setShowMore(true); - } - }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ALL), React.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - setShowAdd(true); - } - }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ADD)), showMore && React.createElement(OperatorsModal, { - currentUser: sdk.currentUser.userId, - hideModal: function hideModal() { - setShowMore(false); - refershList(); - }, - channel: channel - }), showAdd && React.createElement(AddOperatorsModal, { - hideModal: function hideModal() { - return setShowAdd(false); - }, - channel: channel, - onSubmit: function onSubmit(members) { - setShowAdd(false); - channel.addOperators(members, function () { - refershList(); - }); - } - })); -}; - -var mapStoreToProps$2 = function mapStoreToProps(store) { - return { - sdk: getSdk(store) - }; -}; - -var OperatorList$1 = withSendbirdContext(OperatorList, mapStoreToProps$2); - -function InviteMembers$1(_a) { - var hideModal = _a.hideModal, - userQueryCreator = _a.userQueryCreator, - _onSubmit = _a.onSubmit; - - var _b = useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = useState({}), - selectedMembers = _c[0], - setSelectedMembers = _c[1]; - - var _d = useState(null), - userQuery = _d[0], - setUserQuery = _d[1]; - - useEffect(function () { - var userListQuery = userQueryCreator(); - userListQuery.limit = 20; - userListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - }); - setUserQuery(userListQuery); - }, []); - return React.createElement("div", null, React.createElement(Modal, { - disabled: Object.keys(selectedMembers).length === 0, - submitText: "Invite", - type: Type$1.PRIMARY, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: function onSubmit() { - var members = Object.keys(selectedMembers).filter(function (m) { - return selectedMembers[m]; - }); - - _onSubmit(members); - }, - titleText: "Select members" - }, React.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = userQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - userQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React.createElement(UserListItem, { - checkBox: true, - checked: selectedMembers[member.userId], - onChange: function onChange(event) { - var _a; - - var modifiedSelectedMembers = __assign(__assign({}, selectedMembers), (_a = {}, _a[event.target.id] = event.target.checked, _a)); - - if (!event.target.checked) { - delete modifiedSelectedMembers[event.target.id]; - } - - setSelectedMembers(modifiedSelectedMembers); - }, - user: member, - key: member.userId - }); - })))); -} - -var MemberList = function MemberList(_a) { - var sdk = _a.sdk, - channel = _a.channel, - userQueryCreator = _a.userQueryCreator; - - var _b = useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = useState(false), - hasNext = _c[0], - setHasNext = _c[1]; - - var _d = useState(false), - showAllMembers = _d[0], - setShowAllMembers = _d[1]; - - var _e = useState(false), - showInviteMembers = _e[0], - setShowInviteMembers = _e[1]; - - useEffect(function () { - if (!channel) { - setMembers([]); - return; - } - - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - setHasNext(memberUserListQuery.hasNext); - }); - }, [channel]); - var refershList = useCallback(function () { - if (!channel) { - setMembers([]); - return; - } - - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - setHasNext(memberUserListQuery.hasNext); - }); - }, [channel]); - return React.createElement(React.Fragment, null, members.map(function (member) { - return React.createElement(UserListItem$2, { - key: member.userId, - user: member, - currentUser: sdk.currentUser.userId, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React.createElement(MenuItem, { - onClick: function onClick() { - if (member.role !== 'operator') { - channel.addOperators([member.userId], function () { - refershList(); - closeDropdown(); - }); - } else { - channel.removeOperators([member.userId], function () { - refershList(); - closeDropdown(); - }); - } - } - }, member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'), // No muted members in broadcast channel - !channel.isBroadcast && React.createElement(MenuItem, { - onClick: function onClick() { - if (member.isMuted) { - channel.unmuteUser(member, function () { - refershList(); - closeDropdown(); - }); - } else { - channel.muteUser(member, function () { - refershList(); - closeDropdown(); - }); - } - } - }, member.isMuted ? 'Unmute' : 'Mute'), React.createElement(MenuItem, { - onClick: function onClick() { - channel.banUser(member, -1, '', function () { - refershList(); - closeDropdown(); - }); - } - }, "Ban")); - } - }); - } - }); - }), React.createElement("div", { - className: "sendbird-channel-settings-accordion__footer" - }, hasNext && React.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - return setShowAllMembers(true); - } - }, "All members"), React.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - return setShowInviteMembers(true); - } - }, "Invite members")), showAllMembers && React.createElement(MembersModal, { - currentUser: sdk.currentUser.userId, - channel: channel, - hideModal: function hideModal() { - setShowAllMembers(false); - refershList(); - } - }), showInviteMembers && React.createElement(InviteMembers$1, { - userQueryCreator: userQueryCreator, - onSubmit: function onSubmit(selectedMemebers) { - channel.inviteWithUserIds(selectedMemebers, function () { - setShowInviteMembers(false); - refershList(); - }); - }, - channel: channel, - hideModal: function hideModal() { - return setShowInviteMembers(false); - } - })); -}; - -var mapStoreToProps$3 = function mapStoreToProps(store) { - return { - sdk: getSdk(store) - }; -}; - -var MemberList$1 = withSendbirdContext(MemberList, mapStoreToProps$3); - -function BannedMembersModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel; - - var _b = useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = useState(null), - memberQuery = _c[0], - setMemberQuery = _c[1]; - - useEffect(function () { - var bannedUserListQuery = channel.createBannedUserListQuery(); - bannedUserListQuery.next(function (users, error) { - if (error) { - return; - } - - setMembers(users); - }); - setMemberQuery(bannedUserListQuery); - }, []); - return React.createElement("div", null, React.createElement(Modal, { - hideFooter: true, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: noop, - titleText: "Muted members" - }, React.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = memberQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - memberQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React.createElement(UserListItem, { - user: member, - key: member.userId, - action: function action(_a) { - var parentRef = _a.parentRef, - actionRef = _a.actionRef; - return React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React.createElement(MenuItem, { - onClick: function onClick() { - channel.unbanUser(member, function () { - closeDropdown(); - setMembers(members.filter(function (m) { - return m.userId !== member.userId; - })); - }); - } - }, "Unban")); - } - }); - } - }); - })))); -} - -var BannedMemberList = function BannedMemberList(_a) { - var channel = _a.channel; - - var _b = useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = useState(false), - hasNext = _c[0], - setHasNext = _c[1]; - - var _d = useState(false), - showModal = _d[0], - setShowModal = _d[1]; - - useEffect(function () { - if (!channel) { - setMembers([]); - return; - } - - var bannedUserListQuery = channel.createBannedUserListQuery(); - bannedUserListQuery.next(function (users, error) { - if (error) { - return; - } - - setMembers(users); - setHasNext(bannedUserListQuery.hasNext); - }); - }, [channel]); - var refreshList = useCallback(function () { - if (!channel) { - setMembers([]); - return; - } - - var bannedUserListQuery = channel.createBannedUserListQuery(); - bannedUserListQuery.next(function (users, error) { - if (error) { - return; - } - - setMembers(users); - setHasNext(bannedUserListQuery.hasNext); - }); - }, [channel]); - return React.createElement(React.Fragment, null, members.map(function (member) { - return React.createElement(UserListItem$2, { - key: member.userId, - user: member, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React.createElement(MenuItem, { - onClick: function onClick() { - channel.unbanUser(member, function () { - closeDropdown(); - refreshList(); - }); - } - }, "Unban")); - } - }); - } - }); - }), members && members.length === 0 && React.createElement(Label, { - className: "sendbird-channel-settings__empty-list", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_3 - }, "No banned members yet"), hasNext && React.createElement("div", { - className: "sendbird-channel-settings-accordion__footer" - }, React.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - setShowModal(true); - } - }, "All banned members")), showModal && React.createElement(BannedMembersModal, { - channel: channel, - hideModal: function hideModal() { - setShowModal(false); - refreshList(); - } - })); -}; - -var mapStoreToProps$4 = function mapStoreToProps(store) { - return { - sdk: getSdk(store) - }; -}; - -var BannedMemberList$1 = withSendbirdContext(BannedMemberList, mapStoreToProps$4); - -function MutedMembersModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel, - currentUser = _a.currentUser; - - var _b = useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = useState(null), - memberQuery = _c[0], - setMemberQuery = _c[1]; - - useEffect(function () { - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.mutedMemberFilter = 'muted'; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - }); - setMemberQuery(memberUserListQuery); - }, []); - return React.createElement("div", null, React.createElement(Modal, { - hideFooter: true, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: noop, - titleText: "Muted members" - }, React.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = memberQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - memberQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React.createElement(UserListItem, { - currentUser: currentUser, - user: member, - key: member.userId, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React.createElement(MenuItem, { - onClick: function onClick() { - channel.unmuteUser(member, function () { - closeDropdown(); - setMembers(members.filter(function (m) { - return m.userId !== member.userId; - })); - }); - } - }, "Unmute")); - } - }); - } - }); - })))); -} - -var MutedMemberList = function MutedMemberList(_a) { - var sdk = _a.sdk, - channel = _a.channel; - - var _b = useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = useState(false), - hasNext = _c[0], - setHasNext = _c[1]; - - var _d = useState(false), - showModal = _d[0], - setShowModal = _d[1]; - - useEffect(function () { - if (!channel) { - setMembers([]); - return; - } - - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.mutedMemberFilter = 'muted'; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - setHasNext(memberUserListQuery.hasNext); - }); - }, [channel]); - var refreshList = useCallback(function () { - if (!channel) { - setMembers([]); - return; - } - - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.mutedMemberFilter = 'muted'; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - setHasNext(memberUserListQuery.hasNext); - }); - }, [channel]); - return React.createElement(React.Fragment, null, members.map(function (member) { - return React.createElement(UserListItem$2, { - key: member.userId, - user: member, - currentUser: sdk.currentUser.userId, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React.createElement(MenuItems$1, { - closeDropdown: closeDropdown, - openLeft: true, - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - - }, React.createElement(MenuItem, { - onClick: function onClick() { - channel.unmuteUser(member, function () { - refreshList(); - closeDropdown(); - }); - } - }, "Unmute")); - } - }); - } - }); - }), members && members.length === 0 && React.createElement(Label, { - className: "sendbird-channel-settings__empty-list", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_3 - }, "No muted members yet"), hasNext && React.createElement("div", { - className: "sendbird-channel-settings-accordion__footer" - }, React.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - setShowModal(true); - } - }, "All muted members")), showModal && React.createElement(MutedMembersModal, { - currentUser: sdk.currentUser.userId, - channel: channel, - hideModal: function hideModal() { - setShowModal(false); - refreshList(); - } - })); -}; - -var mapStoreToProps$5 = function mapStoreToProps(store) { - return { - sdk: getSdk(store) - }; -}; - -var MutedMemberList$1 = withSendbirdContext(MutedMemberList, mapStoreToProps$5); - -var kFormatter = function kFormatter(num) { - return Math.abs(num) > 999 ? (Math.abs(num) / 1000).toFixed(1) + "K" : num; -}; - -function index(_a) { - var userQueryCreator = _a.userQueryCreator, - channel = _a.channel; - - var _b = useState(false), - frozen = _b[0], - setFrozen = _b[1]; // work around for - // https://sendbird.slack.com/archives/G01290GCDCN/p1595922832000900 - // SDK bug - after frozen/unfrozen myRole becomes "none" - - - useEffect(function () { - setFrozen(channel.isFrozen); - }, [channel]); - var stringSet = useContext(LocalizationContext).stringSet; - return React.createElement(AccordionGroup$1, { - className: "sendbird-channel-settings__operator" - }, React.createElement(Accordion, { - className: "sendbird-channel-settings__operators-list", - id: "operators", - renderTitle: function renderTitle() { - return React.createElement(React.Fragment, null, React.createElement(Icon, { - type: IconTypes.ICON_OPERATOR, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE)); - }, - renderContent: function renderContent() { - return React.createElement(React.Fragment, null, React.createElement(OperatorList$1, { - channel: channel - })); - } - }), React.createElement(Accordion, { - className: "sendbird-channel-settings__members-list", - id: "members", - renderTitle: function renderTitle() { - return React.createElement(React.Fragment, null, React.createElement(Icon, { - type: IconTypes.MEMBERS, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__MEMBERS__TITLE), React.createElement(Badge, { - count: kFormatter(channel.memberCount) - })); - }, - renderContent: function renderContent() { - return React.createElement(React.Fragment, null, React.createElement(MemberList$1, { - userQueryCreator: userQueryCreator, - channel: channel - })); - } - }), // No muted members in broadcast channel - !channel.isBroadcast && React.createElement(Accordion, { - id: "mutedMembers", - className: "sendbird-channel-settings__muted-members-list", - renderTitle: function renderTitle() { - return React.createElement(React.Fragment, null, React.createElement(Icon, { - type: IconTypes.ICON_MUTED, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__MUTED_MEMBERS__TITLE)); - }, - renderContent: function renderContent() { - return React.createElement(React.Fragment, null, React.createElement(MutedMemberList$1, { - channel: channel - })); - } - }), React.createElement(Accordion, { - className: "sendbird-channel-settings__banned-members-list", - id: "bannedMembers", - renderTitle: function renderTitle() { - return React.createElement(React.Fragment, null, React.createElement(Icon, { - type: IconTypes.ICON_BANNED, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__BANNED_MEMBERS__TITLE)); - }, - renderContent: function renderContent() { - return React.createElement(React.Fragment, null, React.createElement(BannedMemberList$1, { - channel: channel - })); - } - }), // cannot frozen broadcast channel - !channel.isBroadcast && React.createElement("div", { - className: "sendbird-channel-settings__freeze" - }, React.createElement(Icon, { - type: IconTypes.FROZEN_LIGHT, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__FREEZE_CHANNEL), React.createElement("div", { - className: "sendbird-channel-settings__frozen-icon" - }, frozen ? React.createElement(Icon, { - onClick: function onClick() { - channel.unfreeze(function () { - setFrozen(false); - }); - }, - type: IconTypes.TOGGLE_ON, - width: 44, - height: 24 - }) : React.createElement(Icon, { - onClick: function onClick() { - channel.freeze(function () { - setFrozen(true); - }); - }, - type: IconTypes.TOGGLE_OFF, - width: 44, - height: 24 - })))); -} - -var kFormatter$1 = function kFormatter(num) { - return Math.abs(num) > 999 ? "".concat((Math.abs(num) / 1000).toFixed(1), "K") : num; -}; - -function ChannelSettings(props) { - var onCloseClick = props.onCloseClick, - channelUrl = props.channelUrl, - disableUserProfile = props.disableUserProfile, - renderUserProfile = props.renderUserProfile, - _onChannelModified = props.onChannelModified, - renderChannelProfile = props.renderChannelProfile, - onBeforeUpdateChannel = props.onBeforeUpdateChannel; - var sdkStore = props.stores.sdkStore, - _props$config = props.config, - userListQuery = _props$config.userListQuery, - theme = _props$config.theme, - userId = _props$config.userId, - logger = _props$config.logger, - isOnline = _props$config.isOnline, - _props$queries = props.queries, - queries = _props$queries === void 0 ? {} : _props$queries; - var _props$config2 = props.config, - config = _props$config2 === void 0 ? {} : _props$config2; - var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; - var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; - var userFilledApplicationUserListQuery = queries.applicationUserListQuery; - - var _useContext = useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var sdk = sdkStore.sdk, - initialized = sdkStore.initialized; // hack to kepp track of channel updates by triggering useEffect - - var _useState = useState(uuidv4()), - _useState2 = _slicedToArray(_useState, 2), - channelUpdateId = _useState2[0], - setChannelUpdateId = _useState2[1]; - - var _useState3 = useState(null), - _useState4 = _slicedToArray(_useState3, 2), - channel = _useState4[0], - setChannel = _useState4[1]; - - var _useState5 = useState(false), - _useState6 = _slicedToArray(_useState5, 2), - invalidChannel = _useState6[0], - setInvalidChannel = _useState6[1]; - - var _useState7 = useState(false), - _useState8 = _slicedToArray(_useState7, 2), - showAccordion = _useState8[0], - setShowAccordion = _useState8[1]; - - var _useState9 = useState(false), - _useState10 = _slicedToArray(_useState9, 2), - showLeaveChannelModal = _useState10[0], - setShowLeaveChannelModal = _useState10[1]; - - useEffect(function () { - logger.info('ChannelSettings: Setting up'); - - if (!channelUrl || !initialized || !sdk) { - logger.warning('ChannelSettings: Setting up failed', 'No channelUrl or sdk uninitialized'); - setInvalidChannel(false); - } else { - if (!sdk || !sdk.GroupChannel) { - logger.warning('ChannelSettings: No GroupChannel'); - return; - } - - sdk.GroupChannel.getChannel(channelUrl, function (groupChannel) { - if (!groupChannel) { - logger.warning('ChannelSettings: Channel not found'); - setInvalidChannel(true); - } else { - logger.info('ChannelSettings: Fetched group channel', groupChannel); - setInvalidChannel(false); - setChannel(groupChannel); - } - }); - } - }, [channelUrl, initialized, channelUpdateId]); - - if (!channel || invalidChannel) { - return React.createElement("div", { - className: "sendbird-channel-settings" - }, React.createElement("div", { - className: "sendbird-channel-settings__header" - }, React.createElement(Label, { - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React.createElement(Icon, { - type: IconTypes.CLOSE, - className: "sendbird-channel-settings__close-icon", - height: "24px", - width: "24px", - onClick: function onClick() { - logger.info('ChannelSettings: Click close'); - onCloseClick(); - } - })), React.createElement("div", null, React.createElement(PlaceHolder, { - type: PlaceHolderTypes.WRONG - }))); - } - - return React.createElement(UserProfileProvider, { - disableUserProfile: userDefinedDisableUserProfile, - renderUserProfile: userDefinedRenderProfile, - className: "sendbird-channel-settings" - }, React.createElement("div", { - className: "sendbird-channel-settings__header" - }, React.createElement(Label, { - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React.createElement("div", { - className: "sendbird-channel-settings__header-icon" - }, React.createElement(IconButton, { - width: "32px", - height: "32px", - onClick: function onClick() { - logger.info('ChannelSettings: Click close'); - onCloseClick(); - } - }, React.createElement(Icon, { - type: IconTypes.CLOSE, - className: "sendbird-channel-settings__close-icon", - height: "24px", - width: "24px" - })))), React.createElement("div", { - className: "sendbird-channel-settings__scroll-area" - }, renderChannelProfile ? renderChannelProfile({ - channel: channel - }) : React.createElement(ChannelProfile, { - disabled: !isOnline, - channel: channel, - userId: userId, - theme: theme, - onChannelInfoChange: function onChannelInfoChange(currentImg, currentTitle) { - logger.info('ChannelSettings: Channel information being updated'); - var swapParams = sdk.getErrorFirstCallback(); - - if (onBeforeUpdateChannel) { - var params = onBeforeUpdateChannel(currentTitle, currentImg, channel.data); // swapParams - - channel.updateChannel(params, function (response, error) { - var groupChannel = response; - - if (swapParams) { - groupChannel = error; - } - - _onChannelModified(groupChannel); - - setChannelUpdateId(uuidv4()); - }); - return; - } - - channel.updateChannel(currentTitle, currentImg, channel.data, function (response, error) { - var groupChannel = response; - - if (swapParams) { - groupChannel = error; - } - - logger.info('ChannelSettings: Channel information updated', groupChannel); - - _onChannelModified(groupChannel); - - setChannelUpdateId(uuidv4()); - }); - } - }), channel.myRole === 'operator' ? React.createElement(index, { - channel: channel, - onChannelModified: function onChannelModified(groupChannel) { - // setChannelUpdateId(uuidv4()); - _onChannelModified(groupChannel); - }, - userQueryCreator: function userQueryCreator() { - return userListQuery && typeof userListQuery === 'function' ? userListQuery() : createDefaultUserListQuery({ - sdk: sdk, - userFilledApplicationUserListQuery: userFilledApplicationUserListQuery - }); - } - }) : React.createElement(React.Fragment, null, React.createElement("div", { - role: "switch", - "aria-checked": showAccordion, - tabIndex: 0, - onKeyDown: function onKeyDown() { - return setShowAccordion(!showAccordion); - }, - className: "\n sendbird-channel-settings__panel-item\n sendbird-channel-settings__members\n ", - onClick: function onClick() { - return setShowAccordion(!showAccordion); - } - }, React.createElement(Icon, { - type: IconTypes.MEMBERS, - className: "sendbird-channel-settings__panel-icon-left", - height: "24px", - width: "24px", - fillColor: IconColors.PRIMARY - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, "".concat(stringSet.CHANNEL_SETTING__MEMBERS__TITLE), React.createElement(Badge, { - count: kFormatter$1(channel.memberCount) - })), React.createElement(Icon, { - type: IconTypes.SHEVRON, - className: ['sendbird-channel-settings__panel-icon-right', 'sendbird-channel-settings__panel-icon--chevron', showAccordion ? 'sendbird-channel-settings__panel-icon--open' : ''].join(' '), - height: "24px", - width: "24px" - })), showAccordion && React.createElement(MemebersAccordion, { - currentUser: userId, - disabled: !isOnline // eslint-disable-next-line - , - userQueryCreator: function userQueryCreator() { - return userListQuery && typeof userListQuery === 'function' ? userListQuery() : createDefaultUserListQuery({ - sdk: sdk, - userFilledApplicationUserListQuery: userFilledApplicationUserListQuery - }); - }, - swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), - channel: channel, - members: channel.members, - onInviteMemebers: function onInviteMemebers(selectedMemebers) { - logger.info('ChannelSettings: Inviting new users'); - channel.inviteWithUserIds(selectedMemebers).then(function (res) { - _onChannelModified(res); - - setChannelUpdateId(uuidv4()); - logger.info('ChannelSettings: Inviting new users success!', res); - }); - } - })), React.createElement("div", { - className: "sendbird-channel-settings__panel-item\n sendbird-channel-settings__leave-channel\n ".concat(!isOnline ? 'sendbird-channel-settings__panel-item__disabled' : ''), - role: "button", - tabIndex: 0, - disabled: true, - onKeyDown: function onKeyDown() { - if (!isOnline) { - return; - } - - setShowLeaveChannelModal(true); - }, - onClick: function onClick() { - if (!isOnline) { - return; - } - - setShowLeaveChannelModal(true); - } - }, React.createElement(Icon, { - type: IconTypes.LEAVE, - className: ['sendbird-channel-settings__panel-icon-left', 'sendbird-channel-settings__panel-icon__leave'].join(' '), - height: "24px", - width: "24px" - }), React.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE)), showLeaveChannelModal && React.createElement(LeaveChannel, { - onCloseModal: function onCloseModal() { - return setShowLeaveChannelModal(false); - }, - onLeaveChannel: function onLeaveChannel() { - logger.info('ChannelSettings: Leaving channel', channel); - channel.leave().then(function () { - logger.info('ChannelSettings: Leaving channel successful!', channel); - onCloseClick(); - }); - } - }))); -} - -ChannelSettings.propTypes = { - onCloseClick: PropTypes.func, - onChannelModified: PropTypes.func, - onBeforeUpdateChannel: PropTypes.func, - renderChannelProfile: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - channelUrl: PropTypes.string.isRequired, - queries: PropTypes.shape({ - applicationUserListQuery: PropTypes.shape({ - limit: PropTypes.number, - userIdsFilter: PropTypes.arrayOf(PropTypes.string), - metaDataKeyFilter: PropTypes.string, - metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string) - }) - }), - // from withSendbirdContext - stores: PropTypes.shape({ - sdkStore: PropTypes.shape({ - sdk: PropTypes.shape({ - getErrorFirstCallback: PropTypes.func, - GroupChannel: PropTypes.oneOfType([PropTypes.shape({ - getChannel: PropTypes.func - }), PropTypes.func]), - createApplicationUserListQuery: PropTypes.any - }), - initialized: PropTypes.bool - }) - }).isRequired, - config: PropTypes.shape({ - userId: PropTypes.string, - theme: PropTypes.string, - userListQuery: PropTypes.func, - isOnline: PropTypes.bool, - logger: PropTypes.shape({ - info: PropTypes.func, - error: PropTypes.func, - warning: PropTypes.func - }) - }).isRequired -}; -ChannelSettings.defaultProps = { - onBeforeUpdateChannel: null, - queries: {}, - disableUserProfile: false, - renderUserProfile: null, - renderChannelProfile: null, - onCloseClick: function onCloseClick() {}, - onChannelModified: function onChannelModified() {} -}; -var ChannelSettings$1 = withSendbirdContext(ChannelSettings); - -function App(props) { - var appId = props.appId, - userId = props.userId, - accessToken = props.accessToken, - theme = props.theme, - userListQuery = props.userListQuery, - nickname = props.nickname, - profileUrl = props.profileUrl, - _props$config = props.config, - config = _props$config === void 0 ? {} : _props$config, - useReaction = props.useReaction, - useMessageGrouping = props.useMessageGrouping, - colorSet = props.colorSet, - stringSet = props.stringSet, - allowProfileEdit = props.allowProfileEdit, - disableUserProfile = props.disableUserProfile, - renderUserProfile = props.renderUserProfile, - onProfileEditSuccess = props.onProfileEditSuccess; - - var _useState = useState(null), - _useState2 = _slicedToArray(_useState, 2), - currentChannelUrl = _useState2[0], - setCurrentChannelUrl = _useState2[1]; - - var _useState3 = useState(false), - _useState4 = _slicedToArray(_useState3, 2), - showSettings = _useState4[0], - setShowSettings = _useState4[1]; - - return React.createElement(Sendbird, { - stringSet: stringSet, - appId: appId, - userId: userId, - accessToken: accessToken, - theme: theme, - nickname: nickname, - profileUrl: profileUrl, - userListQuery: userListQuery, - config: config, - colorSet: colorSet, - disableUserProfile: disableUserProfile, - renderUserProfile: renderUserProfile - }, React.createElement("div", { - className: "sendbird-app__wrap" - }, React.createElement("div", { - className: "sendbird-app__channellist-wrap" - }, React.createElement(ChannelList$1, { - allowProfileEdit: allowProfileEdit, - onProfileEditSuccess: onProfileEditSuccess, - onChannelSelect: function onChannelSelect(channel) { - if (channel && channel.url) { - setCurrentChannelUrl(channel.url); - } else { - setCurrentChannelUrl(''); - } - } - })), React.createElement("div", { - className: "\n ".concat(showSettings ? 'sendbird-app__conversation--settings-open' : '', "\n sendbird-app__conversation-wrap\n ") - }, React.createElement(Conversation, { - channelUrl: currentChannelUrl, - onChatHeaderActionClick: function onChatHeaderActionClick() { - if (showSettings) { - setShowSettings(false); - } else { - setShowSettings(true); - } - }, - useReaction: useReaction, - useMessageGrouping: useMessageGrouping - })), showSettings && React.createElement("div", { - className: "sendbird-app__settingspanel-wrap" - }, React.createElement(ChannelSettings$1, { - channelUrl: currentChannelUrl, - onCloseClick: function onCloseClick() { - setShowSettings(false); - } - })))); -} -App.propTypes = { - appId: PropTypes.string.isRequired, - userId: PropTypes.string.isRequired, - accessToken: PropTypes.string, - theme: PropTypes.string, - userListQuery: PropTypes.func, - nickname: PropTypes.string, - profileUrl: PropTypes.string, - allowProfileEdit: PropTypes.bool, - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - onProfileEditSuccess: PropTypes.func, - config: PropTypes.shape({ - // None Error Warning Info 'All/Debug' - logLevel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) - }), - useReaction: PropTypes.bool, - useMessageGrouping: PropTypes.bool, - stringSet: PropTypes.objectOf(PropTypes.string), - colorSet: PropTypes.objectOf(PropTypes.string) -}; -App.defaultProps = { - accessToken: '', - theme: 'light', - nickname: '', - profileUrl: '', - userListQuery: null, - allowProfileEdit: false, - onProfileEditSuccess: null, - disableUserProfile: false, - renderUserProfile: null, - config: {}, - useReaction: true, - useMessageGrouping: true, - stringSet: null, - colorSet: null -}; - -export { App, Conversation as Channel, ChannelList$1 as ChannelList, ChannelSettings$1 as ChannelSettings, Sendbird as SendBirdProvider, getAllEmojisFromEmojiContainer$1 as getAllEmojisFromEmojiContainer, getEmojiCategoriesFromEmojiContainer$1 as getEmojiCategoriesFromEmojiContainer, getEmojisFromEmojiContainer$1 as getEmojisFromEmojiContainer, getStringSet, selectors as sendBirdSelectors, withSendbirdContext as withSendBird }; -//# sourceMappingURL=index.es.js.map diff --git a/dist/index.es.js.map b/dist/index.es.js.map deleted file mode 100644 index e9d49f8..0000000 --- a/dist/index.es.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.es.js","sources":["../../src/lib/SendbirdSdkContext.jsx","../../src/lib/dux/sdk/actionTypes.js","../../src/lib/dux/user/actionTypes.js","../../src/lib/dux/sdk/thunks.js","../../node_modules/tslib/tslib.es6.js","../../src/lib/hooks/useTheme.ts","../../src/lib/dux/sdk/initialState.js","../../src/lib/dux/sdk/reducers.js","../../src/lib/dux/user/initialState.js","../../src/lib/dux/user/reducers.js","../../src/utils/uuid.ts","../../src/lib/hooks/useOnlineStatus.js","../../src/lib/Logger/index.js","../../src/lib/pubSub/index.js","../../src/hooks/useAppendDomNode.js","../../src/ui/Label/stringSet.js","../../src/lib/LocalizationContext.tsx","../../src/lib/Sendbird.jsx","../../src/lib/UserProfileContext.jsx","../../src/smart-components/ChannelList/dux/actionTypes.js","../../src/smart-components/ChannelList/dux/initialState.js","../../src/smart-components/ChannelList/dux/reducers.js","../../src/ui/ImageRenderer/index.jsx","../../src/ui/Icon/type.js","../../src/ui/Icon/index.jsx","../../src/ui/Avatar/index.tsx","../../src/ui/ChannelAvatar/utils.ts","../../src/ui/ChannelAvatar/index.tsx","../../src/ui/Label/types.js","../../src/ui/Label/utils.js","../../src/ui/Label/index.jsx","../../src/ui/Badge/index.jsx","../../src/ui/MessageStatus/type.js","../../src/ui/FileMessage/utils.js","../../src/ui/ChannelPreview/utils.js","../../src/ui/ChannelPreview/index.jsx","../../src/ui/IconButton/index.jsx","../../src/ui/ChannelHeader/index.jsx","../../src/hooks/useModal/ModalRoot/index.jsx","../../src/ui/Button/type.js","../../src/ui/Button/utils.js","../../src/ui/Button/index.jsx","../../src/ui/Modal/index.jsx","../../src/ui/Input/index.jsx","../../src/utils/color.js","../../src/ui/TextButton/index.jsx","../../src/utils/utils.js","../../src/ui/EditUserProfile/index.tsx","../../src/ui/PlaceHolder/type.js","../../src/ui/Avatar/MutedAvatarOverlay.tsx","../../src/ui/Checkbox/index.jsx","../../src/lib/pubSub/topics.js","../../src/lib/selectors.js","../../src/ui/UserProfile/index.tsx","../../src/ui/ContextMenu/items/MenuItems.jsx","../../src/ui/SortByRow/index.jsx","../../src/ui/ContextMenu/items/EmojiListItems.jsx","../../src/ui/ContextMenu/index.jsx","../../src/ui/UserListItem/index.jsx","../../src/smart-components/InviteMembers/index.jsx","../../src/smart-components/ChannelList/components/utils.js","../../src/smart-components/ChannelList/components/AddChannel.jsx","../../src/smart-components/ChannelSettings/components/LeaveChannel.jsx","../../src/smart-components/ChannelList/components/ChannelPreviewAction.jsx","../../src/ui/Loader/index.jsx","../../src/ui/PlaceHolder/index.jsx","../../src/smart-components/ChannelList/components/Placeholder.jsx","../../src/smart-components/ChannelList/utils.js","../../src/smart-components/ChannelList/index.jsx","../../src/smart-components/Conversation/dux/actionTypes.js","../../src/ui/FileViewer/types.js","../../src/smart-components/Conversation/types.js","../../src/smart-components/Conversation/utils.js","../../src/smart-components/Conversation/dux/initialState.js","../../src/utils/compareIds.js","../../src/smart-components/Conversation/dux/reducers.js","../../src/smart-components/Conversation/hooks/useHandleChannelEvents.js","../../src/smart-components/Conversation/hooks/useGetChannel.js","../../src/smart-components/Conversation/hooks/useInitialMessagesFetch.js","../../src/smart-components/Conversation/hooks/useHandleReconnect.js","../../src/smart-components/Conversation/hooks/useScrollCallback.js","../../src/smart-components/Conversation/hooks/useDeleteMessageCallback.js","../../src/smart-components/Conversation/hooks/useUpdateMessageCallback.js","../../src/smart-components/Conversation/hooks/useResendMessageCallback.js","../../src/smart-components/Conversation/hooks/useSendMessageCallback.js","../../src/smart-components/Conversation/hooks/useSendFileMessageCallback.js","../../src/smart-components/Conversation/hooks/useSetReadStatus.js","../../src/ui/ReactionButton/index.jsx","../../src/smart-components/Conversation/hooks/useMemoizedEmojiListItems.jsx","../../src/smart-components/Conversation/hooks/useToggleReactionCallback.js","../../src/ui/MessageStatus/index.jsx","../../src/ui/ReactionBadge/index.jsx","../../src/ui/Tooltip/index.jsx","../../src/ui/TooltipWrapper/index.jsx","../../src/ui/EmojiReactions/index.jsx","../../src/ui/Message/utils.js","../../src/ui/Message/memoizedMessageText.jsx","../../src/hooks/onMouseHover.jsx","../../src/ui/Message/index.jsx","../../src/ui/AdminMessage/index.jsx","../../src/ui/ThumbnailMessage/util.js","../../src/ui/ThumbnailMessage/index.jsx","../../src/ui/FileMessage/index.jsx","../../src/ui/DateSeparator/index.jsx","../../src/ui/MessageInput/index.jsx","../../src/ui/FileViewer/index.jsx","../../src/smart-components/Conversation/components/RemoveMessage.jsx","../../src/ui/UnknownMessage/utils.js","../../src/ui/UnknownMessage/index.jsx","../../src/ui/OGMessage/const.js","../../src/ui/OGMessage/utils.js","../../src/ui/LinkLabel/index.jsx","../../src/ui/OGMessage/memoizedMessageText.jsx","../../src/ui/OGMessage/index.jsx","../../src/smart-components/Conversation/components/MessageHOC.jsx","../../src/smart-components/Conversation/components/ConversationScroll.jsx","../../src/smart-components/Conversation/components/Notification.jsx","../../src/smart-components/Conversation/components/FrozenNotification.tsx","../../src/smart-components/Conversation/components/TypingIndicator.jsx","../../src/smart-components/Conversation/components/MessageInputWrapper.tsx","../../src/ui/ConnectionStatus/index.jsx","../../src/ui/ChatHeader/utils.js","../../src/ui/AutoRefresh/index.jsx","../../src/ui/ChatHeader/index.jsx","../../src/smart-components/Conversation/index.jsx","../../src/smart-components/ChannelSettings/components/EditDetails.jsx","../../src/smart-components/ChannelSettings/components/ChannelProfile.jsx","../../src/smart-components/ChannelSettings/components/AdminPanel/MembersModal.tsx","../../src/smart-components/ChannelSettings/components/MemebersAccordion.jsx","../../src/ui/Accordion/context.ts","../../src/ui/Accordion/AccordionGroup.tsx","../../src/ui/Accordion/index.tsx","../../src/smart-components/ChannelSettings/components/UserListItem.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/OperatorsModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/AddOperatorsModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/OperatorList.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/InviteMembersModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/MemberList.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/BannedMembersModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/BannedMemberList.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/MutedMembersModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/MutedMemberList.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/index.tsx","../../src/smart-components/ChannelSettings/index.jsx","../../src/smart-components/App/index.jsx"],"sourcesContent":["import React from 'react';\n\nexport const SendbirdSdkContext = React.createContext();\n\nconst withSendbirdContext = (OriginalComponent, mapStoreToProps) => {\n const ContextAwareComponent = (props) => (\n \n {(context) => {\n if (mapStoreToProps && typeof mapStoreToProps !== 'function') {\n // eslint-disable-next-line no-console\n console.warn('Second parameter to withSendbirdContext must be a pure function');\n }\n // todo - memoize\n const mergedProps = (mapStoreToProps && typeof mapStoreToProps === 'function')\n ? { ...mapStoreToProps(context), ...props }\n : { ...context, ...props };\n // eslint-disable-next-line react/jsx-props-no-spreading\n return ;\n }}\n \n );\n\n const componentName = OriginalComponent.displayName || OriginalComponent.name || 'Component';\n ContextAwareComponent.displayName = `SendbirdAware${componentName}`;\n\n return ContextAwareComponent;\n};\n\nexport default withSendbirdContext;\n","export const INIT_SDK = 'INIT_SDK';\nexport const SET_SDK_LOADING = 'SET_SDK_LOADING';\nexport const RESET_SDK = 'RESET_SDK';\nexport const SDK_ERROR = 'SDK_ERROR';\n","export const INIT_USER = 'INIT_USER';\nexport const RESET_USER = 'RESET_USER';\nexport const SET_USER_LOADING = 'SET_USER_LOADING';\nexport const UPDATE_USER_INFO = 'UPDATE_USER_INFO';\n","import Sb from 'sendbird';\n\nimport {\n INIT_SDK,\n SET_SDK_LOADING,\n RESET_SDK,\n SDK_ERROR,\n} from './actionTypes';\nimport { INIT_USER, UPDATE_USER_INFO, RESET_USER } from '../user/actionTypes';\n\nconst APP_VERSION_STRING = '__uikit_app_version__';\nconst IS_ROLLUP = '__is_rollup__';\nconst IS_ROLLUP_REPLACE = '__is_rollup_replace__';\n\nexport const disconnectSdk = ({\n sdkDispatcher,\n userDispatcher,\n sdk,\n onDisconnect,\n}) => {\n sdkDispatcher({ type: SET_SDK_LOADING, payload: true });\n if (sdk && sdk.disconnect) {\n sdk.disconnect()\n .then(() => {\n sdkDispatcher({ type: RESET_SDK });\n userDispatcher({ type: RESET_USER });\n })\n .finally(() => {\n onDisconnect();\n });\n } else {\n onDisconnect();\n }\n};\n\nexport const handleConnection = ({\n userId,\n appId,\n nickname,\n profileUrl,\n accessToken,\n sdk,\n logger,\n}, dispatchers) => {\n const {\n sdkDispatcher,\n userDispatcher,\n } = dispatchers;\n disconnectSdk({\n sdkDispatcher,\n userDispatcher,\n sdk,\n logger,\n onDisconnect: () => {\n logger.info('Setup connection');\n sdkDispatcher({ type: SET_SDK_LOADING, payload: true });\n if (userId && appId) {\n const newSdk = new Sb({ appId });\n // to check if code is released version from rollup and *not from storybook*\n // see rollup config file\n if (IS_ROLLUP === IS_ROLLUP_REPLACE) {\n newSdk.addExtension('sb_uikit', APP_VERSION_STRING);\n }\n const connectCbSucess = (user) => {\n sdkDispatcher({ type: INIT_SDK, payload: newSdk });\n userDispatcher({ type: INIT_USER, payload: user });\n // use nickname/profileUrl if provided\n // or set userID as nickname\n const newNickName = nickname || user.nickname;\n const newProfileUrl = profileUrl || user.profileUrl;\n newSdk.updateCurrentUserInfo(newNickName, newProfileUrl)\n .then((namedUser) => {\n userDispatcher({ type: UPDATE_USER_INFO, payload: namedUser });\n });\n };\n\n const connectCbError = (e) => {\n logger.error('Connection failed', `${e}`);\n sdkDispatcher({ type: RESET_SDK });\n sdkDispatcher({ type: RESET_USER });\n sdkDispatcher({ type: SDK_ERROR });\n };\n\n if (accessToken) {\n newSdk.connect(userId, accessToken)\n .then((res) => connectCbSucess(res))\n .catch((err) => connectCbError(err));\n } else {\n newSdk.connect(userId)\n .then((res) => connectCbSucess(res))\n .catch((err) => connectCbError(err));\n }\n } else {\n sdkDispatcher({ type: SDK_ERROR });\n logger.warning('Connection failed', 'UserId or appId missing');\n }\n },\n });\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { useLayoutEffect } from 'react';\nimport cssVars from 'css-vars-ponyfill';\n\nconst isEmpty = (obj) => {\n if (obj === null || obj === undefined) {\n return true;\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n return JSON.stringify(obj) === JSON.stringify({});\n}\n\nconst useTheme = (overrides: Record): void => {\n useLayoutEffect(() => {\n if (!isEmpty(overrides)) {\n cssVars({\n variables: {\n ...{\n '--sendbird-dark-primary-500': '#4d2aa6',\n '--sendbird-dark-primary-400': '#6440C4',\n '--sendbird-dark-primary-300': '#7B53EF',\n '--sendbird-dark-primary-200': '#9E8CF5',\n '--sendbird-dark-primary-100': '#E2DFFF',\n\n '--sendbird-dark-secondary-500': '#007A7A',\n '--sendbird-dark-secondary-400': '#189A8D',\n '--sendbird-dark-secondary-300': '#2EBA9F',\n '--sendbird-dark-secondary-200': '#6FD6BE',\n '--sendbird-dark-secondary-100': '#AEF2DC',\n\n '--sendbird-dark-information-100': '#b2d9ff',\n\n '--sendbird-dark-error-500': '#A30E2D',\n '--sendbird-dark-error-400': '#C11F41',\n '--sendbird-dark-error-300': '#E53157',\n '--sendbird-dark-error-200': '#FF6183',\n '--sendbird-dark-error-100': '#FFABBD',\n\n '--sendbird-dark-background-700': '#000000',\n '--sendbird-dark-background-600': '#161616',\n '--sendbird-dark-background-500': '#2C2C2C',\n '--sendbird-dark-background-400': '#393939',\n '--sendbird-dark-background-300': '#A8A8A8',\n '--sendbird-dark-background-200': '#D9D9D9',\n '--sendbird-dark-background-100': '#F0F0F0',\n '--sendbird-dark-background-50': '#FFFFFF',\n\n '--sendbird-dark-overlay': 'rgba(0, 0, 0, 0.32)',\n\n '--sendbird-dark-onlight-01': 'rgba(0, 0, 0, 0.88)',\n '--sendbird-dark-onlight-02': 'rgba(0, 0, 0, 0.50)',\n '--sendbird-dark-onlight-03': 'rgba(0, 0, 0, 0.38)',\n '--sendbird-dark-onlight-04': 'rgba(0, 0, 0, 0.12)',\n\n '--sendbird-dark-ondark-01': 'rgba(255, 255, 255, 0.88)',\n '--sendbird-dark-ondark-02': 'rgba(255, 255, 255, 0.50)',\n '--sendbird-dark-ondark-03': 'rgba(255, 255, 255, 0.38)',\n '--sendbird-dark-ondark-04': 'rgba(255, 255, 255, 0.12)',\n\n '--sendbird-dark-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',\n\n '--sendbird-dark-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-primary-500': '#4d2aa6',\n '--sendbird-light-primary-400': '#6440C4',\n '--sendbird-light-primary-300': '#7B53EF',\n '--sendbird-light-primary-200': '#9E8CF5',\n '--sendbird-light-primary-100': '#E2DFFF',\n\n '--sendbird-light-secondary-500': '#007A7A',\n '--sendbird-light-secondary-400': '#189A8D',\n '--sendbird-light-secondary-300': '#2EBA9F',\n '--sendbird-light-secondary-200': '#6FD6BE',\n '--sendbird-light-secondary-100': '#AEF2DC',\n\n '--sendbird-light-information-100': '#b2d9ff',\n\n '--sendbird-light-error-500': '#A30E2D',\n '--sendbird-light-error-400': '#C11F41',\n '--sendbird-light-error-300': '#E53157',\n '--sendbird-light-error-200': '#FF6183',\n '--sendbird-light-error-100': '#FFABBD',\n\n '--sendbird-light-background-700': '#000000',\n '--sendbird-light-background-600': '#161616',\n '--sendbird-light-background-500': '#2C2C2C',\n '--sendbird-light-background-400': '#393939',\n '--sendbird-light-background-300': '#A8A8A8',\n '--sendbird-light-background-200': '#D9D9D9',\n '--sendbird-light-background-100': '#F0F0F0',\n '--sendbird-light-background-50': ' #FFFFFF',\n\n '--sendbird-light-overlay': 'rgba(0, 0, 0, 0.32)',\n\n '--sendbird-light-onlight-01': 'rgba(0, 0, 0, 0.88)',\n '--sendbird-light-onlight-02': 'rgba(0, 0, 0, 0.50)',\n '--sendbird-light-onlight-03': 'rgba(0, 0, 0, 0.38)',\n '--sendbird-light-onlight-04': 'rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-ondark-01': 'rgba(255, 255, 255, 0.88)',\n '--sendbird-light-ondark-02': 'rgba(255, 255, 255, 0.50)',\n '--sendbird-light-ondark-03': 'rgba(255, 255, 255, 0.38)',\n '--sendbird-light-ondark-04': 'rgba(255, 255, 255, 0.12)',\n\n '--sendbird-light-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-light-theme-surface-2': '#EAEAEA',\n },\n ...overrides,\n },\n });\n }\n }, [overrides]);\n};\n\nexport default useTheme;\n","export default {\n initialized: false,\n loading: false,\n sdk: {},\n error: false,\n};\n","import * as sdkActions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case sdkActions.SET_SDK_LOADING:\n return {\n ...state,\n initialized: false,\n loading: action.payload,\n };\n case sdkActions.SDK_ERROR:\n return {\n ...state,\n initialized: false,\n loading: false,\n error: true,\n };\n case sdkActions.INIT_SDK:\n return {\n sdk: action.payload,\n initialized: true,\n loading: false,\n error: false,\n };\n case sdkActions.RESET_SDK:\n return initialState;\n default:\n return state;\n }\n}\n","export default {\n initialized: false,\n loading: false,\n user: {},\n};\n","import * as actions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actions.INIT_USER:\n return {\n initialized: true,\n loading: false,\n user: action.payload,\n };\n case actions.RESET_USER:\n return initialState;\n case actions.UPDATE_USER_INFO:\n return {\n ...state,\n user: action.payload,\n };\n default:\n return state;\n }\n}\n","/* eslint-disable no-bitwise */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-mixed-operators */\n// https://stackoverflow.com/a/2117523\n// used mainly for dom key generation\nexport const uuidv4 = (): string => 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n});\n\nexport default uuidv4;\n","import { useState, useEffect } from 'react';\n\nimport { uuidv4 } from '../../utils/uuid';\n\nfunction useConnectionStatus(sdk, logger) {\n const [isOnline, setIsOnline] = useState(true);\n\n useEffect(() => {\n const uniqueHandlerId = uuidv4();\n logger.warning('sdk changed', uniqueHandlerId);\n let handler;\n if (sdk && sdk.ConnectionHandler) {\n handler = new sdk.ConnectionHandler();\n\n handler.onReconnectStarted = () => {\n setIsOnline(false);\n logger.warning('onReconnectStarted', { isOnline });\n };\n handler.onReconnectSucceeded = () => {\n setIsOnline(true);\n logger.warning('onReconnectSucceeded', { isOnline });\n };\n handler.onReconnectFailed = () => {\n sdk.reconnect();\n logger.warning('onReconnectFailed');\n };\n logger.info('Added ConnectionHandler', uniqueHandlerId);\n sdk.addConnectionHandler(uniqueHandlerId, handler);\n }\n return () => {\n try {\n sdk.removeConnectionHandler(uniqueHandlerId);\n logger.info('Removed ConnectionHandler', uniqueHandlerId);\n } catch {\n //\n }\n };\n }, [sdk]);\n\n useEffect(() => {\n const tryReconnect = () => {\n try {\n logger.warning('Try reconnecting SDK');\n if (sdk.getConnectionState() !== 'OPEN') { // connection is not broken yet\n sdk.reconnect();\n }\n } catch {\n //\n }\n };\n // addEventListener version\n window.addEventListener('online', tryReconnect);\n return () => {\n window.removeEventListener('online', tryReconnect);\n };\n }, [sdk]);\n\n // add offline-class to body\n useEffect(() => {\n const body = document.querySelector('body');\n if (!isOnline) {\n try {\n body.classList.add('sendbird__offline');\n logger.info('Added class sendbird__offline to body');\n } catch (e) {\n //\n }\n } else {\n try {\n body.classList.remove('sendbird__offline');\n logger.info('Removed class sendbird__offline from body');\n } catch (e) {\n //\n }\n }\n }, [isOnline]);\n\n return isOnline;\n}\n\nexport default useConnectionStatus;\n","export const LOG_LEVELS = {\n DEBUG: 'debug',\n WARNING: 'warning',\n ERROR: 'error',\n INFO: 'info',\n ALL: 'all',\n};\n\nconst colorLog = (level) => {\n switch (level) {\n case LOG_LEVELS.WARNING:\n return ('color: Orange');\n case LOG_LEVELS.ERROR:\n return ('color: Red');\n default:\n return ('color: Gray');\n }\n};\n\nexport const printLog = ({\n level,\n title,\n description = '',\n}) => {\n // eslint-disable-next-line no-console\n console.log(\n `%c SendbirdUIKit | ${level} | ${new Date().toISOString()} | ${title} ${description && '|'}`, colorLog(level),\n description,\n );\n};\n\nexport const getDefaultLogger = () => ({\n info: () => {},\n error: () => {},\n warning: () => {},\n});\n\nexport const LoggerFactory = (lvl, customInterface) => {\n const logInterface = customInterface || printLog;\n const lvlArray = Array.isArray(lvl) ? lvl : [lvl];\n\n const applyLog = (lgLvl) => (title, description) => logInterface({\n level: lgLvl,\n title,\n description,\n });\n\n const logger = lvlArray.reduce((accumulator, currentLvl) => {\n if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) {\n return ({\n ...accumulator,\n info: applyLog(LOG_LEVELS.INFO),\n error: applyLog(LOG_LEVELS.ERROR),\n warning: applyLog(LOG_LEVELS.WARNING),\n });\n }\n\n if (currentLvl === LOG_LEVELS.INFO) {\n return ({\n ...accumulator,\n info: applyLog(LOG_LEVELS.INFO),\n });\n }\n\n if (currentLvl === LOG_LEVELS.ERROR) {\n return ({\n ...accumulator,\n error: applyLog(LOG_LEVELS.ERROR),\n });\n }\n\n if (currentLvl === LOG_LEVELS.WARNING) {\n return ({\n ...accumulator,\n warning: applyLog(LOG_LEVELS.WARNING),\n });\n }\n\n return { ...accumulator };\n }, getDefaultLogger());\n return logger;\n};\n","// https://davidwalsh.name/pubsub-javascript\nexport default () => {\n const topics = {};\n const hOP = topics.hasOwnProperty;\n\n return {\n __getTopics: () => topics,\n subscribe: (topic, listener) => {\n // Create the topic's object if not yet created\n if (!hOP.call(topics, topic)) { topics[topic] = []; }\n\n // Add the listener to queue\n const index = topics[topic].push(listener) - 1;\n\n // Provide handle back for removal of topic\n return {\n remove: () => {\n delete topics[topic][index];\n },\n };\n },\n publish: (topic, info) => {\n // If the topic doesn't exist, or there's no listeners in queue, just leave\n if (!hOP.call(topics, topic)) { return; }\n\n // Cycle through topics queue, fire!\n topics[topic].forEach((item) => {\n item(info !== undefined ? info : {});\n });\n },\n };\n};\n","import { useEffect } from 'react';\n\nfunction useAppendDomNode(ids = [], rootSelector) {\n useEffect(() => {\n const root = document.querySelector(rootSelector);\n ids.forEach((id) => {\n const elem = document.createElement('div');\n elem.setAttribute('id', id);\n root.appendChild(elem);\n });\n return () => {\n ids.forEach((id) => {\n const target = document.getElementById(id);\n if (target) {\n root.removeChild(target);\n }\n });\n };\n }, []);\n}\n\nexport default useAppendDomNode;\n","const getStringSet = (lang = 'en') => {\n const stringSet = {\n en: {\n TRYING_TO_CONNECT: 'Trying to connect…',\n USER_PROFILE__MESSAGE: 'Message',\n USER_PROFILE__USER_ID: 'User ID',\n EDIT_PROFILE__TITLE: 'My profile',\n EDIT_PROFILE__IMAGE_LABEL: 'Profile image',\n EDIT_PROFILE__IMAGE_UPLOAD: 'Upload',\n EDIT_PROFILE__NICKNAME_LABEL: 'Nickname',\n EDIT_PROFILE__NICKNAME_PLACEHOLDER: 'Enter your nickname',\n EDIT_PROFILE__USERID_LABEL: 'User ID',\n EDIT_PROFILE__THEME_LABEL: 'Dark theme',\n CHANNEL_LIST__TITLE: 'Channels',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER: 'Enter message',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED: 'Chat is unavailable in this channel',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED: 'Chat is unavailable because you are being muted',\n CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE: 'new message(s) since',\n CHANNEL__MESSAGE_LIST__NOTIFICATION__ON: 'on',\n CHANNEL_SETTING__HEADER__TITLE: 'Channel information',\n CHANNEL_SETTING__PROFILE__EDIT: 'Edit',\n CHANNEL_SETTING__MEMBERS__TITLE: 'Members',\n CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS: 'All members',\n CHANNEL_SETTING__MEMBERS__INVITE_MEMBER: 'Invite users',\n CHANNEL_SETTING__LEAVE_CHANNEL__TITLE: 'Leave channel',\n CHANNEL_SETTING__OPERATORS__TITLE: 'Operators',\n CHANNEL_SETTING__OPERATORS__TITLE_ALL: 'All operators',\n CHANNEL_SETTING__OPERATORS__TITLE_ADD: 'Add operator',\n CHANNEL_SETTING__MUTED_MEMBERS__TITLE: 'Muted members',\n CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL: 'All muted members',\n CHANNEL_SETTING__BANNED_MEMBERS__TITLE: 'Banned members',\n CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL: 'All banned members',\n CHANNEL_SETTING__FREEZE_CHANNEL: 'Freeze Channel',\n BUTTON__CANCEL: 'Cancel',\n BUTTON__DELETE: 'Delete',\n BUTTON__SAVE: 'Save',\n BUTTON__CREATE: 'Create',\n BUTTON__INVITE: 'Invite',\n BUTTON__CLOSE: 'Close',\n BADGE__OVER: '+',\n MODAL__DELETE_MESSAGE__TITLE: 'Delete this message?',\n MODAL__CHANNEL_INFORMATION__TITLE: 'Edit channel information',\n MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE: 'Channel image',\n MODAL__CHANNEL_INFORMATION__UPLOAD: 'Upload',\n MODAL__CHANNEL_INFORMATION__CHANNEL_NAME: 'Channel name',\n MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER: 'Enter name',\n MODAL__INVITE_MEMBER__TITLE: 'Invite member',\n MODAL__INVITE_MEMBER__SELECTEC: 'selected',\n MODAL__CREATE_CHANNEL__TITLE: 'New channel',\n MODAL__CREATE_CHANNEL__SELECTED: 'selected',\n MODAL__USER_LIST__TITLE: 'members',\n TYPING_INDICATOR__IS_TYPING: 'is typing...',\n TYPING_INDICATOR__AND: 'and',\n TYPING_INDICATOR__ARE_TYPING: 'are typing...',\n TYPING_INDICATOR__MULTIPLE_TYPING: 'Several people are typing...',\n MESSAGE_STATUS__SENDING_FAILED: 'Couldn\\'t send message.',\n MESSAGE_STATUS__TRY_AGAIN: 'Try again',\n MESSAGE_STATUS__OR: 'or',\n MESSAGE_STATUS__DELETE: 'delete',\n PLACE_HOLDER__NO_CHANNEL: 'No channels',\n CHANNEL_FROZEN: 'Channel frozen',\n MUTED_PL: 'Channel frozen',\n PLACE_HOLDER__WRONG: 'Something went wrong',\n PLACE_HOLDER__RETRY_TO_CONNECT: 'Retry',\n NO_TITLE: 'No title',\n NO_NAME: '(No name)',\n NO_MEMBERS: '(No members)',\n TOOLTIP__AND_YOU: ', and you',\n TOOLTIP__YOU: 'you',\n TOOLTIP__UNKOWN_USER: '(no name)',\n UNKNOWN__UNKNOWN_MESSAGE_TYPE: '(Unknown message type)',\n UNKNOWN__CANNOT_READ_MESSAGE: 'Cannot read this message.',\n MESSAGE_EDITED: '(edited)',\n },\n };\n return stringSet[lang];\n};\n\nexport default getStringSet;\n","import React from 'react';\n\nimport getStringSet from '../ui/Label/stringSet';\n\nconst LocalizationContext = React.createContext({\n stringSet: getStringSet('en'),\n});\n\ninterface LocalizationProviderProps {\n stringSet: Record;\n children: React.Component;\n}\n\nconst LocalizationProvider = (props: LocalizationProviderProps): React.ReactNode => {\n const { children } = props;\n return (\n \n {children}\n \n );\n};\n\nexport { LocalizationContext, LocalizationProvider };\n","import './index.scss';\n\nimport React, { useEffect, useReducer, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SendbirdSdkContext } from './SendbirdSdkContext';\nimport { handleConnection } from './dux/sdk/thunks';\n\nimport useTheme from './hooks/useTheme';\n\nimport sdkReducers from './dux/sdk/reducers';\nimport userReducers from './dux/user/reducers';\nimport sdkInitialState from './dux/sdk/initialState';\nimport userInitialState from './dux/user/initialState';\n\nimport useOnlineStatus from './hooks/useOnlineStatus';\n\nimport { LoggerFactory } from './Logger';\nimport pubSubFactory from './pubSub/index';\nimport useAppendDomNode from '../hooks/useAppendDomNode';\n\nimport { LocalizationProvider } from './LocalizationContext';\nimport getStringSet from '../ui/Label/stringSet';\n\nexport default function Sendbird(props) {\n const {\n userId,\n appId,\n accessToken,\n children,\n disableUserProfile,\n renderUserProfile,\n allowProfileEdit,\n theme,\n nickname,\n profileUrl,\n userListQuery,\n config = {},\n colorSet,\n stringSet,\n } = props;\n\n const {\n logLevel = '',\n } = config;\n const [logger, setLogger] = useState(LoggerFactory(logLevel));\n const [pubSub, setPubSub] = useState();\n const [sdkStore, sdkDispatcher] = useReducer(sdkReducers, sdkInitialState);\n const [userStore, userDispatcher] = useReducer(userReducers, userInitialState);\n\n useTheme(colorSet);\n\n useEffect(() => {\n setPubSub(pubSubFactory());\n }, []);\n\n useEffect(() => {\n logger.info('App Init');\n // dispatch action\n handleConnection({\n userId,\n appId,\n accessToken,\n sdkStore,\n nickname,\n profileUrl,\n sdk: sdkStore.sdk,\n logger,\n }, {\n sdkDispatcher,\n userDispatcher,\n });\n }, [userId, appId, accessToken]);\n\n // to create a pubsub to communicate between parent and child\n useEffect(() => {\n setLogger(LoggerFactory(logLevel));\n }, [logLevel]);\n\n useAppendDomNode([\n 'sendbird-modal-root',\n 'sendbird-dropdown-portal',\n 'sendbird-emoji-list-portal',\n ], 'body');\n\n // should move to reducer\n const [currenttheme, setCurrenttheme] = useState(theme);\n useEffect(() => {\n setCurrenttheme(theme);\n }, [theme]);\n // add-remove theme from body\n useEffect(() => {\n logger.info('Setup theme', `Theme: ${currenttheme}`);\n try {\n const body = document.querySelector('body');\n body.classList.add(`sendbird-theme--${currenttheme || 'light'}`);\n logger.info('Finish setup theme');\n // eslint-disable-next-line no-empty\n } catch (e) {\n logger.warning('Setup theme failed', `${e}`);\n }\n return () => {\n try {\n const body = document.querySelector('body');\n body.classList.remove('sendbird-theme--light');\n body.classList.remove('sendbird-theme--dark');\n // eslint-disable-next-line no-empty\n } catch { }\n };\n }, [currenttheme]);\n\n const isOnline = useOnlineStatus(sdkStore.sdk, logger);\n\n const localeStringSet = React.useMemo(() => {\n if (!stringSet) {\n return getStringSet('en');\n }\n return {\n ...getStringSet('en'),\n ...stringSet,\n };\n }, [stringSet]);\n\n return (\n {\n handleConnection({\n userId,\n appId,\n accessToken,\n sdkStore,\n nickname,\n profileUrl,\n logger,\n sdk: sdkStore.sdk,\n }, {\n sdkDispatcher,\n userDispatcher,\n });\n },\n },\n config: {\n disableUserProfile,\n renderUserProfile,\n allowProfileEdit,\n isOnline,\n userId,\n appId,\n accessToken,\n theme: currenttheme,\n setCurrenttheme,\n userListQuery,\n logger,\n pubSub,\n },\n }}\n >\n \n {children}\n \n \n );\n}\n\nSendbird.propTypes = {\n userId: PropTypes.string.isRequired,\n appId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n theme: PropTypes.string,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n userListQuery: PropTypes.func,\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }),\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n};\n\nSendbird.defaultProps = {\n accessToken: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n disableUserProfile: false,\n renderUserProfile: null,\n allowProfileEdit: false,\n userListQuery: null,\n config: {},\n stringSet: null,\n colorSet: null,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst UserProfileContext = React.createContext({\n disableUserProfile: true,\n renderUserProfile: null,\n});\n\nconst UserProfileProvider = (props) => {\n const { children, className } = props;\n return (\n \n
\n {children}\n
\n
\n );\n};\n\nUserProfileProvider.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n disableUserProfile: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n renderUserProfile: PropTypes.func,\n className: PropTypes.string,\n};\n\nUserProfileProvider.defaultProps = {\n className: null,\n disableUserProfile: false,\n renderUserProfile: null,\n};\n\nexport { UserProfileContext, UserProfileProvider };\n","export const RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\nexport const UNLOAD_CHANNELS = 'UNLOAD_CHANNELS';\nexport const SET_CHANNEL_LOADING = 'SET_CHANNEL_LOADING';\nexport const LEAVE_CHANNEL_SUCCESS = 'LEAVE_CHANNEL_SUCCESS';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\n\nexport const SHOW_CHANNEL_SETTINGS = 'SHOW_CHANNEL_SETTINGS';\nexport const HIDE_CHANNEL_SETTINGS = 'HIDE_CHANNEL_SETTINGS';\n\nexport const FETCH_CHANNELS_START = 'FETCH_CHANNELS_START';\nexport const FETCH_CHANNELS_SUCCESS = 'FETCH_CHANNELS_SUCCESS';\nexport const FETCH_CHANNELS_FAILURE = 'FETCH_CHANNELS_FAILURE';\n\nexport const INIT_CHANNELS_START = 'INIT_CHANNELS_START';\nexport const INIT_CHANNELS_SUCCESS = 'INIT_CHANNELS_SUCCESS';\nexport const INIT_CHANNELS_FAILURE = 'INIT_CHANNELS_FAILURE';\n\nexport const INVITE_MEMBERS_SUCESS = 'INVITE_MEMBERS_SUCESS';\n\nexport const ON_USER_JOINED = 'ON_USER_JOINED';\nexport const ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED';\nexport const ON_LAST_MESSAGE_UPDATED = 'ON_LAST_MESSAGE_UPDATED';\nexport const ON_USER_LEFT = 'ON_USER_LEFT';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_CHANNEL_ARCHIVED = 'ON_CHANNEL_ARCHIVED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\n\nexport const ON_READ_RECEIPT_UPDATED = 'ON_READ_RECEIPT_UPDATED';\nexport const ON_DELIVERY_RECEIPT_UPDATED = 'ON_DELIVERY_RECEIPT_UPDATED';\n\nexport const CHANNEL_REPLACED_TO_TOP = 'CHANNEL_REPLACED_TO_TOP';\n","export default {\n // we might not need this initialized state -> should remove\n initialized: false,\n loading: false,\n allChannels: [],\n currentChannel: null,\n showSettings: false,\n};\n","import * as actions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actions.INIT_CHANNELS_START:\n return {\n ...state,\n loading: true,\n };\n case actions.RESET_CHANNEL_LIST:\n return initialState;\n case actions.INIT_CHANNELS_SUCCESS:\n return {\n ...state,\n initialized: true,\n loading: false,\n allChannels: action.payload,\n currentChannel: (action.payload && action.payload.length && action.payload.length > 0)\n ? action.payload[0].url\n : null,\n };\n case actions.FETCH_CHANNELS_SUCCESS: {\n const currentChannels = state.allChannels.map((c) => c.url);\n const filteredChannels = action.payload.filter(\n ({ url }) => !(currentChannels.find((c) => c === url)),\n );\n return {\n ...state,\n allChannels: [\n ...state.allChannels,\n ...filteredChannels,\n ],\n };\n }\n case actions.CREATE_CHANNEL: {\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter(\n (channel) => channel.url !== action.payload.url,\n )],\n currentChannel: action.payload.url,\n };\n }\n case actions.ON_CHANNEL_ARCHIVED:\n case actions.LEAVE_CHANNEL_SUCCESS:\n case actions.ON_CHANNEL_DELETED: {\n const channelUrl = action.payload;\n const leftCurrentChannel = (state.currentChannel === channelUrl);\n const newAllChannels = state.allChannels.filter(({ url }) => url !== channelUrl);\n const currentChannel = leftCurrentChannel\n ? (() => (\n (newAllChannels.length > 0)\n ? newAllChannels[0].url\n : ''\n ))()\n : state.currentChannel;\n\n return {\n ...state,\n currentChannel,\n allChannels: newAllChannels,\n };\n }\n case actions.ON_USER_LEFT: {\n const { channel, isMe } = action.payload;\n const { url } = channel;\n if (isMe) {\n const leftCurrentChannel = (url === state.currentChannel);\n const newAllChannels = state.allChannels.filter((c) => (c.url !== url));\n const currentChannel = leftCurrentChannel\n ? (() => (\n (newAllChannels.length > 0)\n ? newAllChannels[0].url\n : ''\n ))()\n : state.currentChannel;\n\n return {\n ...state,\n currentChannel,\n allChannels: newAllChannels,\n };\n }\n // other user left\n const newAllChannels = state.allChannels.map((c) => ((c.url === url) ? channel : c));\n return {\n ...state,\n allChannels: newAllChannels,\n };\n }\n case actions.ON_USER_JOINED:\n case actions.ON_CHANNEL_CHANGED:\n case actions.ON_READ_RECEIPT_UPDATED:\n case actions.ON_DELIVERY_RECEIPT_UPDATED: {\n const { allChannels = [] } = state;\n const { unreadMessageCount } = action.payload;\n const channel = action.payload;\n if (!channel.lastMessage) {\n return state;\n }\n // if its only an unread message count change, dont push to top\n if (unreadMessageCount === 0) {\n const currentChannel = allChannels.find(({ url }) => url === channel.url);\n const currentUnReadCount = currentChannel && currentChannel.unreadMessageCount;\n if (currentUnReadCount === 0) {\n return {\n ...state,\n allChannels: allChannels.map((c) => {\n if (c.url === channel.url) {\n return channel;\n }\n return c;\n }),\n };\n }\n }\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter(({ url }) => url !== action.payload.url),\n ],\n };\n }\n case actions.SET_CURRENT_CHANNEL:\n return {\n ...state,\n currentChannel: action.payload,\n };\n case actions.SHOW_CHANNEL_SETTINGS:\n return {\n ...state,\n showSettings: true,\n };\n case actions.HIDE_CHANNEL_SETTINGS:\n return {\n ...state,\n showSettings: false,\n };\n case actions.ON_LAST_MESSAGE_UPDATED:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n return action.payload;\n }\n return channel;\n }),\n };\n case actions.ON_CHANNEL_FROZEN:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n // eslint-disable-next-line no-param-reassign\n channel.isFrozen = true;\n return channel;\n }\n return channel;\n }),\n };\n case actions.ON_CHANNEL_UNFROZEN:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n // eslint-disable-next-line no-param-reassign\n channel.isFrozen = false;\n return channel;\n }\n return channel;\n }),\n };\n case actions.CHANNEL_REPLACED_TO_TOP:\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter((channel) => channel.url !== action.payload.url),\n ],\n };\n default:\n return state;\n }\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\n/*\n ImageRenderer displays image with url or source\n it checks if the source exist with img tag first\n if it exists onLoad is called, if not onError is called\n and those properties switch img tag to real purposing element\n*/\n\nexport default function ImageRenderer({\n alt,\n url,\n width,\n height,\n className,\n defaultComponent,\n circle,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-image-renderer');\n const [realElement, setRealElement] = useState(null);\n useEffect(() => {\n setRealElement(null);\n }, [url]);\n return (\n realElement || (\n {\n setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent);\n }}\n onLoad={() => {\n setRealElement((\n \n ));\n }}\n />\n )\n );\n}\n\nImageRenderer.propTypes = {\n alt: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]).isRequired,\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n defaultComponent: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n circle: PropTypes.bool,\n};\nImageRenderer.defaultProps = {\n alt: '',\n className: '',\n circle: false,\n};\n","export default {\n ADD: 'ADD',\n ATTACH: 'ATTACH',\n ARROW_LEFT: 'ARROW_LEFT',\n AVATAR_DARK: 'AVATAR_DARK',\n AVATAR_LIGHT: 'AVATAR_LIGHT',\n BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK',\n BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT',\n BROADCAST_DARK: 'BROADCAST_DARK',\n BROADCAST_LIGHT: 'BROADCAST_LIGHT',\n BROADCAST: 'BROADCAST',\n FROZEN_DARK: 'FROZEN_DARK',\n FROZEN_LIGHT: 'FROZEN_LIGHT',\n CAMERA: 'CAMERA',\n MORE: 'MORE',\n MUTE: 'MUTE',\n NO_THUMBNAIL: 'NO_THUMBNAIL',\n CHECKBOX: 'CHECKBOX',\n CHECKBOX_OFF: 'CHECKBOX_OFF',\n CLOSE: 'CLOSE',\n COPY: 'COPY',\n CHAT: 'CHAT',\n CREATE: 'CREATE',\n DELETE: 'DELETE',\n DISCONNECTED: 'DISCONNECTED',\n DUMMY: 'DUMMY',\n EDIT: 'EDIT',\n ERROR: 'ERROR',\n ERROR_FILLED: 'ERROR_FILLED',\n EMOJI_FAILED: 'EMOJI_FAILED',\n EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD',\n EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY',\n DELIVERED: 'DELIVERED',\n DOCUMENT: 'DOCUMENT',\n DOWNLOAD: 'DOWNLOAD',\n FILE_AUDIO: 'FILE_AUDIO',\n FILE_DOCUMENT: 'FILE_DOCUMENT',\n GIF: 'GIF',\n INFO: 'INFO',\n LEAVE: 'LEAVE',\n MEMBERS: 'MEMBERS',\n NOTIFICATIONS: 'NOTIFICATIONS',\n PHOTO: 'PHOTO',\n PLAY: 'PLAY',\n PLUS: 'PLUS',\n READ: 'READ',\n REFRESH: 'REFRESH',\n SEND: 'SEND',\n SENT: 'SENT',\n SUPER_GROUP: 'SUPER_GROUP',\n SHEVRON: 'SHEVRON',\n SHEVRON_DOWN: 'SHEVRON_DOWN',\n SPINNER: 'SPINNER',\n SPINNER_LARGE: 'SPINNER_LARGE',\n USER: 'USER',\n ICON_OPERATOR: 'ICON_OPERATOR',\n ICON_BANNED: 'ICON_BANNED',\n ICON_FREEZE: 'ICON_FREEZE',\n ICON_MUTED: 'ICON_MUTED',\n ICON_MUTED_FG: 'ICON_MUTED_FG',\n TOGGLE_ON: 'TOGGLE_ON',\n TOGGLE_OFF: 'TOGGLE_OFF',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Type from './type';\n\nimport IconAdd from '../../svgs/icon-add.svg';\nimport IconAttach from '../../svgs/icon-attach.svg';\nimport IconArrowLeft from '../../svgs/icon-arrow-left.svg';\nimport IconAvatarDark from '../../svgs/icon-avatar-dark.svg';\nimport IconAvatarLight from '../../svgs/icon-avatar-light.svg';\nimport BroadcastLargeDark from '../../svgs/icon-broadcast-lrg-dark.svg';\nimport BroadcastLargeLight from '../../svgs/icon-broadcast-lrg-light.svg';\nimport BroadcastDark from '../../svgs/icon-broadcast-dark.svg';\nimport BroadcastLight from '../../svgs/icon-broadcast-light.svg';\nimport Broadcast from '../../svgs/icon-broadcast.svg';\nimport FrozenDark from '../../svgs/frozen-dark.svg';\nimport FrozenLight from '../../svgs/frozen-light.svg';\nimport IconCamera from '../../svgs/icon-camera.svg';\nimport IconMore from '../../svgs/icon-more.svg';\nimport IconMute from '../../svgs/icon-mute.svg';\nimport IconNoThumbnail from '../../svgs/icon-no-thumbnail.svg';\nimport IconCheckbox from '../../svgs/icon-checkbox.svg';\nimport IconCheckboxOff from '../../svgs/icon-checkbox-off.svg';\nimport IconClose from '../../svgs/icon-close.svg';\nimport IconCopy from '../../svgs/icon-copy.svg';\nimport IconChat from '../../svgs/icon-chat.svg';\nimport IconSupergroup from '../../svgs/icon-supergroup.svg';\nimport IconCreate from '../../svgs/icon-create.svg';\nimport IconDelete from '../../svgs/icon-delete.svg';\nimport IconDummy from '../../svgs/icon-dummy.svg';\nimport IconEdit from '../../svgs/icon-edit.svg';\nimport IconError from '../../svgs/icon-error.svg';\nimport IconErrorFilled from '../../svgs/icon-error-filled.svg';\nimport IconEmojiFailed from '../../svgs/emoji-fail.svg';\nimport IconEmojiReactionsAdd from '../../svgs/icon-reactions-add.svg';\nimport IconEmojiReactionsAddGray from '../../svgs/icon-emoji-reactions-add.svg';\nimport IconDelivered from '../../svgs/icon-delivered.svg';\nimport IconDisconnected from '../../svgs/icon-disconnected.svg';\nimport IconDocument from '../../svgs/icon-document.svg';\nimport IconDownload from '../../svgs/icon-download.svg';\nimport IconFileAudio from '../../svgs/icon-file-audio.svg';\nimport IconFileDocument from '../../svgs/icon-file-document.svg';\nimport IconGif from '../../svgs/icon-gif.svg';\nimport IconInfo from '../../svgs/icon-info.svg';\nimport IconLeave from '../../svgs/icon-leave.svg';\nimport IconMembers from '../../svgs/icon-members.svg';\nimport IconNotifications from '../../svgs/icon-notifications.svg';\nimport IconPhoto from '../../svgs/icon-photo.svg';\nimport IconPlay from '../../svgs/icon-play.svg';\nimport IconPlus from '../../svgs/icon-plus.svg';\nimport IconRead from '../../svgs/icon-read.svg';\nimport IconRefresh from '../../svgs/icon-refresh.svg';\nimport IconSend from '../../svgs/icon-send.svg';\nimport IconSent from '../../svgs/icon-sent.svg';\nimport IconShevron from '../../svgs/icon-shevron.svg';\nimport IconShevronDown from '../../svgs/icon-shevron-down.svg';\nimport IconSpinner from '../../svgs/icon-spinner-small.svg';\nimport IconSpinnerLarge from '../../svgs/icon-spinner-large.svg';\nimport IconUser from '../../svgs/icon-user.svg';\nimport IconOperator from '../../svgs/icon-operator.svg';\nimport IconBanned from '../../svgs/icon-banned.svg';\nimport IconMuted from '../../svgs/icon-muted.svg';\nimport IconMutedFg from '../../svgs/icon-muted-foreground.svg';\nimport IconFreeze from '../../svgs/icon-freeze.svg';\nimport ToggleOn from '../../svgs/icon-toggleon.svg';\nimport ToggleOff from '../../svgs/icon-toggleoff.svg';\n\nconst Colors = {\n DEFAULT: 'DEFAULT',\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n CONTENT: 'CONTENT',\n CONTENT_INVERSE: 'CONTENT_INVERSE',\n WHITE: 'WHITE',\n SENT: 'SENT',\n READ: 'READ',\n ON_BACKGROUND_3: 'ON_BACKGROUND_3',\n};\n\nfunction changeColorToClassName(color) {\n switch (color) {\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.SECONDARY: return 'sendbird-color--secondary';\n case Colors.CONTENT: return 'sendbird-color--content';\n case Colors.CONTENT_INVERSE: return 'sendbird-color--content-inverse';\n case Colors.WHITE: return 'sendbird-color--white';\n case Colors.SENT: return 'sendbird-color--sent';\n case Colors.READ: return 'sendbird-color--read';\n case Colors.ON_BACKGROUND_3: return 'sendbird-color--on-background';\n default: return '';\n }\n}\n\nfunction changeTypeToIconComponent(type) {\n switch (type) {\n case Type.ADD: return ;\n case Type.ARROW_LEFT: return ;\n case Type.CAMERA: return ;\n case Type.ATTACH: return ;\n case Type.AVATAR_DARK: return ;\n case Type.AVATAR_LIGHT: return ;\n case Type.BROADCAST_LARGE_DARK: return ;\n case Type.BROADCAST_LARGE_LIGHT: return ;\n case Type.BROADCAST_DARK: return ;\n case Type.BROADCAST_LIGHT: return ;\n case Type.BROADCAST: return ;\n case Type.FROZEN_DARK: return ;\n case Type.FROZEN_LIGHT: return ;\n case Type.MORE: return ;\n case Type.MUTE: return ;\n case Type.NO_THUMBNAIL: return ;\n case Type.CHECKBOX: return ;\n case Type.CHECKBOX_OFF: return ;\n case Type.CLOSE: return ;\n case Type.COPY: return ;\n case Type.CHAT: return ;\n case Type.SUPER_GROUP: return ;\n case Type.CREATE: return ;\n case Type.DELETE: return ;\n case Type.DISCONNECTED: return ;\n case Type.DUMMY: return ;\n case Type.EDIT: return ;\n case Type.ERROR: return ;\n case Type.ERROR_FILLED: return ;\n case Type.EMOJI_FAILED: return ;\n case Type.EMOJI_REACTIONS_ADD: return ;\n case Type.EMOJI_REACTIONS_ADD_GRAY: return ;\n case Type.DELIVERED: return ;\n case Type.DOCUMENT: return ;\n case Type.DOWNLOAD: return ;\n case Type.FILE_AUDIO: return ;\n case Type.FILE_DOCUMENT: return ;\n case Type.GIF: return ;\n case Type.INFO: return ;\n case Type.LEAVE: return ;\n case Type.MEMBERS: return ;\n case Type.NOTIFICATIONS: return ;\n case Type.PHOTO: return ;\n case Type.PLAY: return ;\n case Type.PLUS: return ;\n case Type.READ: return ;\n case Type.REFRESH: return ;\n case Type.SEND: return ;\n case Type.SENT: return ;\n case Type.SHEVRON: return ;\n case Type.SHEVRON_DOWN: return ;\n case Type.SPINNER: return ;\n case Type.SPINNER_LARGE: return ;\n case Type.USER: return ;\n case Type.ICON_OPERATOR: return ;\n case Type.ICON_BANNED: return ;\n case Type.ICON_MUTED: return ;\n case Type.ICON_MUTED_FG: return ;\n case Type.ICON_FREEZE: return ;\n case Type.TOGGLE_ON: return ;\n case Type.TOGGLE_OFF: return ;\n default: return null;\n }\n}\n\nexport default function Icon({\n type,\n width,\n height,\n children,\n className,\n onClick,\n fillColor,\n}) {\n const iconStyle = {\n width: typeof width === 'string' ? width : `${width}px`,\n height: typeof height === 'string' ? height : `${height}px`,\n };\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {\n children || changeTypeToIconComponent(type)\n }\n
\n );\n}\n\nIcon.propTypes = {\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(Type)),\n PropTypes.string,\n ]).isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n onClick: PropTypes.func,\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n fillColor: PropTypes.oneOf(Object.keys(Colors)),\n};\n\nIcon.defaultProps = {\n onClick: () => { },\n width: 26,\n height: 26,\n children: null,\n className: '',\n fillColor: Colors.DEFAULT,\n};\n\nexport const IconTypes = Type;\nexport const IconColors = Colors;\n","import React, { ReactElement } from 'react';\n\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes } from '../Icon';\n\nimport './index.scss';\nimport { uuidv4 } from '../../utils/uuid';\n\nconst imageRendererClassName = 'sendbird-avatar-img';\n\ninterface DefaultComponentProps {\n width: string | number,\n height: string | number,\n}\n\nconst defaultComponent = (\n {\n width,\n height,\n }: DefaultComponentProps\n) => (): ReactElement => (\n document.querySelector('.sendbird-theme--dark')\n ? \n : \n);\n\ninterface AvatarInnerProps {\n height: string | number,\n width: string | number,\n src?: string | string[],\n alt?: string,\n}\n\nexport const AvatarInner = ({\n src = '',\n alt = '',\n height,\n width,\n}: AvatarInnerProps): ReactElement => {\n if (typeof src === 'string') {\n return (\n \n );\n }\n\n if (src && src.length) {\n if (src.length === 1) {\n return (\n \n );\n }\n\n if (src.length === 2) {\n return (\n
\n \n \n
\n );\n }\n\n if (src.length === 3) {\n return (\n <>\n
\n \n
\n
\n \n \n
\n \n );\n }\n\n return (\n
\n {\n src.slice(0, 4)\n .map((i) => (\n \n ))\n }\n
\n );\n }\n // default img\n return (\n \n );\n};\n\ninterface AvatarProps {\n height?: string | number,\n width?: string | number,\n src?: string | string[],\n alt?: string,\n onClick?(): void,\n className?: string | string[],\n}\n\nfunction Avatar(\n {\n src = '',\n alt = '',\n width = '56px',\n height = '56px',\n onClick,\n className = '',\n }: AvatarProps,\n ref: React.Ref,\n): ReactElement {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n \n
\n );\n}\n\nexport default React.forwardRef(Avatar);\n","import { SendbirdTypes } from \"../../types\";\n\nexport const DEFAULT_URL_PREFIX = 'https://static.sendbird.com/sample/cover/cover_';\n\nexport const getChannelAvatarSource = (channel: SendbirdTypes[\"GroupChannel\"], currentUserId: string): string | string[] => {\n if (channel && channel.coverUrl) {\n if (!(new RegExp(`^${DEFAULT_URL_PREFIX}`).test(channel.coverUrl))) {\n return channel.coverUrl;\n }\n }\n\n return channel && channel.members\n ? channel.members\n .filter((member) => member.userId !== currentUserId)\n .map(({ profileUrl }) => profileUrl)\n : [];\n};\n\n\nexport const useDefaultAvatar = (channel: SendbirdTypes[\"GroupChannel\"]): boolean => {\n if (channel && channel.coverUrl) {\n if (new RegExp(`^${DEFAULT_URL_PREFIX}`).test(channel.coverUrl)) {\n return true;\n }\n return false;\n }\n return true;\n}\n","import React, { useMemo } from 'react';\n\nimport { SendbirdTypes } from '../../types';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes } from '../Icon';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendbirdTypes[\"GroupChannel\"];\n userId: string;\n theme: string;\n height: number,\n width: number,\n}\n\nfunction ChannelAvatar({\n channel,\n userId,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { isBroadcast } = channel;\n const memoizedAvatar = useMemo(() => (\n isBroadcast\n ? (\n utils.useDefaultAvatar(channel)\n ? (\n theme === 'dark'\n ? (\n \n )\n : (\n \n )\n )\n : (\n \n )\n )\n : (\n \n )\n ),[channel.members, channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n","export const Typography = {\n H_1: 'H_1',\n H_2: 'H_2',\n SUBTITLE_1: 'SUBTITLE_1',\n SUBTITLE_2: 'SUBTITLE_2',\n BODY_1: 'BODY_1',\n BODY_2: 'BODY_2',\n BUTTON_1: 'BUTTON_1',\n BUTTON_2: 'BUTTON_2',\n CAPTION_1: 'CAPTION_1',\n CAPTION_2: 'CAPTION_2',\n CAPTION_3: 'CAPTION_3',\n};\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONCONTENT_1: 'ONCONTENT_1',\n ONCONTENT_2: 'ONCONTENT_2',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n","import { Typography, Colors } from './types';\n\nexport function changeTypographyToClassName(type) {\n switch (type) {\n case Typography.H_1: return 'sendbird-label--h-1';\n case Typography.H_2: return 'sendbird-label--h-2';\n case Typography.SUBTITLE_1: return 'sendbird-label--subtitle-1';\n case Typography.SUBTITLE_2: return 'sendbird-label--subtitle-2';\n case Typography.BODY_1: return 'sendbird-label--body-1';\n case Typography.BODY_2: return 'sendbird-label--body-2';\n case Typography.BUTTON_1: return 'sendbird-label--button-1';\n case Typography.BUTTON_2: return 'sendbird-label--button-2';\n case Typography.CAPTION_1: return 'sendbird-label--caption-1';\n case Typography.CAPTION_2: return 'sendbird-label--caption-2';\n case Typography.CAPTION_3: return 'sendbird-label--caption-3';\n default: return null;\n }\n}\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-label--color-onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-label--color-onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-label--color-onbackground-3';\n case Colors.ONCONTENT_1: return 'sendbird-label--color-oncontent-1';\n case Colors.ONCONTENT_2: return 'sendbird-label--color-oncontent-2';\n case Colors.PRIMARY: return 'sendbird-label--color-primary';\n case Colors.ERROR: return 'sendbird-label--color-error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { Typography, Colors } from './types';\nimport { changeTypographyToClassName, changeColorToClassName } from './utils';\nimport getStringSet from './stringSet';\n\nconst CLASS_NAME = 'sendbird-label';\n\nexport default function Label({\n type,\n color,\n children,\n className,\n}) {\n const injectingClassName = (Array.isArray(className))\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n if (type) {\n injectingClassName.push(changeTypographyToClassName(type));\n }\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n\n return (\n \n {children}\n \n );\n}\n\nLabel.propTypes = {\n type: PropTypes.oneOf([...Object.keys(Typography), '']),\n color: PropTypes.oneOf([...Object.keys(Colors), '']),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.element,\n PropTypes.any,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nLabel.defaultProps = {\n type: '',\n color: '',\n className: [],\n children: null,\n};\n\nconst LabelTypography = Typography;\nconst LabelColors = Colors;\nconst LabelStringSet = getStringSet('en');\nexport { LabelTypography, LabelColors, LabelStringSet };\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function Badge({\n count,\n maxLevel,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const maximumNumber = parseInt('9'.repeat((maxLevel > 6) ? 6 : maxLevel), 10);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n
\n \n
\n
\n );\n}\n\nBadge.propTypes = {\n count: PropTypes.number.isRequired,\n maxLevel: PropTypes.number,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nBadge.defaultProps = {\n maxLevel: 2,\n className: [],\n};\n","const MessageStatusType = {\n PENDING: 'PENDING',\n SENT: 'SENT',\n DELIVERED: 'DELIVERED',\n READ: 'READ',\n FAILED: 'FAILED',\n};\n\nexport default MessageStatusType;\n","import MessageStatusType from '../MessageStatus/type';\n\nexport const truncate = (fullStr, strLen) => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n truncate,\n getIsSentFromStatus,\n};\n","import isToday from 'date-fns/isToday';\nimport format from 'date-fns/format';\nimport isYesterday from 'date-fns/isYesterday';\n\nimport { truncate } from '../FileMessage/utils';\nimport { LabelStringSet } from '../Label';\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n\nexport const getLastMessageCreatedAt = (channel) => {\n if (!channel || !channel.lastMessage) {\n return '';\n }\n const date = channel.lastMessage.createdAt;\n if (isToday(date)) {\n return format(date, 'p');\n }\n\n if (isYesterday(date)) {\n return 'Yesterday';\n }\n\n return format(date, 'MMM dd');\n};\n\nexport const getTotalMembers = (channel) => (\n channel && channel.memberCount\n ? channel.memberCount\n : 0\n);\n\nconst getPrettyLastMessage = (message = {}) => {\n const MAXLEN = 30;\n const { messageType, name } = message;\n if (messageType === 'file') {\n return truncate(name, MAXLEN);\n }\n return message.message;\n};\n\nexport const getLastMessage = (channel) => (\n channel && channel.lastMessage\n ? getPrettyLastMessage(channel.lastMessage)\n : ''\n);\n\nexport const getChannelUnreadMessageCount = (channel) => (\n (channel && channel.unreadMessageCount)\n ? channel.unreadMessageCount\n : 0\n);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ChannelAvatar from '../ChannelAvatar/index';\nimport Badge from '../Badge';\nimport Icon, { IconTypes } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport * as utils from './utils';\n\nexport default function ChannelPreview({\n channel,\n isActive,\n ChannelAction,\n theme,\n onClick,\n tabIndex,\n currentUser,\n}) {\n const {\n userId,\n } = currentUser;\n const { isBroadcast, isFrozen } = channel;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n \n
\n
\n {\n isBroadcast\n && (\n
\n \n
\n )\n }\n \n {utils.getChannelTitle(channel, userId, stringSet)}\n \n \n {utils.getTotalMembers(channel)}\n \n {\n isFrozen\n && (\n
\n \n
\n )\n }\n
\n \n {utils.getLastMessageCreatedAt(channel)}\n \n
\n\n
\n \n {utils.getLastMessage(channel)}\n \n
\n {\n utils.getChannelUnreadMessageCount(channel)\n ? \n : null\n }\n
\n
\n \n \n {ChannelAction}\n \n \n );\n}\n\nChannelPreview.propTypes = {\n isActive: PropTypes.bool,\n theme: PropTypes.string,\n channel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n isBroadcast: PropTypes.bool,\n isFrozen: PropTypes.bool,\n }),\n ChannelAction: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n tabIndex: PropTypes.number,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n};\n\nChannelPreview.defaultProps = {\n channel: {},\n isActive: false,\n theme: 'light',\n onClick: () => { },\n tabIndex: 0,\n currentUser: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-iconbutton';\n\nconst IconButton = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n disabled = false,\n type,\n height,\n width,\n onClick,\n onBlur,\n } = props;\n\n const [pressed, setPressed] = useState('');\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n // eslint-disable-next-line react/button-has-type\n {\n if (disabled) { return; }\n setPressed('sendbird-iconbutton--pressed');\n onClick(e);\n }}\n onBlur={(e) => {\n setPressed('');\n onBlur(e);\n }}\n >\n \n {children}\n \n \n );\n});\n\nIconButton.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n};\n\nIconButton.defaultProps = {\n height: '56px',\n width: '56px',\n className: '',\n type: 'button',\n disabled: false,\n onClick: () => { },\n onBlur: () => { },\n};\n\nexport default IconButton;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport IconButton from '../IconButton';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\n\nexport default function ChannelHeader({\n user,\n iconButton,\n onEdit,\n renderHeader,\n allowProfileEdit,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n renderHeader\n ? renderHeader()\n : (\n \n
\n \n
\n
\n \n {user.nickname || stringSet.NO_NAME}\n \n \n {user.userId}\n \n
\n \n )\n }\n
\n {iconButton}\n
\n \n );\n}\n\nChannelHeader.propTypes = {\n user: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n userId: PropTypes.string,\n }),\n renderHeader: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n onEdit: PropTypes.func.isRequired,\n iconButton: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.instanceOf(IconButton),\n ]),\n};\n\nChannelHeader.defaultProps = {\n user: {},\n renderHeader: null,\n allowProfileEdit: false,\n iconButton: null,\n};\n","// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n
\n);\n","export const Type = {\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n DANGER: 'DANGER',\n DISABLED: 'DISABLED',\n};\n\nexport const Size = {\n BIG: 'BIG',\n SMALL: 'SMALL',\n};\n","import { Type, Size } from './type';\n\nexport function changeTypeToClassName(type) {\n switch (type) {\n case Type.PRIMARY: return 'sendbird-button--primary';\n case Type.SECONDARY: return 'sendbird-button--secondary';\n case Type.DANGER: return 'sendbird-button--danger';\n case Type.DISABLED: return 'sendbird-button--disabled';\n default: return null;\n }\n}\n\nexport function changeSizeToClassName(size) {\n switch (size) {\n case Size.BIG: return 'sendbird-button--big';\n case Size.SMALL: return 'sendbird-button--small';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { Type, Size } from './type';\nimport { changeTypeToClassName, changeSizeToClassName } from './utils';\n\nexport default function Button({\n type,\n size,\n children,\n disabled,\n onClick,\n className,\n}) {\n const injectingClassNames = [\n 'sendbird-button',\n (disabled ? 'sendbird-button__disabled' : ''),\n changeTypeToClassName(type),\n changeSizeToClassName(size),\n ...((Array.isArray(className)) ? className : [className]),\n ].join(' ');\n\n return (\n \n );\n}\n\nButton.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n disabled: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(Type)),\n size: PropTypes.oneOf(Object.keys(Size)),\n onClick: PropTypes.func,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nButton.defaultProps = {\n children: 'Button',\n type: Type.PRIMARY,\n disabled: false,\n size: Size.BIG,\n onClick: () => { },\n className: '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport const ModalHeader = ({ titleText }) => (\n
\n \n
\n);\nModalHeader.propTypes = {\n titleText: PropTypes.string.isRequired,\n};\n\nexport const ModalBody = ({ children }) => (\n
{children}
\n);\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element.isRequired,\n PropTypes.arrayOf(PropTypes.element.isRequired),\n ]),\n};\nModalBody.defaultProps = {\n children: null,\n};\n\nexport const ModalFooter = ({\n onSubmit,\n onCancel,\n disabled = false,\n submitText,\n type,\n}) => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n \n
\n );\n};\n\nModalFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModalFooter.defaultProps = {\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nfunction Modal(props) {\n const {\n children,\n onCancel,\n onSubmit,\n disabled,\n submitText,\n titleText,\n hideFooter,\n type,\n } = props;\n return createPortal((\n
\n
\n \n {children}\n {\n !hideFooter && (\n \n )\n }\n
\n \n \n \n
\n
\n
\n
\n ), document.getElementById(MODAL_ROOT));\n}\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n hideFooter: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModal.defaultProps = {\n children: null,\n hideFooter: false,\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nexport const InputLabel = ({ children }) => (\n \n {children}\n \n);\n\nInputLabel.propTypes = {\n children: PropTypes.string.isRequired,\n};\n\n// future: add validations? onChange? more props etc etc\nconst Input = React.forwardRef((props, ref) => {\n const {\n value,\n placeHolder,\n disabled,\n name,\n required,\n } = props;\n const [inputValue, setInputValue] = useState(value);\n return (\n
\n {\n setInputValue(e.target.value);\n }}\n />\n {(placeHolder && !inputValue) && (\n \n {placeHolder}\n \n )}\n
\n );\n});\n\nInput.propTypes = {\n value: PropTypes.string,\n placeHolder: PropTypes.string,\n name: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n};\n\nInput.defaultProps = {\n value: '',\n placeHolder: '',\n disabled: false,\n required: false,\n};\n\nexport default Input;\n","import './color.scss';\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONBACKGROUND_4: 'ONBACKGROUND_4',\n ONCONTENT_1: 'ONCONTENT_1',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-color--onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-color--onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-color--onbackground-3';\n case Colors.ONBACKGROUND_4: return 'sendbird-color--onbackground-4';\n case Colors.ONCONTENT_1: return 'sendbird-color--oncontent-1';\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.ERROR: return 'sendbird-color--error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\n\nexport default function TextButton({\n color,\n children,\n disabled,\n className,\n onClick,\n notUnderline,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nTextButton.propTypes = {\n color: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClick: PropTypes.func,\n notUnderline: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nTextButton.defaultProps = {\n color: Colors.ONBACKGROUND_1,\n className: '',\n onClick: () => { },\n notUnderline: false,\n disabled: false,\n};\n","import format from 'date-fns/format';\n\nexport const noop = () => {};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport default {\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n};\n","import React, {\n ReactElement,\n useRef,\n useState,\n useContext,\n} from 'react';\nimport './index.scss';\n\nimport Modal from '../Modal';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Input, { InputLabel } from '../Input';\nimport Avatar from '../Avatar';\nimport Icon, { IconTypes } from '../Icon';\nimport { Type as ButtonType } from '../Button/type';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport TextButton from '../TextButton';\nimport { SendbirdTypes } from '../../types';\nimport { noop } from '../../utils/utils';\n\ninterface Props {\n user: SendbirdTypes['User'];\n onCancel(): void;\n onSubmit(newFile: File, newNickname: string): void;\n onThemeChange?(theme: string): void;\n theme?: string;\n changeTheme?(theme: string): void;\n}\n\nexport function EditUserProfile({\n user,\n onCancel,\n onSubmit,\n onThemeChange = null,\n theme = 'light',\n changeTheme = noop,\n}: Props): ReactElement {\n const hiddenInputRef = useRef(null);\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n\n return (\n {\n if (user.nickname !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(inputRef.current.value, newFile);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.EDIT_PROFILE__IMAGE_LABEL}\n \n
\n \n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.EDIT_PROFILE__NICKNAME_LABEL}\n \n \n
\n
\n \n {/* userID */}\n {stringSet.EDIT_PROFILE__USERID_LABEL}\n \n \n
\n
\n \n {stringSet.EDIT_PROFILE__THEME_LABEL}\n \n
\n {\n theme === 'dark'\n ? (\n {\n changeTheme('light');\n if (onThemeChange && typeof onThemeChange === 'function') {\n onThemeChange('light');\n }\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n {\n changeTheme('dark');\n if (onThemeChange && typeof onThemeChange === 'function') {\n onThemeChange('dark');\n }\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nconst mapStoreToProps = (store) => {\n return {\n theme: store.config.theme,\n changeTheme: store.config.setCurrenttheme,\n };\n};\n\ninterface ConnectedEditUserProfileProps {\n user: SendbirdTypes['User'];\n onCancel(): void;\n onSubmit(newFile: File, newNickname: string): void;\n onThemeChange?(theme: string): void;\n}\n\nconst ConnectedEditUserProfile: (\n props: ConnectedEditUserProfileProps\n) => React.Component = withSendbirdContext(EditUserProfile, mapStoreToProps);\n\nexport default ConnectedEditUserProfile;\n","export function Types() {\n return {\n LOADING: 'LOADING',\n NO_CHANNELS: 'NO_CHANNELS',\n WRONG: 'WRONG',\n };\n}\n\nexport default Types();\n","import './muted-avatar-overlay.scss';\n\nimport React, { ReactElement } from 'react'\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\ninterface Props {\n height?: number;\n width?: number;\n}\n\nexport default function MutedAvatarOverlay(props: Props): ReactElement {\n const { height = 24, width = 24 } = props;\n return (\n \n
\n \n \n
\n
\n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nexport default function Checkbox({\n id,\n checked,\n onChange,\n}) {\n const [isChecked, setCheck] = useState(checked);\n return (\n \n );\n}\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nCheckbox.defaultProps = {\n id: 'sendbird-checkbox-input',\n checked: false,\n onChange: () => { },\n};\n","export const USER_UPDATED = 'USER_UPDATED';\nexport const SEND_MESSAGE_START = 'SEND_MESSAGE_START';\nexport const SEND_USER_MESSAGE = 'SEND_USER_MESSAGE';\nexport const SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE';\nexport const UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE';\nexport const DELETE_MESSAGE = 'DELETE_MESSAGE';\nexport const LEAVE_CHANNEL = 'LEAVE_CHANNEL';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\n","import * as topics from './pubSub/topics';\n\nexport const getSdk = (store) => {\n const { stores = {} } = store;\n const { sdkStore = {} } = stores;\n const { sdk } = sdkStore;\n return sdk;\n};\n\nexport const getPubSub = (store) => {\n const { config = {} } = store;\n const { pubSub } = config;\n return pubSub;\n};\n\n// SendBird disconnect. Invalidates currentUser\n// eslint-disable-next-line max-len\nexport const getConnect = (store) => (userId, accessToken) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n if (!accessToken) {\n sdk.connect(userId)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n } else {\n sdk.connect(userId, accessToken)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n }\n});\n\n// SendBird disconnect. Invalidates currentUser\nexport const getDisconnect = (store) => () => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.disconnect()\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\n// Using the updateCurrentUserInfo() method\n// you can update a user's nickname and profile image with a URL\n// eslint-disable-next-line max-len\nexport const getUpdateUserInfo = (store) => (nickName, profileUrl) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.updateCurrentUserInfo(nickName, profileUrl)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\nexport const getSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\nexport const getDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nexport const getResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getCreateChannel = (store) => (params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n pubsub.publish(\n topics.CREATE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n });\n};\n\nexport const getLeaveChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.leave()\n .then(() => {\n resolve(channel);\n pubsub.publish(\n topics.LEAVE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.freeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getUnFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.unfreeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport default {\n getSdk,\n getConnect,\n getDisconnect,\n getUpdateUserInfo,\n getSendUserMessage,\n getSendFileMessage,\n getUpdateUserMessage,\n getDeleteMessage,\n getResendUserMessage,\n getResendFileMessage,\n getFreezeChannel,\n getUnFreezeChannel,\n getCreateChannel,\n getLeaveChannel,\n};\n","import React, { ReactElement, useContext } from 'react';\nimport { SendbirdTypes } from '../../types';\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { getSdk, getCreateChannel } from '../../lib/selectors';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\n\ninterface Logger {\n info?(message: string, channel: SendbirdTypes['GroupChannel']): void;\n}\n\ninterface Props {\n user: SendbirdTypes['User'];\n currentUserId?: string;\n sdk?: SendbirdTypes['SendBirdInstance'];\n logger?: Logger;\n createChannel?(params: SendbirdTypes['GroupChannelParams']): Promise;\n onSuccess?(): void;\n}\n\nfunction UserProfile({\n user,\n currentUserId,\n sdk,\n logger,\n createChannel,\n onSuccess,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n
\n
\n \n
\n {\n user.userId !== currentUserId && (\n
\n {\n const params = new sdk.GroupChannelParams();\n params.isDistinct = true;\n params.addUserIds([user.userId]);\n onSuccess();\n createChannel(params)\n .then((groupChannel) => {\n logger.info('UserProfile, channel create', groupChannel);\n });\n }}\n >\n {stringSet.USER_PROFILE__MESSAGE}\n \n
\n )\n }\n
\n
\n \n {stringSet.USER_PROFILE__USER_ID}\n \n \n {user.userId}\n \n
\n
\n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n createChannel: getCreateChannel(store),\n logger: store.config.logger,\n pubsub: store.config.pubSub,\n});\n\nconst ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps);\n\nexport default ConnectedUserProfile;\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class MenuItems extends Component {\n constructor(props) {\n super(props);\n this.menuRef = React.createRef();\n this.state = {\n menuStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getMenuPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-icon--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-icon--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { menuRef } = this;\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getMenuPosition = () => {\n const { parentRef, openLeft } = this.props;\n const parentRect = parentRef.current.getBoundingClientRect();\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n const menuStyle = {\n top: y,\n left: x,\n };\n\n if (!this.menuRef.current) return menuStyle;\n\n const { innerWidth, innerHeight } = window;\n const rect = this.menuRef.current.getBoundingClientRect();\n if (y + rect.height > innerHeight) {\n menuStyle.top -= rect.height;\n }\n\n if (x + rect.width > innerWidth && !openLeft) {\n menuStyle.left -= rect.width;\n }\n\n if (menuStyle.top < 0) {\n menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;\n }\n\n if (menuStyle.left < 0) {\n menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;\n }\n\n menuStyle.top += 32;\n if (openLeft) {\n const padding = Number.isNaN(rect.width - 30)\n ? 108 // default\n : rect.width - 30;\n menuStyle.left -= padding;\n }\n\n return this.setState({ menuStyle });\n }\n\n render() {\n const { menuStyle } = this.state;\n const { children, style } = this.props;\n return (\n createPortal(\n (\n <>\n
\n \n {children}\n \n \n ),\n document.getElementById('sendbird-dropdown-portal'),\n )\n );\n }\n}\nMenuItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n style: PropTypes.shape({}),\n // https://stackoverflow.com/a/51127130\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n openLeft: PropTypes.bool,\n};\nMenuItems.defaultProps = {\n style: {},\n openLeft: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst componentClassName = 'sendbird-sort-by-row';\nexport default function SortByRow({\n className,\n maxItemCount,\n itemWidth,\n itemHeight,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(componentClassName);\n\n if (children.length > maxItemCount) {\n const result = [];\n for (let i = 0; i < children.length; i += maxItemCount) {\n result.push(\n \n {\n children.slice(i, i + maxItemCount)\n }\n
,\n );\n }\n\n return result;\n }\n return (\n \n {children}\n
\n );\n}\n\nSortByRow.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n maxItemCount: PropTypes.number.isRequired,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]).isRequired,\n};\n\nSortByRow.defaultProps = {\n className: '',\n};\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport SortByRow from '../../SortByRow';\n\nexport default class EmojiListItems extends Component {\n constructor(props) {\n super(props);\n this.reactionRef = React.createRef();\n this.state = {\n reactionStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getBarPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-reactions--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-reactions--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { reactionRef } = this;\n const handleClickOutside = (event) => {\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getBarPosition = () => {\n const {\n parentRef,\n spaceFromTrigger,\n } = this.props;\n const spaceFromTriggerX = spaceFromTrigger.x || 0;\n const spaceFromTriggerY = spaceFromTrigger.y || 0;\n\n const parentRect = parentRef.current.getBoundingClientRect();\n\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n\n const reactionStyle = {\n top: y,\n left: x,\n };\n\n if (!this.reactionRef.current) return reactionStyle;\n const rect = this.reactionRef.current.getBoundingClientRect();\n // const childRect = this.reactionRef.current.children[0].getBoundingClientRect();\n\n if (reactionStyle.top < rect.height) {\n reactionStyle.top += parentRect.height;\n reactionStyle.top += spaceFromTriggerY;\n } else {\n reactionStyle.top -= rect.height;\n reactionStyle.top -= spaceFromTriggerY;\n }\n\n reactionStyle.left -= (rect.width / 2);\n reactionStyle.left += (parentRect.height / 2) - 2;\n reactionStyle.left += spaceFromTriggerX;\n\n const maximumLeft = (window.innerWidth - rect.width);\n if (maximumLeft < reactionStyle.left) {\n reactionStyle.left = maximumLeft;\n }\n if (reactionStyle.left < 0) {\n reactionStyle.left = 0;\n }\n\n return this.setState({ reactionStyle });\n }\n\n render() {\n const { reactionStyle } = this.state;\n const { children } = this.props;\n return (\n createPortal(\n <>\n
\n \n \n {children}\n \n \n ,\n document.getElementById('sendbird-emoji-list-portal'),\n )\n );\n }\n}\nEmojiListItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n spaceFromTrigger: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n};\nEmojiListItems.defaultProps = {\n spaceFromTrigger: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport MenuItems_ from './items/MenuItems';\nimport EmojiListItems_ from './items/EmojiListItems';\n\nconst ENTER = 13;\n\nexport const MenuItems = MenuItems_;\nexport const EmojiListItems = EmojiListItems_;\n\nexport const MenuItem = ({ children, onClick, className }) => {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n {\n if (e.keyCode === ENTER) {\n onClick(e);\n }\n }}\n role=\"menuitem\"\n >\n \n {children}\n \n \n );\n};\n\nMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n};\n\nMenuItem.defaultProps = {\n className: '',\n};\n\nexport const MenuRoot = () => (\n
\n);\n\nexport const EmojiReactionListRoot = () => (\n
\n);\n\nexport default function ContextMenu({ menuTrigger, menuItems }) {\n const [showMenu, setShowMenu] = useState(false);\n\n return (\n
\n {menuTrigger(() => setShowMenu(!showMenu))}\n {showMenu && menuItems(() => setShowMenu(false))}\n
\n );\n}\n\nContextMenu.propTypes = {\n menuTrigger: PropTypes.func.isRequired,\n menuItems: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport MutedAvatarOverlay from '../Avatar/MutedAvatarOverlay';\nimport Checkbox from '../Checkbox';\nimport UserProfile from '../UserProfile';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item';\n\nexport default function UserListItem({\n user,\n className,\n checkBox,\n currentUser,\n checked,\n onChange,\n action,\n}) {\n const injectingClassNames = Array.isArray(className) ? className : [className];\n const uniqueKey = user.userId;\n const actionRef = React.useRef(null);\n const parentRef = React.useRef(null);\n const avatarRef = React.useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width=\"40px\"\n height=\"40px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n ' (You)'\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n checkBox && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n onChange(event)}\n />\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n
\n );\n}\n\nUserListItem.propTypes = {\n user: PropTypes.shape({\n userId: PropTypes.string,\n role: PropTypes.string,\n isMuted: PropTypes.bool,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n currentUser: PropTypes.string,\n action: PropTypes.element,\n checkBox: PropTypes.bool,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nUserListItem.defaultProps = {\n className: '',\n currentUser: '',\n checkBox: false,\n checked: false,\n action: null,\n onChange: () => { },\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Modal from '../../ui/Modal';\nimport { Type as ButtonTypes } from '../../ui/Button/type';\nimport UserListItem from '../../ui/UserListItem';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst filterUser = (idsToFilter) => (currentId) => idsToFilter.includes(currentId);\n\nconst InviteMembers = (props) => {\n const {\n userQueryCreator,\n closeModal,\n onSubmit,\n submitText,\n titleText,\n idsToFilter,\n swapParams,\n } = props;\n\n const [users, setUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState({});\n const { stringSet } = useContext(LocalizationContext);\n const [usersDataSource, setUsersDataSource] = useState({});\n const selectedCount = Object.keys(selectedUsers).length;\n\n useEffect(() => {\n const applicationUserListQuery = userQueryCreator();\n setUsersDataSource(applicationUserListQuery);\n applicationUserListQuery.next((res, err) => {\n // eslint-disable-next-line no-underscore-dangle\n let users_ = res;\n let error = err;\n if (swapParams) {\n users_ = err;\n error = users_;\n }\n if (error) {\n return;\n }\n setUsers(users_);\n });\n }, []);\n\n return (\n {\n const selectedUserList = Object.keys(selectedUsers);\n if (selectedUserList.length > 0) {\n onSubmit(selectedUserList);\n closeModal();\n }\n }}\n submitText={submitText}\n titleText={titleText}\n type={ButtonTypes.PRIMARY}\n >\n
\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = usersDataSource;\n const fetchMore = (\n e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n usersDataSource.next((usersBatch, error) => {\n if (error) {\n return;\n }\n setUsers([\n ...users,\n ...usersBatch,\n ]);\n });\n }\n }}\n >\n {\n users.map((user) => (!filterUser(idsToFilter)(user.userId)) && (\n {\n const modifiedSelectedUsers = {\n ...selectedUsers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedUsers[event.target.id];\n }\n setSelectedUsers(modifiedSelectedUsers);\n }\n }\n />\n ))\n }\n
\n
\n \n );\n};\n\nInviteMembers.propTypes = {\n idsToFilter: PropTypes.arrayOf(PropTypes.string),\n swapParams: PropTypes.bool,\n userQueryCreator: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string,\n titleText: PropTypes.string,\n};\nInviteMembers.defaultProps = {\n swapParams: false,\n submitText: 'create',\n titleText: 'Create new channel',\n idsToFilter: [],\n};\n\nexport default InviteMembers;\n","export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n const params = sdk.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.GroupChannel.createChannel(params, (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.GroupChannel.createChannel(\n params,\n (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n },\n );\n});\n\nexport default createChannel;\n","import './add-channel.scss';\n\nimport React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport IconButton from '../../../ui/IconButton';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport InviteMembers from '../../InviteMembers';\n\nimport {\n createChannel,\n createDefaultUserListQuery,\n isBroadcastChannelEnabled,\n isSuperGroupChannelEnabled,\n} from './utils';\nimport { CREATE_CHANNEL } from '../dux/actionTypes';\nimport Modal from '../../../ui/Modal';\n\nexport default function AddChannel({\n sdk,\n disabled,\n channelListDispatcher,\n onBeforeCreateChannel,\n userId,\n userFilledApplicationUserListQuery,\n userListQuery,\n}) {\n const [showModal, setShowModal] = useState(false);\n const [step, setStep] = useState(0);\n const [type, setType] = useState('group');\n const { stringSet } = useContext(LocalizationContext);\n\n if (!sdk || !sdk.createApplicationUserListQuery) {\n return null;\n }\n\n const isBroadcastAvailable = isBroadcastChannelEnabled(sdk);\n const isSupergroupAvailable = isSuperGroupChannelEnabled(sdk);\n\n return (\n <>\n {\n setShowModal(true);\n }}\n disabled={disabled}\n >\n \n \n {\n showModal && step === 0 && (\n { setShowModal(false); }}\n onSubmit={() => {}}\n >\n
\n {\n setType('group');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('group');\n setStep(1);\n }}\n >\n \n \n
\n {\n isSupergroupAvailable && (\n {\n setType('supergroup');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('supergroup');\n setStep(1);\n }}\n >\n \n \n
\n )\n }\n {\n isBroadcastAvailable && (\n {\n setType('broadcast');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('broadcast');\n setStep(1);\n }}\n >\n \n \n \n )\n }\n \n \n )\n }\n {\n showModal && step === 1 && (\n {\n setStep(0);\n setShowModal(false);\n }}\n idsToFilter={[userId]}\n userQueryCreator={() => ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )}\n onSubmit={(selectedUsers) => createChannel(\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type,\n ).then((channel) => {\n // maybe - do this in event listener\n channelListDispatcher({\n type: CREATE_CHANNEL,\n payload: channel,\n });\n })}\n />\n )\n }\n \n );\n}\n\nAddChannel.propTypes = {\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n createApplicationUserListQuery: PropTypes.func,\n }).isRequired,\n disabled: PropTypes.bool,\n channelListDispatcher: PropTypes.func.isRequired,\n userFilledApplicationUserListQuery: PropTypes.shape({}),\n onBeforeCreateChannel: PropTypes.func,\n userId: PropTypes.string.isRequired,\n userListQuery: PropTypes.func,\n};\n\nAddChannel.defaultProps = {\n disabled: false,\n userFilledApplicationUserListQuery: {},\n onBeforeCreateChannel: null,\n userListQuery: null,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\n\nconst LeaveChannel = (props) => {\n const {\n onCloseModal,\n onLeaveChannel,\n } = props;\n return (\n \n );\n};\n\nLeaveChannel.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nexport default LeaveChannel;\n","import React, {\n useState,\n useRef,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../ui/ContextMenu';\nimport IconButton from '../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport LeaveChannelModal from '../../ChannelSettings/components/LeaveChannel';\n\nexport default function ChannelPreviewAction({ disabled, onLeaveChannel }) {\n const parentRef = useRef(null);\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n { e.stopPropagation(); }}\n tabIndex={0}\n onClick={(e) => { e.stopPropagation(); }}\n >\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if (disabled) { return; }\n setShowModal(true);\n closeDropdown();\n }}\n >\n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n \n \n )}\n />\n {\n showModal && (\n setShowModal(false)}\n onLeaveChannel={onLeaveChannel}\n />\n )\n }\n \n );\n}\n\nChannelPreviewAction.propTypes = {\n disabled: PropTypes.bool,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nChannelPreviewAction.defaultProps = {\n disabled: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes } from '../Icon';\n\nexport default function Loader({\n children,\n className,\n width,\n height,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n \n );\n}\n\nLoader.propTypes = {\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nLoader.defaultProps = {\n children: ,\n className: '',\n width: '26px',\n height: '26px',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Loader from '../Loader';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport PlaceHolderTypes from './type';\n\nexport default function PlaceHolder({\n className,\n type,\n retryToConnect,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n {\n type === PlaceHolderTypes.LOADING\n ? (\n \n \n \n )\n : null\n }\n {\n type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG\n ? (\n
\n {\n type === PlaceHolderTypes.NO_CHANNELS && (\n \n )\n }\n {\n type === PlaceHolderTypes.WRONG && (\n \n )\n }\n \n {\n retryToConnect\n ? (\n \n \n \n
\n )\n : null\n }\n
\n )\n : null\n }\n \n );\n}\n\nPlaceHolder.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(PlaceHolderTypes)),\n PropTypes.string,\n ]).isRequired,\n retryToConnect: PropTypes.func,\n};\n\nPlaceHolder.defaultProps = {\n className: '',\n retryToConnect: null,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Placeholder from '../../../ui/PlaceHolder';\n\nexport default function ChannelsPlaceholder({\n type,\n}) {\n return (\n
\n \n
\n );\n}\n\nChannelsPlaceholder.propTypes = {\n type: PropTypes.string.isRequired,\n};\n","import * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nconst createEventHandler = ({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n logger,\n}) => {\n const ChannelHandler = new sdk.ChannelHandler();\n\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('ChannelList: onChannelChanged', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onChannelDeleted = (channelUrl) => {\n logger.info('ChannelList: onChannelDeleted', channelUrl);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_DELETED,\n payload: channelUrl,\n });\n };\n ChannelHandler.onUserJoined = (channel) => {\n logger.info('ChannelList: onUserJoined', channel);\n if (channel.lastMessage) {\n channelListDispatcher({\n type: channelActions.ON_USER_JOINED,\n payload: channel,\n });\n }\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const { currentUser } = sdk;\n logger.info('Channel | useHandleChannelEvents: onUserBanned', channel);\n if (user.userId === currentUser.userId) {\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe: true,\n },\n });\n } else {\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe: false,\n },\n });\n }\n };\n ChannelHandler.onUserLeft = (channel, leftUser) => {\n const { currentUser } = sdk;\n const isMe = (currentUser.userId === leftUser.userId);\n logger.info('ChannelList: onUserLeft', channel);\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe,\n },\n });\n };\n\n ChannelHandler.onReadStatus = (channel) => {\n logger.info('ChannelList: onReadStatus', channel);\n channelListDispatcher({\n type: channelActions.ON_READ_RECEIPT_UPDATED,\n payload: channel,\n });\n };\n\n ChannelHandler.onDeliveryReceiptUpdated = (channel) => {\n logger.info('ChannelList: onDeliveryReceiptUpdated', channel);\n if (channel.lastMessage) {\n channelListDispatcher({\n type: channelActions.ON_DELIVERY_RECEIPT_UPDATED,\n payload: channel,\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n if (channel.lastMessage.isEqual(message)) {\n logger.info('ChannelList: onMessageUpdated', channel);\n channelListDispatcher({\n type: channelActions.ON_LAST_MESSAGE_UPDATED,\n payload: channel,\n });\n }\n };\n\n ChannelHandler.onChannelHidden = (channel) => {\n logger.info('ChannelList: onChannelHidden', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_ARCHIVED,\n payload: channel.url,\n });\n };\n\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('ChannelList: onChannelFrozen', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('ChannelList: onChannelUnfrozen', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n\n logger.info('ChannelList: Added channelHandler');\n sdk.addChannelHandler(sdkChannelHandlerId, ChannelHandler);\n};\n\nconst createApplicationUserListQuery = ({ sdk, userFilledChannelListQuery = {} }) => {\n const channelListQuery = sdk.GroupChannel.createMyGroupChannelListQuery();\n channelListQuery.includeEmpty = false;\n channelListQuery.order = 'latest_last_message'; // 'chronological', 'latest_last_message', 'channel_name_alphabetical', and 'metadata_value_alphabetical'\n channelListQuery.limit = 20; // The value of pagination limit could be set up to 100.\n\n if (userFilledChannelListQuery) {\n Object.keys(userFilledChannelListQuery).forEach((key) => {\n channelListQuery[key] = userFilledChannelListQuery[key];\n });\n }\n\n return channelListQuery;\n};\n\n/**\n * Setup event listener\n * create channel source query\n * addloading screen\n */\nfunction setupChannelList({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n setChannelSource,\n onChannelSelect,\n userFilledChannelListQuery,\n logger,\n sortChannelList,\n}) {\n createEventHandler({\n sdk,\n channelListDispatcher,\n sdkChannelHandlerId,\n logger,\n });\n\n logger.info('ChannelList - creating query', { userFilledChannelListQuery });\n const channelListQuery = createApplicationUserListQuery({ sdk, userFilledChannelListQuery });\n logger.info('ChannelList - created query', channelListQuery);\n\n setChannelSource(channelListQuery);\n\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_START,\n });\n\n logger.info('ChannelList - fetching channels');\n if (channelListQuery.hasNext) {\n channelListQuery.next((response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let channelList = response;\n let err = error;\n if (swapParams) {\n channelList = error;\n err = response;\n }\n logger.info('ChannelList - fetched channels', channelList);\n if (err) {\n logger.error('ChannelList - couldnt fetch channels', err);\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_FAILURE,\n });\n return;\n }\n // select first channel\n logger.info('ChannelList - highlight channel', channelList[0]);\n let sorted = channelList;\n if (sortChannelList && typeof sortChannelList === 'function') {\n sorted = sortChannelList(channelList);\n logger.info('ChannelList - channel list sorted', sorted);\n }\n onChannelSelect(sorted[0]);\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_SUCCESS,\n payload: sorted,\n });\n if (channelList && typeof channelList.forEach === 'function') {\n logger.info('ChannelList - mark all channels as delivered');\n channelList.forEach((c) => c.markAsDelivered());\n }\n });\n } else {\n logger.warning('ChannelList - there are no more channels');\n }\n}\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (pubSub, channelListDispatcher) => {\n const subScriber = new Map();\n if (!pubSub) return subScriber;\n subScriber.set(topics.CREATE_CHANNEL, pubSub.subscribe(topics.CREATE_CHANNEL, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: 'CREATE_CHANNEL',\n payload: channel,\n });\n }));\n\n subScriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n const updatedChannel = channel;\n updatedChannel.lastMessage = message;\n if (channel) {\n channelListDispatcher({\n type: channelActions.ON_LAST_MESSAGE_UPDATED,\n payload: updatedChannel,\n });\n }\n }));\n\n subScriber.set(topics.LEAVE_CHANNEL, pubSub.subscribe(topics.LEAVE_CHANNEL, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: channelActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel.url,\n });\n }));\n\n subScriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: channelActions.CHANNEL_REPLACED_TO_TOP,\n payload: channel,\n });\n }));\n\n return subScriber;\n};\n\nexport default setupChannelList;\n","import React, { useEffect, useState, useReducer } from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as userActions from '../../lib/dux/user/actionTypes';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport * as channelListActions from './dux/actionTypes';\nimport channelListInitialState from './dux/initialState';\nimport channelListReducers from './dux/reducers';\n\nimport ChannelPreview from '../../ui/ChannelPreview';\nimport ChannelHeader from '../../ui/ChannelHeader';\nimport EditUserProfile from '../../ui/EditUserProfile';\nimport PlaceholderTypes from '../../ui/PlaceHolder/type';\n\nimport AddChannel from './components/AddChannel';\nimport ChannelPreviewAction from './components/ChannelPreviewAction';\nimport PlaceHolder from './components/Placeholder';\n\nimport setupChannelList, {\n pubSubHandler,\n pubSubHandleRemover,\n} from './utils';\nimport { uuidv4 } from '../../utils/uuid';\n\nimport './index.scss';\n\nconst noop = () => { };\n\nfunction ChannelList(props) {\n const {\n stores: { sdkStore = {}, userStore = {} },\n config: {\n userId,\n isOnline,\n userListQuery,\n logger,\n pubSub,\n theme,\n },\n dispatchers: {\n userDispatcher,\n },\n queries = {},\n renderChannelPreview,\n renderHeader,\n renderUserProfile,\n disableUserProfile,\n allowProfileEdit,\n sortChannelList,\n onProfileEditSuccess,\n onThemeChange,\n onBeforeCreateChannel,\n onChannelSelect,\n } = props;\n const { config = {} } = props;\n // enable if it is true atleast once(both are flase by default)\n const enableEditProfile = allowProfileEdit || config.allowProfileEdit;\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n const { sdk = {} } = sdkStore;\n const userFilledChannelListQuery = queries.channelListQuery;\n const userFilledApplicationUserListQuery = queries.applicationUserListQuery;\n\n const sdkError = sdkStore.error;\n\n const [user, setUser] = useState({});\n\n useEffect(() => {\n setUser(userStore.user);\n }, [userStore.user]);\n\n\n const sdkIntialized = sdkStore.initialized;\n const [channelListStore, channelListDispatcher] = useReducer(\n channelListReducers,\n channelListInitialState,\n );\n const [channelSource, setChannelSource] = useState({});\n const [sdkChannelHandlerId, setSdkChannelHandlerId] = useState(null);\n const [showProfileEdit, setShowProfileEdit] = useState(false);\n\n const { loading, currentChannel } = channelListStore;\n\n useEffect(() => {\n const subscriber = pubSubHandler(pubSub, channelListDispatcher);\n return () => {\n pubSubHandleRemover(subscriber);\n };\n }, [sdkIntialized]);\n\n useEffect(() => {\n setSdkChannelHandlerId(uuidv4);\n if (sdkIntialized) {\n logger.info('ChannelList: Setup channelHandlers');\n setupChannelList({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n setChannelSource,\n onChannelSelect,\n userFilledChannelListQuery,\n logger,\n sortChannelList,\n });\n } else {\n logger.info('ChannelList: Removing channelHandlers');\n // remove previous channelHandlers\n if (sdk && sdk.removeChannelHandler) {\n sdk.removeChannelHandler(sdkChannelHandlerId);\n }\n // remove channelSource\n setChannelSource({});\n // cleanup\n channelListDispatcher({\n type: channelListActions.RESET_CHANNEL_LIST,\n });\n }\n return () => {\n logger.info('ChannelList: Removing channelHandlers');\n if (sdk && sdk.removeChannelHandler) {\n sdk.removeChannelHandler(sdkChannelHandlerId);\n }\n };\n }, [sdkIntialized, userFilledChannelListQuery, sortChannelList]);\n\n const { allChannels } = channelListStore;\n const sortedChannels = (sortChannelList && typeof sortChannelList === 'function')\n ? sortChannelList(allChannels)\n : allChannels;\n\n if (sortedChannels.length !== allChannels.length) {\n const warning = `ChannelList: You have removed/added extra channels on sortChannelList\n this could cause unexpected problems`;\n // eslint-disable-next-line no-console\n console.warn(warning, { before: allChannels, after: sortedChannels });\n logger.warning(warning, { before: allChannels, after: sortedChannels });\n }\n\n useEffect(() => {\n if (!sdk || !sdk.GroupChannel) { return; }\n sdk.GroupChannel.getChannel(currentChannel, (groupChannel) => {\n if (groupChannel) {\n onChannelSelect(groupChannel);\n } else {\n onChannelSelect(null);\n }\n });\n }, [currentChannel]);\n\n return (\n \n
\n {\n if (enableEditProfile) {\n setShowProfileEdit(true);\n }\n }}\n allowProfileEdit={enableEditProfile}\n iconButton={(\n \n )}\n />\n
\n {\n showProfileEdit && (\n { setShowProfileEdit(false); }}\n onSubmit={(newName, newFile) => {\n sdk.updateCurrentUserInfoWithProfileImage(newName, newFile, (updatedUser) => {\n userDispatcher({ type: userActions.UPDATE_USER_INFO, payload: updatedUser });\n if (onProfileEditSuccess && typeof onProfileEditSuccess === 'function') {\n onProfileEditSuccess(updatedUser);\n }\n });\n }}\n />\n )\n }\n {\n const fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight;\n if (fetchMore && channelSource.hasNext) {\n logger.info('ChannelList: Fetching more channels');\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_START,\n });\n channelSource.next((response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let channelList = response;\n let err = error;\n if (swapParams) {\n channelList = error;\n err = response;\n }\n if (err) {\n logger.info('ChannelList: Fetching channels failed', err);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_FAILURE,\n payload: channelList,\n });\n return;\n }\n logger.info('ChannelList: Fetching channels successful', channelList);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_SUCCESS,\n payload: channelList,\n });\n if (channelList && typeof channelList.forEach === 'function') {\n logger.info('ChannelList: Marking all channels as read');\n channelList.forEach((c) => c.markAsDelivered());\n }\n });\n }\n }}\n >\n {\n (sdkError) && (\n \n )\n }\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n sortedChannels && sortedChannels.map((channel, idx) => {\n const onLeaveChannel = (c, cb) => {\n logger.info('ChannelList: Leaving channel', c);\n c.leave()\n .then((res) => {\n logger.info('ChannelList: Leaving channel success', res);\n if (cb && typeof cb === 'function') {\n cb(res, null);\n }\n channelListDispatcher({\n type: channelListActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel.url,\n });\n })\n .catch((err) => {\n logger.error('ChannelList: Leaving channel failed', err);\n if (cb && typeof cb === 'function') {\n cb(null, err);\n }\n });\n };\n\n const onClick = () => {\n if (!isOnline) { return; }\n logger.info('ChannelList: Clicked on channel:', channel);\n channelListDispatcher({\n type: channelListActions.SET_CURRENT_CHANNEL,\n payload: channel.url,\n });\n };\n\n return (\n (renderChannelPreview)\n ? (\n // eslint-disable-next-line\n
\n {renderChannelPreview({ channel, onLeaveChannel })}\n
\n )\n : (\n onLeaveChannel(channel)}\n />\n )}\n />\n )\n );\n })\n }\n
\n {\n (!sdkIntialized || loading) && (\n \n )\n }\n {\n // placeholder\n (!allChannels || allChannels.length === 0) && (\n \n )\n }\n \n \n );\n}\n\nChannelList.propTypes = {\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n userDispatcher: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n userId: PropTypes.string.isRequired,\n userListQuery: PropTypes.func,\n theme: PropTypes.string,\n isOnline: PropTypes.bool,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n channelListQuery: PropTypes.shape({\n channelNameContainsFilter: PropTypes.string,\n channelUrlsFilter: PropTypes.arrayOf(PropTypes.string),\n customTypesFilter: PropTypes.arrayOf(PropTypes.string),\n customTypeStartsWithFilter: PropTypes.string,\n hiddenChannelFilter: PropTypes.string,\n includeEmpty: PropTypes.bool,\n limit: PropTypes.number,\n memberStateFilter: PropTypes.string,\n metadataOrderKeyFilter: PropTypes.string,\n nicknameContainsFilter: PropTypes.string,\n order: PropTypes.string,\n publicChannelFilter: PropTypes.string,\n superChannelFilter: PropTypes.string,\n unreadChannelFilter: PropTypes.string,\n userIdsExactFilter: PropTypes.arrayOf(PropTypes.string),\n userIdsIncludeFilter: PropTypes.arrayOf(PropTypes.string),\n userIdsIncludeFilterQueryType: PropTypes.string,\n }),\n applicationUserListQuery: PropTypes.shape({\n limit: PropTypes.number,\n userIdsFilter: PropTypes.arrayOf(PropTypes.string),\n metaDataKeyFilter: PropTypes.string,\n metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeCreateChannel: PropTypes.func,\n renderChannelPreview: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n sortChannelList: PropTypes.func,\n onThemeChange: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n renderHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChannelSelect: PropTypes.func,\n};\n\nChannelList.defaultProps = {\n onBeforeCreateChannel: null,\n renderChannelPreview: null,\n renderHeader: null,\n disableUserProfile: false,\n renderUserProfile: null,\n allowProfileEdit: false,\n onThemeChange: null,\n sortChannelList: null,\n onProfileEditSuccess: null,\n queries: {},\n onChannelSelect: noop,\n};\n\nexport default withSendbirdContext(ChannelList);\n","export const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const RESET_STATE = 'RESET_STATE';\nexport const CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAILURE = 'GET_PREV_MESSAGES_FAILURE';\n\nexport const SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';\nexport const SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';\nexport const SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';\n\nexport const RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';\n\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\n\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const SET_READ_STATUS = 'SET_READ_STATUS';\n","// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const isImage = (type) => SUPPORTED_MIMES.IMAGE.includes(type);\nexport const isVideo = (type) => SUPPORTED_MIMES.VIDEO.includes(type);\nexport const unSupported = (type) => !(isImage(type) || isVideo(type));\n\nexport default SUPPORTED_MIMES;\n","import { isImage, isVideo } from '../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message) => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if ((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return '';\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../../ui/MessageStatus/type';\nimport * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nimport { SendingMessageStatus } from './types';\n\nconst UNDEFINED = 'undefined';\nconst { SUCCEEDED, FAILED, PENDING } = SendingMessageStatus;\n\nexport const scrollIntoLast = (selector, intialTry = 0) => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (channelUrl, pubSub, dispatcher) => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) return subscriber;\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return subscriber;\n};\n\nexport const getParsedStatus = (message, currentGroupChannel) => {\n if (message.requestState === FAILED) {\n return MessageStatusType.FAILED;\n }\n\n if (message.requestState === PENDING) {\n return MessageStatusType.PENDING;\n }\n\n if (message.requestState === SUCCEEDED) {\n if (!currentGroupChannel) {\n return MessageStatusType.SENT;\n }\n\n const unreadCount = currentGroupChannel.getReadReceipt(message);\n if (unreadCount === 0) {\n return MessageStatusType.READ;\n }\n\n const isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0;\n if (isDelivered) {\n return MessageStatusType.DELIVERED;\n }\n\n return MessageStatusType.SENT;\n }\n\n return null;\n};\n\nexport const isOperator = (groupChannel = {}) => {\n const { myRole } = groupChannel;\n return myRole === 'operator';\n};\n\nexport const isDisabledBecauseFrozen = (groupChannel = {}) => {\n const { isFrozen } = groupChannel;\n return isFrozen && !isOperator(groupChannel);\n};\n\nexport const isDisabledBecauseMuted = (groupChannel = {}) => {\n const { myMutedState } = groupChannel;\n return myMutedState === 'muted';\n};\n\nexport const getEmojiCategoriesFromEmojiContainer = (emojiContainer = {}) => (\n emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []\n);\n\nexport const getAllEmojisFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojis = [];\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n allEmojis.push(emojis[emojiIndex]);\n }\n }\n return allEmojis;\n};\n\nexport const getEmojisFromEmojiContainer = (emojiContainer = {}, emojiCategoryId = '') => (\n emojiContainer.emojiCategories\n ? emojiContainer.emojiCategories\n .filter((emojiCategory) => emojiCategory.id === emojiCategoryId)[0].emojis\n : []\n);\n\nexport const getAllEmojisMapFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojisMap = new Map();\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n const { key, url } = emojis[emojiIndex];\n allEmojisMap.set(key, url);\n }\n }\n return allEmojisMap;\n};\n\nexport const getNicknamesMapFromMembers = (members = []) => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const isSameGroup = (message, comparingMessage) => {\n if (\n !message\n || !comparingMessage\n || !message.sender\n || !comparingMessage.sender\n || !message.createdAt\n || !comparingMessage.createdAt\n || !message.sender.userId\n || !comparingMessage.sender.userId\n ) {\n return false;\n }\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage,\n currMessage,\n nextMessage,\n) => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const passUnsuccessfullMessages = (allMessages, newMessage) => {\n const { sendingStatus = UNDEFINED } = newMessage;\n if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) {\n const lastIndexOfSucceededMessage = allMessages\n .map((message) => (\n message.sendingStatus\n || ((message.isAdminMessage && message.isAdminMessage()) ? SUCCEEDED : UNDEFINED)\n ))\n .lastIndexOf(SUCCEEDED);\n if (lastIndexOfSucceededMessage + 1 < allMessages.length) {\n const messages = [...allMessages];\n messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);\n return messages;\n }\n }\n return [\n ...allMessages,\n newMessage,\n ];\n};\n\nexport default getParsedStatus;\n","export default {\n initialized: false,\n loading: false,\n allMessages: [],\n currentGroupChannel: { members: [] },\n hasMore: false,\n lastMessageTimeStamp: 0,\n emojiContainer: {},\n readStatus: {},\n unreadCount: 0,\n unreadSince: null,\n isInvalid: false,\n};\n","const isEmpty = (val) => (val === null || val === undefined);\n\n// Some Ids return string and number inconsistently\n// only use to comapre IDs\nexport default function (a, b) {\n if (isEmpty(a) || isEmpty(b)) {\n return false;\n }\n const aString = a.toString();\n const bString = b.toString();\n return aString === bString;\n}\n","import format from 'date-fns/format';\n\nimport * as actionTypes from './actionTypes';\nimport initialState from './initialState';\n\nimport compareIds from '../../../utils/compareIds';\nimport { passUnsuccessfullMessages } from '../utils';\nimport { SendingMessageStatus } from '../types';\n\nconst {\n SUCCEEDED,\n FAILED,\n PENDING,\n} = SendingMessageStatus;\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actionTypes.RESET_STATE:\n return initialState;\n case actionTypes.RESET_MESSAGES:\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMore`\n // the onScroll gets called twice, setting hasMore false prevents this\n hasMore: false,\n allMessages: [],\n };\n case actionTypes.GET_PREV_MESSAGES_START:\n return {\n ...state,\n loading: true,\n };\n case actionTypes.CLEAR_SENT_MESSAGES:\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => (\n m.sendingStatus !== SUCCEEDED\n )),\n ],\n };\n case actionTypes.GET_PREV_MESSAGES_SUCESS: {\n const recivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(recivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n allMessages: [\n ...recivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...action.payload },\n ],\n };\n case actionTypes.SEND_MESSAGEGE_SUCESS: {\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId) ? action.payload : m\n ));\n [...newMessages].sort((a, b) => (\n (\n a.sendingStatus\n && b.sendingStatus\n && a.sendingStatus === SUCCEEDED\n && (\n b.sendingStatus === PENDING\n || b.sendingStatus === FAILED\n )\n ) ? -1 : 1\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SEND_MESSAGEGE_FAILURE: {\n // eslint-disable-next-line no-param-reassign\n action.payload.failed = true;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const { channel, message } = action.payload;\n const { currentGroupChannel = {}, unreadCount, unreadSince } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n if (!compareIds(channel.url, currentGroupChannelUrl)) {\n return state;\n }\n // Excluded overlapping messages\n if (!(state.allMessages.map((msg) => msg.messageId).indexOf(message.messageId) < 0)) {\n return state;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n return {\n ...state,\n unreadCount: unreadCount + 1,\n unreadSince: (unreadCount === 0)\n ? format(new Date(), 'p MMM dd')\n : unreadSince,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.messageId, action.payload.messageId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.RESEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.MARK_AS_READ:\n return {\n ...state,\n unreadCount: 0,\n unreadSince: null,\n };\n case actionTypes.ON_MESSAGE_DELETED:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n case actionTypes.SET_EMOJI_CONTAINER: {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n }\n case actionTypes.SET_READ_STATUS: {\n return {\n ...state,\n readStatus: action.payload,\n };\n }\n case actionTypes.ON_REACTION_UPDATED: {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n }\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\n\nimport * as messageActions from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\nimport compareIds from '../../../utils/compareIds';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\nfunction useHandleChannelEvents({ currentGroupChannel, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n const messageReciverId = uuidv4();\n if (channelUrl && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReciverId);\n ChannelHandler.onMessageReceived = (channel, message) => {\n if (compareIds(channel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (_, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: message,\n });\n };\n\n ChannelHandler.onMessageDeleted = (_, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n };\n\n ChannelHandler.onReactionUpdated = (_, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n };\n\n ChannelHandler.onChannelChanged = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelFrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelUnfrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserMuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserUnmuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserBanned = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onOperatorUpdated = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n // Add this channel event handler to the SendBird object.\n sdk.addChannelHandler(messageReciverId, ChannelHandler);\n }\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReciverId);\n sdk.removeChannelHandler(messageReciverId);\n }\n };\n }, [channelUrl, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.GroupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n // this order is important - this mark as read should update the event handler up above\n groupChannel.markAsRead();\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji((emojiContainer_, err) => {\n if (err) {\n logger.error('Channel: Getting emojis failed', err);\n return;\n }\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\nfunction useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams\n && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n });\n }\n }, [channelUrl, userFilledMessageListQuery]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n}) {\n useEffect(() => {\n const wasOffline = !isOnline;\n return () => {\n // state changed from offline to online\n if (wasOffline) {\n logger.info('Refreshing conversation state');\n const { appInfo = {} } = sdk;\n const useReaction = appInfo.isUsingReaction || false;\n\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = useReaction;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n sdk.GroupChannel.getChannel(currentGroupChannel.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.CLEAR_SENT_MESSAGES,\n });\n\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n });\n }\n };\n }, [isOnline]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useScrollCallback({\n currentGroupChannel,\n lastMessageTimeStamp,\n userFilledMessageListQuery,\n}, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMore) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n lastMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMoreMessages = (messages && messages.length > 0);\n const lastMessageTs = hasMoreMessages\n ? messages[0].createdAt\n : null;\n\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore: hasMoreMessages,\n lastMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, lastMessageTimeStamp]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message, cb) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);\n\n // Message is only on local\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (cb) { cb(); }\n return;\n }\n\n // Message is on server\n currentGroupChannel.deleteMessage(message, (err) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);\n if (cb) { cb(err); }\n if (!err) {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n } else {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as topics from '../../../lib/pubSub/topics';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n}, {\n logger,\n pubSub,\n sdk,\n}) {\n return useCallback((messageId, text, cb) => {\n const createParamsDefault = (txt) => {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creting params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(text)\n : createParamsDefault(text);\n\n currentGroupChannel.updateUserMessage(messageId, params, (r, e) => {\n logger.info('Channel: Updating message!', params);\n const swapParams = sdk.getErrorFirstCallback();\n let message = r;\n let err = e;\n if (swapParams) {\n message = e;\n err = r;\n }\n if (cb) {\n cb(err, message);\n }\n if (!err) {\n logger.info('Channel: Updating message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: message,\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel: currentGroupChannel,\n },\n );\n } else {\n logger.warning('Channel: Updating message failed!', err);\n }\n });\n }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function'\n && failedMessage.isResendable()\n ) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel\n .resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendMessageCallback({ currentGroupChannel, onBeforeSendUserMessage }, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n () => {\n const text = messageInputRef.current.value;\n const createParamsDefault = (txt) => {\n const message = (typeof txt === 'string') ? txt.trim() : txt;\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creting params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefault(text);\n\n logger.info('Channel: Sending message has started', params);\n const pendingMsg = currentGroupChannel.sendUserMessage(params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n if (error) {\n logger.warning('Channel: Sending message failed!', {\n message,\n });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel, onBeforeSendFileMessage,\n}, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((file) => {\n const createParamsDefault = (file_) => {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n };\n\n const createCustomPrams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creting params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefault(file);\n\n logger.info('Channel: Uploading file message start!', params);\n const pendingMsg = currentGroupChannel.sendFileMessage(params, (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = response;\n let error = err;\n if (swapParams) {\n message = err;\n error = response;\n }\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', message);\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'), 1000);\n }, [currentGroupChannel, onBeforeSendFileMessage]);\n return [sendMessage];\n}\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\n\nexport default function useSetReadStatus({ allMessages, currentGroupChannel }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (!sdk.ChannelHandler || !currentGroupChannel.url) {\n return () => {};\n }\n // todo: move to reducer?\n const setReadStatus = () => {\n const allReadStatus = allMessages.reduce((accumulator, msg) => {\n if (msg.messageId !== 0) {\n return {\n ...accumulator,\n [msg.messageId]: utils.getParsedStatus(msg, currentGroupChannel),\n };\n }\n return accumulator;\n }, {});\n messagesDispatcher({\n type: messageActionTypes.SET_READ_STATUS,\n payload: allReadStatus,\n });\n };\n if (allMessages.length > 0) {\n setReadStatus();\n }\n\n const channelUrl = currentGroupChannel.url;\n const handler = new sdk.ChannelHandler();\n const handleMessageStatus = (c) => {\n if (channelUrl === c.url) {\n setReadStatus();\n }\n };\n handler.onDeliveryReceiptUpdated = handleMessageStatus;\n handler.onReadReceiptUpdated = handleMessageStatus;\n // Add this channel event handler to the SendBird object.\n const handlerId = uuidv4();\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.addChannelHandler(handlerId, handler);\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.removeChannelHandler(handlerId);\n }\n };\n }, [allMessages, currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst ReactionButton = React.forwardRef((props, ref) => {\n const {\n children,\n width,\n height,\n onClick,\n selected,\n className,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n return (\n onClick(e)}\n role=\"button\"\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n
\n {children}\n
\n \n );\n});\n\nReactionButton.propTypes = {\n children: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n selected: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nReactionButton.defaultProps = {\n selected: false,\n width: '36px',\n height: '36px',\n onClick: () => { },\n className: '',\n};\n\nexport default ReactionButton;\n","import React, { useMemo } from 'react';\n\nimport { EmojiListItems } from '../../../ui/ContextMenu';\nimport ReactionButton from '../../../ui/ReactionButton';\nimport ImageRenderer from '../../../ui/ImageRenderer';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nexport default function useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n}, {\n useReaction,\n logger,\n userId,\n emojiAllList,\n}) {\n return useMemo(() => ({\n parentRef,\n parentContainRef,\n message,\n closeDropdown,\n spaceFromTrigger = {},\n }) => {\n if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {\n logger.warning('Channel: Invalid Params in memoizedEmojiListItems');\n return null;\n }\n\n return (\n \n {\n emojiAllList.map((emoji) => {\n const reactedReaction = message.reactions\n .filter((reaction) => reaction.key === emoji.key)[0];\n const isReacted = reactedReaction\n ? !(reactedReaction.userIds.indexOf(userId) < 0)\n : false;\n return (\n {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n \n }\n />\n \n );\n })\n }\n \n );\n }, [emojiContainer, toggleReaction]);\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Loader from '../Loader';\nimport MessageStatusType from './type';\n\nimport { getMessageCreatedAt } from '../../utils/utils';\n\nconst MessageStatusTypes = MessageStatusType;\nexport { MessageStatusTypes };\nexport default function MessageStatus({\n message,\n status,\n className,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n const label = () => {\n switch (status) {\n case MessageStatusType.FAILED:\n case MessageStatusType.PENDING: {\n return null;\n }\n case MessageStatusType.SENT:\n case MessageStatusType.DELIVERED:\n case MessageStatusType.READ: {\n return (\n \n {getMessageCreatedAt(message)}\n \n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n \n \n \n ),\n SENT: ,\n DELIVERED: ,\n READ: ,\n FAILED: ,\n };\n\n return (\n
\n {icon[status]}\n
\n {label(status)}\n
\n );\n}\n\nMessageStatus.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nMessageStatus.defaultProps = {\n message: null,\n status: '',\n className: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst ReactionBadge = React.forwardRef((props, ref) => {\n const {\n className,\n children,\n count,\n selected,\n isAdd,\n onClick,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (selected && !isAdd) {\n injectingClassName.unshift('sendbird-reaction-badge--selected');\n } else if (isAdd) {\n injectingClassName.push('sendbird-reaction-badge--is-add');\n } else {\n injectingClassName.unshift('sendbird-reaction-badge');\n }\n\n return (\n \n
\n
\n {children}\n
\n \n
\n \n );\n});\n\nReactionBadge.propTypes = {\n children: PropTypes.element.isRequired,\n count: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isAdd: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nReactionBadge.defaultProps = {\n className: '',\n count: '',\n selected: false,\n isAdd: false,\n onClick: () => { },\n};\n\nexport default ReactionBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label from '../Label';\n\nconst CLASS_NAME = 'sendbird-tooltip';\n\nexport default function Tooltip({\n className,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n
\n \n {children}\n \n
\n );\n}\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n};\n\nTooltip.defaultProps = {\n className: '',\n children: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-tooltip-wrapper';\nconst SPACE_FROM_TRIGGER = 8;\n\nexport default function TooltipWrapper({\n className,\n children,\n hoverTooltip,\n // clickTooltip can be added later\n}) {\n const injectingClassName = Array.isArray(className)\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n const [showHoverTooltip, setShowHoverTooltip] = useState(false);\n const childrenRef = useRef(null);\n\n return (\n { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n \n {children}\n \n {\n showHoverTooltip && (\n \n \n \n {hoverTooltip}\n \n \n \n )\n }\n \n );\n}\n\nTooltipWrapper.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n hoverTooltip: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n};\nTooltipWrapper.defaultProps = {\n className: '',\n};\n","import React, { useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ReactionBadge from '../ReactionBadge';\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ContextMenu from '../ContextMenu';\nimport Tooltip from '../Tooltip';\nimport TooltipWrapper from '../TooltipWrapper';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function EmojiReactions({\n className,\n userId,\n message,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-emoji-reactions');\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const imageWidth = '20px';\n const imageHeight = '20px';\n const emojiReactionAddRef = useRef(null);\n const { reactions = [] } = message;\n const messageReactions = reactions;\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n {\n messageReactions && (\n messageReactions.map((reaction) => {\n const { userIds = [] } = reaction;\n const emojiUrl = emojiAllMap.get(reaction.key) || '';\n const reactedUserCount = userIds.length;\n const reactedByMe = !(userIds.indexOf(userId) < 0);\n const nicknames = userIds\n .filter((currentUserId) => currentUserId !== userId)\n .map((currentUserId) => (\n membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER\n ));\n const stringSetForMe = (nicknames.length > 0)\n ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU;\n return (\n 0 && (\n \n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n \n \n )\n }\n >\n toggleReaction(message, reaction.key, reactedByMe)}\n >\n \n )}\n />\n \n \n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n );\n}\n\nEmojiReactions.propTypes = {\n userId: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n message: PropTypes.shape({\n reactions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\nEmojiReactions.defaultProps = {\n className: '',\n membersMap: new Map(),\n userId: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const copyToClipboard = (text) => {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport default {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n createUrlTester,\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport uuidv4 from '../../utils/uuid';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(/\\r/);\n const matchedMessage = splitMessage\n .map((word) => (word !== '' ? word :
));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import { useEffect } from 'react';\n\nconst MOUSE_ENTER = 'mouseenter';\nconst MOUSE_LEAVE = 'mouseleave';\n\nconst useMouseHover = ({\n ref,\n setHover,\n}) => {\n const handleMouseOver = () => {\n if (ref.current) {\n setHover(true);\n }\n };\n const handleMouseOut = () => {\n if (ref.current) {\n setHover(false);\n }\n };\n\n useEffect(() => {\n const { current } = ref;\n current.addEventListener(MOUSE_ENTER, handleMouseOver);\n current.addEventListener(MOUSE_LEAVE, handleMouseOut);\n return () => {\n current.removeEventListener(MOUSE_ENTER, handleMouseOver);\n current.removeEventListener(MOUSE_LEAVE, handleMouseOut);\n };\n });\n};\n\nexport default useMouseHover;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport UserProfile from '../UserProfile';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport MessageStatus from '../MessageStatus';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n} from './utils';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function Message(props) {\n const {\n isByMe,\n userId,\n message,\n className,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n } = props;\n\n if (!message) return null;\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n injectingClassName.push(`sendbird-message${isByMe ? '--outgoing' : '--incoming'}`);\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-user-message-word',\n });\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nMessage.propTypes = {\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showEdit: PropTypes.func,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n userId: '',\n resendMessage: noop,\n className: '',\n showEdit: noop,\n showRemove: noop,\n status: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUserMessage({\n userId,\n message,\n showEdit,\n disabled,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n \n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n { showRemove(true); }}\n // onResend={() => resendMessage(message)}\n // duplicated and should replace to more\n />\n
\n )\n }\n
\n
\n
\n
\n \n \n \n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n \n \n );\n}\n\nfunction IncomingUserMessage({\n userId,\n message,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n // showProfile && ()\n }\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-user-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n
\n \n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n
\n
\n
\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nIncomingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingUserMessage.defaultProps = {\n message: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nOutgoingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n disabled: PropTypes.bool,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUserMessage.defaultProps = {\n message: {},\n resendMessage: noop,\n showEdit: noop,\n showRemove: noop,\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function AdminMessage({\n className,\n message,\n}) {\n if (!message.messageType || message.messageType !== 'admin') { // change to use message.isAdminMessage()\n return null;\n }\n\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n \n
\n );\n}\n\nAdminMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nAdminMessage.defaultProps = {\n message: {},\n className: '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n getMessageCreatedAt,\n getIsSentFromStatus,\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport {\n getMessageCreatedAt,\n getIsSentFromStatus,\n} from './util';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n isImage,\n isVideo,\n unSupported,\n} from '../FileViewer/types';\nimport {\n getSenderName,\n getSenderProfileUrl,\n} from '../../utils/utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\n\nconst OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message';\nconst INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function ThumbnailMessage({\n message = {},\n userId,\n disabled,\n isByMe,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n return (\n isByMe\n ? (\n \n )\n : (\n \n )\n );\n}\n\nexport function OutgoingThumbnailMessage({\n message = {},\n userId,\n disabled,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n isMessageSent && showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n )\n }\n
\n
\n \n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n role=\"button\"\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n Unknown type\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n \n \n \n );\n}\n\nexport function IncomingThumbnailMessage({\n message = {},\n userId,\n onClick,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const reactionAddRef = useRef(null);\n const avatarRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n !chainTop && (\n \n {getSenderName(message) || ''}\n \n )\n }\n
\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_THUMBNAIL_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n Unknown type\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string,\n resendMessage: PropTypes.func,\n status: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n showRemove: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\nThumbnailMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n resendMessage: noop,\n onClick: noop,\n showRemove: noop,\n status: '',\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nOutgoingThumbnailMessage.defaultProps = {\n status: '',\n};\n\nIncomingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nIncomingThumbnailMessage.defaultProps = {\n status: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\n\nimport { getSenderProfileUrl, getSenderName, getMessageCreatedAt } from '../../utils/utils';\nimport {\n truncate,\n getIsSentFromStatus,\n} from './utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst MAX_TRUNCATE_LENGTH = 40;\nconst GROUPAING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\nconst noop = () => { };\n\nfunction checkFileType(fileUrl) {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport function OutgoingFileMessage({\n message,\n userId,\n status,\n showRemove,\n disabled,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n url,\n } = message;\n const openFileUrl = () => { window.open(url); };\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n const showEmojiReactions = isMessageSent && useReaction && message.reactions\n && (message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n {\n checkFileType(url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n \n \n );\n}\n\nexport function IncomingFileMessage({\n message,\n userId,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const openFileUrl = () => { window.open(message.url); };\n const messageRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-file-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n {\n checkFileType(message.url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n \n )\n }\n
\n
\n
\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n \n \n );\n}\n\nOutgoingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingFileMessage.defaultProps = {\n status: '',\n showRemove: noop,\n resendMessage: noop,\n message: {},\n userId: '',\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nIncomingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingFileMessage.defaultProps = {\n message: {},\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nconst MessageSwitch = ({\n message,\n userId,\n disabled,\n isByMe,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) => (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n);\n\n\nMessageSwitch.propTypes = {\n message: PropTypes.shape({}),\n userId: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessageSwitch.defaultProps = {\n message: {},\n isByMe: false,\n disabled: false,\n showRemove: noop,\n resendMessage: noop,\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nexport default MessageSwitch;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport default function DateSeparator({\n className,\n children,\n separatorColor,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n
\n
{children}
\n
\n
\n );\n}\n\nDateSeparator.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.element,\n ]),\n separatorColor: PropTypes.string,\n};\n\nDateSeparator.defaultProps = {\n className: '',\n children: (\n \n ),\n separatorColor: Colors.ONBACKGROUND_4,\n};\n","import React, {\n useState,\n useRef,\n useEffect,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport IconButton from '../IconButton';\nimport Button from '../Button';\nimport { Type, Size } from '../Button/type';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n// import IconSend from '../../svgs/icon-send.svg';\n// import IconAttach from '../../svgs/icon-attach.svg';\n\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst KeyCode = {\n SHIFT: 16,\n ENTER: 13,\n};\n\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n isEdit,\n disabled,\n value,\n name,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onCancelEdit,\n onStartTyping,\n } = props;\n\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [inputValue, setInputValue] = useState(value);\n const [isShiftPressed, setIsShiftPressed] = useState(false);\n\n const setHeight = () => {\n const elem = ref.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n };\n\n // after setHeight called twice, the textarea goes to the initialized\n useEffect(() => {\n setHeight();\n return setHeight;\n }, [inputValue]);\n\n const sendMessage = () => {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n if (isEdit) {\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n } else {\n onSendMessage(trimmedInputValue);\n setInputValue('');\n }\n }\n };\n\n return (\n \n \n {\n setInputValue(e.target.value);\n onStartTyping();\n }}\n onKeyDown={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(true);\n }\n if (!isShiftPressed && e.keyCode === KeyCode.ENTER) {\n e.preventDefault();\n sendMessage();\n }\n }}\n onKeyUp={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(false);\n }\n }}\n />\n {/* placeholder */}\n {!inputValue && (\n \n {placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER}\n \n )}\n {/* upload icon */}\n {\n (!isEdit && !inputValue) && (\n {\n // todo: clear previous input\n fileInputRef.current.click();\n }}\n >\n \n \n \n )\n }\n {/* send icon */}\n {\n (!isEdit && inputValue) && (\n \n \n \n )\n }\n
\n {/* Edit */}\n {\n isEdit && (\n
\n \n {stringSet.BUTTON__CANCEL}\n \n {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n }\n }}\n >\n {stringSet.BUTTON__SAVE}\n \n
\n )\n }\n \n );\n});\n\nMessageInput.propTypes = {\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isEdit: PropTypes.bool,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n value: PropTypes.string,\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n value: '',\n onSendMessage: noop,\n name: 'sendbird-message-input',\n isEdit: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n};\n\nexport default MessageInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes } from '../Icon';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, unSupported } from './types';\n\nexport const FileViewerComponent = ({\n profileUrl,\n nickname,\n type,\n url,\n name,\n onClose,\n onDelete,\n isByMe,\n}) => (\n
\n
\n
\n
\n \n
\n \n {name}\n \n \n {nickname}\n \n
\n
\n {\n !unSupported(type) && (\n
\n \n \n \n {\n onDelete && isByMe && (\n
\n \n
\n )\n }\n
\n )\n }\n
\n \n
\n
\n
\n
\n {isVideo(type) && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n \n )}\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n \n
\n )\n }\n
\n
\n);\n\nFileViewerComponent.propTypes = {\n profileUrl: PropTypes.string.isRequired,\n nickname: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewerComponent.defaultProps = {\n isByMe: true,\n};\n\nexport default function FileViewer(props) {\n const {\n onClose,\n message,\n onDelete,\n isByMe,\n } = props;\n const {\n sender,\n type,\n url,\n name = '',\n } = message;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n \n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nFileViewer.propTypes = {\n onClose: PropTypes.func.isRequired,\n message: PropTypes.shape({\n sender: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }),\n type: PropTypes.string,\n url: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewer.defaultProps = {\n isByMe: true,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nconst RemoveMessage = (props) => {\n const {\n onCloseModal,\n onDeleteMessage,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n );\n};\n\nRemoveMessage.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onDeleteMessage: PropTypes.func.isRequired,\n};\n\nexport default RemoveMessage;\n","import format from 'date-fns/format';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport default {\n getMessageCreatedAt,\n};\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst CLASS_NAME = 'sendbird-unknown-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function UnknownMessage({\n message,\n isByMe,\n status,\n className,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n injectingClassName.push(`${CLASS_NAME}${isByMe ? '--outgoing' : '--incoming'}`);\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n isByMe: PropTypes.bool,\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nUnknownMessage.defaultProps = {\n isByMe: false,\n status: '',\n className: '',\n showRemove: () => { },\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUnknownMessage({\n message,\n status,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-outgoing-unknown-message';\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { showRemove(true); closeDropdown(); }}\n >\n Delete\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n \n \n );\n}\n\nfunction IncomingUnknownMessage({\n message,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-incoming-unknown-message';\n const { sender } = message;\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${className}__left__sender-profile-image`}\n src={sender.profileUrl}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n \n {sender.nickname || stringSet.NO_NAME}\n \n )\n }\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n
\n {\n !chainBottom && (\n \n {utils.getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nOutgoingUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n status: PropTypes.string.isRequired,\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUnknownMessage.defaultProps = {\n showRemove: () => { },\n};\n\nIncomingUnknownMessage.propTypes = {\n message: PropTypes.shape({\n sender: PropTypes.shape({\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }).isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","export const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const OG_MESSAGE = 'sendbird-og-message';\nexport const OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message';\nexport const INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message';\nexport const generateMockMessage = (process) => {\n const message = {\n message: 'go to this link sendbird.com it will be usefull to you!!',\n ogMetaData: {\n title: 'This is the TITLE',\n description: 'I\\'m description I\\'m description I\\'m description I\\'m description ',\n url: 'https://sendbird.com/',\n defaultImage: {\n url: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n alt: 'test',\n },\n },\n sender: {\n profileUrl: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n nickname: 'Hoonying',\n },\n createdAt: 2000000,\n };\n if (process && typeof process === 'function') {\n return process(message);\n }\n return message;\n};\n\nexport default {\n URL_REG,\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n generateMockMessage,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const copyToClipboard = (text) => {\n try {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path\n // to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const checkOGIsEnalbed = (message) => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n\nexport default {\n getSenderName,\n createUrlTester,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nconst LINK_LABEL = 'sendbird-link-label';\nconst http = /https?:\\/\\//;\n\nexport default function LinkLabel({\n className,\n src,\n type,\n color,\n children,\n}) {\n const injecingClassName = Array.isArray(className) ? className : [className];\n const url = (http.test(src)) ? src : `http://${src}`;\n\n return (\n \n \n \n );\n}\n\nLinkLabel.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n src: PropTypes.string.isRequired,\n type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired,\n color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired,\n};\n\nLinkLabel.defaultProps = {\n className: '',\n};\n\nexport const LinkLabelTypography = LabelTypography;\nexport const LinkLabelColors = LabelColors;\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { createUrlTester } from './utils';\nimport { URL_REG } from './const';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst WORD_COLOR = LabelColors.ONBACKGROUND_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\nconst isUrl = createUrlTester(URL_REG);\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n // return (<>{matchedMessage});\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n} from './const';\nimport {\n getSenderName,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n} from './utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport './index.scss';\n\nimport UserProfile from '../UserProfile';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport Avatar from '../Avatar/index';\n\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst GROUPING_PADDING = '1px';\nconst NORAML_PADDING = '8px';\n\nconst OGMessageSwitch = ({\n isByMe,\n userId,\n status,\n message,\n disabled,\n showEdit,\n chainTop,\n className,\n membersMap,\n showRemove,\n useReaction,\n emojiAllMap,\n chainBottom,\n resendMessage,\n toggleReaction,\n memoizedEmojiListItems,\n}) => {\n const { ogMetaData } = message;\n const injectingClassName = Array.isArray(className) ? className : [className];\n\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n });\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n};\n\nfunction OutgoingOGMessage(props) {\n const {\n status,\n userId,\n message,\n disabled,\n openLink,\n showEdit,\n chainTop,\n showRemove,\n membersMap,\n chainBottom,\n emojiAllMap,\n useReaction,\n resendMessage,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n \n \n );\n}\n\nfunction IncomingOGMessage(props) {\n const {\n userId,\n message,\n openLink,\n chainTop,\n membersMap,\n chainBottom,\n useReaction,\n emojiAllMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_OG_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n
\n \n \n );\n}\n\nexport default OGMessageSwitch;\n\nconst noop = () => { };\n\nOGMessageSwitch.propTypes = {\n isByMe: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n useReaction: PropTypes.bool.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n status: PropTypes.string,\n disabled: PropTypes.bool,\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n toggleReaction: PropTypes.func,\n membersMap: PropTypes.instanceOf(Map),\n emojiAllMap: PropTypes.instanceOf(Map),\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nOGMessageSwitch.defaultProps = {\n className: '',\n status: '',\n disabled: false,\n showEdit: noop,\n showRemove: noop,\n resendMessage: noop,\n toggleReaction: noop,\n membersMap: new Map(),\n emojiAllMap: new Map(),\n memoizedEmojiListItems: noop,\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingOGMessage.propTypes = {\n status: PropTypes.string,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n isResendable: PropTypes.func,\n errorCode: PropTypes.number,\n }).isRequired,\n disabled: PropTypes.bool.isRequired,\n openLink: PropTypes.func.isRequired,\n showEdit: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingOGMessage.defaultProps = {\n status: '',\n};\n\nIncomingOGMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n openLink: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport format from 'date-fns/format';\n\nimport Message from '../../../ui/Message';\nimport AdminMessage from '../../../ui/AdminMessage';\nimport ThumbnailMessage from '../../../ui/ThumbnailMessage';\nimport FileMessage from '../../../ui/FileMessage';\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\nimport RemoveMessageModal from './RemoveMessage';\nimport UnknownMessage from '../../../ui/UnknownMessage';\nimport OGMessage from '../../../ui/OGMessage';\n\nimport { MessageTypes, getMessageType } from '../types';\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n status,\n resendMessage,\n useReaction,\n chainTop,\n chainBottom,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const { sender = {} } = message;\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n const isByMe = (userId === sender.userId)\n || (message.requestState === 'pending')\n || (message.requestState === 'failed');\n\n if (showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: ,\n [MessageTypes.FILE]: (\n \n ),\n [MessageTypes.OG]: (\n \n ),\n [MessageTypes.THUMBNAIL]: (\n \n ),\n [MessageTypes.USER]: (\n \n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={() => {\n deleteMessage(message, () => {\n setShowFileViewer(false);\n });\n }}\n isByMe={isByMe}\n />\n )\n }\n {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n }\n
\n );\n}\n\nMessageHoc.propTypes = {\n userId: PropTypes.string,\n message: PropTypes.shape({\n isFileMessage: PropTypes.func,\n isAdminMessage: PropTypes.func,\n isUserMessage: PropTypes.func,\n isDateSeperator: PropTypes.func,\n // should be a number, but there's a bug in SDK shich returns string\n messageId: PropTypes.number,\n type: PropTypes.string,\n createdAt: PropTypes.number,\n message: PropTypes.string,\n requestState: PropTypes.string,\n messageType: PropTypes.string,\n sender: PropTypes.shape({ userId: PropTypes.string }),\n ogMetaData: PropTypes.shape({}),\n }),\n hasSeperator: PropTypes.bool,\n disabled: PropTypes.bool,\n editDisabled: PropTypes.bool,\n deleteMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nMessageHoc.defaultProps = {\n userId: '',\n editDisabled: false,\n message: {},\n hasSeperator: false,\n disabled: false,\n status: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport './conversation-scroll.scss';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nimport MessageHOC from './MessageHOC';\nimport {\n getParsedStatus,\n compareMessagesForGrouping,\n} from '../utils';\n\nexport default class ConversationScroll extends Component {\n onScroll = (e) => {\n const {\n scrollRef,\n hasMore,\n messagesDispatcher,\n onScroll,\n currentGroupChannel,\n } = this.props;\n\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const first = nodes[0];\n onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n first.scrollIntoView();\n }\n });\n }\n\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n }\n\n render() {\n const {\n userId,\n disabled,\n scrollRef,\n readStatus,\n membersMap,\n initialized,\n allMessages,\n useReaction,\n emojiAllMap,\n editDisabled,\n deleteMessage,\n updateMessage,\n resendMessage,\n renderChatItem,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n } = this.props;\n return (\n
\n \n
\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n initialized\n && allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n if (renderChatItem) {\n return (\n \n {\n renderChatItem({\n message: m,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n })\n }\n
\n );\n }\n\n return (\n \n );\n },\n )\n }\n
\n
\n \n );\n }\n}\n\nConversationScroll.propTypes = {\n // https://stackoverflow.com/a/52646941\n scrollRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}),\n ]),\n }).isRequired,\n hasMore: PropTypes.bool,\n messagesDispatcher: PropTypes.func.isRequired,\n onScroll: PropTypes.func,\n initialized: PropTypes.bool,\n editDisabled: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n allMessages: PropTypes.arrayOf(PropTypes.shape({\n createdAt: PropTypes.number,\n })).isRequired,\n deleteMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n readStatus: PropTypes.shape({}).isRequired,\n currentGroupChannel: PropTypes.shape({\n markAsRead: PropTypes.func,\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n renderChatItem: PropTypes.element,\n useReaction: PropTypes.bool,\n emojiContainer: PropTypes.shape({}),\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n useMessageGrouping: PropTypes.bool,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nConversationScroll.defaultProps = {\n hasMore: false,\n editDisabled: false,\n disabled: false,\n initialized: false,\n userId: '',\n renderChatItem: null,\n onScroll: null,\n useReaction: true,\n emojiContainer: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n useMessageGrouping: true,\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './notification.scss';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default function Notification({\n count,\n time,\n onClick,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const timeArray = time.split(' ');\n timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON);\n return (\n // eslint-disable-next-line\n
\n \n \n
\n );\n}\n\nNotification.propTypes = {\n count: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n time: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nNotification.defaultProps = {\n count: 0,\n time: '',\n};\n","import React, { useContext } from 'react';\n\nimport './notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\n\nconst TypingIndicatorText = ({ members }) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nfunction TypingIndicator({ channelUrl, sb, logger }) {\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState([]);\n\n useEffect(() => {\n if (sb && sb.ChannelHandler) {\n sb.removeChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new sb.ChannelHandler();\n // there is a possible warning in here - setState called after unmount\n handler.onTypingStatusUpdated = (groupChannel) => {\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n const members = groupChannel.getTypingMembers();\n if (groupChannel.url === channelUrl) {\n setTypingMembers(members);\n }\n };\n sb.addChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb && sb.removeChannelHandler) {\n sb.removeChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n \n );\n}\n\nTypingIndicator.propTypes = {\n channelUrl: PropTypes.string.isRequired,\n sb: PropTypes.shape({\n ChannelHandler: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n addChannelHandler: PropTypes.func,\n }).isRequired,\n logger: PropTypes.shape({\n info: PropTypes.func,\n }).isRequired,\n};\n\nexport default TypingIndicator;\n","// Logic required to handle message input rendering\n\nimport React, { useContext } from 'react';\n\nimport { SendbirdTypes } from '../../../types';\nimport { RenderMessageInputProps } from '../../../index';\nimport * as utils from '../utils.js';\n\nimport MessageInput from '../../../ui/MessageInput';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: SendbirdTypes[\"GroupChannel\"];\n user: SendbirdTypes[\"User\"];\n isOnline: boolean;\n initialized: boolean;\n onSendMessage(): void;\n onFileUpload(): void;\n renderMessageInput(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n isOnline,\n initialized,\n}: Props, ref: React.RefObject): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // custom message\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n {\n channel.startTyping();\n }}\n onSendMessage={onSendMessage}\n onFileUpload={onFileUpload}\n />\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\nimport './index.scss';\n\nfunction ConnectionStatus() {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n );\n}\n\nexport default ConnectionStatus;\n","import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict';\nimport { LabelStringSet } from '../Label';\n\nexport const prettyDate = (date) => formatDistanceToNowStrict(date, { addSuffix: true });\n\nexport const getOthersLastSeenAt = (channel) => {\n if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) {\n return '';\n }\n const lastSeenList = [...Object.values(channel.getReadStatus())];\n const lastSeenAt = lastSeenList.length > 0\n ? lastSeenList[0].last_seen_at\n : 0;\n if (lastSeenAt === 0) {\n return '';\n }\n return prettyDate(lastSeenAt);\n};\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default function AutoRefresh({\n repeatFunc,\n}) {\n const [label, setLabel] = useState(repeatFunc());\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (label !== repeatFunc()) {\n setLabel(repeatFunc());\n }\n }, 10000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (
{label}
);\n}\n\nAutoRefresh.propTypes = {\n repeatFunc: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport AutoRefresh from '../AutoRefresh';\nimport ChannelAvatar from '../ChannelAvatar/index';\n\nexport default function ChatHeader(props) {\n const {\n currentGroupChannel,\n currentUser,\n title,\n subTitle,\n isActive,\n isMuted,\n onActionClick,\n theme,\n } = props;\n const { userId } = currentUser;\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n \n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n \n {\n (typeof isActive === 'string' && isActive === 'true') || (typeof isActive === 'boolean' && isActive)\n ?
\n : null\n }\n \n {\n subTitle\n || utils.getOthersLastSeenAt(currentGroupChannel)} />\n }\n \n
\n
\n {\n (typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted)\n ? \n : null\n }\n \n \n \n
\n
\n );\n}\n\nChatHeader.propTypes = {\n currentGroupChannel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n }),\n theme: PropTypes.string,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n title: PropTypes.string,\n subTitle: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n isActive: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isMuted: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n onActionClick: PropTypes.func,\n};\n\nChatHeader.defaultProps = {\n currentGroupChannel: {},\n title: '',\n theme: 'light',\n subTitle: '',\n isActive: false,\n isMuted: false,\n currentUser: {},\n onActionClick: () => { },\n};\n","import React, {\n useEffect,\n useRef,\n useReducer,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as messageActionTypes from './dux/actionTypes';\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useSetReadStatus from './hooks/useSetReadStatus';\nimport useMemoizedEmojiListItems from './hooks/useMemoizedEmojiListItems';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\n\nimport ConversationScroll from './components/ConversationScroll';\nimport Notification from './components/Notification';\nimport FrozenNotification from './components/FrozenNotification';\nimport TypingIndicator from './components/TypingIndicator';\nimport MessageInputWrapper from './components/MessageInputWrapper';\nimport ConnectionStatus from '../../ui/ConnectionStatus';\nimport ChatHeader from '../../ui/ChatHeader';\nimport PlaceHolder from '../../ui/PlaceHolder';\nimport PlaceHolderTypes from '../../ui/PlaceHolder/type';\n\nconst noop = () => { };\n\nexport const ConversationPanel = (props) => {\n const {\n channelUrl,\n stores: { sdkStore, userStore },\n config: {\n userId,\n logger,\n pubSub,\n isOnline,\n theme,\n },\n dispatchers: {\n reconnect,\n },\n queries = {},\n useReaction,\n renderChatItem,\n renderChatHeader,\n renderMessageInput,\n useMessageGrouping,\n onChatHeaderActionClick,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n } = props;\n const { sdk } = sdkStore;\n const { config } = props;\n const sdkError = sdkStore.error;\n const sdkInit = sdkStore.initialized;\n const { user } = userStore;\n\n if (queries.messageListQuery) {\n // eslint-disable-next-line no-console\n console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead');\n }\n\n const userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery;\n\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n loading,\n hasMore,\n initialized,\n unreadCount,\n disableUserProfile,\n renderUserProfile,\n unreadSince,\n invalidChannel,\n currentGroupChannel = {},\n lastMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n const { isFrozen, isBroadcast } = currentGroupChannel;\n const { appInfo = {} } = sdk;\n const usingReaction = (\n (appInfo.isUsingReaction && !isBroadcast) || useReaction || false\n );\n\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n\n const emojiAllList = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisFromEmojiContainer(emojiContainer)\n : []\n ), [emojiContainer]);\n\n const nicknamesMap = useMemo(() => (\n usingReaction\n ? utils.getNicknamesMapFromMembers(currentGroupChannel.members)\n : new Map()\n ), [currentGroupChannel.members]);\n\n const onScrollCallback = useScrollCallback({\n currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery,\n }, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n const memoizedEmojiListItems = useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n }, {\n useReaction: usingReaction,\n logger,\n userId,\n emojiAllList,\n });\n\n // to create message-datasource\n useGetChannel(\n { channelUrl, sdkInit },\n { messagesDispatcher, sdk, logger },\n );\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n { currentGroupChannel, sdkInit, userId },\n { messagesDispatcher, sdk, logger },\n );\n\n useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subScriber = utils.pubSubHandler(channelUrl, pubSub, messagesDispatcher);\n return () => {\n utils.pubSubHandleRemover(subScriber);\n };\n }, [channelUrl, sdkInit]);\n\n // to create initial read status\n useSetReadStatus(\n { allMessages, currentGroupChannel },\n { messagesDispatcher, sdk, logger },\n );\n\n // handling connection breaks\n useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n });\n\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage },\n { logger, sdk, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, onSendMessage] = useSendMessageCallback(\n { currentGroupChannel, onBeforeSendUserMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n const [onSendFileMessage] = useSendFileMessageCallback(\n { currentGroupChannel, onBeforeSendFileMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n\n if (sdkError) {\n return (\n
\n {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n
\n );\n }\n if (!channelUrl) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (invalidChannel) {\n return (
);\n }\n return (\n \n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n \n )\n }\n {\n isFrozen && (\n \n )\n }\n {\n unreadCount > 0 && (\n {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n // there is no scroll\n if (scrollRef.current.scrollTop === 0) {\n currentGroupChannel.markAsRead();\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n }\n }}\n time={unreadSince}\n />\n )\n }\n \n
\n \n
\n \n
\n {\n !isOnline && (\n \n )\n }\n
\n \n );\n};\n\nConversationPanel.propTypes = {\n channelUrl: PropTypes.string,\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n GroupChannel: PropTypes.any,\n ChannelHandler: PropTypes.any,\n addChannelHandler: PropTypes.func,\n UserMessageParams: PropTypes.any,\n FileMessageParams: PropTypes.any,\n getAllEmoji: PropTypes.func,\n appInfo: PropTypes.shape({}),\n }),\n error: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n reconnect: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n userId: PropTypes.string.isRequired,\n isOnline: PropTypes.bool.isRequired,\n theme: PropTypes.string,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n messageListParams: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n // deprecate in v1.3\n messageListQuery: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeSendUserMessage: PropTypes.func, // onBeforeSendUserMessage(text)\n onBeforeSendFileMessage: PropTypes.func, // onBeforeSendFileMessage(File)\n onBeforeUpdateUserMessage: PropTypes.func,\n renderChatItem: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderMessageInput: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderChatHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChatHeaderActionClick: PropTypes.func,\n useReaction: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n useMessageGrouping: PropTypes.bool,\n};\n\nConversationPanel.defaultProps = {\n channelUrl: null,\n queries: {},\n onBeforeSendUserMessage: null,\n onBeforeSendFileMessage: null,\n onBeforeUpdateUserMessage: null,\n renderChatItem: null,\n renderMessageInput: null,\n renderChatHeader: null,\n useReaction: true,\n disableUserProfile: false,\n renderUserProfile: null,\n useMessageGrouping: true,\n onChatHeaderActionClick: noop,\n};\n\nexport const {\n getEmojiCategoriesFromEmojiContainer,\n getAllEmojisFromEmojiContainer,\n getEmojisFromEmojiContainer,\n} = utils;\n\nexport default withSendbirdContext(ConversationPanel);\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Modal from '../../../ui/Modal';\nimport Input, { InputLabel } from '../../../ui/Input';\nimport Avatar from '../../../ui/Avatar/index';\nimport { Type as ButtonType } from '../../../ui/Button/type';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport TextButton from '../../../ui/TextButton';\nimport ChannelAvatar from '../../../ui/ChannelAvatar/index';\n\nconst EditDetails = (props) => {\n const {\n onSubmit,\n onCancel,\n channel,\n userId,\n theme,\n } = props;\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const hiddenInputRef = useRef(null);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n const title = channel.name;\n return (\n {\n if (title !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(newFile, inputRef.current.value);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE}\n \n
\n {\n currentImg\n ? (\n \n ) : (\n \n )\n }\n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME}\n \n \n
\n \n \n );\n};\n\nEditDetails.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n channel: PropTypes.shape({\n name: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n theme: PropTypes.string.isRequired,\n};\n\nexport default EditDetails;\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './channel-profile.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport EditDetailsModal from './EditDetails';\nimport TextButton from '../../../ui/TextButton';\nimport ChannelAvatar from '../../../ui/ChannelAvatar/index';\n\nconst ChannelProfile = (props) => {\n const {\n disabled,\n channel,\n userId,\n theme,\n onChannelInfoChange,\n } = props;\n const title = channel.name;\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n
\n \n
\n \n {title}\n \n {\n if (disabled) { return; }\n setShowModal(true);\n }}\n notUnderline\n >\n \n {stringSet.CHANNEL_SETTING__PROFILE__EDIT}\n \n \n {\n showModal && (\n setShowModal(false)}\n onSubmit={onChannelInfoChange}\n channel={channel}\n userId={userId}\n theme={theme}\n />\n )\n }\n
\n
\n );\n};\n\nChannelProfile.propTypes = {\n channel: PropTypes.shape({\n name: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n theme: PropTypes.string,\n disabled: PropTypes.bool,\n onChannelInfoChange: PropTypes.func,\n};\n\nChannelProfile.defaultProps = {\n theme: 'light',\n disabled: false,\n onChannelInfoChange: () => { },\n};\n\nexport default ChannelProfile;\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n currentUser?: string;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function MembersModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const memberListQuery = channel.createMemberListQuery();\n memberListQuery.limit = 20;\n memberListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"All Members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n <>\n {channel.myRole === 'operator' && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if ((member.role !== 'operator')) {\n channel.addOperators([member.userId], () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n role: 'operator',\n };\n }\n return m;\n }));\n closeDropdown();\n });\n } else {\n channel.removeOperators([member.userId], () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n role: '',\n };\n }\n return m;\n }));\n closeDropdown();\n });\n }\n }}\n >\n { member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'}\n \n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n {\n if (member.isMuted) {\n channel.unmuteUser(member, () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n isMuted: false,\n };\n }\n return m;\n }));\n closeDropdown();\n })\n } else {\n channel.muteUser(member, () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n isMuted: true,\n };\n }\n return m;\n }));\n closeDropdown();\n });\n }\n }}\n >\n { member.isMuted ? 'Unmute' : 'Mute' }\n \n )\n }\n {\n channel.banUser(member, -1, '', () => {\n setMembers(members.filter(({ userId }) => {\n return userId !== member.userId;\n }));\n });\n }}\n >\n Ban\n \n \n )}\n />\n )}\n \n )}\n />\n ))}\n
\n \n
\n );\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './members-accordion.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Button from '../../../ui/Button';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../ui/Button/type';\nimport Avatar from '../../../ui/Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport InviteMembers from '../../InviteMembers';\nimport MembersModal from './AdminPanel/MembersModal';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nconst SHOWN_MEMBER_MAX = 10;\n\nconst UserListItem = ({ member = {}, currentUser = '' }) => {\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n src={member.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: member,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n
\n \n
\n );\n};\n\nUserListItem.propTypes = {\n member: PropTypes.shape({\n userId: PropTypes.string,\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }).isRequired,\n currentUser: PropTypes.string.isRequired,\n};\n\nconst MemebersAccordion = ({\n channel,\n disabled,\n currentUser,\n userQueryCreator,\n onInviteMemebers,\n swapParams,\n}) => {\n const members = channel.members || [];\n const [showMoreModal, setShowMoreModal] = useState(false);\n const [showAddUserModal, setShowAddUserModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n {\n members.slice(0, SHOWN_MEMBER_MAX).map((member) => (\n \n ))\n }\n
\n
\n {\n members.length >= SHOWN_MEMBER_MAX && (\n setShowMoreModal(true)}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS}\n \n )\n }\n {\n members.length >= SHOWN_MEMBER_MAX && showMoreModal && (\n {\n setShowMoreModal(false);\n }}\n channel={channel}\n />\n )\n }\n {\n if (disabled) { return; }\n setShowAddUserModal(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__INVITE_MEMBER}\n \n {\n showAddUserModal && (\n setShowAddUserModal(false)}\n idsToFilter={members.map((member) => (member.userId))}\n userQueryCreator={userQueryCreator}\n onSubmit={onInviteMemebers}\n />\n )\n }\n
\n
\n );\n};\n\nMemebersAccordion.propTypes = {\n swapParams: PropTypes.bool,\n disabled: PropTypes.bool,\n channel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n currentUser: PropTypes.string,\n userQueryCreator: PropTypes.func.isRequired,\n onInviteMemebers: PropTypes.func.isRequired,\n};\n\nMemebersAccordion.defaultProps = {\n swapParams: false,\n currentUser: '',\n disabled: false,\n channel: {},\n};\n\nexport default MemebersAccordion;\n","import React from 'react';\n\nimport { noop } from '../../utils/utils';\n\ninterface ContextValue {\n setOpened(accordion: string): void;\n opened: string;\n}\n\nconst Context = React.createContext({\n opened: '', // mock default value\n setOpened: noop,\n});\n\nexport const Consumer = Context.Consumer;\nexport const Provider = Context.Provider;\n","// Wraps all the accordions in an accordion set\n// keep one accordion open at a time\nimport React, { ReactElement, useState } from 'react';\n\nimport { Provider } from './context';\n\ninterface Props {\n children: ReactElement[];\n defaultOpened?: string;\n className?: string;\n}\n\nexport default function AccordionGroup({\n children,\n className = '',\n}: Props): ReactElement {\n const [opened, setOpened] = useState('');\n return (\n \n
{ children }
\n
\n )\n}\n","import './index.scss';\n\nimport React, { ReactElement, useState } from 'react';\n\nimport AccordionGroup_ from './AccordionGroup';\nimport { Consumer } from './context';\n\nimport Icon, {\n IconTypes,\n} from '../Icon';\n\ninterface Props {\n id: string;\n className?: string;\n renderTitle(): ReactElement;\n renderContent(): ReactElement;\n renderFooter?(): ReactElement;\n}\n\nexport default function Accordion({\n id,\n renderTitle,\n renderContent,\n renderFooter,\n className,\n}: Props): ReactElement {\n const [showAccordion, setShowAccordion] = useState(false);\n return (\n \n {\n (value) => {\n const { opened, setOpened } = value;\n if (id === opened) {\n setShowAccordion(true);\n } else {\n setShowAccordion(false);\n }\n const handleClick = () => {\n if (showAccordion) {\n setOpened('');\n } else {\n setOpened(id);\n }\n }\n return (\n <>\n \n { renderTitle() }\n \n \n {\n showAccordion && (\n
\n
\n { renderContent() }\n
\n {\n renderFooter && (\n
\n { renderFooter() }\n
\n )\n }\n
\n )\n }\n );\n }\n }\n
\n )\n}\n\nexport const AccordionGroup = AccordionGroup_;\n","// might move to reusable/UI\n\nimport React, { ReactElement, useRef, useContext } from 'react';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Avatar from '../../../ui/Avatar/index';\nimport MutedAvatarOverlay from '../../../ui/Avatar/MutedAvatarOverlay';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nimport './user-list-item.scss';\nimport { SendbirdTypes } from '../../../types';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item--small';\n\ninterface ActionProps {\n actionRef: React.RefObject;\n parentRef: React.RefObject;\n}\n\ntype CustomUser = SendbirdTypes['User'] & {\n isMuted: boolean;\n role: string;\n};\n\ninterface Props {\n user: CustomUser;\n currentUser?: string;\n className?: string;\n action?(props: ActionProps): ReactElement;\n}\n\nconst UserListItem = ({\n user,\n className,\n currentUser,\n action,\n}: Props): ReactElement => {\n const actionRef = useRef(null);\n const parentRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const injectingClassNames = Array.isArray(className) ? className : [className];\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n \" (You)\"\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n \n );\n}\n\nexport default UserListItem;\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n currentUser?: string;\n}\n\nexport default function OperatorsModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [operators, setOperators] = useState([]);\n const [operatorQuery, setOperatorQuery] = useState(null);\n\n useEffect(() => {\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 20;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n });\n setOperatorQuery(operatorListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"All operators\"\n >\n {\n const { hasNext } = operatorQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n operatorQuery.next((o, error) => {\n if (error) {\n return;\n }\n setOperators([\n ...operators,\n ...o,\n ])\n });\n }\n }}\n >\n { operators.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.removeOperators([member.userId], (response, error) => {\n if (error) {\n return;\n }\n setOperators(operators.filter(({ userId }) => {\n return userId !== member.userId;\n }));\n });\n closeDropdown();\n }}\n >\n Dismiss operator\n \n \n )}\n />\n )}\n />\n ))}\n
\n \n \n )\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport Modal from '../../../../ui/Modal';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport { Type as ButtonType } from '../../../../ui/Button/type';\nimport UserListItem from '../../../../ui/UserListItem';\n\ninterface Props {\n hideModal(): void;\n onSubmit(members: string[]): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function AddOperatorsModal({\n hideModal,\n channel,\n onSubmit,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [selectedMembers, setSelectedMembers] = useState({});\n const [memberQuery, setMemberQuery] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n const memberListQuery = channel.createMemberListQuery();\n memberListQuery.limit = 20;\n memberListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberListQuery);\n }, [])\n\n const selectedCount = Object.keys(selectedMembers).filter((m) => selectedMembers[m]).length;\n return (\n
\n hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n {\n const modifiedSelectedMembers = {\n ...selectedMembers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedMembers[event.target.id];\n }\n setSelectedMembers(modifiedSelectedMembers);\n }\n }\n user={member}\n key={member.userId}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n useContext,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport OperatorsModal from './OperatorsModal';\nimport AddOperatorsModal from './AddOperatorsModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const OperatorList = ({ sdk, channel }: Props): ReactElement => {\n const [operators, setOperators] = useState([]);\n const [showMore, setShowMore] = useState(false);\n const [showAdd, setShowAdd] = useState(false);\n const [hasNext, setHasNext] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n if (!channel) {\n setOperators([]);\n return;\n }\n\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 10;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n }, [channel]);\n\n const refershList = useCallback(\n () => {\n if (!channel) {\n setOperators([]);\n return;\n }\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 10;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n },\n [channel],\n );\n\n return (\n <>\n {\n operators.map((operator) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.removeOperators([operator.userId], (response, error) => {\n if (error) {\n return;\n }\n setOperators(operators.filter(({ userId }) => {\n return userId !== operator.userId;\n }))\n });\n closeDropdown();\n }}\n >\n Dismiss operator\n \n \n )}\n />\n );\n }}\n />\n ))\n }\n {\n hasNext && (\n \n {\n setShowMore(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ALL}\n \n {\n setShowAdd(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ADD}\n \n \n )\n }\n {\n showMore && (\n {\n setShowMore(false);\n refershList();\n }}\n channel={channel}\n />\n )\n }\n {\n showAdd && (\n setShowAdd(false)}\n channel={channel}\n onSubmit={(members) => {\n setShowAdd(false);\n channel.addOperators(members, () => {\n refershList();\n });\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(OperatorList, mapStoreToProps);\n","import React, { ReactElement, useEffect, useState } from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport { Type as ButtonType } from '../../../../ui/Button/type';\nimport UserListItem from '../../../../ui/UserListItem';\n\ninterface Props {\n hideModal(): void;\n onSubmit(members: string[]): void;\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport default function InviteMembers({\n hideModal,\n userQueryCreator,\n onSubmit,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [selectedMembers, setSelectedMembers] = useState({});\n const [userQuery, setUserQuery] = useState(null);\n\n useEffect(() => {\n const userListQuery = userQueryCreator();\n userListQuery.limit = 20;\n userListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setUserQuery(userListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n {\n const { hasNext } = userQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n userQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n {\n const modifiedSelectedMembers = {\n ...selectedMembers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedMembers[event.target.id];\n }\n setSelectedMembers(modifiedSelectedMembers);\n }\n }\n user={member}\n key={member.userId}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport MembersModal from './MembersModal';\nimport InviteMembers from './InviteMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes['SendBirdInstance'];\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport const MemberList = ({ sdk, channel, userQueryCreator }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showAllMembers, setShowAllMembers] = useState(false);\n const [showInviteMembers, setShowInviteMembers] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refershList = useCallback(\n () => {\n if (!channel) {\n setMembers([]);\n return;\n }\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n },\n [channel],\n );\n\n return (\n <>\n {\n members.map((member) => (\n {\n return ( (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if ((member.role !== 'operator')) {\n channel.addOperators([member.userId], () => {\n refershList();\n closeDropdown();\n });\n } else {\n channel.removeOperators([member.userId], () => {\n refershList();\n closeDropdown();\n });\n }\n }}\n >\n { member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'}\n \n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n {\n if (member.isMuted) {\n channel.unmuteUser(member, () => {\n refershList();\n closeDropdown();\n })\n } else {\n channel.muteUser(member, () => {\n refershList();\n closeDropdown();\n });\n }\n }}\n >\n { member.isMuted ? 'Unmute' : 'Mute' }\n \n )\n }\n {\n channel.banUser(member, -1, '', () => {\n refershList();\n closeDropdown();\n });\n }}\n >\n Ban\n \n \n )}\n />)}\n }\n />\n ))\n }\n \n {\n hasNext && (\n setShowAllMembers(true)}\n >\n All members\n \n )\n }\n setShowInviteMembers(true)}\n >\n Invite members\n \n \n {\n showAllMembers && (\n {\n setShowAllMembers(false);\n refershList();\n }}\n />\n )\n }\n {\n showInviteMembers && (\n {\n channel.inviteWithUserIds(selectedMemebers, () => {\n setShowInviteMembers(false);\n refershList();\n });\n }}\n channel={channel}\n hideModal={() => setShowInviteMembers(false)}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(MemberList, mapStoreToProps);\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function BannedMembersModal({\n hideModal,\n channel,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next((users, error) => {\n if (error) {\n return;\n }\n setMembers(users);\n });\n setMemberQuery(bannedUserListQuery);\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unbanUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unban\n \n \n )}\n />\n )\n }\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport BannedMembersModal from './BannedMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const BannedMemberList = ({ channel }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next((users, error) => {\n if (error) {\n return;\n }\n setMembers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next(function(users, error) {\n if (error) {\n return;\n }\n setMembers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n members.map((member) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unbanUser(member, () => {\n closeDropdown();\n refreshList();\n })\n }}\n >\n Unban\n \n \n )}\n />\n )\n }}\n />\n ))\n }\n {\n members && members.length === 0 && (\n \n No banned members yet\n \n )\n }\n {\n hasNext && (\n \n {\n setShowModal(true);\n }}\n >\n All banned members\n \n \n )\n }\n {\n showModal && (\n {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(BannedMemberList, mapStoreToProps);\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n currentUser?: string;\n}\n\nexport default function MutedMembersModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberUserListQuery);\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unmuteUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unmute\n \n \n )}\n />\n )}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport MutedMembersModal from './MutedMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const MutedMemberList = ({ sdk, channel }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n members.map((member) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unmuteUser(member, () => {\n refreshList();\n closeDropdown();\n })\n }}\n >\n Unmute\n \n \n )}\n />\n );\n }\n }\n />\n ))\n }\n {\n members && members.length === 0 && (\n \n No muted members yet\n \n )\n }\n {\n hasNext && (\n \n {\n setShowModal(true);\n }}\n >\n All muted members\n \n \n )\n }\n {\n showModal && (\n {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(MutedMemberList, mapStoreToProps);\n","import './index.scss';\nimport React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react';\nimport { SendbirdTypes } from '../../../../types';\n\nimport Accordion, { AccordionGroup } from '../../../../ui/Accordion';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport Badge from '../../../../ui/Badge';\n\nimport OperatorList from './OperatorList';\nimport MemberList from './MemberList';\nimport BannedMemberList from './BannedMemberList';\nimport MutedMemberList from './MutedMemberList';\n\nconst kFormatter = (num: number): string|number => {\n return Math.abs(num) > 999\n ? `${(Math.abs(num)/1000).toFixed(1)}K`\n : num;\n}\n\ninterface Props {\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport default function index({\n userQueryCreator,\n channel,\n}: Props): ReactElement {\n const [frozen, setFrozen] = useState(false);\n\n // work around for\n // https://sendbird.slack.com/archives/G01290GCDCN/p1595922832000900\n // SDK bug - after frozen/unfrozen myRole becomes \"none\"\n useEffect(() => {\n setFrozen(channel.isFrozen);\n }, [channel]);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__MEMBERS__TITLE}\n \n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__MUTED_MEMBERS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n )\n }\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__BANNED_MEMBERS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n {\n // cannot frozen broadcast channel\n !channel.isBroadcast && (\n
\n \n \n {stringSet.CHANNEL_SETTING__FREEZE_CHANNEL}\n \n
\n {\n frozen\n ? (\n {\n channel.unfreeze(() => {\n setFrozen(false);\n });\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n {\n channel.freeze(() => {\n setFrozen(true);\n });\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n
\n
\n )\n }\n
\n );\n}\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport './index.scss';\nimport Badge from '../../ui/Badge';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../ui/Icon';\nimport IconButton from '../../ui/IconButton';\n\nimport ChannelProfile from './components/ChannelProfile';\nimport MemebersAccordion from './components/MemebersAccordion';\nimport LeaveChannelModal from './components/LeaveChannel';\nimport AdminPanel from './components/AdminPanel';\nimport PlaceHolder from '../../ui/PlaceHolder';\nimport PlaceHolderTypes from '../../ui/PlaceHolder/type';\nimport { uuidv4 } from '../../utils/uuid';\nimport { createDefaultUserListQuery } from '../ChannelList/components/utils';\n\n\nconst kFormatter = (num) => (\n Math.abs(num) > 999\n ? `${(Math.abs(num) / 1000).toFixed(1)}K`\n : num\n);\n\nfunction ChannelSettings(props) {\n const {\n onCloseClick,\n channelUrl,\n disableUserProfile,\n renderUserProfile,\n onChannelModified,\n renderChannelProfile,\n onBeforeUpdateChannel,\n } = props;\n\n const {\n stores: { sdkStore },\n config: {\n userListQuery,\n theme,\n userId,\n logger,\n isOnline,\n },\n queries = {},\n } = props;\n\n const { config = {} } = props;\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const userFilledApplicationUserListQuery = queries.applicationUserListQuery;\n const { stringSet } = useContext(LocalizationContext);\n\n const { sdk, initialized } = sdkStore;\n\n // hack to kepp track of channel updates by triggering useEffect\n const [channelUpdateId, setChannelUpdateId] = useState(uuidv4());\n const [channel, setChannel] = useState(null);\n const [invalidChannel, setInvalidChannel] = useState(false);\n const [showAccordion, setShowAccordion] = useState(false);\n const [showLeaveChannelModal, setShowLeaveChannelModal] = useState(false);\n\n useEffect(() => {\n logger.info('ChannelSettings: Setting up');\n if (!channelUrl || !initialized || !sdk) {\n logger.warning('ChannelSettings: Setting up failed', 'No channelUrl or sdk uninitialized');\n setInvalidChannel(false);\n } else {\n if (!sdk || !sdk.GroupChannel) {\n logger.warning('ChannelSettings: No GroupChannel');\n return;\n }\n sdk.GroupChannel.getChannel(channelUrl, (groupChannel) => {\n if (!groupChannel) {\n logger.warning('ChannelSettings: Channel not found');\n setInvalidChannel(true);\n } else {\n logger.info('ChannelSettings: Fetched group channel', groupChannel);\n setInvalidChannel(false);\n setChannel(groupChannel);\n }\n });\n }\n }, [channelUrl, initialized, channelUpdateId]);\n\n if (!channel || invalidChannel) {\n return (\n
\n
\n \n {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n />\n
\n
\n \n
\n
\n );\n }\n\n return (\n \n
\n \n
\n {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n >\n \n \n
\n
\n
\n {\n renderChannelProfile\n ? renderChannelProfile({ channel })\n : (\n {\n logger.info('ChannelSettings: Channel information being updated');\n const swapParams = sdk.getErrorFirstCallback();\n if (onBeforeUpdateChannel) {\n const params = onBeforeUpdateChannel(currentTitle, currentImg, channel.data);\n // swapParams\n channel.updateChannel(params, (response, error) => {\n let groupChannel = response;\n if (swapParams) {\n groupChannel = error;\n }\n\n onChannelModified(groupChannel);\n setChannelUpdateId(uuidv4());\n });\n return;\n }\n channel.updateChannel(\n currentTitle,\n currentImg,\n channel.data,\n (response, error) => {\n let groupChannel = response;\n if (swapParams) {\n groupChannel = error;\n }\n logger.info('ChannelSettings: Channel information updated', groupChannel);\n onChannelModified(groupChannel);\n setChannelUpdateId(uuidv4());\n },\n );\n }}\n />\n )\n }\n {\n channel.myRole === 'operator'\n ? (\n {\n // setChannelUpdateId(uuidv4());\n onChannelModified(groupChannel);\n }}\n userQueryCreator={\n () => ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )\n }\n />\n )\n : (\n <>\n {/* Move to different file */}\n setShowAccordion(!showAccordion)}\n className={`\n sendbird-channel-settings__panel-item\n sendbird-channel-settings__members\n `}\n onClick={() => setShowAccordion(!showAccordion)}\n >\n \n \n {`${stringSet.CHANNEL_SETTING__MEMBERS__TITLE}`}\n \n \n \n
\n {\n showAccordion && (\n ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )\n }\n swapParams={\n sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback()\n }\n channel={channel}\n members={channel.members}\n onInviteMemebers={(selectedMemebers) => {\n logger.info('ChannelSettings: Inviting new users');\n channel.inviteWithUserIds(selectedMemebers)\n .then((res) => {\n onChannelModified(res);\n setChannelUpdateId(uuidv4());\n logger.info('ChannelSettings: Inviting new users success!', res);\n });\n }}\n />\n )\n }\n \n )\n }\n\n {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n onClick={() => {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n >\n \n \n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n \n \n {\n showLeaveChannelModal && (\n setShowLeaveChannelModal(false)}\n onLeaveChannel={() => {\n logger.info('ChannelSettings: Leaving channel', channel);\n channel.leave()\n .then(() => {\n logger.info('ChannelSettings: Leaving channel successful!', channel);\n onCloseClick();\n });\n }}\n />\n )\n }\n \n \n );\n}\n\nChannelSettings.propTypes = {\n onCloseClick: PropTypes.func,\n onChannelModified: PropTypes.func,\n onBeforeUpdateChannel: PropTypes.func,\n renderChannelProfile: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n channelUrl: PropTypes.string.isRequired,\n queries: PropTypes.shape({\n applicationUserListQuery: PropTypes.shape({\n limit: PropTypes.number,\n userIdsFilter: PropTypes.arrayOf(PropTypes.string),\n metaDataKeyFilter: PropTypes.string,\n metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n // from withSendbirdContext\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n GroupChannel: PropTypes.oneOfType([\n PropTypes.shape({\n getChannel: PropTypes.func,\n }),\n PropTypes.func,\n ]),\n createApplicationUserListQuery: PropTypes.any,\n }),\n initialized: PropTypes.bool,\n }),\n }).isRequired,\n config: PropTypes.shape({\n userId: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n isOnline: PropTypes.bool,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n }).isRequired,\n};\n\nChannelSettings.defaultProps = {\n onBeforeUpdateChannel: null,\n queries: {},\n disableUserProfile: false,\n renderUserProfile: null,\n renderChannelProfile: null,\n onCloseClick: () => { },\n onChannelModified: () => { },\n};\n\nexport default withSendbirdContext(ChannelSettings);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Sendbird from '../../lib/Sendbird';\n\nimport ChannelList from '../ChannelList';\nimport Conversation from '../Conversation';\nimport ChannelSettings from '../ChannelSettings';\n\nimport './index.scss';\n\nexport default function App(props) {\n const {\n appId,\n userId,\n accessToken,\n theme,\n userListQuery,\n nickname,\n profileUrl,\n config = {},\n useReaction,\n useMessageGrouping,\n colorSet,\n stringSet,\n allowProfileEdit,\n disableUserProfile,\n renderUserProfile,\n onProfileEditSuccess,\n } = props;\n const [currentChannelUrl, setCurrentChannelUrl] = useState(null);\n const [showSettings, setShowSettings] = useState(false);\n return (\n \n
\n
\n {\n if (channel && channel.url) {\n setCurrentChannelUrl(channel.url);\n } else {\n setCurrentChannelUrl('');\n }\n }}\n />\n
\n \n {\n if (showSettings) {\n setShowSettings(false);\n } else {\n setShowSettings(true);\n }\n }}\n useReaction={useReaction}\n useMessageGrouping={useMessageGrouping}\n />\n
\n {showSettings && (\n
\n { setShowSettings(false); }}\n />\n
\n )}\n \n \n );\n}\n\nApp.propTypes = {\n appId: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n allowProfileEdit: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n }),\n useReaction: PropTypes.bool,\n useMessageGrouping: PropTypes.bool,\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n};\n\nApp.defaultProps = {\n accessToken: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n userListQuery: null,\n allowProfileEdit: false,\n onProfileEditSuccess: null,\n disableUserProfile: false,\n renderUserProfile: null,\n config: {},\n useReaction: true,\n useMessageGrouping: true,\n stringSet: null,\n colorSet: null,\n};\n"],"names":["SendbirdSdkContext","React","createContext","withSendbirdContext","OriginalComponent","mapStoreToProps","ContextAwareComponent","props","context","console","warn","mergedProps","componentName","displayName","name","INIT_SDK","SET_SDK_LOADING","RESET_SDK","SDK_ERROR","INIT_USER","RESET_USER","UPDATE_USER_INFO","APP_VERSION_STRING","disconnectSdk","sdkDispatcher","userDispatcher","sdk","onDisconnect","type","payload","disconnect","then","finally","handleConnection","dispatchers","userId","appId","nickname","profileUrl","accessToken","logger","info","newSdk","Sb","addExtension","connectCbSucess","user","newNickName","newProfileUrl","updateCurrentUserInfo","namedUser","connectCbError","e","error","connect","res","catch","err","warning","isEmpty","obj","undefined","prop","hasOwnProperty","JSON","stringify","useTheme","overrides","useLayoutEffect","cssVars","variables","initialized","loading","reducer","state","action","sdkActions","initialState","actions","uuidv4","replace","c","r","Math","random","v","toString","useConnectionStatus","useState","isOnline","setIsOnline","useEffect","uniqueHandlerId","handler","ConnectionHandler","onReconnectStarted","onReconnectSucceeded","onReconnectFailed","reconnect","addConnectionHandler","removeConnectionHandler","tryReconnect","getConnectionState","window","addEventListener","removeEventListener","body","document","querySelector","classList","add","remove","LOG_LEVELS","DEBUG","WARNING","ERROR","INFO","ALL","colorLog","level","printLog","title","description","log","Date","toISOString","getDefaultLogger","LoggerFactory","lvl","customInterface","logInterface","lvlArray","Array","isArray","applyLog","lgLvl","reduce","accumulator","currentLvl","topics","hOP","__getTopics","subscribe","topic","listener","call","index","push","publish","forEach","item","useAppendDomNode","ids","rootSelector","root","id","elem","createElement","setAttribute","appendChild","target","getElementById","removeChild","getStringSet","lang","stringSet","en","TRYING_TO_CONNECT","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","EDIT_PROFILE__TITLE","EDIT_PROFILE__IMAGE_LABEL","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","EDIT_PROFILE__THEME_LABEL","CHANNEL_LIST__TITLE","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","CHANNEL_SETTING__HEADER__TITLE","CHANNEL_SETTING__PROFILE__EDIT","CHANNEL_SETTING__MEMBERS__TITLE","CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS","CHANNEL_SETTING__MEMBERS__INVITE_MEMBER","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","CHANNEL_SETTING__OPERATORS__TITLE","CHANNEL_SETTING__OPERATORS__TITLE_ALL","CHANNEL_SETTING__OPERATORS__TITLE_ADD","CHANNEL_SETTING__MUTED_MEMBERS__TITLE","CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL","CHANNEL_SETTING__BANNED_MEMBERS__TITLE","CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL","CHANNEL_SETTING__FREEZE_CHANNEL","BUTTON__CANCEL","BUTTON__DELETE","BUTTON__SAVE","BUTTON__CREATE","BUTTON__INVITE","BUTTON__CLOSE","BADGE__OVER","MODAL__DELETE_MESSAGE__TITLE","MODAL__CHANNEL_INFORMATION__TITLE","MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE","MODAL__CHANNEL_INFORMATION__UPLOAD","MODAL__CHANNEL_INFORMATION__CHANNEL_NAME","MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER","MODAL__INVITE_MEMBER__TITLE","MODAL__INVITE_MEMBER__SELECTEC","MODAL__CREATE_CHANNEL__TITLE","MODAL__CREATE_CHANNEL__SELECTED","MODAL__USER_LIST__TITLE","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","MESSAGE_STATUS__SENDING_FAILED","MESSAGE_STATUS__TRY_AGAIN","MESSAGE_STATUS__OR","MESSAGE_STATUS__DELETE","PLACE_HOLDER__NO_CHANNEL","CHANNEL_FROZEN","MUTED_PL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT","NO_TITLE","NO_NAME","NO_MEMBERS","TOOLTIP__AND_YOU","TOOLTIP__YOU","TOOLTIP__UNKOWN_USER","UNKNOWN__UNKNOWN_MESSAGE_TYPE","UNKNOWN__CANNOT_READ_MESSAGE","MESSAGE_EDITED","LocalizationContext","LocalizationProvider","children","Sendbird","disableUserProfile","renderUserProfile","allowProfileEdit","theme","userListQuery","config","colorSet","logLevel","setLogger","pubSub","setPubSub","useReducer","sdkReducers","sdkInitialState","sdkStore","userReducers","userInitialState","userStore","pubSubFactory","currenttheme","setCurrenttheme","useOnlineStatus","localeStringSet","useMemo","stores","propTypes","PropTypes","string","isRequired","oneOfType","element","arrayOf","any","bool","func","shape","objectOf","defaultProps","UserProfileContext","UserProfileProvider","className","RESET_CHANNEL_LIST","CREATE_CHANNEL","LEAVE_CHANNEL_SUCCESS","SET_CURRENT_CHANNEL","SHOW_CHANNEL_SETTINGS","HIDE_CHANNEL_SETTINGS","FETCH_CHANNELS_START","FETCH_CHANNELS_SUCCESS","FETCH_CHANNELS_FAILURE","INIT_CHANNELS_START","INIT_CHANNELS_SUCCESS","INIT_CHANNELS_FAILURE","ON_USER_JOINED","ON_CHANNEL_DELETED","ON_LAST_MESSAGE_UPDATED","ON_USER_LEFT","ON_CHANNEL_CHANGED","ON_CHANNEL_ARCHIVED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_READ_RECEIPT_UPDATED","ON_DELIVERY_RECEIPT_UPDATED","CHANNEL_REPLACED_TO_TOP","allChannels","currentChannel","showSettings","length","url","currentChannels","map","filteredChannels","filter","find","channel","channelUrl","leftCurrentChannel","newAllChannels","isMe","unreadMessageCount","lastMessage","currentUnReadCount","isFrozen","ImageRenderer","alt","width","height","defaultComponent","circle","injectingClassName","unshift","realElement","setRealElement","join","backgroundRepeat","backgroundPosition","backgroundSize","backgroundImage","borderRadius","number","ADD","ATTACH","ARROW_LEFT","AVATAR_DARK","AVATAR_LIGHT","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","BROADCAST_DARK","BROADCAST_LIGHT","BROADCAST","FROZEN_DARK","FROZEN_LIGHT","CAMERA","MORE","MUTE","NO_THUMBNAIL","CHECKBOX","CHECKBOX_OFF","CLOSE","COPY","CHAT","CREATE","DELETE","DISCONNECTED","DUMMY","EDIT","ERROR_FILLED","EMOJI_FAILED","EMOJI_REACTIONS_ADD","EMOJI_REACTIONS_ADD_GRAY","DELIVERED","DOCUMENT","DOWNLOAD","FILE_AUDIO","FILE_DOCUMENT","GIF","LEAVE","MEMBERS","NOTIFICATIONS","PHOTO","PLAY","PLUS","READ","REFRESH","SEND","SENT","SUPER_GROUP","SHEVRON","SHEVRON_DOWN","SPINNER","SPINNER_LARGE","USER","ICON_OPERATOR","ICON_BANNED","ICON_FREEZE","ICON_MUTED","ICON_MUTED_FG","TOGGLE_ON","TOGGLE_OFF","Colors","DEFAULT","PRIMARY","SECONDARY","CONTENT","CONTENT_INVERSE","WHITE","ON_BACKGROUND_3","changeColorToClassName","color","changeTypeToIconComponent","Type","IconAdd","IconArrowLeft","IconCamera","IconAttach","IconAvatarDark","IconAvatarLight","BroadcastLargeDark","BroadcastLargeLight","BroadcastDark","BroadcastLight","Broadcast","FrozenDark","FrozenLight","IconMore","IconMute","IconNoThumbnail","IconCheckbox","IconCheckboxOff","IconClose","IconCopy","IconChat","IconSupergroup","IconCreate","IconDelete","IconDisconnected","IconDummy","IconEdit","IconError","IconErrorFilled","IconEmojiFailed","IconEmojiReactionsAdd","IconEmojiReactionsAddGray","IconDelivered","IconDocument","IconDownload","IconFileAudio","IconFileDocument","IconGif","IconInfo","IconLeave","IconMembers","IconNotifications","IconPhoto","IconPlay","IconPlus","IconRead","IconRefresh","IconSend","IconSent","IconShevron","IconShevronDown","IconSpinner","IconSpinnerLarge","IconUser","IconOperator","IconBanned","IconMuted","IconMutedFg","IconFreeze","ToggleOn","ToggleOff","Icon","onClick","fillColor","iconStyle","oneOf","Object","keys","IconTypes","IconColors","imageRendererClassName","_a","AvatarInner","_b","src","_c","slice","i","Avatar","ref","_d","_e","_f","__spreadArrays","forwardRef","DEFAULT_URL_PREFIX","getChannelAvatarSource","currentUserId","coverUrl","RegExp","test","members","member","useDefaultAvatar","ChannelAvatar","isBroadcast","memoizedAvatar","utils","Typography","H_1","H_2","SUBTITLE_1","SUBTITLE_2","BODY_1","BODY_2","BUTTON_1","BUTTON_2","CAPTION_1","CAPTION_2","CAPTION_3","ONBACKGROUND_1","ONBACKGROUND_2","ONBACKGROUND_3","ONCONTENT_1","ONCONTENT_2","changeTypographyToClassName","CLASS_NAME","Label","LabelTypography","LabelColors","LabelStringSet","Badge","count","maxLevel","useContext","maximumNumber","parseInt","repeat","MessageStatusType","PENDING","FAILED","truncate","fullStr","strLen","separator","sepLen","charsToShow","frontChars","ceil","backChars","floor","substr","getIsSentFromStatus","status","getChannelTitle","getLastMessageCreatedAt","date","createdAt","isToday","format","isYesterday","getTotalMembers","memberCount","getPrettyLastMessage","message","MAXLEN","messageType","getLastMessage","getChannelUnreadMessageCount","ChannelPreview","isActive","ChannelAction","tabIndex","currentUser","IconButton","disabled","onBlur","pressed","setPressed","ChannelHeader","iconButton","onEdit","renderHeader","instanceOf","MODAL_ROOT","DANGER","DISABLED","Size","BIG","SMALL","changeTypeToClassName","changeSizeToClassName","size","Button","injectingClassNames","ModalHeader","titleText","ModalBody","ModalFooter","onSubmit","onCancel","submitText","ButtonTypes","Modal","hideFooter","createPortal","InputLabel","Input","value","placeHolder","required","inputValue","setInputValue","ONBACKGROUND_4","TextButton","notUnderline","noop","getMessageCreatedAt","getSenderName","sender","friendName","getSenderProfileUrl","EditUserProfile","onThemeChange","changeTheme","hiddenInputRef","useRef","inputRef","formRef","currentImg","setCurrentImg","newFile","setNewFile","current","reportValidity","ButtonType","preventDefault","display","URL","createObjectURL","files","click","store","ConnectedEditUserProfile","Types","LOADING","NO_CHANNELS","WRONG","MutedAvatarOverlay","Checkbox","checked","onChange","isChecked","setCheck","SEND_MESSAGE_START","SEND_USER_MESSAGE","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","DELETE_MESSAGE","LEAVE_CHANNEL","getSdk","getPubSub","getConnect","Promise","resolve","reject","Error","getDisconnect","getUpdateUserInfo","nickName","getSendUserMessage","userMessageParams","pubsub","GroupChannel","getChannel","promisify","pendingMsg","pendingPromise","resolve_","reject_","sendUserMessage","swapParams","getErrorFirstCallback","get","getSendFileMessage","fileMessageParams","sendFileMessage","file","localUrl","fileUrl","requestState","getUpdateUserMessage","messageId","params","updateUserMessage","fromSelector","getDeleteMessage","deleteMessage","getResendUserMessage","failedMessage","resendUserMessage","getResendFileMessage","resendFileMessage","getCreateChannel","createChannel","getLeaveChannel","leave","getFreezeChannel","freeze","getUnFreezeChannel","unfreeze","UserProfile","onSuccess","GroupChannelParams","isDistinct","addUserIds","groupChannel","ConnectedUserProfile","MenuItems","parentContainRef","closeDropdown","menuRef","handleClickOutside","event","contains","setState","parentRef","openLeft","parentRect","getBoundingClientRect","x","left","y","top","menuStyle","innerWidth","innerHeight","rect","padding","Number","isNaN","createRef","setupEvents","getMenuPosition","showParent","cleanUpEvents","hideParent","style","position","round","Component","Element","componentClassName","SortByRow","maxItemCount","itemWidth","itemHeight","result","EmojiListItems","reactionRef","spaceFromTrigger","spaceFromTriggerX","spaceFromTriggerY","reactionStyle","maximumLeft","getBarPosition","ENTER","MenuItems_","EmojiListItems_","MenuItem","keyCode","ContextMenu","menuTrigger","menuItems","showMenu","setShowMenu","COMPONENT_NAME","UserListItem","checkBox","uniqueKey","actionRef","avatarRef","isMuted","toggleDropdown","paddingTop","paddingBottom","close","role","filterUser","idsToFilter","currentId","includes","InviteMembers","userQueryCreator","closeModal","users","setUsers","selectedUsers","setSelectedUsers","usersDataSource","setUsersDataSource","selectedCount","applicationUserListQuery","next","users_","selectedUserList","hasNext","fetchMore","clientHeight","scrollTop","scrollHeight","usersBatch","modifiedSelectedUsers","createDefaultUserListQuery","userFilledApplicationUserListQuery","createApplicationUserListQuery","key","getApplicationAttributes","appInfo","applicationAttributes","isBroadcastChannelEnabled","ALLOW_BROADCAST_CHANNEL","isSuperGroupChannelEnabled","ALLOW_SUPER_GROUP_CHANNEL","setChannelType","isSuper","onBeforeCreateChannel","response","operatorUserIds","AddChannel","channelListDispatcher","showModal","setShowModal","step","setStep","setType","isBroadcastAvailable","isSupergroupAvailable","LeaveChannel","onCloseModal","onLeaveChannel","ChannelPreviewAction","stopPropagation","LeaveChannelModal","Loader","PlaceHolder","retryToConnect","PlaceHolderTypes","ChannelsPlaceholder","Placeholder","createEventHandler","sdkChannelHandlerId","ChannelHandler","onChannelChanged","channelActions","onChannelDeleted","onUserJoined","onUserBanned","onUserLeft","leftUser","onReadStatus","onDeliveryReceiptUpdated","onMessageUpdated","isEqual","onChannelHidden","onChannelFrozen","onChannelUnfrozen","addChannelHandler","userFilledChannelListQuery","channelListQuery","createMyGroupChannelListQuery","includeEmpty","order","limit","setupChannelList","setChannelSource","onChannelSelect","sortChannelList","channelList","sorted","markAsDelivered","pubSubHandleRemover","subscriber","s","pubSubHandler","subScriber","Map","set","msg","updatedChannel","ChannelList","queries","renderChannelPreview","onProfileEditSuccess","enableEditProfile","userDefinedDisableUserProfile","userDefinedRenderProfile","sdkError","setUser","sdkIntialized","channelListReducers","channelListInitialState","channelListStore","channelSource","setSdkChannelHandlerId","showProfileEdit","setShowProfileEdit","removeChannelHandler","channelListActions","sortedChannels","before","after","newName","updateCurrentUserInfoWithProfileImage","updatedUser","userActions","PlaceholderTypes","idx","cb","channelNameContainsFilter","channelUrlsFilter","customTypesFilter","customTypeStartsWithFilter","hiddenChannelFilter","memberStateFilter","metadataOrderKeyFilter","nicknameContainsFilter","publicChannelFilter","superChannelFilter","unreadChannelFilter","userIdsExactFilter","userIdsIncludeFilter","userIdsIncludeFilterQueryType","userIdsFilter","metaDataKeyFilter","metaDataValuesFilter","RESET_MESSAGES","RESET_STATE","CLEAR_SENT_MESSAGES","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","SEND_MESSAGEGE_START","SEND_MESSAGEGE_SUCESS","SEND_MESSAGEGE_FAILURE","RESEND_MESSAGEGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","SET_READ_STATUS","SUPPORTED_MIMES","IMAGE","VIDEO","isImage","isVideo","unSupported","MessageTypes","ADMIN","FILE","THUMBNAIL","OG","SendingMessageStatus","NONE","SUCCEEDED","getMessageType","isUserMessage","ogMetaData","isAdminMessage","isFileMessage","UNDEFINED","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","querySelectorAll","last","scrollIntoView","setTimeout","dispatcher","getParsedStatus","currentGroupChannel","unreadCount","getReadReceipt","isDelivered","getDeliveryReceipt","isOperator","myRole","isDisabledBecauseFrozen","isDisabledBecauseMuted","myMutedState","getEmojiCategoriesFromEmojiContainer","emojiContainer","emojiCategories","getAllEmojisFromEmojiContainer","allEmojis","categoryIndex","emojis","emojiIndex","getEmojisFromEmojiContainer","emojiCategoryId","emojiCategory","getAllEmojisMapFromEmojiContainer","allEmojisMap","getNicknamesMapFromMembers","nicknamesMap","memberIndex","isSameGroup","comparingMessage","sendingStatus","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","passUnsuccessfullMessages","allMessages","newMessage","lastIndexOfSucceededMessage","lastIndexOf","messages","splice","hasMore","lastMessageTimeStamp","readStatus","unreadSince","isInvalid","val","a","b","aString","bString","actionTypes","m","recivedMessages","stateChannel","stateChannelUrl","actionChannelUrl","filteredAllMessages","compareIds","newMessages","reqId","sort","failed","currentGroupChannelUrl","indexOf","applyReactionEvent","useHandleChannelEvents","sdkInit","messagesDispatcher","messageReciverId","onMessageReceived","messageActions","_","onMessageDeleted","onReactionUpdated","reactionEvent","onUserMuted","onUserUnmuted","onOperatorUpdated","useSetChannel","messageActionTypes","markAsRead","getAllEmoji","emojiContainer_","useInitialMessagesFetch","userFilledMessageListQuery","MessageListParams","getMessagesByMessageId","messageListParams","prevResultSize","isInclusive","includeReplies","includeReaction","getMessagesByTimestamp","getTime","useHandleReconnect","wasOffline","useReaction","isUsingReaction","lastMessageTime","useScrollCallback","useCallback","hasMoreMessages","lastMessageTs","useDeleteMessageCallback","useUpdateMessageCallback","onBeforeUpdateUserMessage","text","createParamsDefault","txt","UserMessageParams","createCustomPrams","useResendMessageCallback","isResendable","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","sendMessage","trim","useSendFileMessageCallback","onBeforeSendFileMessage","file_","FileMessageParams","useSetReadStatus","setReadStatus","allReadStatus","handleMessageStatus","onReadReceiptUpdated","handlerId","ReactionButton","selected","useMemoizedEmojiListItems","toggleReaction","emojiAllList","emoji","reactedReaction","reactions","reaction","isReacted","userIds","useToggleReactionCallback","deleteReaction","addReaction","MessageStatus","label","icon","array","object","ReactionBadge","isAdd","Tooltip","SPACE_FROM_TRIGGER","TooltipWrapper","hoverTooltip","showHoverTooltip","setShowHoverTooltip","childrenRef","bottom","offsetWidth","EmojiReactions","emojiAllMap","membersMap","memoizedEmojiListItems","MemoizedEmojiListItems","imageWidth","imageHeight","emojiReactionAddRef","messageReactions","emojiUrl","reactedUserCount","reactedByMe","nicknames","stringSetForMe","copyToClipboard","clipboardData","setData","queryCommandSupported","textarea","textContent","select","execCommand","ex","WORD_TYPOGRAPHY","EDITED_COLOR","useMemoizedMessageText","updatedAt","splitMessage","split","matchedMessage","word","MOUSE_ENTER","MOUSE_LEAVE","useMouseHover","setHover","handleMouseOver","handleMouseOut","GROUPING_PADDING","NORMAL_PADDING","Message","isByMe","resendMessage","showEdit","showRemove","chainTop","chainBottom","memoizedMessageText","OutgoingUserMessage","MemoizedMessageText","messageRef","parentRefReactions","parentRefMenus","isMessageSent","mousehover","setMousehover","moreActive","setMoreActive","handleMoreIconClick","handleMoreIconBlur","IncomingUserMessage","showReactionAddButton","showEmojiReactions","AdminMessage","OUTGOING_THUMBNAIL_MESSAGE","INCOMING_THUMBNAIL_MESSAGE","ThumbnailMessage","OutgoingThumbnailMessage","reactionAddRef","IncomingThumbnailMessage","MAX_TRUNCATE_LENGTH","GROUPAING_PADDING","checkFileType","imageFile","audioFile","OutgoingFileMessage","openFileUrl","open","reactionAddButtonRef","IncomingFileMessage","MessageSwitch","DateSeparator","separatorColor","LINE_HEIGHT","KeyCode","SHIFT","handleUploadFile","callback","MessageInput","isEdit","placeholder","maxLength","onFileUpload","onSendMessage","onCancelEdit","onStartTyping","fileInputRef","isShiftPressed","setIsShiftPressed","setHeight","MAX_HEIGHT","offsetHeight","trimmedInputValue","FileViewerComponent","onClose","onDelete","FileViewer","RemoveMessage","onDeleteMessage","UnknownMessage","OutgoingUnknownMessage","IncomingUnknownMessage","URL_REG","OG_MESSAGE","OUTGOING_OG_MESSAGE","INCOMING_OG_MESSAGE","createUrlTester","regexp","checkOGIsEnalbed","LINK_LABEL","http","LinkLabel","injecingClassName","WORD_COLOR","isUrl","NORAML_PADDING","OGMessageSwitch","openLink","OutgoingOGMessage","defaultImage","IncomingOGMessage","errorCode","MessageHoc","editDisabled","hasSeperator","updateMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","editMessageInputRef","FileMessage","OGMessage","RemoveMessageModal","isDateSeperator","ConversationScroll","scrollRef","onScroll","first","renderChatItem","useMessageGrouping","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","onUpdateMessage","onResendMessage","MessageHOC","Notification","time","timeArray","FrozenNotification","TypingIndicatorText","TypingIndicator","sb","setHandlerId","typingMembers","setTypingMembers","newHandlerId","onTypingStatusUpdated","getTypingMembers","MessageInputWrapper","renderMessageInput","startTyping","ConnectionStatus","prettyDate","formatDistanceToNowStrict","addSuffix","getOthersLastSeenAt","getReadStatus","lastSeenList","values","lastSeenAt","last_seen_at","AutoRefresh","repeatFunc","setLabel","interval","setInterval","clearInterval","ChatHeader","subTitle","onActionClick","ConversationPanel","renderChatHeader","onChatHeaderActionClick","messageListQuery","messagesReducer","messagesInitialState","messagesStore","invalidChannel","usingReaction","onScrollCallback","useGetChannel","onSendFileMessage","includeMetaArray","includeParentMessageText","includeThreadInfo","reverse","senderUserIdsFilter","EditDetails","ChannelProfile","onChannelInfoChange","EditDetailsModal","MembersModal","hideModal","setMembers","memberQuery","setMemberQuery","memberListQuery","createMemberListQuery","o","addOperators","removeOperators","unmuteUser","muteUser","banUser","SHOWN_MEMBER_MAX","MemebersAccordion","onInviteMemebers","showMoreModal","setShowMoreModal","showAddUserModal","setShowAddUserModal","ButtonSizes","Context","opened","setOpened","Consumer","Provider","AccordionGroup","Accordion","renderTitle","renderContent","renderFooter","showAccordion","setShowAccordion","handleClick","AccordionGroup_","OperatorsModal","operators","setOperators","operatorQuery","setOperatorQuery","operatorListQuery","createOperatorListQuery","AddOperatorsModal","selectedMembers","setSelectedMembers","modifiedSelectedMembers","OperatorList","showMore","setShowMore","showAdd","setShowAdd","setHasNext","refershList","operator","userQuery","setUserQuery","MemberList","showAllMembers","setShowAllMembers","showInviteMembers","setShowInviteMembers","memberUserListQuery","selectedMemebers","inviteWithUserIds","BannedMembersModal","bannedUserListQuery","createBannedUserListQuery","unbanUser","BannedMemberList","refreshList","MutedMembersModal","mutedMemberFilter","MutedMemberList","kFormatter","num","abs","toFixed","frozen","setFrozen","ChannelSettings","onCloseClick","onChannelModified","renderChannelProfile","onBeforeUpdateChannel","channelUpdateId","setChannelUpdateId","setChannel","setInvalidChannel","showLeaveChannelModal","setShowLeaveChannelModal","currentTitle","data","updateChannel","AdminPanel","App","currentChannelUrl","setCurrentChannelUrl","setShowSettings"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index c5633e8..0000000 --- a/dist/index.js +++ /dev/null @@ -1,14582 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var React = require('react'); -var React__default = _interopDefault(React); -var PropTypes = _interopDefault(require('prop-types')); -var Sb = _interopDefault(require('sendbird')); -var cssVars = _interopDefault(require('css-vars-ponyfill')); -var isToday = _interopDefault(require('date-fns/isToday')); -var format = _interopDefault(require('date-fns/format')); -var isYesterday = _interopDefault(require('date-fns/isYesterday')); -var reactDom = require('react-dom'); -var isSameDay = _interopDefault(require('date-fns/isSameDay')); -var formatDistanceToNowStrict = _interopDefault(require('date-fns/formatDistanceToNowStrict')); - -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} - -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} - -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys.push.apply(keys, symbols); - } - - return keys; -} - -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - - return target; -} - -function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) _setPrototypeOf(subClass, superClass); -} - -function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); -} - -function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); -} - -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; -} - -function _possibleConstructorReturn(self, call) { - if (call && (typeof call === "object" || typeof call === "function")) { - return call; - } - - return _assertThisInitialized(self); -} - -function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); -} - -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); -} - -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } -} - -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} - -function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); -} - -function _iterableToArrayLimit(arr, i) { - if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { - return; - } - - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; -} - -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); -} - -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); -} - -var SendbirdSdkContext = React__default.createContext(); - -var withSendbirdContext = function withSendbirdContext(OriginalComponent, mapStoreToProps) { - var ContextAwareComponent = function ContextAwareComponent(props) { - return React__default.createElement(SendbirdSdkContext.Consumer, null, function (context) { - if (mapStoreToProps && typeof mapStoreToProps !== 'function') { - // eslint-disable-next-line no-console - console.warn('Second parameter to withSendbirdContext must be a pure function'); - } // todo - memoize - - - var mergedProps = mapStoreToProps && typeof mapStoreToProps === 'function' ? _objectSpread2({}, mapStoreToProps(context), {}, props) : _objectSpread2({}, context, {}, props); // eslint-disable-next-line react/jsx-props-no-spreading - - return React__default.createElement(OriginalComponent, mergedProps); - }); - }; - - var componentName = OriginalComponent.displayName || OriginalComponent.name || 'Component'; - ContextAwareComponent.displayName = "SendbirdAware".concat(componentName); - return ContextAwareComponent; -}; - -var INIT_SDK = 'INIT_SDK'; -var SET_SDK_LOADING = 'SET_SDK_LOADING'; -var RESET_SDK = 'RESET_SDK'; -var SDK_ERROR = 'SDK_ERROR'; - -var INIT_USER = 'INIT_USER'; -var RESET_USER = 'RESET_USER'; -var UPDATE_USER_INFO = 'UPDATE_USER_INFO'; - -var APP_VERSION_STRING = '1.3.0'; -var disconnectSdk = function disconnectSdk(_ref) { - var sdkDispatcher = _ref.sdkDispatcher, - userDispatcher = _ref.userDispatcher, - sdk = _ref.sdk, - onDisconnect = _ref.onDisconnect; - sdkDispatcher({ - type: SET_SDK_LOADING, - payload: true - }); - - if (sdk && sdk.disconnect) { - sdk.disconnect().then(function () { - sdkDispatcher({ - type: RESET_SDK - }); - userDispatcher({ - type: RESET_USER - }); - }).finally(function () { - onDisconnect(); - }); - } else { - onDisconnect(); - } -}; -var handleConnection = function handleConnection(_ref2, dispatchers) { - var userId = _ref2.userId, - appId = _ref2.appId, - nickname = _ref2.nickname, - profileUrl = _ref2.profileUrl, - accessToken = _ref2.accessToken, - sdk = _ref2.sdk, - logger = _ref2.logger; - var sdkDispatcher = dispatchers.sdkDispatcher, - userDispatcher = dispatchers.userDispatcher; - disconnectSdk({ - sdkDispatcher: sdkDispatcher, - userDispatcher: userDispatcher, - sdk: sdk, - logger: logger, - onDisconnect: function onDisconnect() { - logger.info('Setup connection'); - sdkDispatcher({ - type: SET_SDK_LOADING, - payload: true - }); - - if (userId && appId) { - var newSdk = new Sb({ - appId: appId - }); // to check if code is released version from rollup and *not from storybook* - // see rollup config file - - { - newSdk.addExtension('sb_uikit', APP_VERSION_STRING); - } - - var connectCbSucess = function connectCbSucess(user) { - sdkDispatcher({ - type: INIT_SDK, - payload: newSdk - }); - userDispatcher({ - type: INIT_USER, - payload: user - }); // use nickname/profileUrl if provided - // or set userID as nickname - - var newNickName = nickname || user.nickname; - var newProfileUrl = profileUrl || user.profileUrl; - newSdk.updateCurrentUserInfo(newNickName, newProfileUrl).then(function (namedUser) { - userDispatcher({ - type: UPDATE_USER_INFO, - payload: namedUser - }); - }); - }; - - var connectCbError = function connectCbError(e) { - logger.error('Connection failed', "".concat(e)); - sdkDispatcher({ - type: RESET_SDK - }); - sdkDispatcher({ - type: RESET_USER - }); - sdkDispatcher({ - type: SDK_ERROR - }); - }; - - if (accessToken) { - newSdk.connect(userId, accessToken).then(function (res) { - return connectCbSucess(res); - }).catch(function (err) { - return connectCbError(err); - }); - } else { - newSdk.connect(userId).then(function (res) { - return connectCbSucess(res); - }).catch(function (err) { - return connectCbError(err); - }); - } - } else { - sdkDispatcher({ - type: SDK_ERROR - }); - logger.warning('Connection failed', 'UserId or appId missing'); - } - } - }); -}; - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; -} - -var isEmpty = function isEmpty(obj) { - if (obj === null || obj === undefined) { - return true; - } - - for (var prop in obj) { - if (obj.hasOwnProperty(prop)) { - return false; - } - } - - return JSON.stringify(obj) === JSON.stringify({}); -}; - -var useTheme = function useTheme(overrides) { - React.useLayoutEffect(function () { - if (!isEmpty(overrides)) { - cssVars({ - variables: __assign({ - '--sendbird-dark-primary-500': '#4d2aa6', - '--sendbird-dark-primary-400': '#6440C4', - '--sendbird-dark-primary-300': '#7B53EF', - '--sendbird-dark-primary-200': '#9E8CF5', - '--sendbird-dark-primary-100': '#E2DFFF', - '--sendbird-dark-secondary-500': '#007A7A', - '--sendbird-dark-secondary-400': '#189A8D', - '--sendbird-dark-secondary-300': '#2EBA9F', - '--sendbird-dark-secondary-200': '#6FD6BE', - '--sendbird-dark-secondary-100': '#AEF2DC', - '--sendbird-dark-information-100': '#b2d9ff', - '--sendbird-dark-error-500': '#A30E2D', - '--sendbird-dark-error-400': '#C11F41', - '--sendbird-dark-error-300': '#E53157', - '--sendbird-dark-error-200': '#FF6183', - '--sendbird-dark-error-100': '#FFABBD', - '--sendbird-dark-background-700': '#000000', - '--sendbird-dark-background-600': '#161616', - '--sendbird-dark-background-500': '#2C2C2C', - '--sendbird-dark-background-400': '#393939', - '--sendbird-dark-background-300': '#A8A8A8', - '--sendbird-dark-background-200': '#D9D9D9', - '--sendbird-dark-background-100': '#F0F0F0', - '--sendbird-dark-background-50': '#FFFFFF', - '--sendbird-dark-overlay': 'rgba(0, 0, 0, 0.32)', - '--sendbird-dark-onlight-01': 'rgba(0, 0, 0, 0.88)', - '--sendbird-dark-onlight-02': 'rgba(0, 0, 0, 0.50)', - '--sendbird-dark-onlight-03': 'rgba(0, 0, 0, 0.38)', - '--sendbird-dark-onlight-04': 'rgba(0, 0, 0, 0.12)', - '--sendbird-dark-ondark-01': 'rgba(255, 255, 255, 0.88)', - '--sendbird-dark-ondark-02': 'rgba(255, 255, 255, 0.50)', - '--sendbird-dark-ondark-03': 'rgba(255, 255, 255, 0.38)', - '--sendbird-dark-ondark-04': 'rgba(255, 255, 255, 0.12)', - '--sendbird-dark-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)', - '--sendbird-dark-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)', - '--sendbird-dark-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)', - '--sendbird-dark-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)', - '--sendbird-dark-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)', - '--sendbird-light-primary-500': '#4d2aa6', - '--sendbird-light-primary-400': '#6440C4', - '--sendbird-light-primary-300': '#7B53EF', - '--sendbird-light-primary-200': '#9E8CF5', - '--sendbird-light-primary-100': '#E2DFFF', - '--sendbird-light-secondary-500': '#007A7A', - '--sendbird-light-secondary-400': '#189A8D', - '--sendbird-light-secondary-300': '#2EBA9F', - '--sendbird-light-secondary-200': '#6FD6BE', - '--sendbird-light-secondary-100': '#AEF2DC', - '--sendbird-light-information-100': '#b2d9ff', - '--sendbird-light-error-500': '#A30E2D', - '--sendbird-light-error-400': '#C11F41', - '--sendbird-light-error-300': '#E53157', - '--sendbird-light-error-200': '#FF6183', - '--sendbird-light-error-100': '#FFABBD', - '--sendbird-light-background-700': '#000000', - '--sendbird-light-background-600': '#161616', - '--sendbird-light-background-500': '#2C2C2C', - '--sendbird-light-background-400': '#393939', - '--sendbird-light-background-300': '#A8A8A8', - '--sendbird-light-background-200': '#D9D9D9', - '--sendbird-light-background-100': '#F0F0F0', - '--sendbird-light-background-50': ' #FFFFFF', - '--sendbird-light-overlay': 'rgba(0, 0, 0, 0.32)', - '--sendbird-light-onlight-01': 'rgba(0, 0, 0, 0.88)', - '--sendbird-light-onlight-02': 'rgba(0, 0, 0, 0.50)', - '--sendbird-light-onlight-03': 'rgba(0, 0, 0, 0.38)', - '--sendbird-light-onlight-04': 'rgba(0, 0, 0, 0.12)', - '--sendbird-light-ondark-01': 'rgba(255, 255, 255, 0.88)', - '--sendbird-light-ondark-02': 'rgba(255, 255, 255, 0.50)', - '--sendbird-light-ondark-03': 'rgba(255, 255, 255, 0.38)', - '--sendbird-light-ondark-04': 'rgba(255, 255, 255, 0.12)', - '--sendbird-light-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)', - '--sendbird-light-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)', - '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)', - '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)', - '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)', - '--sendbird-light-theme-surface-2': '#EAEAEA' - }, overrides) - }); - } - }, [overrides]); -}; - -var sdkInitialState = { - initialized: false, - loading: false, - sdk: {}, - error: false -}; - -function reducer(state, action) { - switch (action.type) { - case SET_SDK_LOADING: - return _objectSpread2({}, state, { - initialized: false, - loading: action.payload - }); - - case SDK_ERROR: - return _objectSpread2({}, state, { - initialized: false, - loading: false, - error: true - }); - - case INIT_SDK: - return { - sdk: action.payload, - initialized: true, - loading: false, - error: false - }; - - case RESET_SDK: - return sdkInitialState; - - default: - return state; - } -} - -var userInitialState = { - initialized: false, - loading: false, - user: {} -}; - -function reducer$1(state, action) { - switch (action.type) { - case INIT_USER: - return { - initialized: true, - loading: false, - user: action.payload - }; - - case RESET_USER: - return userInitialState; - - case UPDATE_USER_INFO: - return _objectSpread2({}, state, { - user: action.payload - }); - - default: - return state; - } -} - -/* eslint-disable no-bitwise */ - -/* eslint-disable eqeqeq */ - -/* eslint-disable no-mixed-operators */ -// https://stackoverflow.com/a/2117523 -// used mainly for dom key generation -var uuidv4 = function uuidv4() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0; - var v = c === 'x' ? r : r & 0x3 | 0x8; - return v.toString(16); - }); -}; - -function useConnectionStatus(sdk, logger) { - var _useState = React.useState(true), - _useState2 = _slicedToArray(_useState, 2), - isOnline = _useState2[0], - setIsOnline = _useState2[1]; - - React.useEffect(function () { - var uniqueHandlerId = uuidv4(); - logger.warning('sdk changed', uniqueHandlerId); - var handler; - - if (sdk && sdk.ConnectionHandler) { - handler = new sdk.ConnectionHandler(); - - handler.onReconnectStarted = function () { - setIsOnline(false); - logger.warning('onReconnectStarted', { - isOnline: isOnline - }); - }; - - handler.onReconnectSucceeded = function () { - setIsOnline(true); - logger.warning('onReconnectSucceeded', { - isOnline: isOnline - }); - }; - - handler.onReconnectFailed = function () { - sdk.reconnect(); - logger.warning('onReconnectFailed'); - }; - - logger.info('Added ConnectionHandler', uniqueHandlerId); - sdk.addConnectionHandler(uniqueHandlerId, handler); - } - - return function () { - try { - sdk.removeConnectionHandler(uniqueHandlerId); - logger.info('Removed ConnectionHandler', uniqueHandlerId); - } catch (_unused) {// - } - }; - }, [sdk]); - React.useEffect(function () { - var tryReconnect = function tryReconnect() { - try { - logger.warning('Try reconnecting SDK'); - - if (sdk.getConnectionState() !== 'OPEN') { - // connection is not broken yet - sdk.reconnect(); - } - } catch (_unused2) {// - } - }; // addEventListener version - - - window.addEventListener('online', tryReconnect); - return function () { - window.removeEventListener('online', tryReconnect); - }; - }, [sdk]); // add offline-class to body - - React.useEffect(function () { - var body = document.querySelector('body'); - - if (!isOnline) { - try { - body.classList.add('sendbird__offline'); - logger.info('Added class sendbird__offline to body'); - } catch (e) {// - } - } else { - try { - body.classList.remove('sendbird__offline'); - logger.info('Removed class sendbird__offline from body'); - } catch (e) {// - } - } - }, [isOnline]); - return isOnline; -} - -var LOG_LEVELS = { - DEBUG: 'debug', - WARNING: 'warning', - ERROR: 'error', - INFO: 'info', - ALL: 'all' -}; - -var colorLog = function colorLog(level) { - switch (level) { - case LOG_LEVELS.WARNING: - return 'color: Orange'; - - case LOG_LEVELS.ERROR: - return 'color: Red'; - - default: - return 'color: Gray'; - } -}; - -var printLog = function printLog(_ref) { - var level = _ref.level, - title = _ref.title, - _ref$description = _ref.description, - description = _ref$description === void 0 ? '' : _ref$description; - // eslint-disable-next-line no-console - console.log("%c SendbirdUIKit | ".concat(level, " | ").concat(new Date().toISOString(), " | ").concat(title, " ").concat(description && '|'), colorLog(level), description); -}; -var getDefaultLogger = function getDefaultLogger() { - return { - info: function info() {}, - error: function error() {}, - warning: function warning() {} - }; -}; -var LoggerFactory = function LoggerFactory(lvl, customInterface) { - var logInterface = customInterface || printLog; - var lvlArray = Array.isArray(lvl) ? lvl : [lvl]; - - var applyLog = function applyLog(lgLvl) { - return function (title, description) { - return logInterface({ - level: lgLvl, - title: title, - description: description - }); - }; - }; - - var logger = lvlArray.reduce(function (accumulator, currentLvl) { - if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) { - return _objectSpread2({}, accumulator, { - info: applyLog(LOG_LEVELS.INFO), - error: applyLog(LOG_LEVELS.ERROR), - warning: applyLog(LOG_LEVELS.WARNING) - }); - } - - if (currentLvl === LOG_LEVELS.INFO) { - return _objectSpread2({}, accumulator, { - info: applyLog(LOG_LEVELS.INFO) - }); - } - - if (currentLvl === LOG_LEVELS.ERROR) { - return _objectSpread2({}, accumulator, { - error: applyLog(LOG_LEVELS.ERROR) - }); - } - - if (currentLvl === LOG_LEVELS.WARNING) { - return _objectSpread2({}, accumulator, { - warning: applyLog(LOG_LEVELS.WARNING) - }); - } - - return _objectSpread2({}, accumulator); - }, getDefaultLogger()); - return logger; -}; - -// https://davidwalsh.name/pubsub-javascript -var pubSubFactory = (function () { - var topics = {}; - var hOP = topics.hasOwnProperty; - return { - __getTopics: function __getTopics() { - return topics; - }, - subscribe: function subscribe(topic, listener) { - // Create the topic's object if not yet created - if (!hOP.call(topics, topic)) { - topics[topic] = []; - } // Add the listener to queue - - - var index = topics[topic].push(listener) - 1; // Provide handle back for removal of topic - - return { - remove: function remove() { - delete topics[topic][index]; - } - }; - }, - publish: function publish(topic, info) { - // If the topic doesn't exist, or there's no listeners in queue, just leave - if (!hOP.call(topics, topic)) { - return; - } // Cycle through topics queue, fire! - - - topics[topic].forEach(function (item) { - item(info !== undefined ? info : {}); - }); - } - }; -}); - -function useAppendDomNode() { - var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var rootSelector = arguments.length > 1 ? arguments[1] : undefined; - React.useEffect(function () { - var root = document.querySelector(rootSelector); - ids.forEach(function (id) { - var elem = document.createElement('div'); - elem.setAttribute('id', id); - root.appendChild(elem); - }); - return function () { - ids.forEach(function (id) { - var target = document.getElementById(id); - - if (target) { - root.removeChild(target); - } - }); - }; - }, []); -} - -var getStringSet = function getStringSet() { - var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en'; - var stringSet = { - en: { - TRYING_TO_CONNECT: 'Trying to connect…', - USER_PROFILE__MESSAGE: 'Message', - USER_PROFILE__USER_ID: 'User ID', - EDIT_PROFILE__TITLE: 'My profile', - EDIT_PROFILE__IMAGE_LABEL: 'Profile image', - EDIT_PROFILE__IMAGE_UPLOAD: 'Upload', - EDIT_PROFILE__NICKNAME_LABEL: 'Nickname', - EDIT_PROFILE__NICKNAME_PLACEHOLDER: 'Enter your nickname', - EDIT_PROFILE__USERID_LABEL: 'User ID', - EDIT_PROFILE__THEME_LABEL: 'Dark theme', - CHANNEL_LIST__TITLE: 'Channels', - CHANNEL__MESSAGE_INPUT__PLACE_HOLDER: 'Enter message', - CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED: 'Chat is unavailable in this channel', - CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED: 'Chat is unavailable because you are being muted', - CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE: 'new message(s) since', - CHANNEL__MESSAGE_LIST__NOTIFICATION__ON: 'on', - CHANNEL_SETTING__HEADER__TITLE: 'Channel information', - CHANNEL_SETTING__PROFILE__EDIT: 'Edit', - CHANNEL_SETTING__MEMBERS__TITLE: 'Members', - CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS: 'All members', - CHANNEL_SETTING__MEMBERS__INVITE_MEMBER: 'Invite users', - CHANNEL_SETTING__LEAVE_CHANNEL__TITLE: 'Leave channel', - CHANNEL_SETTING__OPERATORS__TITLE: 'Operators', - CHANNEL_SETTING__OPERATORS__TITLE_ALL: 'All operators', - CHANNEL_SETTING__OPERATORS__TITLE_ADD: 'Add operator', - CHANNEL_SETTING__MUTED_MEMBERS__TITLE: 'Muted members', - CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL: 'All muted members', - CHANNEL_SETTING__BANNED_MEMBERS__TITLE: 'Banned members', - CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL: 'All banned members', - CHANNEL_SETTING__FREEZE_CHANNEL: 'Freeze Channel', - BUTTON__CANCEL: 'Cancel', - BUTTON__DELETE: 'Delete', - BUTTON__SAVE: 'Save', - BUTTON__CREATE: 'Create', - BUTTON__INVITE: 'Invite', - BUTTON__CLOSE: 'Close', - BADGE__OVER: '+', - MODAL__DELETE_MESSAGE__TITLE: 'Delete this message?', - MODAL__CHANNEL_INFORMATION__TITLE: 'Edit channel information', - MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE: 'Channel image', - MODAL__CHANNEL_INFORMATION__UPLOAD: 'Upload', - MODAL__CHANNEL_INFORMATION__CHANNEL_NAME: 'Channel name', - MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER: 'Enter name', - MODAL__INVITE_MEMBER__TITLE: 'Invite member', - MODAL__INVITE_MEMBER__SELECTEC: 'selected', - MODAL__CREATE_CHANNEL__TITLE: 'New channel', - MODAL__CREATE_CHANNEL__SELECTED: 'selected', - MODAL__USER_LIST__TITLE: 'members', - TYPING_INDICATOR__IS_TYPING: 'is typing...', - TYPING_INDICATOR__AND: 'and', - TYPING_INDICATOR__ARE_TYPING: 'are typing...', - TYPING_INDICATOR__MULTIPLE_TYPING: 'Several people are typing...', - MESSAGE_STATUS__SENDING_FAILED: 'Couldn\'t send message.', - MESSAGE_STATUS__TRY_AGAIN: 'Try again', - MESSAGE_STATUS__OR: 'or', - MESSAGE_STATUS__DELETE: 'delete', - PLACE_HOLDER__NO_CHANNEL: 'No channels', - CHANNEL_FROZEN: 'Channel frozen', - MUTED_PL: 'Channel frozen', - PLACE_HOLDER__WRONG: 'Something went wrong', - PLACE_HOLDER__RETRY_TO_CONNECT: 'Retry', - NO_TITLE: 'No title', - NO_NAME: '(No name)', - NO_MEMBERS: '(No members)', - TOOLTIP__AND_YOU: ', and you', - TOOLTIP__YOU: 'you', - TOOLTIP__UNKOWN_USER: '(no name)', - UNKNOWN__UNKNOWN_MESSAGE_TYPE: '(Unknown message type)', - UNKNOWN__CANNOT_READ_MESSAGE: 'Cannot read this message.', - MESSAGE_EDITED: '(edited)' - } - }; - return stringSet[lang]; -}; - -var LocalizationContext = React__default.createContext({ - stringSet: getStringSet('en') -}); - -var LocalizationProvider = function LocalizationProvider(props) { - var children = props.children; - return React__default.createElement(LocalizationContext.Provider, { - value: props - }, children); -}; - -function Sendbird(props) { - var userId = props.userId, - appId = props.appId, - accessToken = props.accessToken, - children = props.children, - disableUserProfile = props.disableUserProfile, - renderUserProfile = props.renderUserProfile, - allowProfileEdit = props.allowProfileEdit, - theme = props.theme, - nickname = props.nickname, - profileUrl = props.profileUrl, - userListQuery = props.userListQuery, - _props$config = props.config, - config = _props$config === void 0 ? {} : _props$config, - colorSet = props.colorSet, - stringSet = props.stringSet; - var _config$logLevel = config.logLevel, - logLevel = _config$logLevel === void 0 ? '' : _config$logLevel; - - var _useState = React.useState(LoggerFactory(logLevel)), - _useState2 = _slicedToArray(_useState, 2), - logger = _useState2[0], - setLogger = _useState2[1]; - - var _useState3 = React.useState(), - _useState4 = _slicedToArray(_useState3, 2), - pubSub = _useState4[0], - setPubSub = _useState4[1]; - - var _useReducer = React.useReducer(reducer, sdkInitialState), - _useReducer2 = _slicedToArray(_useReducer, 2), - sdkStore = _useReducer2[0], - sdkDispatcher = _useReducer2[1]; - - var _useReducer3 = React.useReducer(reducer$1, userInitialState), - _useReducer4 = _slicedToArray(_useReducer3, 2), - userStore = _useReducer4[0], - userDispatcher = _useReducer4[1]; - - useTheme(colorSet); - React.useEffect(function () { - setPubSub(pubSubFactory()); - }, []); - React.useEffect(function () { - logger.info('App Init'); // dispatch action - - handleConnection({ - userId: userId, - appId: appId, - accessToken: accessToken, - sdkStore: sdkStore, - nickname: nickname, - profileUrl: profileUrl, - sdk: sdkStore.sdk, - logger: logger - }, { - sdkDispatcher: sdkDispatcher, - userDispatcher: userDispatcher - }); - }, [userId, appId, accessToken]); // to create a pubsub to communicate between parent and child - - React.useEffect(function () { - setLogger(LoggerFactory(logLevel)); - }, [logLevel]); - useAppendDomNode(['sendbird-modal-root', 'sendbird-dropdown-portal', 'sendbird-emoji-list-portal'], 'body'); // should move to reducer - - var _useState5 = React.useState(theme), - _useState6 = _slicedToArray(_useState5, 2), - currenttheme = _useState6[0], - setCurrenttheme = _useState6[1]; - - React.useEffect(function () { - setCurrenttheme(theme); - }, [theme]); // add-remove theme from body - - React.useEffect(function () { - logger.info('Setup theme', "Theme: ".concat(currenttheme)); - - try { - var body = document.querySelector('body'); - body.classList.add("sendbird-theme--".concat(currenttheme || 'light')); - logger.info('Finish setup theme'); // eslint-disable-next-line no-empty - } catch (e) { - logger.warning('Setup theme failed', "".concat(e)); - } - - return function () { - try { - var _body = document.querySelector('body'); - - _body.classList.remove('sendbird-theme--light'); - - _body.classList.remove('sendbird-theme--dark'); // eslint-disable-next-line no-empty - - } catch (_unused) {} - }; - }, [currenttheme]); - var isOnline = useConnectionStatus(sdkStore.sdk, logger); - var localeStringSet = React__default.useMemo(function () { - if (!stringSet) { - return getStringSet('en'); - } - - return _objectSpread2({}, getStringSet('en'), {}, stringSet); - }, [stringSet]); - return React__default.createElement(SendbirdSdkContext.Provider, { - value: { - stores: { - sdkStore: sdkStore, - userStore: userStore - }, - dispatchers: { - sdkDispatcher: sdkDispatcher, - userDispatcher: userDispatcher, - reconnect: function reconnect() { - handleConnection({ - userId: userId, - appId: appId, - accessToken: accessToken, - sdkStore: sdkStore, - nickname: nickname, - profileUrl: profileUrl, - logger: logger, - sdk: sdkStore.sdk - }, { - sdkDispatcher: sdkDispatcher, - userDispatcher: userDispatcher - }); - } - }, - config: { - disableUserProfile: disableUserProfile, - renderUserProfile: renderUserProfile, - allowProfileEdit: allowProfileEdit, - isOnline: isOnline, - userId: userId, - appId: appId, - accessToken: accessToken, - theme: currenttheme, - setCurrenttheme: setCurrenttheme, - userListQuery: userListQuery, - logger: logger, - pubSub: pubSub - } - } - }, React__default.createElement(LocalizationProvider, { - stringSet: localeStringSet - }, children)); -} -Sendbird.propTypes = { - userId: PropTypes.string.isRequired, - appId: PropTypes.string.isRequired, - accessToken: PropTypes.string, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, - theme: PropTypes.string, - nickname: PropTypes.string, - profileUrl: PropTypes.string, - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - allowProfileEdit: PropTypes.bool, - userListQuery: PropTypes.func, - config: PropTypes.shape({ - // None Error Warning Info 'All/Debug' - logLevel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - pubSub: PropTypes.shape({ - subscribe: PropTypes.func, - publish: PropTypes.func - }) - }), - stringSet: PropTypes.objectOf(PropTypes.string), - colorSet: PropTypes.objectOf(PropTypes.string) -}; -Sendbird.defaultProps = { - accessToken: '', - theme: 'light', - nickname: '', - profileUrl: '', - disableUserProfile: false, - renderUserProfile: null, - allowProfileEdit: false, - userListQuery: null, - config: {}, - stringSet: null, - colorSet: null -}; - -var UserProfileContext = React__default.createContext({ - disableUserProfile: true, - renderUserProfile: null -}); - -var UserProfileProvider = function UserProfileProvider(props) { - var children = props.children, - className = props.className; - return React__default.createElement(UserProfileContext.Provider, { - value: props - }, React__default.createElement("div", { - className: className - }, children)); -}; - -UserProfileProvider.propTypes = { - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, - // eslint-disable-next-line react/no-unused-prop-types - disableUserProfile: PropTypes.bool, - // eslint-disable-next-line react/no-unused-prop-types - renderUserProfile: PropTypes.func, - className: PropTypes.string -}; -UserProfileProvider.defaultProps = { - className: null, - disableUserProfile: false, - renderUserProfile: null -}; - -var RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST'; -var CREATE_CHANNEL = 'CREATE_CHANNEL'; -var LEAVE_CHANNEL_SUCCESS = 'LEAVE_CHANNEL_SUCCESS'; -var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL'; -var SHOW_CHANNEL_SETTINGS = 'SHOW_CHANNEL_SETTINGS'; -var HIDE_CHANNEL_SETTINGS = 'HIDE_CHANNEL_SETTINGS'; -var FETCH_CHANNELS_START = 'FETCH_CHANNELS_START'; -var FETCH_CHANNELS_SUCCESS = 'FETCH_CHANNELS_SUCCESS'; -var FETCH_CHANNELS_FAILURE = 'FETCH_CHANNELS_FAILURE'; -var INIT_CHANNELS_START = 'INIT_CHANNELS_START'; -var INIT_CHANNELS_SUCCESS = 'INIT_CHANNELS_SUCCESS'; -var INIT_CHANNELS_FAILURE = 'INIT_CHANNELS_FAILURE'; -var ON_USER_JOINED = 'ON_USER_JOINED'; -var ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED'; -var ON_LAST_MESSAGE_UPDATED = 'ON_LAST_MESSAGE_UPDATED'; -var ON_USER_LEFT = 'ON_USER_LEFT'; -var ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED'; -var ON_CHANNEL_ARCHIVED = 'ON_CHANNEL_ARCHIVED'; -var ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN'; -var ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN'; -var ON_READ_RECEIPT_UPDATED = 'ON_READ_RECEIPT_UPDATED'; -var ON_DELIVERY_RECEIPT_UPDATED = 'ON_DELIVERY_RECEIPT_UPDATED'; -var CHANNEL_REPLACED_TO_TOP = 'CHANNEL_REPLACED_TO_TOP'; - -var channelListInitialState = { - // we might not need this initialized state -> should remove - initialized: false, - loading: false, - allChannels: [], - currentChannel: null, - showSettings: false -}; - -function reducer$2(state, action) { - switch (action.type) { - case INIT_CHANNELS_START: - return _objectSpread2({}, state, { - loading: true - }); - - case RESET_CHANNEL_LIST: - return channelListInitialState; - - case INIT_CHANNELS_SUCCESS: - return _objectSpread2({}, state, { - initialized: true, - loading: false, - allChannels: action.payload, - currentChannel: action.payload && action.payload.length && action.payload.length > 0 ? action.payload[0].url : null - }); - - case FETCH_CHANNELS_SUCCESS: - { - var currentChannels = state.allChannels.map(function (c) { - return c.url; - }); - var filteredChannels = action.payload.filter(function (_ref) { - var url = _ref.url; - return !currentChannels.find(function (c) { - return c === url; - }); - }); - return _objectSpread2({}, state, { - allChannels: [].concat(_toConsumableArray(state.allChannels), _toConsumableArray(filteredChannels)) - }); - } - - case CREATE_CHANNEL: - { - return _objectSpread2({}, state, { - allChannels: [action.payload].concat(_toConsumableArray(state.allChannels.filter(function (channel) { - return channel.url !== action.payload.url; - }))), - currentChannel: action.payload.url - }); - } - - case ON_CHANNEL_ARCHIVED: - case LEAVE_CHANNEL_SUCCESS: - case ON_CHANNEL_DELETED: - { - var channelUrl = action.payload; - var leftCurrentChannel = state.currentChannel === channelUrl; - var newAllChannels = state.allChannels.filter(function (_ref2) { - var url = _ref2.url; - return url !== channelUrl; - }); - var currentChannel = leftCurrentChannel ? function () { - return newAllChannels.length > 0 ? newAllChannels[0].url : ''; - }() : state.currentChannel; - return _objectSpread2({}, state, { - currentChannel: currentChannel, - allChannels: newAllChannels - }); - } - - case ON_USER_LEFT: - { - var _action$payload = action.payload, - channel = _action$payload.channel, - isMe = _action$payload.isMe; - var url = channel.url; - - if (isMe) { - var _leftCurrentChannel = url === state.currentChannel; - - var _newAllChannels2 = state.allChannels.filter(function (c) { - return c.url !== url; - }); - - var _currentChannel = _leftCurrentChannel ? function () { - return _newAllChannels2.length > 0 ? _newAllChannels2[0].url : ''; - }() : state.currentChannel; - - return _objectSpread2({}, state, { - currentChannel: _currentChannel, - allChannels: _newAllChannels2 - }); - } // other user left - - - var _newAllChannels = state.allChannels.map(function (c) { - return c.url === url ? channel : c; - }); - - return _objectSpread2({}, state, { - allChannels: _newAllChannels - }); - } - - case ON_USER_JOINED: - case ON_CHANNEL_CHANGED: - case ON_READ_RECEIPT_UPDATED: - case ON_DELIVERY_RECEIPT_UPDATED: - { - var _state$allChannels = state.allChannels, - allChannels = _state$allChannels === void 0 ? [] : _state$allChannels; - var unreadMessageCount = action.payload.unreadMessageCount; - var _channel = action.payload; - - if (!_channel.lastMessage) { - return state; - } // if its only an unread message count change, dont push to top - - - if (unreadMessageCount === 0) { - var _currentChannel2 = allChannels.find(function (_ref3) { - var url = _ref3.url; - return url === _channel.url; - }); - - var currentUnReadCount = _currentChannel2 && _currentChannel2.unreadMessageCount; - - if (currentUnReadCount === 0) { - return _objectSpread2({}, state, { - allChannels: allChannels.map(function (c) { - if (c.url === _channel.url) { - return _channel; - } - - return c; - }) - }); - } - } - - return _objectSpread2({}, state, { - allChannels: [action.payload].concat(_toConsumableArray(state.allChannels.filter(function (_ref4) { - var url = _ref4.url; - return url !== action.payload.url; - }))) - }); - } - - case SET_CURRENT_CHANNEL: - return _objectSpread2({}, state, { - currentChannel: action.payload - }); - - case SHOW_CHANNEL_SETTINGS: - return _objectSpread2({}, state, { - showSettings: true - }); - - case HIDE_CHANNEL_SETTINGS: - return _objectSpread2({}, state, { - showSettings: false - }); - - case ON_LAST_MESSAGE_UPDATED: - return _objectSpread2({}, state, { - allChannels: state.allChannels.map(function (channel) { - if (channel.url === action.payload.url) { - return action.payload; - } - - return channel; - }) - }); - - case ON_CHANNEL_FROZEN: - return _objectSpread2({}, state, { - allChannels: state.allChannels.map(function (channel) { - if (channel.url === action.payload.url) { - // eslint-disable-next-line no-param-reassign - channel.isFrozen = true; - return channel; - } - - return channel; - }) - }); - - case ON_CHANNEL_UNFROZEN: - return _objectSpread2({}, state, { - allChannels: state.allChannels.map(function (channel) { - if (channel.url === action.payload.url) { - // eslint-disable-next-line no-param-reassign - channel.isFrozen = false; - return channel; - } - - return channel; - }) - }); - - case CHANNEL_REPLACED_TO_TOP: - return _objectSpread2({}, state, { - allChannels: [action.payload].concat(_toConsumableArray(state.allChannels.filter(function (channel) { - return channel.url !== action.payload.url; - }))) - }); - - default: - return state; - } -} - -/* - ImageRenderer displays image with url or source - it checks if the source exist with img tag first - if it exists onLoad is called, if not onError is called - and those properties switch img tag to real purposing element -*/ - -function ImageRenderer(_ref) { - var alt = _ref.alt, - url = _ref.url, - width = _ref.width, - height = _ref.height, - className = _ref.className, - defaultComponent = _ref.defaultComponent, - circle = _ref.circle; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift('sendbird-image-renderer'); - - var _useState = React.useState(null), - _useState2 = _slicedToArray(_useState, 2), - realElement = _useState2[0], - setRealElement = _useState2[1]; - - React.useEffect(function () { - setRealElement(null); - }, [url]); - return realElement || React__default.createElement("img", { - className: "sendbird-image-renderer--hidden-placeholder", - src: url, - alt: alt, - onError: function onError() { - setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent); - }, - onLoad: function onLoad() { - setRealElement(React__default.createElement("div", { - className: injectingClassName.join(' '), - style: { - height: height, - width: width, - backgroundRepeat: 'no-repeat', - backgroundPosition: 'center', - backgroundSize: 'cover', - backgroundImage: "url(".concat(url, ")"), - borderRadius: circle ? '50%' : null - } - })); - } - }); -} -ImageRenderer.propTypes = { - alt: PropTypes.string, - url: PropTypes.string.isRequired, - width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, - height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, - className: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]), - defaultComponent: PropTypes.oneOfType([PropTypes.element, PropTypes.func]).isRequired, - circle: PropTypes.bool -}; -ImageRenderer.defaultProps = { - alt: '', - className: '', - circle: false -}; - -var Type = { - ADD: 'ADD', - ATTACH: 'ATTACH', - ARROW_LEFT: 'ARROW_LEFT', - AVATAR_DARK: 'AVATAR_DARK', - AVATAR_LIGHT: 'AVATAR_LIGHT', - BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK', - BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT', - BROADCAST_DARK: 'BROADCAST_DARK', - BROADCAST_LIGHT: 'BROADCAST_LIGHT', - BROADCAST: 'BROADCAST', - FROZEN_DARK: 'FROZEN_DARK', - FROZEN_LIGHT: 'FROZEN_LIGHT', - CAMERA: 'CAMERA', - MORE: 'MORE', - MUTE: 'MUTE', - NO_THUMBNAIL: 'NO_THUMBNAIL', - CHECKBOX: 'CHECKBOX', - CHECKBOX_OFF: 'CHECKBOX_OFF', - CLOSE: 'CLOSE', - COPY: 'COPY', - CHAT: 'CHAT', - CREATE: 'CREATE', - DELETE: 'DELETE', - DISCONNECTED: 'DISCONNECTED', - DUMMY: 'DUMMY', - EDIT: 'EDIT', - ERROR: 'ERROR', - ERROR_FILLED: 'ERROR_FILLED', - EMOJI_FAILED: 'EMOJI_FAILED', - EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD', - EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY', - DELIVERED: 'DELIVERED', - DOCUMENT: 'DOCUMENT', - DOWNLOAD: 'DOWNLOAD', - FILE_AUDIO: 'FILE_AUDIO', - FILE_DOCUMENT: 'FILE_DOCUMENT', - GIF: 'GIF', - INFO: 'INFO', - LEAVE: 'LEAVE', - MEMBERS: 'MEMBERS', - NOTIFICATIONS: 'NOTIFICATIONS', - PHOTO: 'PHOTO', - PLAY: 'PLAY', - PLUS: 'PLUS', - READ: 'READ', - REFRESH: 'REFRESH', - SEND: 'SEND', - SENT: 'SENT', - SUPER_GROUP: 'SUPER_GROUP', - SHEVRON: 'SHEVRON', - SHEVRON_DOWN: 'SHEVRON_DOWN', - SPINNER: 'SPINNER', - SPINNER_LARGE: 'SPINNER_LARGE', - USER: 'USER', - ICON_OPERATOR: 'ICON_OPERATOR', - ICON_BANNED: 'ICON_BANNED', - ICON_FREEZE: 'ICON_FREEZE', - ICON_MUTED: 'ICON_MUTED', - ICON_MUTED_FG: 'ICON_MUTED_FG', - TOGGLE_ON: 'TOGGLE_ON', - TOGGLE_OFF: 'TOGGLE_OFF' -}; - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -var _ref = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-add_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M19 2a3 3 0 013 3v14a3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3zm0 2H5a1 1 0 00-1 1v14a1 1 0 001 1h14a1 1 0 001-1V5a1 1 0 00-1-1zm-7 3a1 1 0 01.993.883L13 8v3h3a1 1 0 01.117 1.993L16 13h-3v3a1 1 0 01-1.993.117L11 16v-3H8a1 1 0 01-.117-1.993L8 11h3V8a1 1 0 011-1z" -}); - -function SvgIconAdd(props) { - return React__default.createElement("svg", _extends({ - viewBox: "0 0 24 24" - }, props), _ref); -} - -function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); } - -var _ref$1 = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-attach_svg__fill", - fillOpacity: 0.88, - fillRule: "evenodd", - d: "M19.021 9.943l-8.424 8.023c-1.795 1.71-4.723 1.71-6.518 0-1.77-1.685-1.77-4.398 0-6.084l8.424-8.023c1.079-1.027 2.845-1.027 3.924 0a2.461 2.461 0 010 3.614l-8.433 8.022a.984.984 0 01-1.33 0 .772.772 0 010-1.142l7.782-7.403a.917.917 0 00-1.264-1.328L5.4 13.025a2.605 2.605 0 000 3.798 2.816 2.816 0 003.858 0l8.433-8.022a4.294 4.294 0 000-6.27C15.905.83 13.025.83 11.24 2.531l-8.425 8.023c-2.528 2.408-2.528 6.332 0 8.74 2.504 2.384 6.544 2.384 9.047 0l8.425-8.023a.917.917 0 10-1.265-1.328z" -}); - -function SvgIconAttach(props) { - return React__default.createElement("svg", _extends$1({ - viewBox: "0 0 22 22" - }, props), _ref$1); -} - -function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); } - -var _ref$2 = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-arrow-left_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12.707 3.293a1 1 0 01.083 1.32l-.083.094L6.415 11H21a1 1 0 01.117 1.993L21 13H6.415l6.292 6.293a1 1 0 01.083 1.32l-.083.094a1 1 0 01-1.32.083l-.094-.083-8-8a1 1 0 01-.083-1.32l.083-.094 8-8a1 1 0 011.414 0z" -}); - -function SvgIconArrowLeft(props) { - return React__default.createElement("svg", _extends$2({ - viewBox: "0 0 24 24" - }, props), _ref$2); -} - -function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); } - -var _ref$3 = -/*#__PURE__*/ -React__default.createElement("path", { - fill: "#393939", - d: "M0 0h56v56H0z" -}); - -var _ref2 = -/*#__PURE__*/ -React__default.createElement("path", { - fillOpacity: 0.88, - d: "M34.667 31.333a8.334 8.334 0 018.325 7.972l.008.362V43a1.667 1.667 0 01-3.322.194L39.667 43v-3.333a5 5 0 00-4.707-4.992l-.293-.008H21.333a5 5 0 00-4.991 4.706l-.009.294V43a1.667 1.667 0 01-3.322.194L13 43v-3.333a8.333 8.333 0 017.972-8.326l.361-.008h13.334zm-6.667-20A8.333 8.333 0 1128 28a8.333 8.333 0 010-16.667zm0 3.334a5 5 0 100 10 5 5 0 000-10z" -}); - -function SvgIconAvatarDark(props) { - return React__default.createElement("svg", _extends$3({ - viewBox: "0 0 56 56" - }, props), _ref$3, _ref2); -} - -function _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); } - -var _ref$4 = -/*#__PURE__*/ -React__default.createElement("path", { - fill: "#A8A8A8", - d: "M0 0h56v56H0z" -}); - -var _ref2$1 = -/*#__PURE__*/ -React__default.createElement("path", { - fill: "#FFF", - fillOpacity: 0.88, - d: "M34.667 31.333a8.334 8.334 0 018.325 7.972l.008.362V43a1.667 1.667 0 01-3.322.194L39.667 43v-3.333a5 5 0 00-4.707-4.992l-.293-.008H21.333a5 5 0 00-4.991 4.706l-.009.294V43a1.667 1.667 0 01-3.322.194L13 43v-3.333a8.333 8.333 0 017.972-8.326l.361-.008h13.334zm-6.667-20A8.333 8.333 0 1128 28a8.333 8.333 0 010-16.667zm0 3.334a5 5 0 100 10 5 5 0 000-10z" -}); - -function SvgIconAvatarLight(props) { - return React__default.createElement("svg", _extends$4({ - viewBox: "0 0 56 56" - }, props), _ref$4, _ref2$1); -} - -function _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); } - -var _ref$5 = -/*#__PURE__*/ -React__default.createElement("g", { - className: "icon-broadcast-lrg-dark_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("circle", { - cx: 28, - cy: 28, - r: 28, - fill: "#6FD6BE" -}), React__default.createElement("path", { - fill: "#000", - fillOpacity: 0.88, - d: "M41.273 16.083c.04.128.06.262.06.397v23.04a1.333 1.333 0 01-1.731 1.273l-8.975-2.805A5.335 5.335 0 0120 37.333v-2.666h-2.667a4 4 0 01-3.995-3.8l-.005-.2v-5.334a4 4 0 014-4H20l19.602-6.125a1.332 1.332 0 011.67.875zM22.667 35.627v1.706a2.667 2.667 0 005.326.199l.007-.239-5.333-1.666zm16-17.334l-16 4.999v9.415l16 4.998V18.293zM20 24h-2.667c-.683 0-1.247.515-1.324 1.178l-.009.155v5.334c0 .736.597 1.333 1.333 1.333H20v-8z" -})); - -function SvgIconBroadcastLrgDark(props) { - return React__default.createElement("svg", _extends$5({ - viewBox: "0 0 56 56" - }, props), _ref$5); -} - -function _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); } - -var _ref$6 = -/*#__PURE__*/ -React__default.createElement("g", { - className: "icon-broadcast-lrg-light_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("circle", { - cx: 28, - cy: 28, - r: 28, - fill: "#2EBA9F" -}), React__default.createElement("path", { - fill: "#FFF", - fillOpacity: 0.88, - d: "M41.273 16.083c.04.128.06.262.06.397v23.04a1.333 1.333 0 01-1.731 1.273l-8.975-2.805A5.335 5.335 0 0120 37.333v-2.666h-2.667a4 4 0 01-3.995-3.8l-.005-.2v-5.334a4 4 0 014-4H20l19.602-6.125a1.332 1.332 0 011.67.875zM22.667 35.627v1.706a2.667 2.667 0 005.326.199l.007-.239-5.333-1.666zm16-17.334l-16 4.999v9.415l16 4.998V18.293zM20 24h-2.667c-.683 0-1.247.515-1.324 1.178l-.009.155v5.334c0 .736.597 1.333 1.333 1.333H20v-8z" -})); - -function SvgIconBroadcastLrgLight(props) { - return React__default.createElement("svg", _extends$6({ - viewBox: "0 0 56 56" - }, props), _ref$6); -} - -function _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); } - -var _ref$7 = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-broadcast-dark_svg__fill", - fill: "#6FD6BE", - fillRule: "evenodd", - d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" -}); - -function SvgIconBroadcastDark(props) { - return React__default.createElement("svg", _extends$7({ - viewBox: "0 0 16 16" - }, props), _ref$7); -} - -function _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); } - -var _ref$8 = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-broadcast-light_svg__fill", - fill: "#2EBA9F", - fillRule: "evenodd", - d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" -}); - -function SvgIconBroadcastLight(props) { - return React__default.createElement("svg", _extends$8({ - viewBox: "0 0 16 16" - }, props), _ref$8); -} - -function _extends$9() { _extends$9 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); } - -var _ref$9 = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-broadcast_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M14.636 2.041c.02.065.03.132.03.2V13.76a.667.667 0 01-.865.637l-4.488-1.403A2.667 2.667 0 014 12.666v-1.334H2.667a2 2 0 01-1.995-1.85l-.005-.15V6.667a2 2 0 012-2H4l9.801-3.063a.666.666 0 01.835.437zm-9.303 9.772v.854a1.333 1.333 0 002.664.099l.003-.12-2.667-.833zm8-8.666l-8 2.499v4.707l8 2.5V3.147zM4 6H2.667a.668.668 0 00-.663.589L2 6.667v2.666c0 .369.298.667.667.667H4V6z" -}); - -function SvgIconBroadcast(props) { - return React__default.createElement("svg", _extends$9({ - viewBox: "0 0 16 16" - }, props), _ref$9); -} - -function _extends$a() { _extends$a = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); } - -var _ref$a = -/*#__PURE__*/ -React__default.createElement("path", { - className: "frozen-dark_svg__fill", - fill: "#9E8CF5", - fillRule: "evenodd", - d: "M10.409.806l.063.056c.24.24.259.618.055.88l-.055.063-1.805 1.804v3.236l2.801-1.618.662-2.465a.665.665 0 011.304.263l-.016.082-.56 2.088 2.088.56a.665.665 0 01.488.734l-.016.082a.666.666 0 01-.735.488l-.082-.016-2.465-.661L9.334 8l2.801 1.618 2.466-.66.082-.017a.667.667 0 01.735.488l.016.082a.666.666 0 01-.488.734l-2.088.56.56 2.088.016.082a.666.666 0 01-1.304.263l-.662-2.465-2.801-1.618v3.236l1.805 1.804a.668.668 0 01-.88.999l-.063-.056L8 13.61l-1.528 1.53a.668.668 0 01-.88.055l-.063-.056a.668.668 0 01-.056-.88l.056-.063 1.804-1.805V9.155L4.53 10.773l-.66 2.465a.667.667 0 01-1.304-.263l.017-.082.559-2.088-2.088-.56a.667.667 0 01-.488-.734l.017-.082a.665.665 0 01.734-.488l.082.016 2.466.66L6.666 8 3.864 6.382l-2.465.66-.082.017a.666.666 0 01-.734-.488L.566 6.49a.667.667 0 01.488-.734l2.088-.56-.56-2.088-.016-.082a.667.667 0 011.305-.263l.659 2.465 2.803 1.618V3.61L5.529 1.805a.668.668 0 01.88-.999l.063.056L8 2.39 9.53.862a.668.668 0 01.88-.056z" -}); - -function SvgFrozenDark(props) { - return React__default.createElement("svg", _extends$a({ - viewBox: "0 0 16 16" - }, props), _ref$a); -} - -function _extends$b() { _extends$b = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$b.apply(this, arguments); } - -var _ref$b = -/*#__PURE__*/ -React__default.createElement("path", { - className: "frozen-light_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M10.409.806l.063.056c.24.24.259.618.055.88l-.055.063-1.805 1.804v3.236l2.801-1.618.662-2.465a.665.665 0 011.304.263l-.016.082-.56 2.088 2.088.56a.665.665 0 01.488.734l-.016.082a.666.666 0 01-.735.488l-.082-.016-2.465-.661L9.334 8l2.801 1.618 2.466-.66.082-.017a.667.667 0 01.735.488l.016.082a.666.666 0 01-.488.734l-2.088.56.56 2.088.016.082a.666.666 0 01-1.304.263l-.662-2.465-2.801-1.618v3.236l1.805 1.804a.668.668 0 01-.88.999l-.063-.056L8 13.61l-1.528 1.53a.668.668 0 01-.88.055l-.063-.056a.668.668 0 01-.056-.88l.056-.063 1.804-1.805V9.155L4.53 10.773l-.66 2.465a.667.667 0 01-1.304-.263l.017-.082.559-2.088-2.088-.56a.667.667 0 01-.488-.734l.017-.082a.665.665 0 01.734-.488l.082.016 2.466.66L6.666 8 3.864 6.382l-2.465.66-.082.017a.666.666 0 01-.734-.488L.566 6.49a.667.667 0 01.488-.734l2.088-.56-.56-2.088-.016-.082a.667.667 0 011.305-.263l.659 2.465 2.803 1.618V3.61L5.529 1.805a.668.668 0 01.88-.999l.063.056L8 2.39 9.53.862a.668.668 0 01.88-.056z" -}); - -function SvgFrozenLight(props) { - return React__default.createElement("svg", _extends$b({ - viewBox: "0 0 16 16" - }, props), _ref$b); -} - -function _extends$c() { _extends$c = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$c.apply(this, arguments); } - -var _ref$c = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-camera_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M15 2a1 1 0 01.832.445L17.535 5H21a3 3 0 012.995 2.824L24 8v11a3 3 0 01-3 3H3a3 3 0 01-3-3V8a3 3 0 013-3h3.464l1.704-2.555a1 1 0 01.708-.437L9 2zm-.536 2H9.535L7.832 6.555a1 1 0 01-.708.437L7 7H3a1 1 0 00-1 1v11a1 1 0 001 1h18a1 1 0 001-1V8a1 1 0 00-1-1h-4a1 1 0 01-.832-.445L14.464 4zM12 8a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z" -}); - -function SvgIconCamera(props) { - return React__default.createElement("svg", _extends$c({ - viewBox: "0 0 24 24" - }, props), _ref$c); -} - -function _extends$d() { _extends$d = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$d.apply(this, arguments); } - -var _ref$d = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-more_svg__fill", - fillRule: "evenodd", - d: "M12 17a2 2 0 110 4 2 2 0 010-4zm0-6.5a2 2 0 110 4 2 2 0 010-4zM12 4a2 2 0 110 4 2 2 0 010-4z" -}); - -function SvgIconMore(props) { - return React__default.createElement("svg", _extends$d({ - viewBox: "0 0 24 24" - }, props), _ref$d); -} - -function _extends$e() { _extends$e = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$e.apply(this, arguments); } - -var _ref$e = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-mute_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M15.125 20.09c0 .602-.694 2.41-2.778 2.41-1.389 0-2.315-.804-2.778-2.41zM12.789 1.606a6.496 6.496 0 015.388 2.861l2.464-2.463a.788.788 0 011.025-.077l.088.077a.788.788 0 010 1.113L3.378 21.494a.788.788 0 01-1.025.077l-.088-.077a.788.788 0 010-1.113l1.9-1.903-.04-.004a.387.387 0 01-.241-.596l1.557-2.295.001-.208a545.875 545.875 0 00-.028-6.563l-.008-.614a6.503 6.503 0 016.414-6.59h.969zm6.381 5.246c.08.407.122.827.122 1.257l-.001 7.53 1.52 2.238a.387.387 0 01-.32.604H7.54l3.214-3.214 8.415-8.415z" -}); - -function SvgIconMute(props) { - return React__default.createElement("svg", _extends$e({ - viewBox: "0 0 24 24" - }, props), _ref$e); -} - -function _extends$f() { _extends$f = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$f.apply(this, arguments); } - -var _ref$f = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-no-thumbnail_svg__fill", - fillOpacity: 0.5, - fillRule: "evenodd", - d: "M30.333 4.667a2.333 2.333 0 110 4.666H11.667a2.334 2.334 0 00-2.334 2.334v32.666c0 1.001.63 1.855 1.516 2.186l24.834-24.836a2.336 2.336 0 013.3 0l7.684 7.683v-3.7c0-1.234.96-2.245 2.173-2.327l.16-.006a2.333 2.333 0 012.333 2.334v18.666a7 7 0 01-7 7H11.665a6.999 6.999 0 01-6.998-7V11.667a7 7 0 017-7zm7 21.966L17.3 46.666h27.034a2.333 2.333 0 002.328-2.173l.006-.16v-8.367l-9.334-9.333zM19.833 14a5.834 5.834 0 110 11.668 5.834 5.834 0 010-11.668zm0 4.667a1.166 1.166 0 100 2.332 1.166 1.166 0 000-2.332zm29.85-15.65a2.334 2.334 0 013.3 3.3L48.8 10.499l4.184 4.184c.87.87.91 2.256.119 3.173l-.119.127a2.334 2.334 0 01-3.3 0L45.5 13.8l-4.183 4.184c-.87.87-2.256.91-3.173.119l-.127-.119a2.334 2.334 0 010-3.3L42.2 10.5l-4.183-4.182a2.334 2.334 0 01-.119-3.173l.119-.127a2.334 2.334 0 013.3 0L45.5 7.2z" -}); - -function SvgIconNoThumbnail(props) { - return React__default.createElement("svg", _extends$f({ - viewBox: "0 0 56 56" - }, props), _ref$f); -} - -function _extends$g() { _extends$g = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); } - -var _ref$g = -/*#__PURE__*/ -React__default.createElement("g", { - className: "icon-checkbox_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd" -}, React__default.createElement("path", { - d: "M18 1H6a5 5 0 00-5 5v12a5 5 0 005 5h12a5 5 0 005-5V6a5 5 0 00-5-5zm0 2a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h12z" -}), React__default.createElement("path", { - d: "M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" -})); - -function SvgIconCheckbox(props) { - return React__default.createElement("svg", _extends$g({ - viewBox: "0 0 24 24" - }, props), _ref$g); -} - -function _extends$h() { _extends$h = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); } - -var _ref$h = -/*#__PURE__*/ -React__default.createElement("g", { - className: "icon-checkbox-off_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd" -}, React__default.createElement("path", { - d: "M18 1H6a5 5 0 00-5 5v12a5 5 0 005 5h12a5 5 0 005-5V6a5 5 0 00-5-5zm0 2a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h12z" -}), React__default.createElement("path", { - d: "M19 19H5V5h14v14zm0-16H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" -})); - -function SvgIconCheckboxOff(props) { - return React__default.createElement("svg", _extends$h({ - viewBox: "0 0 24 24" - }, props), _ref$h); -} - -function _extends$i() { _extends$i = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); } - -var _ref$i = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-close_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M6.613 5.21l.094.083L12 10.585l5.293-5.292a1 1 0 011.497 1.32l-.083.094L13.415 12l5.292 5.293a1 1 0 01-1.32 1.497l-.094-.083L12 13.415l-5.293 5.292a1 1 0 01-1.497-1.32l.083-.094L10.585 12 5.293 6.707a1 1 0 011.32-1.497z" -}); - -function SvgIconClose(props) { - return React__default.createElement("svg", _extends$i({ - viewBox: "0 0 24 24" - }, props), _ref$i); -} - -function _extends$j() { _extends$j = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); } - -var _ref$j = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-copy_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M20 8a3 3 0 013 3v9a3 3 0 01-3 3h-9a3 3 0 01-3-3v-9a3 3 0 013-3zm0 2h-9a1 1 0 00-1 1v9a1 1 0 001 1h9a1 1 0 001-1v-9a1 1 0 00-1-1zm-7-9a3 3 0 012.995 2.824L16 4v1a1 1 0 01-1.993.117L14 5V4a1 1 0 00-.883-.993L13 3H4a1 1 0 00-.993.883L3 4v9a1 1 0 00.883.993L4 14h1a1 1 0 01.117 1.993L5 16H4a3 3 0 01-2.995-2.824L1 13V4a3 3 0 012.824-2.995L4 1h9z" -}); - -function SvgIconCopy(props) { - return React__default.createElement("svg", _extends$j({ - viewBox: "0 0 24 24" - }, props), _ref$j); -} - -function _extends$k() { _extends$k = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); } - -var _ref$k = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-chat_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11c-1.67 0-3.255-.373-4.673-1.039l-.657.218c-2.237.716-3.8.964-4.69.742-1.049-.261-1.256-.72-.62-1.373.439-.524.805-1.178 1.097-1.963.234-.625.142-1.5-.276-2.625A10.933 10.933 0 011 12C1 5.925 5.925 1 12 1zm0 2a9 9 0 00-8.187 12.742l.152.314.051.101.04.107c.569 1.532.709 2.859.275 4.02l-.143.365-.072.162.088-.019a23.181 23.181 0 001.832-.511l.646-.213.765-.26.73.343A8.962 8.962 0 0012 21a9 9 0 000-18z" -}); - -function SvgIconChat(props) { - return React__default.createElement("svg", _extends$k({ - viewBox: "0 0 24 24" - }, props), _ref$k); -} - -function _extends$l() { _extends$l = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); } - -var _ref$l = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-supergroup_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M16.139 18.818c2.89 0 5.303 2.05 5.438 4.696l.006.235v1.626a1.166 1.166 0 01-2.326.136l-.007-.136v-1.626c0-1.343-1.255-2.501-2.903-2.592l-.208-.006H11.86c-1.679 0-3.001 1.105-3.105 2.431l-.006.167v1.626a1.166 1.166 0 01-2.325.136l-.008-.136v-1.626c0-2.68 2.329-4.806 5.19-4.926l.254-.005h4.278zm8.128-7.565c.116 0 .232.018.343.052 2.026.624 3.289 2.1 3.384 4.239l.006.26v5.6a1.166 1.166 0 01-2.325.136l-.008-.137v-5.599c-.001-1.135-.509-1.825-1.543-2.202l-.046-.016h-1.095c-.598 0-1.091-.45-1.158-1.03l-.008-.136c0-.598.45-1.092 1.03-1.159l.136-.008h1.284zm-19.25 0l.136.008c.58.067 1.03.56 1.03 1.159l-.008.136c-.067.58-.56 1.03-1.158 1.03H3.919l-.052.018c-.983.372-1.533 1.126-1.534 2.252v5.547l-.008.136A1.166 1.166 0 010 21.404v-5.548l.006-.259c.099-2.132 1.402-3.681 3.374-4.29.112-.035.228-.053.345-.053h1.292zM14 8.732c2.412 0 4.375 1.928 4.375 4.318 0 2.39-1.963 4.319-4.375 4.319S9.625 15.44 9.625 13.05c0-2.39 1.963-4.318 4.375-4.318zm0 2.333c-1.132 0-2.042.893-2.042 1.985s.91 1.986 2.042 1.986c1.132 0 2.042-.894 2.042-1.986s-.91-1.985-2.042-1.985zM7.583 1.167c2.412 0 4.375 1.929 4.375 4.318 0 2.39-1.963 4.32-4.375 4.32-2.411 0-4.375-1.93-4.375-4.32 0-2.39 1.964-4.318 4.375-4.318zm12.834 0c2.411 0 4.375 1.929 4.375 4.318 0 2.39-1.964 4.32-4.375 4.32-2.412 0-4.375-1.93-4.375-4.32 0-2.39 1.963-4.318 4.375-4.318zM7.583 3.5c-1.132 0-2.041.894-2.041 1.985 0 1.092.91 1.986 2.041 1.986 1.132 0 2.042-.894 2.042-1.986 0-1.091-.91-1.985-2.042-1.985zm12.834 0c-1.132 0-2.042.894-2.042 1.985 0 1.092.91 1.986 2.042 1.986 1.132 0 2.041-.894 2.041-1.986 0-1.091-.91-1.985-2.041-1.985z" -}); - -function SvgIconSupergroup(props) { - return React__default.createElement("svg", _extends$l({ - viewBox: "0 0 28 28" - }, props), _ref$l); -} - -function _extends$m() { _extends$m = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); } - -var _ref$m = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-create_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11c-1.67 0-3.255-.373-4.673-1.039l-.657.218c-2.237.716-3.8.964-4.69.742-1.049-.261-1.256-.72-.62-1.373.439-.524.805-1.178 1.097-1.963.234-.625.142-1.5-.276-2.625A10.933 10.933 0 011 12C1 5.925 5.925 1 12 1zm0 2a9 9 0 00-8.187 12.742l.152.314.051.101.04.107c.569 1.532.709 2.859.275 4.02l-.143.365-.072.162.088-.019a23.181 23.181 0 001.832-.511l.646-.213.765-.26.73.343A8.962 8.962 0 0012 21a9 9 0 000-18zm1 6v2h2c1.333 0 1.333 2 0 2h-2v2c0 1.333-2 1.333-2 0v-2H9c-1.333 0-1.333-2 0-2h2V9c0-1.333 2-1.333 2 0z" -}); - -function SvgIconCreate(props) { - return React__default.createElement("svg", _extends$m({ - viewBox: "0 0 24 24" - }, props), _ref$m); -} - -function _extends$n() { _extends$n = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$n.apply(this, arguments); } - -var _ref$n = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-delete_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M14 1a3 3 0 012.995 2.824L17 4v1h4a1 1 0 01.117 1.993L21 7h-1v13a3 3 0 01-2.824 2.995L17 23H7a3 3 0 01-2.995-2.824L4 20V7H3a1 1 0 01-.117-1.993L3 5h4V4a3 3 0 012.824-2.995L10 1h4zm4 6H6v13a1 1 0 00.883.993L7 21h10a1 1 0 00.993-.883L18 20V7zm-8 3a1 1 0 01.993.883L11 11v6a1 1 0 01-1.993.117L9 17v-6a1 1 0 011-1zm4 0a1 1 0 01.993.883L15 11v6a1 1 0 01-1.993.117L13 17v-6a1 1 0 011-1zm0-7h-4a1 1 0 00-.993.883L9 4v1h6V4a1 1 0 00-.883-.993L14 3z" -}); - -function SvgIconDelete(props) { - return React__default.createElement("svg", _extends$n({ - viewBox: "0 0 24 24" - }, props), _ref$n); -} - -function _extends$o() { _extends$o = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$o.apply(this, arguments); } - -var _ref$o = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-dummy_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" -}); - -function SvgIconDummy(props) { - return React__default.createElement("svg", _extends$o({ - viewBox: "0 0 24 24" - }, props), _ref$o); -} - -function _extends$p() { _extends$p = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$p.apply(this, arguments); } - -var _ref$p = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-edit_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M21.875 21.875a1.042 1.042 0 01.121 2.076l-.121.007H3.125a1.042 1.042 0 01-.121-2.076l.121-.007h18.75zM13.847 1.347a1.042 1.042 0 011.473 0l4.167 4.166a1.042 1.042 0 010 1.474L8.028 18.445c-.195.195-.46.305-.736.305H3.125a1.042 1.042 0 01-1.042-1.042v-4.166c0-.277.11-.542.305-.737zm.736 2.21L4.167 13.973v2.694h2.691L17.276 6.25l-2.693-2.693z" -}); - -function SvgIconEdit(props) { - return React__default.createElement("svg", _extends$p({ - viewBox: "0 0 26 26" - }, props), _ref$p); -} - -function _extends$q() { _extends$q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$q.apply(this, arguments); } - -var _ref$q = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-error_svg__fill", - fill: "#E53157", - fillRule: "evenodd", - d: "M8 1.265c.655 0 1.266.32 1.64.856l.072.11 5.652 9.436c.355.615.357 1.373.006 1.99-.33.579-.925.953-1.59 1.004l-.133.006H2.346a2.001 2.001 0 01-1.772-2.883l.067-.127 5.649-9.43A2 2 0 018 1.266zm0 1.333a.669.669 0 00-.52.248l-.048.07-5.641 9.417a.669.669 0 00.477.994l.085.006H13.64a.664.664 0 00.612-.914l-.036-.076L8.57 2.919a.663.663 0 00-.57-.32zm0 8.069A.667.667 0 118 12a.667.667 0 010-1.333zm0-5.334c.342 0 .624.258.662.59L8.667 6v2.667a.667.667 0 01-1.329.077l-.005-.077V6c0-.368.299-.667.667-.667z" -}); - -function SvgIconError(props) { - return React__default.createElement("svg", _extends$q({ - viewBox: "0 0 16 16" - }, props), _ref$q); -} - -function _extends$r() { _extends$r = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$r.apply(this, arguments); } - -var _ref$r = -/*#__PURE__*/ -React__default.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("path", { - className: "icon-error-filled_svg__fill", - fill: "#E53157", - d: "M10.281 4.18L1.77 17.85a1.87 1.87 0 00-.005 1.924c.353.597 1.01.968 1.724.976h17.024a2.024 2.024 0 001.724-.976 1.87 1.87 0 00-.005-1.924L13.719 4.18A2.028 2.028 0 0012 3.25a2.03 2.03 0 00-1.719.93z" -}), React__default.createElement("path", { - fill: "#FFF", - fillRule: "nonzero", - d: "M11.125 12.875V8.5c0-1.167 1.75-1.167 1.75 0v4.375c0 1.167-1.75 1.167-1.75 0zm0 3.5c0-1.167 1.75-1.167 1.75 0s-1.75 1.167-1.75 0z" -})); - -function SvgIconErrorFilled(props) { - return React__default.createElement("svg", _extends$r({ - viewBox: "0 0 24 24" - }, props), _ref$r); -} - -function _extends$s() { _extends$s = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$s.apply(this, arguments); } - -var _ref$s = -/*#__PURE__*/ -React__default.createElement("g", { - className: "emoji-fail_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("rect", { - width: 26.526, - height: 26.526, - x: 0.737, - y: 0.737, - fill: "#FFF", - rx: 4 -}), React__default.createElement("path", { - fill: "#000", - fillOpacity: 0.12, - d: "M14 23.456a9.457 9.457 0 11.001-18.913A9.457 9.457 0 0114 23.456zm0-1.72a7.736 7.736 0 100-15.473 7.737 7.737 0 000 15.474zm.714-6.005a.86.86 0 11-1.72 0v-.867a.86.86 0 01.588-.816 5.248 5.248 0 001.084-.544c.592-.395.907-.815.907-1.22a1.72 1.72 0 00-3.341-.574.86.86 0 11-1.622-.57 3.438 3.438 0 016.682 1.145c0 1.1-.651 1.969-1.672 2.65a6.81 6.81 0 01-.906.508v.288zm-1.72 2.425a.86.86 0 011.72 0v.142a.86.86 0 11-1.72 0V18.156z" -})); - -function SvgEmojiFail(props) { - return React__default.createElement("svg", _extends$s({ - viewBox: "0 0 28 28" - }, props), _ref$s); -} - -function _extends$t() { _extends$t = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$t.apply(this, arguments); } - -var _ref$t = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-reactions-add_svg__fill", - fillOpacity: 0.88, - fillRule: "evenodd", - d: "M11.033 1.107a9.98 9.98 0 012.669.362.734.734 0 01-.393 1.413A8.466 8.466 0 002.567 11.04 8.466 8.466 0 1019.2 8.8a.736.736 0 01.514-.902.735.735 0 01.901.514c.233.85.352 1.731.352 2.628 0 5.486-4.448 9.933-9.934 9.933-5.486 0-9.933-4.447-9.933-9.933s4.447-9.933 9.933-9.933zm3.68 11.96c.5 0 .854.49.696.965-.644 1.933-2.385 3.261-4.376 3.261-1.99 0-3.732-1.328-4.375-3.261a.733.733 0 01.597-.959l.098-.006h7.36zm-1.195 1.466h-4.97l.101.131a3.115 3.115 0 002.012 1.14l.198.018.174.005c.868 0 1.672-.38 2.254-1.012l.13-.15.101-.132zM7.353 7.547c.374 0 .683.28.728.641l.006.092v1.84a.734.734 0 01-1.461.092l-.006-.092V8.28c0-.405.328-.733.733-.733zm7.36 0c.374 0 .683.28.728.641l.006.092v1.84a.734.734 0 01-1.461.092l-.006-.092V8.28c0-.405.328-.733.733-.733zM18.398 0c.405 0 .733.328.733.733v2.218h2.209a.734.734 0 010 1.467h-2.21v2.209a.732.732 0 11-1.466 0V4.418h-2.217a.734.734 0 110-1.466l2.216-.001.001-2.218c0-.405.328-.733.733-.733z" -}); - -function SvgIconReactionsAdd(props) { - return React__default.createElement("svg", _extends$t({ - viewBox: "0 0 22 22" - }, props), _ref$t); -} - -function _extends$u() { _extends$u = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$u.apply(this, arguments); } - -var _ref$u = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-emoji-reactions-add_svg__fill", - fillOpacity: 0.38, - fillRule: "evenodd", - d: "M10.03 1.006c.828 0 1.643.112 2.426.33a.666.666 0 11-.357 1.284 7.741 7.741 0 00-2.069-.28 7.697 7.697 0 107.697 7.696c0-.696-.092-1.379-.272-2.037a.667.667 0 011.287-.352c.21.773.319 1.574.319 2.39a9.03 9.03 0 01-9.03 9.03 9.03 9.03 0 11-.001-18.06zm3.346 10.873c.455 0 .776.445.632.877-.585 1.757-2.168 2.965-3.978 2.965s-3.392-1.208-3.978-2.965a.667.667 0 01.538-.87l.095-.007h6.69zm-1.087 1.333H7.771l.092.12c.46.563 1.103.938 1.813 1.033l.196.018.158.005c.784 0 1.512-.341 2.04-.91l.128-.147.091-.12zM6.685 6.86c.34 0 .62.254.661.583l.006.083V9.2a.667.667 0 01-1.329.084L6.018 9.2V7.527c0-.368.299-.666.667-.666zm6.69 0c.34 0 .621.254.662.583l.005.083V9.2a.667.667 0 01-1.328.084L12.71 9.2V7.527c0-.368.299-.666.667-.666zM16.726 0c.368 0 .667.298.667.667l-.001 2.016H19.4a.667.667 0 010 1.334l-2.01-.001.002 2.008a.667.667 0 01-1.334 0V4.016h-2.016a.666.666 0 110-1.333h2.016V.667c0-.369.299-.667.667-.667z" -}); - -function SvgIconEmojiReactionsAdd(props) { - return React__default.createElement("svg", _extends$u({ - viewBox: "0 0 20 20" - }, props), _ref$u); -} - -function _extends$v() { _extends$v = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$v.apply(this, arguments); } - -var _ref$v = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-delivered_svg__fill", - fillOpacity: 0.38, - fillRule: "evenodd", - d: "M2.207 11.793l5 5a1 1 0 01-1.414 1.414l-5-5a1 1 0 011.414-1.414zm19.586-6a1 1 0 011.414 1.414l-11 11a1 1 0 01-1.414 0l-5-5a1 1 0 011.414-1.414l4.293 4.293zm-3.586 0a1 1 0 010 1.414l-5.999 5.999a1 1 0 01-1.414-1.414l5.999-6a1 1 0 011.414 0z" -}); - -function SvgIconDelivered(props) { - return React__default.createElement("svg", _extends$v({ - viewBox: "0 0 24 24" - }, props), _ref$v); -} - -function _extends$w() { _extends$w = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$w.apply(this, arguments); } - -var _ref$w = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-disconnected_svg__fill", - fillRule: "evenodd", - d: "M3.55 2.276l.093.081L10.9 9.615a.895.895 0 01.148.147l10.594 10.595a.91.91 0 01-1.193 1.367l-.093-.081-5.015-5.015a.913.913 0 01-.705-.15 4.545 4.545 0 00-5.265 0 .91.91 0 01-1.053-1.483 6.358 6.358 0 014.24-1.151l-2.529-2.53c-1.4.316-2.706.96-3.81 1.883a.91.91 0 01-1.167-1.394 10.854 10.854 0 013.504-1.962L6.445 7.728a13.518 13.518 0 00-3.461 2.226.909.909 0 01-1.204-1.362 15.38 15.38 0 013.299-2.229l-2.722-2.72A.91.91 0 013.55 2.276zm13.14 8.052c.812.397 1.572.894 2.262 1.479a.908.908 0 11-1.177 1.386 9.015 9.015 0 00-1.883-1.23.91.91 0 01.798-1.635zm5.53-1.737a.91.91 0 01-1.203 1.363A13.642 13.642 0 0010.9 6.588a.91.91 0 01-.146-1.813A15.457 15.457 0 0122.22 8.591z" -}); - -function SvgIconDisconnected(props) { - return React__default.createElement("svg", _extends$w({ - viewBox: "0 0 24 24" - }, props), _ref$w); -} - -function _extends$x() { _extends$x = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$x.apply(this, arguments); } - -var _ref$x = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-document_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M14 1a1.01 1.01 0 01.25.031l.03.009c.03.009.061.02.091.031l.027.012a.914.914 0 01.195.112c.04.03.078.062.114.098l-.093-.082.011.009.082.073 6 6a1.006 1.006 0 01.21.309l.012.027c.012.03.022.06.031.091l.008.03A.921.921 0 0121 8l-.008-.126.001.01L21 8v12a3 3 0 01-3 3H6a3 3 0 01-3-3V4a3 3 0 013-3h8zm-1 2H6a1 1 0 00-1 1v16a1 1 0 001 1h12a1 1 0 001-1V9h-5a1 1 0 01-.993-.883L13 8V3zm4.585 4L15 4.415V7h2.585z" -}); - -function SvgIconDocument(props) { - return React__default.createElement("svg", _extends$x({ - viewBox: "0 0 24 24" - }, props), _ref$x); -} - -function _extends$y() { _extends$y = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$y.apply(this, arguments); } - -var _ref$y = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-download_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M21 16a1 1 0 01.993.883L22 17v3a3 3 0 01-2.824 2.995L19 23H5a3 3 0 01-2.995-2.824L2 20v-3a1 1 0 011.993-.117L4 17v3a1 1 0 00.883.993L5 21h14a1 1 0 00.993-.883L20 20v-3a1 1 0 011-1zM12 1a1 1 0 01.993.883L13 2v11.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-4 4a1.006 1.006 0 01-.09.08l.09-.08a1.008 1.008 0 01-.674.292L12 17h-.032l-.054-.004L12 17a1.008 1.008 0 01-.613-.21 1.037 1.037 0 01-.094-.083l-4-4a1 1 0 011.32-1.497l.094.083L11 13.585V2a1 1 0 011-1z" -}); - -function SvgIconDownload(props) { - return React__default.createElement("svg", _extends$y({ - viewBox: "0 0 24 24" - }, props), _ref$y); -} - -function _extends$z() { _extends$z = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$z.apply(this, arguments); } - -var _ref$z = -/*#__PURE__*/ -React__default.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("rect", { - fill: "#FFF", - fillRule: "nonzero", - rx: 10 -}), React__default.createElement("path", { - className: "icon-file-audio_svg__fill", - fill: "#7B53EF", - d: "M18.815 9.185c2.913 2.934 2.913 7.696 0 10.63a.617.617 0 01-.894-.013.67.67 0 01.012-.925 6.215 6.215 0 000-8.754.67.67 0 01-.012-.925.617.617 0 01.894-.013zm-5.291 0a.646.646 0 011.044.517v9.596c0 .544-.62.85-1.044.516l-3.31-2.702H7.646A.65.65 0 017 16.458v-3.916a.65.65 0 01.647-.654h2.566zm2.886 2.42a4.113 4.113 0 010 5.783.617.617 0 01-.893-.012.67.67 0 01.012-.925 2.772 2.772 0 000-3.908.67.67 0 01-.012-.925.617.617 0 01.893-.013z" -})); - -function SvgIconFileAudio(props) { - return React__default.createElement("svg", _extends$z({ - viewBox: "0 0 28 28" - }, props), _ref$z); -} - -function _extends$A() { _extends$A = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$A.apply(this, arguments); } - -var _ref$A = -/*#__PURE__*/ -React__default.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("rect", { - fill: "#FFF", - fillRule: "nonzero", - rx: 10 -}), React__default.createElement("path", { - className: "icon-file-document_svg__fill", - fill: "#7B53EF", - d: "M16.317 5.667H9.05C7.907 5.667 7 6.58 7 7.687v12.625c0 1.107.907 2.021 2.05 2.021h9.9c1.143 0 2.05-.914 2.05-2.02v-9.97a.673.673 0 00-.198-.473l-3.95-3.984a.753.753 0 00-.535-.22z" -}), React__default.createElement("path", { - fill: "#FFF", - d: "M17.025 16.667c.354 0 .642.302.642.675 0 .372-.288.675-.642.675h-6.383c-.355 0-.642-.303-.642-.675 0-.373.287-.675.642-.675zm0-2.667c.354 0 .642.302.642.675 0 .373-.288.675-.642.675h-6.383c-.355 0-.642-.302-.642-.675 0-.373.287-.675.642-.675zm-3.357-2.667c.369 0 .668.303.668.675 0 .373-.3.675-.668.675h-3a.672.672 0 01-.668-.675c0-.372.3-.675.668-.675z" -})); - -function SvgIconFileDocument(props) { - return React__default.createElement("svg", _extends$A({ - viewBox: "0 0 28 28" - }, props), _ref$A); -} - -function _extends$B() { _extends$B = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$B.apply(this, arguments); } - -var _ref$B = -/*#__PURE__*/ -React__default.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("circle", { - cx: 28, - cy: 28, - r: 28, - fill: "#FFF", - fillOpacity: 0.88 -}), React__default.createElement("path", { - className: "icon-gif_svg__fill", - fill: "#000", - fillOpacity: 0.55, - d: "M20.608 35.182c1.094 0 2.09-.162 2.99-.487.899-.325 1.595-.783 2.087-1.372v-5.296h-5.223v2.015h2.489v2.287c-.438.438-1.17.657-2.197.657-1.02 0-1.796-.356-2.324-1.067-.529-.71-.793-1.762-.793-3.153v-.848c.006-1.38.252-2.418.738-3.117.486-.699 1.194-1.048 2.124-1.048.729 0 1.302.176 1.718.528.416.353.685.909.806 1.668h2.662c-.164-1.434-.69-2.526-1.577-3.276s-2.118-1.126-3.691-1.126c-1.13 0-2.116.257-2.958.77-.842.514-1.486 1.255-1.932 2.224-.447.97-.67 2.116-.67 3.44v.903c.012 1.288.253 2.41.724 3.363.471.954 1.14 1.682 2.006 2.183.865.502 1.873.752 3.021.752zm10.2-.182V21.73h-2.735V35h2.734zm5.268 0v-5.423h5.25V27.37h-5.25v-3.427h5.906v-2.215h-8.64V35h2.734z" -})); - -function SvgIconGif(props) { - return React__default.createElement("svg", _extends$B({ - viewBox: "0 0 56 56" - }, props), _ref$B); -} - -function _extends$C() { _extends$C = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$C.apply(this, arguments); } - -var _ref$C = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-info_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 2a9 9 0 100 18 9 9 0 000-18zm0 8a1 1 0 011 1v4a1 1 0 01-2 0v-4a1 1 0 011-1zm0-3a1 1 0 110 2 1 1 0 010-2z" -}); - -function SvgIconInfo(props) { - return React__default.createElement("svg", _extends$C({ - viewBox: "0 0 24 24" - }, props), _ref$C); -} - -function _extends$D() { _extends$D = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$D.apply(this, arguments); } - -var _ref$D = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-leave_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 2a1 1 0 01.117 1.993L12 4H4a1 1 0 00-.993.883L3 5v14a1 1 0 00.883.993L4 20h8a1 1 0 01.117 1.993L12 22H4a3 3 0 01-2.995-2.824L1 19V5a3 3 0 012.824-2.995L4 2h8zm6.613 5.21l.094.083 4 4a1 1 0 01.083 1.32l-.083.094-4 4a1 1 0 01-1.497-1.32l.083-.094 1.792-1.793H7.5a1 1 0 01-.117-1.993L7.5 11.5h12.585l-2.792-2.793a1 1 0 01-.083-1.32l.083-.094a1 1 0 011.32-.083z" -}); - -function SvgIconLeave(props) { - return React__default.createElement("svg", _extends$D({ - viewBox: "0 0 24 24" - }, props), _ref$D); -} - -function _extends$E() { _extends$E = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$E.apply(this, arguments); } - -var _ref$E = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-members_svg__fill", - fillRule: "evenodd", - d: "M13 14a5 5 0 014.995 4.783L18 19v2a1 1 0 01-1.993.117L16 21v-2a3 3 0 00-2.824-2.995L13 16H5a3 3 0 00-2.995 2.824L2 19v2a1 1 0 01-1.993.117L0 21v-2a5 5 0 014.783-4.995L5 14h8zm7.25.162a5 5 0 013.745 4.611L24 19v2a1 1 0 01-1.993.117L22 21v-2a3 3 0 00-2.25-2.902 1 1 0 11.5-1.936zM9 2a5 5 0 110 10A5 5 0 019 2zm7.248.161a5 5 0 010 9.688 1 1 0 01-.496-1.938 3 3 0 000-5.812 1 1 0 11.496-1.938zM9 4a3 3 0 100 6 3 3 0 000-6z" -}); - -function SvgIconMembers(props) { - return React__default.createElement("svg", _extends$E({ - viewBox: "0 0 24 24" - }, props), _ref$E); -} - -function _extends$F() { _extends$F = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$F.apply(this, arguments); } - -var _ref$F = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-notifications_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M13.73 20a1 1 0 01.865 1.502 3 3 0 01-5.19 0 1 1 0 01.752-1.496L10.27 20h3.46zM12 1a8 8 0 017.996 7.75L20 9v5a2 2 0 001.85 1.995l.283.012c1.111.12 1.154 1.73.128 1.965l-.128.021L22 18H2l-.133-.007c-1.156-.124-1.156-1.862 0-1.986l.282-.012a2 2 0 001.845-1.838L4 14V9a8 8 0 018-8zm0 2a6 6 0 00-5.996 5.775L6 9v5c0 .586-.126 1.142-.352 1.643l-.103.212-.082.145h13.073l-.08-.145a3.973 3.973 0 01-.43-1.402l-.021-.253L18 14V9a6 6 0 00-6-6z" -}); - -function SvgIconNotifications(props) { - return React__default.createElement("svg", _extends$F({ - viewBox: "0 0 24 24" - }, props), _ref$F); -} - -function _extends$G() { _extends$G = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$G.apply(this, arguments); } - -var _ref$G = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-photo_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M19 2a3 3 0 013 3v14a3 3 0 01-3 3H4.941v-.002l-.117-.003A3 3 0 012 19V5a3 3 0 013-3zm-3 9.415L7.414 20H19a1 1 0 00.993-.883L20 19v-3.585l-4-4zM19 4H5a1 1 0 00-1 1v14a1 1 0 00.65.937L15.292 9.293a1 1 0 011.32-.083l.094.083L20 12.585V5a1 1 0 00-.883-.993L19 4zM8.5 6a2.5 2.5 0 110 5 2.5 2.5 0 010-5zm0 2a.5.5 0 100 1 .5.5 0 000-1z" -}); - -function SvgIconPhoto(props) { - return React__default.createElement("svg", _extends$G({ - viewBox: "0 0 24 24" - }, props), _ref$G); -} - -function _extends$H() { _extends$H = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$H.apply(this, arguments); } - -var _ref$H = -/*#__PURE__*/ -React__default.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("circle", { - cx: 28, - cy: 28, - r: 28, - fill: "#FFF", - fillOpacity: 0.88 -}), React__default.createElement("path", { - className: "icon-play_svg__fill", - fill: "#000", - fillOpacity: 0.55, - d: "M38.91 29.987c1.009-.63 1.007-1.664.007-2.304l-17.29-11.055c-1.006-.643-1.809-.2-1.793 1.004l.277 21.891c.015 1.198.847 1.657 1.855 1.029L38.91 29.987z" -})); - -function SvgIconPlay(props) { - return React__default.createElement("svg", _extends$H({ - viewBox: "0 0 56 56" - }, props), _ref$H); -} - -function _extends$I() { _extends$I = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$I.apply(this, arguments); } - -var _ref$I = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-plus_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M13 11h7c1.333 0 1.333 2 0 2h-7v7c0 1.333-2 1.333-2 0v-7H4c-1.333 0-1.333-2 0-2h7V4c0-1.333 2-1.333 2 0v7z" -}); - -function SvgIconPlus(props) { - return React__default.createElement("svg", _extends$I({ - viewBox: "0 0 24 24" - }, props), _ref$I); -} - -function _extends$J() { _extends$J = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$J.apply(this, arguments); } - -var _ref$J = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-read_svg__fill", - fill: "#2EBA9F", - fillRule: "evenodd", - d: "M2.207 11.793l5 5a1 1 0 01-1.414 1.414l-5-5a1 1 0 011.414-1.414zm19.586-6a1 1 0 011.414 1.414l-11 11a1 1 0 01-1.414 0l-5-5a1 1 0 011.414-1.414l4.293 4.293zm-3.586 0a1 1 0 010 1.414l-5.999 5.999a1 1 0 01-1.414-1.414l5.999-6a1 1 0 011.414 0z" -}); - -function SvgIconRead(props) { - return React__default.createElement("svg", _extends$J({ - viewBox: "0 0 24 24" - }, props), _ref$J); -} - -function _extends$K() { _extends$K = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$K.apply(this, arguments); } - -var _ref$K = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-refresh_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M14.419 4.51l.175.167 2.073 1.927V4.167c0-.428.321-.78.736-.828l.097-.006c.427 0 .78.322.828.736l.005.098v5c0 .427-.321.78-.736.827L17.5 10h-5a.833.833 0 01-.097-1.661l.097-.006h3.578L13.44 5.88a5.982 5.982 0 00-7.05-.986C4.083 6.15 2.898 8.756 3.48 11.286c.58 2.534 2.792 4.385 5.425 4.537 2.635.152 5.05-1.433 5.928-3.883a.833.833 0 011.569.561c-1.127 3.15-4.223 5.18-7.593 4.986-3.37-.195-6.206-2.57-6.954-5.828-.748-3.261.778-6.617 3.738-8.229 2.884-1.57 6.453-1.118 8.826 1.08z" -}); - -function SvgIconRefresh(props) { - return React__default.createElement("svg", _extends$K({ - width: 20, - height: 20 - }, props), _ref$K); -} - -function _extends$L() { _extends$L = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$L.apply(this, arguments); } - -var _ref$L = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-send_svg__fill", - fillRule: "evenodd", - d: "M20.554 10.117L2.52 1.024C1.613.619.605 1.428 1.008 2.337l2.115 5.685a2 2 0 001.545 1.275l10.345 1.73-10.345 1.728a2 2 0 00-1.545 1.275l-2.115 5.685c-.302.91.605 1.718 1.511 1.213l18.035-9.094c.706-.303.706-1.313 0-1.717z" -}); - -function SvgIconSend(props) { - return React__default.createElement("svg", _extends$L({ - viewBox: "0 0 22 22" - }, props), _ref$L); -} - -function _extends$M() { _extends$M = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$M.apply(this, arguments); } - -var _ref$M = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-sent_svg__fill", - fillOpacity: 0.38, - fillRule: "evenodd", - d: "M4.707 11.793a1 1 0 10-1.414 1.414l5 5a1 1 0 001.414 0l11-11a1 1 0 10-1.414-1.414L9 16.086l-4.293-4.293z" -}); - -function SvgIconSent(props) { - return React__default.createElement("svg", _extends$M({ - viewBox: "0 0 24 24" - }, props), _ref$M); -} - -function _extends$N() { _extends$N = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$N.apply(this, arguments); } - -var _ref$N = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-shevron_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M8.293 17.293a1 1 0 001.414 1.414l6-6a1 1 0 000-1.414l-6-6a1 1 0 00-1.414 1.414L13.586 12l-5.293 5.293z" -}); - -function SvgIconShevron(props) { - return React__default.createElement("svg", _extends$N({ - viewBox: "0 0 24 24" - }, props), _ref$N); -} - -function _extends$O() { _extends$O = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$O.apply(this, arguments); } - -var _ref$O = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-shevron-down_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M6.045 8.205a1.125 1.125 0 10-1.59 1.59l6.75 6.75c.439.44 1.151.44 1.59 0l6.75-6.75a1.125 1.125 0 10-1.59-1.59L12 14.159 6.045 8.205z" -}); - -function SvgIconShevronDown(props) { - return React__default.createElement("svg", _extends$O({ - viewBox: "0 0 24 24" - }, props), _ref$O); -} - -function _extends$P() { _extends$P = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$P.apply(this, arguments); } - -var _ref$P = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-spinner-small_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 22.5c5.799 0 10.5-4.701 10.5-10.5S17.799 1.5 12 1.5 1.5 6.201 1.5 12a1.432 1.432 0 002.864 0A7.636 7.636 0 1112 19.636a1.432 1.432 0 000 2.864z" -}); - -function SvgIconSpinnerSmall(props) { - return React__default.createElement("svg", _extends$P({ - viewBox: "0 0 24 24" - }, props), _ref$P); -} - -function _extends$Q() { _extends$Q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Q.apply(this, arguments); } - -var _ref$Q = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-spinner-large_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24a2.323 2.323 0 104.645 0C4.645 13.31 13.311 4.645 24 4.645c10.69 0 19.355 8.666 19.355 19.355 0 10.69-8.666 19.355-19.355 19.355A2.323 2.323 0 0024 48z" -}); - -function SvgIconSpinnerLarge(props) { - return React__default.createElement("svg", _extends$Q({ - viewBox: "0 0 48 48" - }, props), _ref$Q); -} - -function _extends$R() { _extends$R = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$R.apply(this, arguments); } - -var _ref$R = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-user_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M16 14a5 5 0 014.995 4.783L21 19v2a1 1 0 01-1.993.117L19 21v-2a3 3 0 00-2.824-2.995L16 16H8a3 3 0 00-2.995 2.824L5 19v2a1 1 0 01-1.993.117L3 21v-2a5 5 0 014.783-4.995L8 14h8zM12 2a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z" -}); - -function SvgIconUser(props) { - return React__default.createElement("svg", _extends$R({ - viewBox: "0 0 24 24" - }, props), _ref$R); -} - -function _extends$S() { _extends$S = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$S.apply(this, arguments); } - -var _ref$S = -/*#__PURE__*/ -React__default.createElement("g", { - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("path", { - className: "icon-operator_svg__stroke", - d: "M2 6l5 4 5-7 5 7 5-4-3 14H5z" -}), React__default.createElement("circle", { - className: "icon-operator_svg__fill", - cx: 12, - cy: 14, - r: 2 -})); - -function SvgIconOperator(props) { - return React__default.createElement("svg", _extends$S({ - viewBox: "0 0 24 24" - }, props), _ref$S); -} - -function _extends$T() { _extends$T = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$T.apply(this, arguments); } - -var _ref$T = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-banned_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 2a9 9 0 10.001 18.001A9 9 0 0012 3zm4 8a1 1 0 010 2H8a1 1 0 010-2h8z" -}); - -function SvgIconBanned(props) { - return React__default.createElement("svg", _extends$T({ - viewBox: "0 0 24 24" - }, props), _ref$T); -} - -function _extends$U() { _extends$U = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$U.apply(this, arguments); } - -var _ref$U = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-muted_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M20.857 7.357l.026.045A9.96 9.96 0 0122 12a9.937 9.937 0 01-1.074 4.51c-.38 1.021-.463 1.817-.25 2.386.265.713.598 1.308.997 1.784.578.594.39 1.01-.565 1.249-.763.19-2.073 0-3.929-.571l-.333-.105-.598-.198A9.965 9.965 0 0112 22a9.952 9.952 0 01-4.622-1.13l-.022-.011 1.5-1.5c.982.42 2.046.641 3.144.641 1.073 0 2.114-.21 3.079-.613l.318-.142.722-.339 1.355.449.26.082c.228.07.445.133.65.19l.298.08.182.045-.063-.157-.075-.223c-.295-.974-.189-2.057.225-3.275l.1-.284.04-.107.198-.406A7.949 7.949 0 0020 12a7.97 7.97 0 00-.64-3.143l1.497-1.5zM12 2c2.401 0 4.604.846 6.328 2.257l1.965-1.964a1 1 0 011.497 1.32l-.083.094-18 18a1 1 0 01-1.497-1.32l.083-.094 1.963-1.965a9.956 9.956 0 01-2.25-5.998L2 12C2 6.477 6.477 2 12 2zm0 2a8 8 0 00-6.32 12.906L16.905 5.68a7.957 7.957 0 00-4.607-1.675L12 4z" -}); - -function SvgIconMuted(props) { - return React__default.createElement("svg", _extends$U({ - viewBox: "0 0 24 24" - }, props), _ref$U); -} - -function _extends$V() { _extends$V = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$V.apply(this, arguments); } - -var _ref$V = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-muted-foreground_svg__fill", - fill: "#FFF", - fillOpacity: 0.88, - fillRule: "evenodd", - d: "M13.904 4.904l.018.03c.476.919.745 1.96.745 3.066a6.628 6.628 0 01-.716 3.006c-.253.682-.309 1.212-.168 1.591.178.476.4.872.666 1.19.385.396.26.674-.377.832-.503.125-1.361.003-2.576-.367l-.266-.083-.398-.132c-.86.404-1.82.63-2.832.63a6.632 6.632 0 01-3.082-.754l-.014-.007 1-1c.655.28 1.364.427 2.096.427a5.32 5.32 0 001.999-.386l.266-.117.481-.226.903.299.174.055c.152.047.296.089.433.126l.199.054.121.03-.042-.105-.05-.149c-.192-.635-.129-1.34.133-2.132l.084-.24.026-.071.132-.271a5.294 5.294 0 00.474-2.2c0-.732-.147-1.44-.427-2.096l.998-1zm.567-3.375c.24.24.26.618.056.88l-.056.062-12 12a.666.666 0 01-.998-.88l.056-.062 1.31-1.31a6.636 6.636 0 01-1.5-3.94L1.333 8A6.667 6.667 0 0112.22 2.838l1.309-1.31c.26-.26.682-.26.942 0zM8 2.667a5.332 5.332 0 00-4.213 8.603l7.484-7.484a5.32 5.32 0 00-3.006-1.113L8 2.667z" -}); - -function SvgIconMutedForeground(props) { - return React__default.createElement("svg", _extends$V({ - viewBox: "0 0 16 16" - }, props), _ref$V); -} - -function _extends$W() { _extends$W = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$W.apply(this, arguments); } - -var _ref$W = -/*#__PURE__*/ -React__default.createElement("path", { - className: "icon-freeze_svg__fill", - fill: "#7B53EF", - fillRule: "evenodd", - d: "M9.613 1.21l.095.083L12 3.585l2.293-2.292a1 1 0 011.32-.083l.095.083a1 1 0 01.083 1.32l-.083.094L13 5.414v4.853l4.203-2.427.992-3.697a1 1 0 011.957.395l-.025.123-.84 3.131 3.133.84c.492.132.8.61.732 1.102l-.025.123c-.132.492-.61.8-1.102.732l-.123-.025-3.698-.991L14.001 12l4.203 2.426 3.698-.99.123-.025c.492-.068.97.24 1.102.732l.025.123a1 1 0 01-.732 1.102l-3.133.839.84 3.132.025.123a1 1 0 01-1.957.395l-.992-3.698L13 13.732v4.853l2.708 2.708a1 1 0 01-1.32 1.497l-.095-.083L12 20.414l-2.292 2.293a1 1 0 01-1.32.083l-.095-.083a1 1 0 01-.083-1.32l.083-.094L11 18.585v-4.853l-4.203 2.427-.99 3.698a1.002 1.002 0 01-1.958-.395l.025-.123.839-3.131-3.132-.84c-.492-.132-.8-.61-.732-1.102l.025-.123c.132-.492.61-.8 1.102-.732l.123.025 3.697.99 4.203-2.427-4.203-2.426-3.697.991-.123.025c-.492.068-.97-.24-1.102-.732L.85 9.734a1 1 0 01.732-1.102l3.132-.84-.839-3.131-.025-.123a1 1 0 011.957-.395l.991 3.697L11 10.267V5.414L8.293 2.707a1 1 0 011.32-1.497z" -}); - -function SvgIconFreeze(props) { - return React__default.createElement("svg", _extends$W({ - viewBox: "0 0 24 24" - }, props), _ref$W); -} - -function _extends$X() { _extends$X = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$X.apply(this, arguments); } - -var _ref$X = -/*#__PURE__*/ -React__default.createElement("g", { - className: "icon-toggleon_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("rect", { - width: 40, - height: 20, - x: 2, - y: 2, - fill: "#7B53EF", - rx: 10 -}), React__default.createElement("circle", { - cx: 32, - cy: 12, - r: 6, - fill: "#FFF" -}), React__default.createElement("path", { - fill: "#7B53EF", - d: "M32 0H12C5.373 0 0 5.373 0 12s5.373 12 12 12h20c6.627 0 12-5.373 12-12S38.627 0 32 0zm0 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20z" -})); - -function SvgIconToggleon(props) { - return React__default.createElement("svg", _extends$X({ - viewBox: "0 0 44 24" - }, props), _ref$X); -} - -function _extends$Y() { _extends$Y = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Y.apply(this, arguments); } - -var _ref$Y = -/*#__PURE__*/ -React__default.createElement("g", { - className: "icon-toggleoff_svg__fill", - fill: "none", - fillRule: "evenodd" -}, React__default.createElement("rect", { - width: 40, - height: 20, - x: 2, - y: 2, - fill: "#A8A8A8", - rx: 10 -}), React__default.createElement("circle", { - cx: 12, - cy: 12, - r: 6, - fill: "#FFF" -}), React__default.createElement("path", { - fill: "#A8A8A8", - d: "M32 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20zm0 1H12a9 9 0 00-.265 17.996L12 21h20a9 9 0 00.265-17.996L32 3z" -}), React__default.createElement("path", { - fill: "#FFF", - d: "M32 0H12C5.373 0 0 5.373 0 12s5.373 12 12 12h20c6.627 0 12-5.373 12-12S38.627 0 32 0zm0 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H12C6.477 22 2 17.523 2 12S6.477 2 12 2h20z" -})); - -function SvgIconToggleoff(props) { - return React__default.createElement("svg", _extends$Y({ - viewBox: "0 0 44 24" - }, props), _ref$Y); -} - -var Colors = { - DEFAULT: 'DEFAULT', - PRIMARY: 'PRIMARY', - SECONDARY: 'SECONDARY', - CONTENT: 'CONTENT', - CONTENT_INVERSE: 'CONTENT_INVERSE', - WHITE: 'WHITE', - SENT: 'SENT', - READ: 'READ', - ON_BACKGROUND_3: 'ON_BACKGROUND_3' -}; - -function changeColorToClassName(color) { - switch (color) { - case Colors.PRIMARY: - return 'sendbird-color--primary'; - - case Colors.SECONDARY: - return 'sendbird-color--secondary'; - - case Colors.CONTENT: - return 'sendbird-color--content'; - - case Colors.CONTENT_INVERSE: - return 'sendbird-color--content-inverse'; - - case Colors.WHITE: - return 'sendbird-color--white'; - - case Colors.SENT: - return 'sendbird-color--sent'; - - case Colors.READ: - return 'sendbird-color--read'; - - case Colors.ON_BACKGROUND_3: - return 'sendbird-color--on-background'; - - default: - return ''; - } -} - -function changeTypeToIconComponent(type) { - switch (type) { - case Type.ADD: - return React__default.createElement(SvgIconAdd, null); - - case Type.ARROW_LEFT: - return React__default.createElement(SvgIconArrowLeft, null); - - case Type.CAMERA: - return React__default.createElement(SvgIconCamera, null); - - case Type.ATTACH: - return React__default.createElement(SvgIconAttach, null); - - case Type.AVATAR_DARK: - return React__default.createElement(SvgIconAvatarDark, null); - - case Type.AVATAR_LIGHT: - return React__default.createElement(SvgIconAvatarLight, null); - - case Type.BROADCAST_LARGE_DARK: - return React__default.createElement(SvgIconBroadcastLrgDark, null); - - case Type.BROADCAST_LARGE_LIGHT: - return React__default.createElement(SvgIconBroadcastLrgLight, null); - - case Type.BROADCAST_DARK: - return React__default.createElement(SvgIconBroadcastDark, null); - - case Type.BROADCAST_LIGHT: - return React__default.createElement(SvgIconBroadcastLight, null); - - case Type.BROADCAST: - return React__default.createElement(SvgIconBroadcast, null); - - case Type.FROZEN_DARK: - return React__default.createElement(SvgFrozenDark, null); - - case Type.FROZEN_LIGHT: - return React__default.createElement(SvgFrozenLight, null); - - case Type.MORE: - return React__default.createElement(SvgIconMore, null); - - case Type.MUTE: - return React__default.createElement(SvgIconMute, null); - - case Type.NO_THUMBNAIL: - return React__default.createElement(SvgIconNoThumbnail, null); - - case Type.CHECKBOX: - return React__default.createElement(SvgIconCheckbox, null); - - case Type.CHECKBOX_OFF: - return React__default.createElement(SvgIconCheckboxOff, null); - - case Type.CLOSE: - return React__default.createElement(SvgIconClose, null); - - case Type.COPY: - return React__default.createElement(SvgIconCopy, null); - - case Type.CHAT: - return React__default.createElement(SvgIconChat, null); - - case Type.SUPER_GROUP: - return React__default.createElement(SvgIconSupergroup, null); - - case Type.CREATE: - return React__default.createElement(SvgIconCreate, null); - - case Type.DELETE: - return React__default.createElement(SvgIconDelete, null); - - case Type.DISCONNECTED: - return React__default.createElement(SvgIconDisconnected, null); - - case Type.DUMMY: - return React__default.createElement(SvgIconDummy, null); - - case Type.EDIT: - return React__default.createElement(SvgIconEdit, null); - - case Type.ERROR: - return React__default.createElement(SvgIconError, null); - - case Type.ERROR_FILLED: - return React__default.createElement(SvgIconErrorFilled, null); - - case Type.EMOJI_FAILED: - return React__default.createElement(SvgEmojiFail, null); - - case Type.EMOJI_REACTIONS_ADD: - return React__default.createElement(SvgIconReactionsAdd, null); - - case Type.EMOJI_REACTIONS_ADD_GRAY: - return React__default.createElement(SvgIconEmojiReactionsAdd, null); - - case Type.DELIVERED: - return React__default.createElement(SvgIconDelivered, null); - - case Type.DOCUMENT: - return React__default.createElement(SvgIconDocument, null); - - case Type.DOWNLOAD: - return React__default.createElement(SvgIconDownload, null); - - case Type.FILE_AUDIO: - return React__default.createElement(SvgIconFileAudio, null); - - case Type.FILE_DOCUMENT: - return React__default.createElement(SvgIconFileDocument, null); - - case Type.GIF: - return React__default.createElement(SvgIconGif, null); - - case Type.INFO: - return React__default.createElement(SvgIconInfo, null); - - case Type.LEAVE: - return React__default.createElement(SvgIconLeave, null); - - case Type.MEMBERS: - return React__default.createElement(SvgIconMembers, null); - - case Type.NOTIFICATIONS: - return React__default.createElement(SvgIconNotifications, null); - - case Type.PHOTO: - return React__default.createElement(SvgIconPhoto, null); - - case Type.PLAY: - return React__default.createElement(SvgIconPlay, null); - - case Type.PLUS: - return React__default.createElement(SvgIconPlus, null); - - case Type.READ: - return React__default.createElement(SvgIconRead, null); - - case Type.REFRESH: - return React__default.createElement(SvgIconRefresh, null); - - case Type.SEND: - return React__default.createElement(SvgIconSend, null); - - case Type.SENT: - return React__default.createElement(SvgIconSent, null); - - case Type.SHEVRON: - return React__default.createElement(SvgIconShevron, null); - - case Type.SHEVRON_DOWN: - return React__default.createElement(SvgIconShevronDown, null); - - case Type.SPINNER: - return React__default.createElement(SvgIconSpinnerSmall, null); - - case Type.SPINNER_LARGE: - return React__default.createElement(SvgIconSpinnerLarge, null); - - case Type.USER: - return React__default.createElement(SvgIconUser, null); - - case Type.ICON_OPERATOR: - return React__default.createElement(SvgIconOperator, null); - - case Type.ICON_BANNED: - return React__default.createElement(SvgIconBanned, null); - - case Type.ICON_MUTED: - return React__default.createElement(SvgIconMuted, null); - - case Type.ICON_MUTED_FG: - return React__default.createElement(SvgIconMutedForeground, null); - - case Type.ICON_FREEZE: - return React__default.createElement(SvgIconFreeze, null); - - case Type.TOGGLE_ON: - return React__default.createElement(SvgIconToggleon, null); - - case Type.TOGGLE_OFF: - return React__default.createElement(SvgIconToggleoff, null); - - default: - return null; - } -} - -function Icon(_ref) { - var type = _ref.type, - width = _ref.width, - height = _ref.height, - children = _ref.children, - className = _ref.className, - onClick = _ref.onClick, - fillColor = _ref.fillColor; - var iconStyle = { - width: typeof width === 'string' ? width : "".concat(width, "px"), - height: typeof height === 'string' ? height : "".concat(height, "px") - }; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - onClick: onClick, - onKeyDown: onClick, - role: "button", - tabIndex: "0", - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-icon', changeColorToClassName(fillColor)]).join(' '), - style: iconStyle - }, children || changeTypeToIconComponent(type)); -} -Icon.propTypes = { - type: PropTypes.oneOfType([PropTypes.oneOf(Object.keys(Type)), PropTypes.string]).isRequired, - width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - onClick: PropTypes.func, - children: PropTypes.element, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - fillColor: PropTypes.oneOf(Object.keys(Colors)) -}; -Icon.defaultProps = { - onClick: function onClick() {}, - width: 26, - height: 26, - children: null, - className: '', - fillColor: Colors.DEFAULT -}; -var IconTypes = Type; -var IconColors = Colors; - -var imageRendererClassName = 'sendbird-avatar-img'; - -var defaultComponent = function defaultComponent(_a) { - var width = _a.width, - height = _a.height; - return function () { - return document.querySelector('.sendbird-theme--dark') ? React__default.createElement(Icon, { - className: imageRendererClassName, - type: IconTypes.AVATAR_DARK, - width: width, - height: height - }) : React__default.createElement(Icon, { - className: imageRendererClassName, - type: IconTypes.AVATAR_LIGHT, - width: width, - height: height - }); - }; -}; - -var AvatarInner = function AvatarInner(_a) { - var _b = _a.src, - src = _b === void 0 ? '' : _b, - _c = _a.alt, - alt = _c === void 0 ? '' : _c, - height = _a.height, - width = _a.width; - - if (typeof src === 'string') { - return React__default.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src, - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }); - } - - if (src && src.length) { - if (src.length === 1) { - return React__default.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[0], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }); - } - - if (src.length === 2) { - return React__default.createElement("div", { - className: "sendbird-avatar--inner__two-child" - }, React__default.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[0], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }), React__default.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[1], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - })); - } - - if (src.length === 3) { - return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { - className: "sendbird-avatar--inner__three-child--upper" - }, React__default.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[0], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - })), React__default.createElement("div", { - className: "sendbird-avatar--inner__three-child--lower" - }, React__default.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[1], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }), React__default.createElement(ImageRenderer, { - className: imageRendererClassName, - url: src[2], - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }))); - } - - return React__default.createElement("div", { - className: "sendbird-avatar--inner__four-child" - }, src.slice(0, 4).map(function (i) { - return React__default.createElement(ImageRenderer, { - className: imageRendererClassName, - url: i, - height: height, - width: width, - alt: alt, - key: uuidv4(), - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }); - })); - } // default img - - - return React__default.createElement(ImageRenderer, { - className: imageRendererClassName, - url: "", - height: height, - width: width, - alt: alt, - defaultComponent: defaultComponent({ - height: height, - width: width - }) - }); -}; - -function Avatar(_a, ref) { - var _b = _a.src, - src = _b === void 0 ? '' : _b, - _c = _a.alt, - alt = _c === void 0 ? '' : _c, - _d = _a.width, - width = _d === void 0 ? '56px' : _d, - _e = _a.height, - height = _e === void 0 ? '56px' : _e, - onClick = _a.onClick, - _f = _a.className, - className = _f === void 0 ? '' : _f; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - className: __spreadArrays(injectingClassName, ['sendbird-avatar']).join(' '), - ref: ref, - style: { - height: height, - width: width - }, - onClick: onClick, - role: "button", - tabIndex: 0, - onKeyDown: onClick - }, React__default.createElement(AvatarInner, { - src: src, - height: height, - width: width, - alt: alt - })); -} - -var Avatar$1 = React__default.forwardRef(Avatar); - -var DEFAULT_URL_PREFIX = 'https://static.sendbird.com/sample/cover/cover_'; -var getChannelAvatarSource = function getChannelAvatarSource(channel, currentUserId) { - if (channel && channel.coverUrl) { - if (!new RegExp("^" + DEFAULT_URL_PREFIX).test(channel.coverUrl)) { - return channel.coverUrl; - } - } - - return channel && channel.members ? channel.members.filter(function (member) { - return member.userId !== currentUserId; - }).map(function (_a) { - var profileUrl = _a.profileUrl; - return profileUrl; - }) : []; -}; -var useDefaultAvatar = function useDefaultAvatar(channel) { - if (channel && channel.coverUrl) { - if (new RegExp("^" + DEFAULT_URL_PREFIX).test(channel.coverUrl)) { - return true; - } - - return false; - } - - return true; -}; - -function ChannelAvatar(_a) { - var channel = _a.channel, - userId = _a.userId, - theme = _a.theme, - _b = _a.height, - height = _b === void 0 ? 56 : _b, - _c = _a.width, - width = _c === void 0 ? 56 : _c; - var isBroadcast = channel.isBroadcast; - var memoizedAvatar = React.useMemo(function () { - return isBroadcast ? useDefaultAvatar(channel) ? theme === 'dark' ? React__default.createElement(Icon, { - type: IconTypes.BROADCAST_LARGE_DARK, - width: width, - height: height, - className: "sendbird-chat-header__default--broadcast-channel-dark" - }) : React__default.createElement(Icon, { - type: IconTypes.BROADCAST_LARGE_LIGHT, - width: width, - height: height, - className: "sendbird-chat-header__default--broadcast-channel-light" - }) : React__default.createElement(Avatar$1, { - className: "sendbird-chat-header__avatar--broadcast-channel", - src: getChannelAvatarSource(channel, userId), - width: width, - height: height, - alt: channel.name - }) : React__default.createElement(Avatar$1, { - className: "sendbird-chat-header__avatar--group-channel", - src: getChannelAvatarSource(channel, userId), - width: width + "px", - height: height + "px", - alt: channel.name - }); - }, [channel.members, channel.coverUrl, theme]); - return React__default.createElement(React__default.Fragment, null, memoizedAvatar); -} - -var Typography = { - H_1: 'H_1', - H_2: 'H_2', - SUBTITLE_1: 'SUBTITLE_1', - SUBTITLE_2: 'SUBTITLE_2', - BODY_1: 'BODY_1', - BODY_2: 'BODY_2', - BUTTON_1: 'BUTTON_1', - BUTTON_2: 'BUTTON_2', - CAPTION_1: 'CAPTION_1', - CAPTION_2: 'CAPTION_2', - CAPTION_3: 'CAPTION_3' -}; -var Colors$1 = { - ONBACKGROUND_1: 'ONBACKGROUND_1', - ONBACKGROUND_2: 'ONBACKGROUND_2', - ONBACKGROUND_3: 'ONBACKGROUND_3', - ONCONTENT_1: 'ONCONTENT_1', - ONCONTENT_2: 'ONCONTENT_2', - PRIMARY: 'PRIMARY', - ERROR: 'ERROR' -}; - -function changeTypographyToClassName(type) { - switch (type) { - case Typography.H_1: - return 'sendbird-label--h-1'; - - case Typography.H_2: - return 'sendbird-label--h-2'; - - case Typography.SUBTITLE_1: - return 'sendbird-label--subtitle-1'; - - case Typography.SUBTITLE_2: - return 'sendbird-label--subtitle-2'; - - case Typography.BODY_1: - return 'sendbird-label--body-1'; - - case Typography.BODY_2: - return 'sendbird-label--body-2'; - - case Typography.BUTTON_1: - return 'sendbird-label--button-1'; - - case Typography.BUTTON_2: - return 'sendbird-label--button-2'; - - case Typography.CAPTION_1: - return 'sendbird-label--caption-1'; - - case Typography.CAPTION_2: - return 'sendbird-label--caption-2'; - - case Typography.CAPTION_3: - return 'sendbird-label--caption-3'; - - default: - return null; - } -} -function changeColorToClassName$1(color) { - switch (color) { - case Colors$1.ONBACKGROUND_1: - return 'sendbird-label--color-onbackground-1'; - - case Colors$1.ONBACKGROUND_2: - return 'sendbird-label--color-onbackground-2'; - - case Colors$1.ONBACKGROUND_3: - return 'sendbird-label--color-onbackground-3'; - - case Colors$1.ONCONTENT_1: - return 'sendbird-label--color-oncontent-1'; - - case Colors$1.ONCONTENT_2: - return 'sendbird-label--color-oncontent-2'; - - case Colors$1.PRIMARY: - return 'sendbird-label--color-primary'; - - case Colors$1.ERROR: - return 'sendbird-label--color-error'; - - default: - return null; - } -} - -var CLASS_NAME = 'sendbird-label'; -function Label(_ref) { - var type = _ref.type, - color = _ref.color, - children = _ref.children, - className = _ref.className; - var injectingClassName = Array.isArray(className) ? [CLASS_NAME].concat(_toConsumableArray(className)) : [CLASS_NAME, className]; - - if (type) { - injectingClassName.push(changeTypographyToClassName(type)); - } - - if (color) { - injectingClassName.push(changeColorToClassName$1(color)); - } - - return React__default.createElement("span", { - className: injectingClassName.join(' ') - }, children); -} -Label.propTypes = { - type: PropTypes.oneOf([].concat(_toConsumableArray(Object.keys(Typography)), [''])), - color: PropTypes.oneOf([].concat(_toConsumableArray(Object.keys(Colors$1)), [''])), - children: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.element, PropTypes.any]), - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -Label.defaultProps = { - type: '', - color: '', - className: [], - children: null -}; -var LabelTypography = Typography; -var LabelColors = Colors$1; -var LabelStringSet = getStringSet('en'); - -function Badge(_ref) { - var count = _ref.count, - maxLevel = _ref.maxLevel, - className = _ref.className; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var maximumNumber = parseInt('9'.repeat(maxLevel > 6 ? 6 : maxLevel), 10); - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-badge']).join(' ') - }, React__default.createElement("div", { - className: "sendbird-badge__text" - }, React__default.createElement(Label, { - type: LabelTypography.CAPTION_2, - color: LabelColors.ONCONTENT_1 - }, count > maximumNumber ? "".concat(maximumNumber).concat(stringSet.BADGE__OVER) : count))); -} -Badge.propTypes = { - count: PropTypes.number.isRequired, - maxLevel: PropTypes.number, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -Badge.defaultProps = { - maxLevel: 2, - className: [] -}; - -var MessageStatusType = { - PENDING: 'PENDING', - SENT: 'SENT', - DELIVERED: 'DELIVERED', - READ: 'READ', - FAILED: 'FAILED' -}; - -var truncate = function truncate(fullStr, strLen) { - if (fullStr === null || fullStr === undefined) return ''; - if (fullStr.length <= strLen) return fullStr; - var separator = '...'; - var sepLen = separator.length; - var charsToShow = strLen - sepLen; - var frontChars = Math.ceil(charsToShow / 2); - var backChars = Math.floor(charsToShow / 2); - return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars); -}; -var getIsSentFromStatus = function getIsSentFromStatus(status) { - return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; -}; - -var getChannelTitle = function getChannelTitle() { - var channel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var currentUserId = arguments.length > 1 ? arguments[1] : undefined; - var stringSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LabelStringSet; - - if (!channel || !channel.name && !channel.members) { - return stringSet.NO_TITLE; - } - - if (channel.name && channel.name !== 'Group Channel') { - return channel.name; - } - - if (channel.members.length === 1) { - return stringSet.NO_MEMBERS; - } - - return channel.members.filter(function (_ref) { - var userId = _ref.userId; - return userId !== currentUserId; - }).map(function (_ref2) { - var nickname = _ref2.nickname; - return nickname || stringSet.NO_NAME; - }).join(', '); -}; -var getLastMessageCreatedAt = function getLastMessageCreatedAt(channel) { - if (!channel || !channel.lastMessage) { - return ''; - } - - var date = channel.lastMessage.createdAt; - - if (isToday(date)) { - return format(date, 'p'); - } - - if (isYesterday(date)) { - return 'Yesterday'; - } - - return format(date, 'MMM dd'); -}; -var getTotalMembers = function getTotalMembers(channel) { - return channel && channel.memberCount ? channel.memberCount : 0; -}; - -var getPrettyLastMessage = function getPrettyLastMessage() { - var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var MAXLEN = 30; - var messageType = message.messageType, - name = message.name; - - if (messageType === 'file') { - return truncate(name, MAXLEN); - } - - return message.message; -}; - -var getLastMessage = function getLastMessage(channel) { - return channel && channel.lastMessage ? getPrettyLastMessage(channel.lastMessage) : ''; -}; -var getChannelUnreadMessageCount = function getChannelUnreadMessageCount(channel) { - return channel && channel.unreadMessageCount ? channel.unreadMessageCount : 0; -}; - -function ChannelPreview(_ref) { - var channel = _ref.channel, - isActive = _ref.isActive, - ChannelAction = _ref.ChannelAction, - theme = _ref.theme, - onClick = _ref.onClick, - tabIndex = _ref.tabIndex, - currentUser = _ref.currentUser; - var userId = currentUser.userId; - var isBroadcast = channel.isBroadcast, - isFrozen = channel.isFrozen; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React__default.createElement("div", { - role: "link", - tabIndex: tabIndex, - onClick: onClick, - onKeyPress: onClick, - className: "\n sendbird-channel-preview\n ".concat(isActive ? 'sendbird-channel-preview--active' : null, "\n ") - }, React__default.createElement("div", { - className: "sendbird-channel-preview__avatar" - }, React__default.createElement(ChannelAvatar, { - channel: channel, - userId: userId, - theme: theme - })), React__default.createElement("div", { - className: "sendbird-channel-preview__content" - }, React__default.createElement("div", { - className: "sendbird-channel-preview__content__upper" - }, React__default.createElement("div", { - className: "sendbird-channel-preview__content__upper__header" - }, isBroadcast && React__default.createElement("div", { - className: "sendbird-channel-preview__broadcast-icon" - }, React__default.createElement(Icon, { - type: theme === 'dark' ? IconTypes.BROADCAST_DARK : IconTypes.BROADCAST_LIGHT, - height: 12, - width: 12 - })), React__default.createElement(Label, { - className: "sendbird-channel-preview__content__upper__header__channel-name", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, getChannelTitle(channel, userId, stringSet)), React__default.createElement(Label, { - className: "sendbird-channel-preview__content__upper__header__total-members", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getTotalMembers(channel)), isFrozen && React__default.createElement("div", { - title: "Frozen", - className: "sendbird-channel-preview__frozen-icon" - }, React__default.createElement(Icon, { - type: theme === 'dark' ? IconTypes.FROZEN_DARK : IconTypes.FROZEN_LIGHT, - height: 12, - width: 12 - }))), React__default.createElement(Label, { - className: "sendbird-channel-preview__content__upper__last-message-at", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getLastMessageCreatedAt(channel))), React__default.createElement("div", { - className: "sendbird-channel-preview__content__lower" - }, React__default.createElement(Label, { - className: "sendbird-channel-preview__content__lower__last-message", - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_3 - }, getLastMessage(channel)), React__default.createElement("div", { - className: "sendbird-channel-preview__content__lower__unread-message-count" - }, getChannelUnreadMessageCount(channel) ? React__default.createElement(Badge, { - count: getChannelUnreadMessageCount(channel) - }) : null))), React__default.createElement("div", { - className: "sendbird-channel-preview__action" - }, ChannelAction)); -} -ChannelPreview.propTypes = { - isActive: PropTypes.bool, - theme: PropTypes.string, - channel: PropTypes.shape({ - members: PropTypes.arrayOf(PropTypes.shape({})), - coverUrl: PropTypes.string, - isBroadcast: PropTypes.bool, - isFrozen: PropTypes.bool - }), - ChannelAction: PropTypes.element.isRequired, - onClick: PropTypes.func, - tabIndex: PropTypes.number, - currentUser: PropTypes.shape({ - userId: PropTypes.string - }) -}; -ChannelPreview.defaultProps = { - channel: {}, - isActive: false, - theme: 'light', - onClick: function onClick() {}, - tabIndex: 0, - currentUser: {} -}; - -var CLASS_NAME$1 = 'sendbird-iconbutton'; -var IconButton = React__default.forwardRef(function (props, ref) { - var children = props.children, - className = props.className, - _props$disabled = props.disabled, - disabled = _props$disabled === void 0 ? false : _props$disabled, - type = props.type, - height = props.height, - width = props.width, - _onClick = props.onClick, - _onBlur = props.onBlur; - - var _useState = React.useState(''), - _useState2 = _slicedToArray(_useState, 2), - pressed = _useState2[0], - setPressed = _useState2[1]; - - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift(CLASS_NAME$1); - return (// eslint-disable-next-line react/button-has-type - React__default.createElement("button", { - className: "".concat(injectingClassName.join(' '), " ").concat(pressed), - disabled: disabled, - ref: ref, - type: type, - style: { - height: height, - width: width - }, - onClick: function onClick(e) { - if (disabled) { - return; - } - - setPressed('sendbird-iconbutton--pressed'); - - _onClick(e); - }, - onBlur: function onBlur(e) { - setPressed(''); - - _onBlur(e); - } - }, React__default.createElement("span", { - className: "sendbird-iconbutton__inner" - }, children)) - ); -}); -IconButton.propTypes = { - height: PropTypes.string, - width: PropTypes.string, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.any]).isRequired, - type: PropTypes.string, - disabled: PropTypes.bool, - onClick: PropTypes.func, - onBlur: PropTypes.func -}; -IconButton.defaultProps = { - height: '56px', - width: '56px', - className: '', - type: 'button', - disabled: false, - onClick: function onClick() {}, - onBlur: function onBlur() {} -}; - -function ChannelHeader(_ref) { - var user = _ref.user, - iconButton = _ref.iconButton, - onEdit = _ref.onEdit, - renderHeader = _ref.renderHeader, - allowProfileEdit = _ref.allowProfileEdit; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React__default.createElement("div", { - className: "\n ".concat(allowProfileEdit && 'sendbird-channel-header--allow-edit', "\n sendbird-channel-header\n ") - }, renderHeader ? renderHeader() : React__default.createElement("div", { - className: "sendbird-channel-header__title", - role: "button", - onKeyDown: onEdit, - onClick: onEdit, - tabIndex: "0" - }, React__default.createElement("div", { - className: "sendbird-channel-header__title--left" - }, React__default.createElement(Avatar$1, { - height: "32px", - width: "32px", - src: user.profileUrl, - alt: user.nickname - })), React__default.createElement("div", { - className: "sendbird-channel-header__title--right" - }, React__default.createElement(Label, { - className: "sendbird-channel-header__title--name", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, user.nickname || stringSet.NO_NAME), React__default.createElement(Label, { - className: "sendbird-channel-header__title--user-id", - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_2 - }, user.userId))), React__default.createElement("div", { - className: "sendbird-channel-header__right-icon" - }, iconButton)); -} -ChannelHeader.propTypes = { - user: PropTypes.shape({ - profileUrl: PropTypes.string, - nickname: PropTypes.string, - userId: PropTypes.string - }), - renderHeader: PropTypes.func, - allowProfileEdit: PropTypes.bool, - onEdit: PropTypes.func.isRequired, - iconButton: PropTypes.oneOfType([PropTypes.element, PropTypes.instanceOf(IconButton)]) -}; -ChannelHeader.defaultProps = { - user: {}, - renderHeader: null, - allowProfileEdit: false, - iconButton: null -}; - -// simple component to be used as modal root -var MODAL_ROOT = 'sendbird-modal-root'; - -var Type$1 = { - PRIMARY: 'PRIMARY', - SECONDARY: 'SECONDARY', - DANGER: 'DANGER', - DISABLED: 'DISABLED' -}; -var Size = { - BIG: 'BIG', - SMALL: 'SMALL' -}; - -function changeTypeToClassName(type) { - switch (type) { - case Type$1.PRIMARY: - return 'sendbird-button--primary'; - - case Type$1.SECONDARY: - return 'sendbird-button--secondary'; - - case Type$1.DANGER: - return 'sendbird-button--danger'; - - case Type$1.DISABLED: - return 'sendbird-button--disabled'; - - default: - return null; - } -} -function changeSizeToClassName(size) { - switch (size) { - case Size.BIG: - return 'sendbird-button--big'; - - case Size.SMALL: - return 'sendbird-button--small'; - - default: - return null; - } -} - -function Button(_ref) { - var type = _ref.type, - size = _ref.size, - children = _ref.children, - disabled = _ref.disabled, - onClick = _ref.onClick, - className = _ref.className; - var injectingClassNames = ['sendbird-button', disabled ? 'sendbird-button__disabled' : '', changeTypeToClassName(type), changeSizeToClassName(size)].concat(_toConsumableArray(Array.isArray(className) ? className : [className])).join(' '); - return React__default.createElement("button", { - type: "button", - className: injectingClassNames, - onClick: onClick, - disabled: disabled - }, React__default.createElement(Label, { - className: "sendbird-button__text", - type: LabelTypography.BUTTON_1, - color: LabelColors.ONCONTENT_1 - }, children)); -} -Button.propTypes = { - children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.arrayOf(PropTypes.element)]), - disabled: PropTypes.bool, - type: PropTypes.oneOf(Object.keys(Type$1)), - size: PropTypes.oneOf(Object.keys(Size)), - onClick: PropTypes.func, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -Button.defaultProps = { - children: 'Button', - type: Type$1.PRIMARY, - disabled: false, - size: Size.BIG, - onClick: function onClick() {}, - className: '' -}; - -var ModalHeader = function ModalHeader(_ref) { - var titleText = _ref.titleText; - return React__default.createElement("div", { - className: "sendbird-modal-header" - }, React__default.createElement(Label, { - type: LabelTypography.H_1, - color: LabelColors.ONBACKGROUND_1 - }, titleText)); -}; -ModalHeader.propTypes = { - titleText: PropTypes.string.isRequired -}; -var ModalBody = function ModalBody(_ref2) { - var children = _ref2.children; - return React__default.createElement("div", { - className: "sendbird-modal-body" - }, children); -}; -ModalBody.propTypes = { - children: PropTypes.oneOfType([PropTypes.element.isRequired, PropTypes.arrayOf(PropTypes.element.isRequired)]) -}; -ModalBody.defaultProps = { - children: null -}; -var ModalFooter = function ModalFooter(_ref3) { - var onSubmit = _ref3.onSubmit, - onCancel = _ref3.onCancel, - _ref3$disabled = _ref3.disabled, - disabled = _ref3$disabled === void 0 ? false : _ref3$disabled, - submitText = _ref3.submitText, - type = _ref3.type; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React__default.createElement("div", { - className: "sendbird-modal-footer" - }, React__default.createElement(Button, { - type: Type$1.SECONDARY, - onClick: onCancel - }, React__default.createElement(Label, { - type: LabelTypography.BUTTON_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.BUTTON__CANCEL)), React__default.createElement(Button, { - type: type, - disabled: disabled, - onClick: onSubmit - }, submitText)); -}; -ModalFooter.propTypes = { - onCancel: PropTypes.func.isRequired, - onSubmit: PropTypes.func.isRequired, - submitText: PropTypes.string.isRequired, - disabled: PropTypes.bool, - type: PropTypes.string -}; -ModalFooter.defaultProps = { - disabled: false, - type: Type$1.DANGER -}; - -function Modal(props) { - var children = props.children, - onCancel = props.onCancel, - onSubmit = props.onSubmit, - disabled = props.disabled, - submitText = props.submitText, - titleText = props.titleText, - hideFooter = props.hideFooter, - type = props.type; - return reactDom.createPortal(React__default.createElement("div", { - className: "sendbird-modal" - }, React__default.createElement("div", { - className: "sendbird-modal-content" - }, React__default.createElement(ModalHeader, { - titleText: titleText - }), React__default.createElement(ModalBody, null, children), !hideFooter && React__default.createElement(ModalFooter, { - disabled: disabled, - onCancel: onCancel, - onSubmit: onSubmit, - submitText: submitText, - type: type - }), React__default.createElement("div", { - className: "sendbird-modal-close" - }, React__default.createElement(IconButton, { - width: "32px", - height: "32px", - onClick: onCancel - }, React__default.createElement(Icon, { - type: IconTypes.CLOSE, - fillColor: IconColors.SECONDARY, - width: "24px", - height: "24px" - })))), React__default.createElement("div", { - className: "sendbird-modal-backdrop" - })), document.getElementById(MODAL_ROOT)); -} - -Modal.propTypes = { - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]), - onCancel: PropTypes.func.isRequired, - onSubmit: PropTypes.func.isRequired, - hideFooter: PropTypes.bool, - disabled: PropTypes.bool, - type: PropTypes.string -}; -Modal.defaultProps = { - children: null, - hideFooter: false, - disabled: false, - type: Type$1.DANGER -}; - -var InputLabel = function InputLabel(_ref) { - var children = _ref.children; - return React__default.createElement(Label, { - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_1, - className: "sendbird-input-label" - }, children); -}; -InputLabel.propTypes = { - children: PropTypes.string.isRequired -}; // future: add validations? onChange? more props etc etc - -var Input = React__default.forwardRef(function (props, ref) { - var value = props.value, - placeHolder = props.placeHolder, - disabled = props.disabled, - name = props.name, - required = props.required; - - var _useState = React.useState(value), - _useState2 = _slicedToArray(_useState, 2), - inputValue = _useState2[0], - setInputValue = _useState2[1]; - - return React__default.createElement("div", { - className: "sendbird-input" - }, React__default.createElement("input", { - required: required, - ref: ref, - name: name, - disabled: disabled, - value: inputValue, - className: "sendbird-input--input", - onChange: function onChange(e) { - setInputValue(e.target.value); - } - }), placeHolder && !inputValue && React__default.createElement(Label, { - className: "sendbird-input--placeholder", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_3 - }, placeHolder)); -}); -Input.propTypes = { - value: PropTypes.string, - placeHolder: PropTypes.string, - name: PropTypes.string.isRequired, - disabled: PropTypes.bool, - required: PropTypes.bool -}; -Input.defaultProps = { - value: '', - placeHolder: '', - disabled: false, - required: false -}; - -var Colors$2 = { - ONBACKGROUND_1: 'ONBACKGROUND_1', - ONBACKGROUND_2: 'ONBACKGROUND_2', - ONBACKGROUND_3: 'ONBACKGROUND_3', - ONBACKGROUND_4: 'ONBACKGROUND_4', - ONCONTENT_1: 'ONCONTENT_1', - PRIMARY: 'PRIMARY', - ERROR: 'ERROR' -}; -function changeColorToClassName$2(color) { - switch (color) { - case Colors$2.ONBACKGROUND_1: - return 'sendbird-color--onbackground-1'; - - case Colors$2.ONBACKGROUND_2: - return 'sendbird-color--onbackground-2'; - - case Colors$2.ONBACKGROUND_3: - return 'sendbird-color--onbackground-3'; - - case Colors$2.ONBACKGROUND_4: - return 'sendbird-color--onbackground-4'; - - case Colors$2.ONCONTENT_1: - return 'sendbird-color--oncontent-1'; - - case Colors$2.PRIMARY: - return 'sendbird-color--primary'; - - case Colors$2.ERROR: - return 'sendbird-color--error'; - - default: - return null; - } -} - -function TextButton(_ref) { - var color = _ref.color, - children = _ref.children, - disabled = _ref.disabled, - className = _ref.className, - onClick = _ref.onClick, - notUnderline = _ref.notUnderline; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - role: "button", - tabIndex: 0, - className: [].concat(_toConsumableArray(injectingClassName), [changeColorToClassName$2(color), notUnderline ? 'sendbird-textbutton--not-underline' : 'sendbird-textbutton', disabled ? 'sendbird-textbutton--disabled' : '']).join(' '), - onClick: onClick, - onKeyPress: onClick - }, children); -} -TextButton.propTypes = { - color: PropTypes.string, - children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - onClick: PropTypes.func, - notUnderline: PropTypes.bool, - disabled: PropTypes.bool -}; -TextButton.defaultProps = { - color: Colors$2.ONBACKGROUND_1, - className: '', - onClick: function onClick() {}, - notUnderline: false, - disabled: false -}; - -var noop = function noop() {}; -var getMessageCreatedAt = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var getSenderName = function getSenderName(message) { - return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); -}; -var getSenderProfileUrl = function getSenderProfileUrl(message) { - return message.sender && message.sender.profileUrl; -}; - -function EditUserProfile(_a) { - var user = _a.user, - onCancel = _a.onCancel, - _onSubmit = _a.onSubmit, - _b = _a.onThemeChange, - onThemeChange = _b === void 0 ? null : _b, - _c = _a.theme, - theme = _c === void 0 ? 'light' : _c, - _d = _a.changeTheme, - changeTheme = _d === void 0 ? noop : _d; - var hiddenInputRef = React.useRef(null); - var inputRef = React.useRef(null); - var formRef = React.useRef(null); - var stringSet = React.useContext(LocalizationContext).stringSet; - - var _e = React.useState(null), - currentImg = _e[0], - setCurrentImg = _e[1]; - - var _f = React.useState(null), - newFile = _f[0], - setNewFile = _f[1]; - - return React__default.createElement(Modal, { - titleText: stringSet.EDIT_PROFILE__TITLE, - submitText: stringSet.BUTTON__SAVE, - onCancel: onCancel, - onSubmit: function onSubmit() { - if (user.nickname !== '' && !inputRef.current.value) { - if (formRef.current.reportValidity) { - // might not work in explorer - formRef.current.reportValidity(); - } - - return; - } - - _onSubmit(inputRef.current.value, newFile); - - onCancel(); - }, - type: Type$1.PRIMARY - }, React__default.createElement("form", { - className: "sendbird__edit-user-profile", - ref: formRef, - onSubmit: function onSubmit(e) { - e.preventDefault(); - } - }, React__default.createElement("section", { - className: "sendbird__edit-user-profile__img" - }, React__default.createElement(InputLabel, null, stringSet.EDIT_PROFILE__IMAGE_LABEL), React__default.createElement("div", { - className: "sendbird__edit-user__avatar" - }, React__default.createElement(Avatar$1, { - height: "80px", - width: "80px", - src: currentImg || user.profileUrl - })), React__default.createElement("input", { - ref: hiddenInputRef, - type: "file", - accept: "image/gif, image/jpeg, image/png", - style: { - display: 'none' - }, - onChange: function onChange(e) { - setCurrentImg(URL.createObjectURL(e.target.files[0])); - setNewFile(e.target.files[0]); - hiddenInputRef.current.value = ''; - } - }), React__default.createElement(TextButton, { - className: "sendbird__edit-user__avatar-button", - onClick: function onClick() { - return hiddenInputRef.current.click(); - }, - notUnderline: true - }, React__default.createElement(Label, { - type: LabelTypography.BUTTON_1, - color: LabelColors.PRIMARY - }, stringSet.EDIT_PROFILE__IMAGE_UPLOAD))), React__default.createElement("section", { - className: "sendbird__edit-user__name" - }, React__default.createElement(InputLabel, null, stringSet.EDIT_PROFILE__NICKNAME_LABEL), React__default.createElement(Input, { - required: user.nickname !== '', - name: "sendbird__edit-user__name", - ref: inputRef, - value: user.nickname, - placeHolder: stringSet.EDIT_PROFILE__NICKNAME_PLACEHOLDER - })), React__default.createElement("section", { - className: "sendbird__edit-user__userid" - }, React__default.createElement(InputLabel, null, stringSet.EDIT_PROFILE__USERID_LABEL), React__default.createElement(Input, { - disabled: true, - name: "sendbird__edit-user__userid", - value: user.userId - })), React__default.createElement("section", { - className: "sendbird__edit-user__theme" - }, React__default.createElement(InputLabel, null, stringSet.EDIT_PROFILE__THEME_LABEL), React__default.createElement("div", { - className: "sendbird__edit-user__theme-icon" - }, theme === 'dark' ? React__default.createElement(Icon, { - onClick: function onClick() { - changeTheme('light'); - - if (onThemeChange && typeof onThemeChange === 'function') { - onThemeChange('light'); - } - }, - type: IconTypes.TOGGLE_ON, - width: 44, - height: 24 - }) : React__default.createElement(Icon, { - onClick: function onClick() { - changeTheme('dark'); - - if (onThemeChange && typeof onThemeChange === 'function') { - onThemeChange('dark'); - } - }, - type: IconTypes.TOGGLE_OFF, - width: 44, - height: 24 - }))))); -} - -var mapStoreToProps = function mapStoreToProps(store) { - return { - theme: store.config.theme, - changeTheme: store.config.setCurrenttheme - }; -}; - -var ConnectedEditUserProfile = withSendbirdContext(EditUserProfile, mapStoreToProps); - -function Types() { - return { - LOADING: 'LOADING', - NO_CHANNELS: 'NO_CHANNELS', - WRONG: 'WRONG' - }; -} -var PlaceHolderTypes = Types(); - -function MutedAvatarOverlay(props) { - var _a = props.height, - height = _a === void 0 ? 24 : _a, - _b = props.width, - width = _b === void 0 ? 24 : _b; - return React__default.createElement("div", { - className: "sendbird-muted-avatar", - style: { - height: height + "px", - width: width + "px" - } - }, React__default.createElement("div", { - className: "sendbird-muted-avatar__icon" - }, React__default.createElement("div", { - className: "sendbird-muted-avatar__bg", - style: { - height: height + "px", - width: width + "px" - } - }), React__default.createElement(Icon, { - fillColor: IconColors.WHITE, - type: IconTypes.ICON_MUTED, - width: height - 8 + "px", - height: width - 8 + "px" - }))); -} - -function Checkbox(_ref) { - var id = _ref.id, - checked = _ref.checked, - onChange = _ref.onChange; - - var _useState = React.useState(checked), - _useState2 = _slicedToArray(_useState, 2), - isChecked = _useState2[0], - setCheck = _useState2[1]; - - return React__default.createElement("label", { - className: "sendbird-checkbox", - htmlFor: id - }, React__default.createElement("input", { - id: id, - type: "checkbox", - checked: isChecked, - onClick: function onClick() { - return setCheck(!isChecked); - }, - onChange: onChange - }), React__default.createElement("span", { - className: "sendbird-checkbox--checkmark" - })); -} -Checkbox.propTypes = { - id: PropTypes.string, - checked: PropTypes.bool, - onChange: PropTypes.func -}; -Checkbox.defaultProps = { - id: 'sendbird-checkbox-input', - checked: false, - onChange: function onChange() {} -}; - -var SEND_MESSAGE_START = 'SEND_MESSAGE_START'; -var SEND_USER_MESSAGE = 'SEND_USER_MESSAGE'; -var SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE'; -var UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE'; -var DELETE_MESSAGE = 'DELETE_MESSAGE'; -var LEAVE_CHANNEL = 'LEAVE_CHANNEL'; -var CREATE_CHANNEL$1 = 'CREATE_CHANNEL'; - -var getSdk = function getSdk(store) { - var _store$stores = store.stores, - stores = _store$stores === void 0 ? {} : _store$stores; - var _stores$sdkStore = stores.sdkStore, - sdkStore = _stores$sdkStore === void 0 ? {} : _stores$sdkStore; - var sdk = sdkStore.sdk; - return sdk; -}; -var getPubSub = function getPubSub(store) { - var _store$config = store.config, - config = _store$config === void 0 ? {} : _store$config; - var pubSub = config.pubSub; - return pubSub; -}; // SendBird disconnect. Invalidates currentUser -// eslint-disable-next-line max-len - -var getConnect = function getConnect(store) { - return function (userId, accessToken) { - return new Promise(function (resolve, reject) { - var sdk = getSdk(store); - - if (!sdk) { - reject(new Error('Sdk not found')); - } - - if (!accessToken) { - sdk.connect(userId).then(function (res) { - return resolve(res); - }).catch(function (err) { - return reject(err); - }); - } else { - sdk.connect(userId, accessToken).then(function (res) { - return resolve(res); - }).catch(function (err) { - return reject(err); - }); - } - }); - }; -}; // SendBird disconnect. Invalidates currentUser - -var getDisconnect = function getDisconnect(store) { - return function () { - return new Promise(function (resolve, reject) { - var sdk = getSdk(store); - - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.disconnect().then(function (res) { - return resolve(res); - }).catch(function (err) { - return reject(err); - }); - }); - }; -}; // Using the updateCurrentUserInfo() method -// you can update a user's nickname and profile image with a URL -// eslint-disable-next-line max-len - -var getUpdateUserInfo = function getUpdateUserInfo(store) { - return function (nickName, profileUrl) { - return new Promise(function (resolve, reject) { - var sdk = getSdk(store); - - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.updateCurrentUserInfo(nickName, profileUrl).then(function (res) { - return resolve(res); - }).catch(function (err) { - return reject(err); - }); - }); - }; -}; -var getSendUserMessage = function getSendUserMessage(store) { - return function (channelUrl, userMessageParams) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - var promisify = function promisify() { - var pendingMsg = null; - var pendingPromise = new Promise(function (resolve_, reject_) { - pendingMsg = channel.sendUserMessage(userMessageParams, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = res; - var error = err; - - if (swapParams) { - message = err; - error = res; - } - - if (error) { - reject_(error); - return; - } - - resolve_(message); - pubsub.publish(SEND_USER_MESSAGE, { - message: message, - channel: channel - }); - }); - pubsub.publish(SEND_MESSAGE_START, { - message: pendingMsg, - channel: channel - }); - }); - - pendingPromise.get = function () { - return pendingMsg; - }; - - return pendingPromise; - }; - - resolve(promisify()); - }).catch(reject); - }); - }; -}; -var getSendFileMessage = function getSendFileMessage(store) { - return function (channelUrl, fileMessageParams) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - var promisify = function promisify() { - var pendingMsg = null; - var pendingPromise = new Promise(function (resolve_, reject_) { - pendingMsg = channel.sendFileMessage(fileMessageParams, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = res; - var error = err; - - if (swapParams) { - message = err; - error = res; - } - - if (error) { - reject_(error); - return; - } - - resolve_(message); - pubsub.publish(SEND_FILE_MESSAGE, { - message: message, - channel: channel - }); - }); - }); - - if (fileMessageParams.file) { - // keep the file's local version in pendingMsg.localUrl - // because promise doesnt allow overriding of pendingMsg.url - // eslint-disable-next-line no-param-reassign - pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file); - } - - if (fileMessageParams.fileUrl) { - // eslint-disable-next-line no-param-reassign - pendingMsg.localUrl = fileMessageParams.fileUrl; - } // eslint-disable-next-line no-param-reassign - - - pendingMsg.requestState = 'pending'; - pubsub.publish(SEND_MESSAGE_START, { - message: pendingMsg, - channel: channel - }); - - pendingPromise.get = function () { - return pendingMsg; - }; - - return pendingPromise; - }; - - resolve(promisify()); - }).catch(reject); - }); - }; -}; -var getUpdateUserMessage = function getUpdateUserMessage(store) { - return function (channelUrl, messageId, params) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.updateUserMessage(messageId, params, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = res; - var error = err; - - if (swapParams) { - message = err; - error = res; - } - - if (error) { - reject(error); - return; - } - - resolve(message); - pubsub.publish(UPDATE_USER_MESSAGE, { - message: message, - channel: channel, - // workaround for updating channelPreview on message-edit - // https://sendbird.atlassian.net/browse/UIKIT-268 - fromSelector: true - }); - }); - }).catch(reject); - }); - }; -}; -var getDeleteMessage = function getDeleteMessage(store) { - return function (channelUrl, message) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - var messageId = message.messageId; - channel.deleteMessage(message, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var error = err; - - if (swapParams) { - error = res; - } - - if (error) { - reject(error); - return; - } - - resolve(message); - pubsub.publish(DELETE_MESSAGE, { - messageId: messageId, - channel: channel - }); - }); - }).catch(reject); - }); - }; -}; -var getResendUserMessage = function getResendUserMessage(store) { - return function (channelUrl, failedMessage) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.resendUserMessage(failedMessage).then(function (message) { - resolve(message); - pubsub.publish(SEND_USER_MESSAGE, { - message: message, - channel: channel - }); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var getResendFileMessage = function getResendFileMessage(store) { - return function (channelUrl, failedMessage) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.resendFileMessage(failedMessage).then(function (message) { - resolve(message); - pubsub.publish(SEND_FILE_MESSAGE, { - message: message, - channel: channel - }); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var getCreateChannel = function getCreateChannel(store) { - return function (params) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.createChannel(params).then(function (channel) { - resolve(channel); - pubsub.publish(CREATE_CHANNEL$1, { - channel: channel - }); - }).catch(reject); - }); - }; -}; -var getLeaveChannel = function getLeaveChannel(store) { - return function (channelUrl) { - var sdk = getSdk(store); - var pubsub = getPubSub(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.leave().then(function () { - resolve(channel); - pubsub.publish(LEAVE_CHANNEL, { - channel: channel - }); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var getFreezeChannel = function getFreezeChannel(store) { - return function (channelUrl) { - var sdk = getSdk(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.freeze().then(function () { - // do not need pubsub here - event listener works - resolve(channel); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var getUnFreezeChannel = function getUnFreezeChannel(store) { - return function (channelUrl) { - var sdk = getSdk(store); - return new Promise(function (resolve, reject) { - if (!sdk) { - reject(new Error('Sdk not found')); - } - - sdk.GroupChannel.getChannel(channelUrl).then(function (channel) { - channel.unfreeze().then(function () { - // do not need pubsub here - event listener works - resolve(channel); - }).catch(reject); - }).catch(reject); - }); - }; -}; -var selectors = { - getSdk: getSdk, - getConnect: getConnect, - getDisconnect: getDisconnect, - getUpdateUserInfo: getUpdateUserInfo, - getSendUserMessage: getSendUserMessage, - getSendFileMessage: getSendFileMessage, - getUpdateUserMessage: getUpdateUserMessage, - getDeleteMessage: getDeleteMessage, - getResendUserMessage: getResendUserMessage, - getResendFileMessage: getResendFileMessage, - getFreezeChannel: getFreezeChannel, - getUnFreezeChannel: getUnFreezeChannel, - getCreateChannel: getCreateChannel, - getLeaveChannel: getLeaveChannel -}; - -function UserProfile(_a) { - var user = _a.user, - currentUserId = _a.currentUserId, - sdk = _a.sdk, - logger = _a.logger, - createChannel = _a.createChannel, - onSuccess = _a.onSuccess; - var stringSet = React.useContext(LocalizationContext).stringSet; - return React__default.createElement("div", { - className: "sendbird__user-profile" - }, React__default.createElement("section", { - className: "sendbird__user-profile-avatar" - }, React__default.createElement(Avatar$1, { - height: "80px", - width: "80px", - src: user.profileUrl - })), React__default.createElement("section", { - className: "sendbird__user-profile-name" - }, React__default.createElement(Label, { - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, user.nickname || stringSet.NO_NAME)), user.userId !== currentUserId && React__default.createElement("section", { - className: "sendbird__user-profile-message" - }, React__default.createElement(Button, { - type: Type$1.SECONDARY, - onClick: function onClick() { - var params = new sdk.GroupChannelParams(); - params.isDistinct = true; - params.addUserIds([user.userId]); - onSuccess(); - createChannel(params).then(function (groupChannel) { - logger.info('UserProfile, channel create', groupChannel); - }); - } - }, stringSet.USER_PROFILE__MESSAGE)), React__default.createElement("div", { - className: "sendbird__user-profile-seperator" - }), React__default.createElement("section", { - className: "sendbird__user-profile-userId" - }, React__default.createElement(Label, { - className: "sendbird__user-profile-userId--label", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, stringSet.USER_PROFILE__USER_ID), React__default.createElement(Label, { - className: "sendbird__user-profile-userId--value", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, user.userId))); -} - -var mapStoreToProps$1 = function mapStoreToProps(store) { - return { - sdk: getSdk(store), - createChannel: getCreateChannel(store), - logger: store.config.logger, - pubsub: store.config.pubSub - }; -}; - -var ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps$1); - -var MenuItems = -/*#__PURE__*/ -function (_Component) { - _inherits(MenuItems, _Component); - - function MenuItems(props) { - var _this; - - _classCallCheck(this, MenuItems); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(MenuItems).call(this, props)); - - _defineProperty(_assertThisInitialized(_this), "showParent", function () { - var _this$props$parentCon = _this.props.parentContainRef, - parentContainRef = _this$props$parentCon === void 0 ? {} : _this$props$parentCon; - var current = parentContainRef.current; - - if (parentContainRef && current) { - current.classList.add('sendbird-icon--pressed'); - } - }); - - _defineProperty(_assertThisInitialized(_this), "hideParent", function () { - var _this$props$parentCon2 = _this.props.parentContainRef, - parentContainRef = _this$props$parentCon2 === void 0 ? {} : _this$props$parentCon2; - var current = parentContainRef.current; - - if (parentContainRef && current) { - current.classList.remove('sendbird-icon--pressed'); - } - }); - - _defineProperty(_assertThisInitialized(_this), "setupEvents", function () { - var closeDropdown = _this.props.closeDropdown; - - var _assertThisInitialize = _assertThisInitialized(_this), - menuRef = _assertThisInitialize.menuRef; - - var handleClickOutside = function handleClickOutside(event) { - if (menuRef.current && !menuRef.current.contains(event.target)) { - closeDropdown(); - } - }; - - _this.setState({ - handleClickOutside: handleClickOutside - }); - - document.addEventListener('mousedown', handleClickOutside); - }); - - _defineProperty(_assertThisInitialized(_this), "cleanUpEvents", function () { - var handleClickOutside = _this.state.handleClickOutside; - document.removeEventListener('mousedown', handleClickOutside); - }); - - _defineProperty(_assertThisInitialized(_this), "getMenuPosition", function () { - var _this$props = _this.props, - parentRef = _this$props.parentRef, - openLeft = _this$props.openLeft; - var parentRect = parentRef.current.getBoundingClientRect(); - var x = parentRect.x || parentRect.left; - var y = parentRect.y || parentRect.top; - var menuStyle = { - top: y, - left: x - }; - if (!_this.menuRef.current) return menuStyle; - var _window = window, - innerWidth = _window.innerWidth, - innerHeight = _window.innerHeight; - - var rect = _this.menuRef.current.getBoundingClientRect(); - - if (y + rect.height > innerHeight) { - menuStyle.top -= rect.height; - } - - if (x + rect.width > innerWidth && !openLeft) { - menuStyle.left -= rect.width; - } - - if (menuStyle.top < 0) { - menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0; - } - - if (menuStyle.left < 0) { - menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0; - } - - menuStyle.top += 32; - - if (openLeft) { - var padding = Number.isNaN(rect.width - 30) ? 108 // default - : rect.width - 30; - menuStyle.left -= padding; - } - - return _this.setState({ - menuStyle: menuStyle - }); - }); - - _this.menuRef = React__default.createRef(); - _this.state = { - menuStyle: {}, - handleClickOutside: function handleClickOutside() {} - }; - return _this; - } - - _createClass(MenuItems, [{ - key: "componentDidMount", - value: function componentDidMount() { - this.setupEvents(); - this.getMenuPosition(); - this.showParent(); - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - this.cleanUpEvents(); - this.hideParent(); - } - }, { - key: "render", - value: function render() { - var menuStyle = this.state.menuStyle; - var _this$props2 = this.props, - children = _this$props2.children, - style = _this$props2.style; - return reactDom.createPortal(React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { - className: "sendbird-dropdown__menu-backdrop" - }), React__default.createElement("ul", { - className: "sendbird-dropdown__menu", - ref: this.menuRef, - style: _objectSpread2({ - display: 'inline-block', - position: 'fixed', - left: "".concat(Math.round(menuStyle.left), "px"), - top: "".concat(Math.round(menuStyle.top), "px") - }, style) - }, children)), document.getElementById('sendbird-dropdown-portal')); - } - }]); - - return MenuItems; -}(React.Component); -MenuItems.propTypes = { - closeDropdown: PropTypes.func.isRequired, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired, - style: PropTypes.shape({}), - // https://stackoverflow.com/a/51127130 - parentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ - current: PropTypes.instanceOf(Element) - })]).isRequired, - parentContainRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ - current: PropTypes.instanceOf(Element) - })]).isRequired, - openLeft: PropTypes.bool -}; -MenuItems.defaultProps = { - style: {}, - openLeft: false -}; - -var componentClassName = 'sendbird-sort-by-row'; -function SortByRow(_ref) { - var className = _ref.className, - maxItemCount = _ref.maxItemCount, - itemWidth = _ref.itemWidth, - itemHeight = _ref.itemHeight, - children = _ref.children; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift(componentClassName); - - if (children.length > maxItemCount) { - var result = []; - - for (var i = 0; i < children.length; i += maxItemCount) { - result.push(React__default.createElement("div", { - className: injectingClassName.join(' '), - style: { - width: itemWidth * maxItemCount, - height: itemHeight - }, - key: className + i - }, children.slice(i, i + maxItemCount))); - } - - return result; - } - - return React__default.createElement("div", { - className: injectingClassName.join(' '), - style: { - width: itemWidth * children.length, - height: itemHeight - } - }, children); -} -SortByRow.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - maxItemCount: PropTypes.number.isRequired, - itemWidth: PropTypes.number.isRequired, - itemHeight: PropTypes.number.isRequired, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element), PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).isRequired -}; -SortByRow.defaultProps = { - className: '' -}; - -var EmojiListItems = -/*#__PURE__*/ -function (_Component) { - _inherits(EmojiListItems, _Component); - - function EmojiListItems(props) { - var _this; - - _classCallCheck(this, EmojiListItems); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(EmojiListItems).call(this, props)); - - _defineProperty(_assertThisInitialized(_this), "showParent", function () { - var _this$props$parentCon = _this.props.parentContainRef, - parentContainRef = _this$props$parentCon === void 0 ? {} : _this$props$parentCon; - var current = parentContainRef.current; - - if (parentContainRef && current) { - current.classList.add('sendbird-reactions--pressed'); - } - }); - - _defineProperty(_assertThisInitialized(_this), "hideParent", function () { - var _this$props$parentCon2 = _this.props.parentContainRef, - parentContainRef = _this$props$parentCon2 === void 0 ? {} : _this$props$parentCon2; - var current = parentContainRef.current; - - if (parentContainRef && current) { - current.classList.remove('sendbird-reactions--pressed'); - } - }); - - _defineProperty(_assertThisInitialized(_this), "setupEvents", function () { - var closeDropdown = _this.props.closeDropdown; - - var _assertThisInitialize = _assertThisInitialized(_this), - reactionRef = _assertThisInitialize.reactionRef; - - var handleClickOutside = function handleClickOutside(event) { - if (reactionRef.current && !reactionRef.current.contains(event.target)) { - closeDropdown(); - } - }; - - _this.setState({ - handleClickOutside: handleClickOutside - }); - - document.addEventListener('mousedown', handleClickOutside); - }); - - _defineProperty(_assertThisInitialized(_this), "cleanUpEvents", function () { - var handleClickOutside = _this.state.handleClickOutside; - document.removeEventListener('mousedown', handleClickOutside); - }); - - _defineProperty(_assertThisInitialized(_this), "getBarPosition", function () { - var _this$props = _this.props, - parentRef = _this$props.parentRef, - spaceFromTrigger = _this$props.spaceFromTrigger; - var spaceFromTriggerX = spaceFromTrigger.x || 0; - var spaceFromTriggerY = spaceFromTrigger.y || 0; - var parentRect = parentRef.current.getBoundingClientRect(); - var x = parentRect.x || parentRect.left; - var y = parentRect.y || parentRect.top; - var reactionStyle = { - top: y, - left: x - }; - if (!_this.reactionRef.current) return reactionStyle; - - var rect = _this.reactionRef.current.getBoundingClientRect(); // const childRect = this.reactionRef.current.children[0].getBoundingClientRect(); - - - if (reactionStyle.top < rect.height) { - reactionStyle.top += parentRect.height; - reactionStyle.top += spaceFromTriggerY; - } else { - reactionStyle.top -= rect.height; - reactionStyle.top -= spaceFromTriggerY; - } - - reactionStyle.left -= rect.width / 2; - reactionStyle.left += parentRect.height / 2 - 2; - reactionStyle.left += spaceFromTriggerX; - var maximumLeft = window.innerWidth - rect.width; - - if (maximumLeft < reactionStyle.left) { - reactionStyle.left = maximumLeft; - } - - if (reactionStyle.left < 0) { - reactionStyle.left = 0; - } - - return _this.setState({ - reactionStyle: reactionStyle - }); - }); - - _this.reactionRef = React__default.createRef(); - _this.state = { - reactionStyle: {}, - handleClickOutside: function handleClickOutside() {} - }; - return _this; - } - - _createClass(EmojiListItems, [{ - key: "componentDidMount", - value: function componentDidMount() { - this.setupEvents(); - this.getBarPosition(); - this.showParent(); - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - this.cleanUpEvents(); - this.hideParent(); - } - }, { - key: "render", - value: function render() { - var reactionStyle = this.state.reactionStyle; - var children = this.props.children; - return reactDom.createPortal(React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { - className: "sendbird-dropdown__menu-backdrop" - }), React__default.createElement("ul", { - className: "sendbird-dropdown__reaction-bar", - ref: this.reactionRef, - style: { - display: 'inline-block', - position: 'fixed', - left: "".concat(Math.round(reactionStyle.left), "px"), - top: "".concat(Math.round(reactionStyle.top), "px") - } - }, React__default.createElement(SortByRow, { - className: "sendbird-dropdown__reaction-bar__row", - maxItemCount: 8, - itemWidth: 44, - itemHeight: 40 - }, children))), document.getElementById('sendbird-emoji-list-portal')); - } - }]); - - return EmojiListItems; -}(React.Component); -EmojiListItems.propTypes = { - closeDropdown: PropTypes.func.isRequired, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired, - parentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ - current: PropTypes.instanceOf(Element) - })]).isRequired, - parentContainRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ - current: PropTypes.instanceOf(Element) - })]).isRequired, - spaceFromTrigger: PropTypes.shape({ - x: PropTypes.number, - y: PropTypes.number - }) -}; -EmojiListItems.defaultProps = { - spaceFromTrigger: {} -}; - -var ENTER = 13; -var MenuItems$1 = MenuItems; -var EmojiListItems$1 = EmojiListItems; -var MenuItem = function MenuItem(_ref) { - var children = _ref.children, - onClick = _ref.onClick, - className = _ref.className; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("li", { - tabIndex: 0, - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-dropdown__menu-item']).join(' '), - onClick: onClick, - onKeyPress: function onKeyPress(e) { - if (e.keyCode === ENTER) { - onClick(e); - } - }, - role: "menuitem" - }, React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1, - className: "sendbird-dropdown__menu-item__text" - }, children)); -}; -MenuItem.propTypes = { - onClick: PropTypes.func.isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired -}; -MenuItem.defaultProps = { - className: '' -}; -function ContextMenu(_ref2) { - var menuTrigger = _ref2.menuTrigger, - menuItems = _ref2.menuItems; - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - showMenu = _useState2[0], - setShowMenu = _useState2[1]; - - return React__default.createElement("div", { - className: "sendbird-context-menu", - style: { - display: 'inline' - } - }, menuTrigger(function () { - return setShowMenu(!showMenu); - }), showMenu && menuItems(function () { - return setShowMenu(false); - })); -} -ContextMenu.propTypes = { - menuTrigger: PropTypes.func.isRequired, - menuItems: PropTypes.func.isRequired -}; - -var COMPONENT_NAME = 'sendbird-user-list-item'; -function UserListItem(_ref) { - var user = _ref.user, - className = _ref.className, - checkBox = _ref.checkBox, - currentUser = _ref.currentUser, - checked = _ref.checked, - _onChange = _ref.onChange, - action = _ref.action; - var injectingClassNames = Array.isArray(className) ? className : [className]; - var uniqueKey = user.userId; - var actionRef = React__default.useRef(null); - var parentRef = React__default.useRef(null); - var avatarRef = React__default.useRef(null); - - var _useContext = React.useContext(UserProfileContext), - disableUserProfile = _useContext.disableUserProfile, - renderUserProfile = _useContext.renderUserProfile; - - var _useContext2 = React.useContext(LocalizationContext), - stringSet = _useContext2.stringSet; - - return React__default.createElement("div", { - ref: parentRef, - className: [COMPONENT_NAME].concat(_toConsumableArray(injectingClassNames)).join(' ') - }, user.isMuted && React__default.createElement(MutedAvatarOverlay, { - height: 40, - width: 40 - }), React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(Avatar$1, { - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - ref: avatarRef, - className: "".concat(COMPONENT_NAME, "__avatar"), - src: user.profileUrl, - width: "40px", - height: "40px" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - openLeft: true, - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: user, - currentUserId: currentUser, - close: closeDropdown - }) : React__default.createElement(ConnectedUserProfile, { - user: user, - currentUserId: currentUser, - onSuccess: closeDropdown - })); - } - }), React__default.createElement(Label, { - className: "".concat(COMPONENT_NAME, "__title"), - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, user.nickname || stringSet.NO_NAME, currentUser === user.userId && ' (You)'), // if there is now nickname, display userId - !user.nickname && React__default.createElement(Label, { - className: "".concat(COMPONENT_NAME, "__subtitle"), - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, user.userId), checkBox && // eslint-disable-next-line jsx-a11y/label-has-associated-control - React__default.createElement("label", { - className: "".concat(COMPONENT_NAME, "__checkbox"), - htmlFor: uniqueKey - }, React__default.createElement(Checkbox, { - id: uniqueKey, - checked: checked, - onChange: function onChange(event) { - return _onChange(event); - } - })), user.role === 'operator' && React__default.createElement(Label, { - className: "".concat(COMPONENT_NAME, "__operator"), - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_2 - }, "Operator"), action && React__default.createElement("div", { - ref: actionRef, - className: "".concat(COMPONENT_NAME, "__action") - }, action({ - actionRef: actionRef, - parentRef: parentRef - }))); -} -UserListItem.propTypes = { - user: PropTypes.shape({ - userId: PropTypes.string, - role: PropTypes.string, - isMuted: PropTypes.bool, - nickname: PropTypes.string, - profileUrl: PropTypes.string - }).isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - currentUser: PropTypes.string, - action: PropTypes.element, - checkBox: PropTypes.bool, - checked: PropTypes.bool, - onChange: PropTypes.func -}; -UserListItem.defaultProps = { - className: '', - currentUser: '', - checkBox: false, - checked: false, - action: null, - onChange: function onChange() {} -}; - -var filterUser = function filterUser(idsToFilter) { - return function (currentId) { - return idsToFilter.includes(currentId); - }; -}; - -var InviteMembers = function InviteMembers(props) { - var userQueryCreator = props.userQueryCreator, - closeModal = props.closeModal, - _onSubmit = props.onSubmit, - submitText = props.submitText, - titleText = props.titleText, - idsToFilter = props.idsToFilter, - swapParams = props.swapParams; - - var _useState = React.useState([]), - _useState2 = _slicedToArray(_useState, 2), - users = _useState2[0], - setUsers = _useState2[1]; - - var _useState3 = React.useState({}), - _useState4 = _slicedToArray(_useState3, 2), - selectedUsers = _useState4[0], - setSelectedUsers = _useState4[1]; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var _useState5 = React.useState({}), - _useState6 = _slicedToArray(_useState5, 2), - usersDataSource = _useState6[0], - setUsersDataSource = _useState6[1]; - - var selectedCount = Object.keys(selectedUsers).length; - React.useEffect(function () { - var applicationUserListQuery = userQueryCreator(); - setUsersDataSource(applicationUserListQuery); - applicationUserListQuery.next(function (res, err) { - // eslint-disable-next-line no-underscore-dangle - var users_ = res; - var error = err; - - if (swapParams) { - users_ = err; - error = users_; - } - - if (error) { - return; - } - - setUsers(users_); - }); - }, []); - return React__default.createElement(Modal, { - onCancel: closeModal, - onSubmit: function onSubmit() { - var selectedUserList = Object.keys(selectedUsers); - - if (selectedUserList.length > 0) { - _onSubmit(selectedUserList); - - closeModal(); - } - }, - submitText: submitText, - titleText: titleText, - type: Type$1.PRIMARY - }, React__default.createElement("div", null, React__default.createElement(Label, { - color: selectedCount > 0 ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3, - type: LabelTypography.CAPTION_1 - }, "".concat(selectedCount, " ").concat(stringSet.MODAL__INVITE_MEMBER__SELECTEC)), React__default.createElement("div", { - className: "sendbird-create-channel--scroll", - onScroll: function onScroll(e) { - var hasNext = usersDataSource.hasNext; - var fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight; - - if (hasNext && fetchMore) { - usersDataSource.next(function (usersBatch, error) { - if (error) { - return; - } - - setUsers([].concat(_toConsumableArray(users), _toConsumableArray(usersBatch))); - }); - } - } - }, users.map(function (user) { - return !filterUser(idsToFilter)(user.userId) && React__default.createElement(UserListItem, { - key: user.userId, - user: user, - checkBox: true, - checked: selectedUsers[user.userId], - onChange: function onChange(event) { - var modifiedSelectedUsers = _objectSpread2({}, selectedUsers, _defineProperty({}, event.target.id, event.target.checked)); - - if (!event.target.checked) { - delete modifiedSelectedUsers[event.target.id]; - } - - setSelectedUsers(modifiedSelectedUsers); - } - }); - })))); -}; - -InviteMembers.propTypes = { - idsToFilter: PropTypes.arrayOf(PropTypes.string), - swapParams: PropTypes.bool, - userQueryCreator: PropTypes.func.isRequired, - closeModal: PropTypes.func.isRequired, - onSubmit: PropTypes.func.isRequired, - submitText: PropTypes.string, - titleText: PropTypes.string -}; -InviteMembers.defaultProps = { - swapParams: false, - submitText: 'create', - titleText: 'Create new channel', - idsToFilter: [] -}; - -var createDefaultUserListQuery = function createDefaultUserListQuery(_ref) { - var sdk = _ref.sdk, - _ref$userFilledApplic = _ref.userFilledApplicationUserListQuery, - userFilledApplicationUserListQuery = _ref$userFilledApplic === void 0 ? {} : _ref$userFilledApplic; - var params = sdk.createApplicationUserListQuery(); - - if (userFilledApplicationUserListQuery) { - Object.keys(userFilledApplicationUserListQuery).forEach(function (key) { - params[key] = userFilledApplicationUserListQuery[key]; - }); - } - - return params; -}; - -var getApplicationAttributes = function getApplicationAttributes() { - var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _sdk$appInfo = sdk.appInfo, - appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; - var _appInfo$applicationA = appInfo.applicationAttributes, - applicationAttributes = _appInfo$applicationA === void 0 ? [] : _appInfo$applicationA; - return applicationAttributes; -}; - -var isBroadcastChannelEnabled = function isBroadcastChannelEnabled() { - var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel'; - var applicationAttributes = getApplicationAttributes(sdk); - - if (Array.isArray(applicationAttributes)) { - return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL); - } - - return false; -}; -var isSuperGroupChannelEnabled = function isSuperGroupChannelEnabled() { - var sdk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel'; - var applicationAttributes = getApplicationAttributes(sdk); - - if (Array.isArray(applicationAttributes)) { - return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL); - } - - return false; -}; -var setChannelType = function setChannelType(params, type) { - if (type === 'broadcast') { - // eslint-disable-next-line no-param-reassign - params.isBroadcast = true; - } - - if (type === 'supergroup') { - // eslint-disable-next-line no-param-reassign - params.isSuper = true; - } - - return params; -}; -var createChannel = function createChannel(sdk, selectedUsers, onBeforeCreateChannel, userId) { - var type = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'group'; - return new Promise(function (resolve, reject) { - // have custom params - if (onBeforeCreateChannel) { - var _params = onBeforeCreateChannel(selectedUsers); - - setChannelType(_params, type); - sdk.GroupChannel.createChannel(_params, function (response, error) { - var swapParams = sdk.getErrorFirstCallback(); - var groupChannel = response; - var err = error; - - if (swapParams) { - groupChannel = error; - err = response; - } - - if (err) { - reject(err); - } - - resolve(groupChannel); - }); - return; - } - - var params = new sdk.GroupChannelParams(); - params.addUserIds(selectedUsers); - params.isDistinct = false; - - if (userId) { - params.operatorUserIds = [userId]; - } - - setChannelType(params, type); // do not have custom params - - sdk.GroupChannel.createChannel(params, function (response, error) { - var swapParams = sdk.getErrorFirstCallback(); - var groupChannel = response; - var err = error; - - if (swapParams) { - groupChannel = error; - err = response; - } - - if (err) { - reject(err); - } - - resolve(groupChannel); - }); - }); -}; - -function AddChannel(_ref) { - var sdk = _ref.sdk, - disabled = _ref.disabled, - channelListDispatcher = _ref.channelListDispatcher, - onBeforeCreateChannel = _ref.onBeforeCreateChannel, - userId = _ref.userId, - userFilledApplicationUserListQuery = _ref.userFilledApplicationUserListQuery, - userListQuery = _ref.userListQuery; - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - showModal = _useState2[0], - setShowModal = _useState2[1]; - - var _useState3 = React.useState(0), - _useState4 = _slicedToArray(_useState3, 2), - step = _useState4[0], - setStep = _useState4[1]; - - var _useState5 = React.useState('group'), - _useState6 = _slicedToArray(_useState5, 2), - type = _useState6[0], - setType = _useState6[1]; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - if (!sdk || !sdk.createApplicationUserListQuery) { - return null; - } - - var isBroadcastAvailable = isBroadcastChannelEnabled(sdk); - var isSupergroupAvailable = isSuperGroupChannelEnabled(sdk); - return React__default.createElement(React__default.Fragment, null, React__default.createElement(IconButton, { - height: "32px", - width: "32px", - onClick: function onClick() { - setShowModal(true); - }, - disabled: disabled - }, React__default.createElement(Icon, { - type: IconTypes.CREATE, - fillColor: IconColors.PRIMARY, - width: "24px", - height: "24px" - })), showModal && step === 0 && React__default.createElement(Modal, { - titleText: "New channel", - hideFooter: true, - onCancel: function onCancel() { - setShowModal(false); - }, - onSubmit: function onSubmit() {} - }, React__default.createElement("div", { - className: "sendbird-add-channel__rectangle-wrap" - }, React__default.createElement("div", { - className: "sendbird-add-channel__rectangle", - onClick: function onClick() { - setType('group'); - setStep(1); - }, - role: "button", - tabIndex: 0, - onKeyDown: function onKeyDown() { - setType('group'); - setStep(1); - } - }, React__default.createElement(Icon, { - type: IconTypes.CHAT - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, "Group")), isSupergroupAvailable && React__default.createElement("div", { - className: "sendbird-add-channel__rectangle", - onClick: function onClick() { - setType('supergroup'); - setStep(1); - }, - role: "button", - tabIndex: 0, - onKeyDown: function onKeyDown() { - setType('supergroup'); - setStep(1); - } - }, React__default.createElement(Icon, { - type: IconTypes.SUPER_GROUP - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, "Super group")), isBroadcastAvailable && React__default.createElement("div", { - className: "sendbird-add-channel__rectangle", - onClick: function onClick() { - setType('broadcast'); - setStep(1); - }, - role: "button", - tabIndex: 0, - onKeyDown: function onKeyDown() { - setType('broadcast'); - setStep(1); - } - }, React__default.createElement(Icon, { - type: IconTypes.BROADCAST - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, "Broadcast")))), showModal && step === 1 && React__default.createElement(InviteMembers, { - swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), - titleText: stringSet.MODAL__CREATE_CHANNEL__TITLE, - submitText: stringSet.BUTTON__CREATE, - closeModal: function closeModal() { - setStep(0); - setShowModal(false); - }, - idsToFilter: [userId], - userQueryCreator: function userQueryCreator() { - return userListQuery && typeof userListQuery === 'function' ? userListQuery() : createDefaultUserListQuery({ - sdk: sdk, - userFilledApplicationUserListQuery: userFilledApplicationUserListQuery - }); - }, - onSubmit: function onSubmit(selectedUsers) { - return createChannel(sdk, selectedUsers, onBeforeCreateChannel, userId, type).then(function (channel) { - // maybe - do this in event listener - channelListDispatcher({ - type: CREATE_CHANNEL, - payload: channel - }); - }); - } - })); -} -AddChannel.propTypes = { - sdk: PropTypes.shape({ - getErrorFirstCallback: PropTypes.func, - createApplicationUserListQuery: PropTypes.func - }).isRequired, - disabled: PropTypes.bool, - channelListDispatcher: PropTypes.func.isRequired, - userFilledApplicationUserListQuery: PropTypes.shape({}), - onBeforeCreateChannel: PropTypes.func, - userId: PropTypes.string.isRequired, - userListQuery: PropTypes.func -}; -AddChannel.defaultProps = { - disabled: false, - userFilledApplicationUserListQuery: {}, - onBeforeCreateChannel: null, - userListQuery: null -}; - -var LeaveChannel = function LeaveChannel(props) { - var onCloseModal = props.onCloseModal, - onLeaveChannel = props.onLeaveChannel; - return React__default.createElement(Modal, { - onCancel: onCloseModal, - onSubmit: onLeaveChannel, - submitText: "Leave", - titleText: "Leave this channel?" - }); -}; - -LeaveChannel.propTypes = { - onCloseModal: PropTypes.func.isRequired, - onLeaveChannel: PropTypes.func.isRequired -}; - -function ChannelPreviewAction(_ref) { - var disabled = _ref.disabled, - onLeaveChannel = _ref.onLeaveChannel; - var parentRef = React.useRef(null); - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - showModal = _useState2[0], - setShowModal = _useState2[1]; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React__default.createElement("div", { - role: "button", - style: { - display: 'inline-block' - }, - onKeyDown: function onKeyDown(e) { - e.stopPropagation(); - }, - tabIndex: 0, - onClick: function onClick(e) { - e.stopPropagation(); - } - }, React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: parentRef, - onClick: toggleDropdown, - height: "32px", - width: "32px" - }, React__default.createElement(Icon, { - type: IconTypes.MORE, - fillColor: IconColors.PRIMARY, - width: "24px", - height: "24px" - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: parentRef, - parentContainRef: parentRef, - closeDropdown: closeDropdown - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - setShowModal(true); - closeDropdown(); - } - }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE)); - } - }), showModal && React__default.createElement(LeaveChannel, { - onCloseModal: function onCloseModal() { - return setShowModal(false); - }, - onLeaveChannel: onLeaveChannel - })); -} -ChannelPreviewAction.propTypes = { - disabled: PropTypes.bool, - onLeaveChannel: PropTypes.func.isRequired -}; -ChannelPreviewAction.defaultProps = { - disabled: false -}; - -function Loader(_ref) { - var children = _ref.children, - className = _ref.className, - width = _ref.width, - height = _ref.height; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-loader']).join(' '), - style: { - width: typeof width === 'string' ? width : "".concat(width, "px"), - height: typeof height === 'string' ? height : "".concat(height, "px") - } - }, children); -} -Loader.propTypes = { - children: PropTypes.element, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) -}; -Loader.defaultProps = { - children: React__default.createElement(Icon, { - type: IconTypes.SPINNER, - width: "26px", - height: "26px" - }), - className: '', - width: '26px', - height: '26px' -}; - -function PlaceHolder(_ref) { - var className = _ref.className, - type = _ref.type, - retryToConnect = _ref.retryToConnect; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-place-holder']).join(' ') - }, type === PlaceHolderTypes.LOADING ? React__default.createElement(Loader, { - width: "48px", - height: "48px" - }, React__default.createElement(Icon, { - type: IconTypes.SPINNER_LARGE, - width: "48px", - height: "48px" - })) : null, type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG ? React__default.createElement("div", { - className: "sendbird-place-holder__body" - }, type === PlaceHolderTypes.NO_CHANNELS && React__default.createElement(Icon, { - className: "sendbird-place-holder__body__icon", - type: IconTypes.CHAT, - fillColor: IconColors.ON_BACKGROUND_3, - width: "64px", - height: "64px" - }), type === PlaceHolderTypes.WRONG && React__default.createElement(Icon, { - className: "sendbird-place-holder__body__icon", - type: IconTypes.ERROR, - fillColor: IconColors.ON_BACKGROUND_3, - width: "64px", - height: "64px" - }), React__default.createElement(Label, { - className: "sendbird-place-holder__body__text", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, type === PlaceHolderTypes.NO_CHANNELS ? stringSet.PLACE_HOLDER__NO_CHANNEL : stringSet.PLACE_HOLDER__WRONG), retryToConnect ? React__default.createElement("div", { - className: "sendbird-place-holder__body__reconnect", - role: "button", - tabIndex: 0, - onClick: retryToConnect, - onKeyPress: retryToConnect - }, React__default.createElement(Icon, { - className: "sendbird-place-holder__body__reconnect__icon", - type: IconTypes.REFRESH, - fillColor: IconColors.PRIMARY, - width: "20px", - height: "20px" - }), React__default.createElement(Label, { - className: "sendbird-place-holder__body__reconnect__text", - type: LabelTypography.BUTTON_1, - color: LabelColors.PRIMARY - }, stringSet.PLACE_HOLDER__RETRY_TO_CONNECT)) : null) : null); -} -PlaceHolder.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - type: PropTypes.oneOfType([PropTypes.oneOf(Object.keys(PlaceHolderTypes)), PropTypes.string]).isRequired, - retryToConnect: PropTypes.func -}; -PlaceHolder.defaultProps = { - className: '', - retryToConnect: null -}; - -function ChannelsPlaceholder(_ref) { - var type = _ref.type; - return React__default.createElement("div", { - className: "sendbird-channel-list" - }, React__default.createElement(PlaceHolder, { - type: type - })); -} -ChannelsPlaceholder.propTypes = { - type: PropTypes.string.isRequired -}; - -var createEventHandler = function createEventHandler(_ref) { - var sdk = _ref.sdk, - sdkChannelHandlerId = _ref.sdkChannelHandlerId, - channelListDispatcher = _ref.channelListDispatcher, - logger = _ref.logger; - var ChannelHandler = new sdk.ChannelHandler(); - - ChannelHandler.onChannelChanged = function (channel) { - logger.info('ChannelList: onChannelChanged', channel); - channelListDispatcher({ - type: ON_CHANNEL_CHANGED, - payload: channel - }); - }; - - ChannelHandler.onChannelDeleted = function (channelUrl) { - logger.info('ChannelList: onChannelDeleted', channelUrl); - channelListDispatcher({ - type: ON_CHANNEL_DELETED, - payload: channelUrl - }); - }; - - ChannelHandler.onUserJoined = function (channel) { - logger.info('ChannelList: onUserJoined', channel); - - if (channel.lastMessage) { - channelListDispatcher({ - type: ON_USER_JOINED, - payload: channel - }); - } - }; - - ChannelHandler.onUserBanned = function (channel, user) { - var currentUser = sdk.currentUser; - logger.info('Channel | useHandleChannelEvents: onUserBanned', channel); - - if (user.userId === currentUser.userId) { - channelListDispatcher({ - type: ON_USER_LEFT, - payload: { - channel: channel, - isMe: true - } - }); - } else { - channelListDispatcher({ - type: ON_USER_LEFT, - payload: { - channel: channel, - isMe: false - } - }); - } - }; - - ChannelHandler.onUserLeft = function (channel, leftUser) { - var currentUser = sdk.currentUser; - var isMe = currentUser.userId === leftUser.userId; - logger.info('ChannelList: onUserLeft', channel); - channelListDispatcher({ - type: ON_USER_LEFT, - payload: { - channel: channel, - isMe: isMe - } - }); - }; - - ChannelHandler.onReadStatus = function (channel) { - logger.info('ChannelList: onReadStatus', channel); - channelListDispatcher({ - type: ON_READ_RECEIPT_UPDATED, - payload: channel - }); - }; - - ChannelHandler.onDeliveryReceiptUpdated = function (channel) { - logger.info('ChannelList: onDeliveryReceiptUpdated', channel); - - if (channel.lastMessage) { - channelListDispatcher({ - type: ON_DELIVERY_RECEIPT_UPDATED, - payload: channel - }); - } - }; - - ChannelHandler.onMessageUpdated = function (channel, message) { - if (channel.lastMessage.isEqual(message)) { - logger.info('ChannelList: onMessageUpdated', channel); - channelListDispatcher({ - type: ON_LAST_MESSAGE_UPDATED, - payload: channel - }); - } - }; - - ChannelHandler.onChannelHidden = function (channel) { - logger.info('ChannelList: onChannelHidden', channel); - channelListDispatcher({ - type: ON_CHANNEL_ARCHIVED, - payload: channel.url - }); - }; - - ChannelHandler.onChannelFrozen = function (channel) { - logger.info('ChannelList: onChannelFrozen', channel); - channelListDispatcher({ - type: ON_CHANNEL_FROZEN, - payload: channel - }); - }; - - ChannelHandler.onChannelUnfrozen = function (channel) { - logger.info('ChannelList: onChannelUnfrozen', channel); - channelListDispatcher({ - type: ON_CHANNEL_UNFROZEN, - payload: channel - }); - }; - - logger.info('ChannelList: Added channelHandler'); - sdk.addChannelHandler(sdkChannelHandlerId, ChannelHandler); -}; - -var createApplicationUserListQuery = function createApplicationUserListQuery(_ref2) { - var sdk = _ref2.sdk, - _ref2$userFilledChann = _ref2.userFilledChannelListQuery, - userFilledChannelListQuery = _ref2$userFilledChann === void 0 ? {} : _ref2$userFilledChann; - var channelListQuery = sdk.GroupChannel.createMyGroupChannelListQuery(); - channelListQuery.includeEmpty = false; - channelListQuery.order = 'latest_last_message'; // 'chronological', 'latest_last_message', 'channel_name_alphabetical', and 'metadata_value_alphabetical' - - channelListQuery.limit = 20; // The value of pagination limit could be set up to 100. - - if (userFilledChannelListQuery) { - Object.keys(userFilledChannelListQuery).forEach(function (key) { - channelListQuery[key] = userFilledChannelListQuery[key]; - }); - } - - return channelListQuery; -}; -/** - * Setup event listener - * create channel source query - * addloading screen - */ - - -function setupChannelList(_ref3) { - var sdk = _ref3.sdk, - sdkChannelHandlerId = _ref3.sdkChannelHandlerId, - channelListDispatcher = _ref3.channelListDispatcher, - setChannelSource = _ref3.setChannelSource, - onChannelSelect = _ref3.onChannelSelect, - userFilledChannelListQuery = _ref3.userFilledChannelListQuery, - logger = _ref3.logger, - sortChannelList = _ref3.sortChannelList; - createEventHandler({ - sdk: sdk, - channelListDispatcher: channelListDispatcher, - sdkChannelHandlerId: sdkChannelHandlerId, - logger: logger - }); - logger.info('ChannelList - creating query', { - userFilledChannelListQuery: userFilledChannelListQuery - }); - var channelListQuery = createApplicationUserListQuery({ - sdk: sdk, - userFilledChannelListQuery: userFilledChannelListQuery - }); - logger.info('ChannelList - created query', channelListQuery); - setChannelSource(channelListQuery); - channelListDispatcher({ - type: INIT_CHANNELS_START - }); - logger.info('ChannelList - fetching channels'); - - if (channelListQuery.hasNext) { - channelListQuery.next(function (response, error) { - var swapParams = sdk.getErrorFirstCallback(); - var channelList = response; - var err = error; - - if (swapParams) { - channelList = error; - err = response; - } - - logger.info('ChannelList - fetched channels', channelList); - - if (err) { - logger.error('ChannelList - couldnt fetch channels', err); - channelListDispatcher({ - type: INIT_CHANNELS_FAILURE - }); - return; - } // select first channel - - - logger.info('ChannelList - highlight channel', channelList[0]); - var sorted = channelList; - - if (sortChannelList && typeof sortChannelList === 'function') { - sorted = sortChannelList(channelList); - logger.info('ChannelList - channel list sorted', sorted); - } - - onChannelSelect(sorted[0]); - channelListDispatcher({ - type: INIT_CHANNELS_SUCCESS, - payload: sorted - }); - - if (channelList && typeof channelList.forEach === 'function') { - logger.info('ChannelList - mark all channels as delivered'); - channelList.forEach(function (c) { - return c.markAsDelivered(); - }); - } - }); - } else { - logger.warning('ChannelList - there are no more channels'); - } -} - -var pubSubHandleRemover = function pubSubHandleRemover(subscriber) { - subscriber.forEach(function (s) { - try { - s.remove(); - } catch (_unused) {// - } - }); -}; -var pubSubHandler = function pubSubHandler(pubSub, channelListDispatcher) { - var subScriber = new Map(); - if (!pubSub) return subScriber; - subScriber.set(CREATE_CHANNEL$1, pubSub.subscribe(CREATE_CHANNEL$1, function (msg) { - var channel = msg.channel; - channelListDispatcher({ - type: 'CREATE_CHANNEL', - payload: channel - }); - })); - subScriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, function (msg) { - var channel = msg.channel, - message = msg.message; - var updatedChannel = channel; - updatedChannel.lastMessage = message; - - if (channel) { - channelListDispatcher({ - type: ON_LAST_MESSAGE_UPDATED, - payload: updatedChannel - }); - } - })); - subScriber.set(LEAVE_CHANNEL, pubSub.subscribe(LEAVE_CHANNEL, function (msg) { - var channel = msg.channel; - channelListDispatcher({ - type: LEAVE_CHANNEL_SUCCESS, - payload: channel.url - }); - })); - subScriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, function (msg) { - var channel = msg.channel; - channelListDispatcher({ - type: CHANNEL_REPLACED_TO_TOP, - payload: channel - }); - })); - return subScriber; -}; - -var noop$1 = function noop() {}; - -function ChannelList(props) { - var _props$stores = props.stores, - _props$stores$sdkStor = _props$stores.sdkStore, - sdkStore = _props$stores$sdkStor === void 0 ? {} : _props$stores$sdkStor, - _props$stores$userSto = _props$stores.userStore, - userStore = _props$stores$userSto === void 0 ? {} : _props$stores$userSto, - _props$config = props.config, - userId = _props$config.userId, - isOnline = _props$config.isOnline, - userListQuery = _props$config.userListQuery, - logger = _props$config.logger, - pubSub = _props$config.pubSub, - theme = _props$config.theme, - userDispatcher = props.dispatchers.userDispatcher, - _props$queries = props.queries, - queries = _props$queries === void 0 ? {} : _props$queries, - renderChannelPreview = props.renderChannelPreview, - renderHeader = props.renderHeader, - renderUserProfile = props.renderUserProfile, - disableUserProfile = props.disableUserProfile, - allowProfileEdit = props.allowProfileEdit, - sortChannelList = props.sortChannelList, - onProfileEditSuccess = props.onProfileEditSuccess, - onThemeChange = props.onThemeChange, - onBeforeCreateChannel = props.onBeforeCreateChannel, - onChannelSelect = props.onChannelSelect; - var _props$config2 = props.config, - config = _props$config2 === void 0 ? {} : _props$config2; // enable if it is true atleast once(both are flase by default) - - var enableEditProfile = allowProfileEdit || config.allowProfileEdit; - var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; - var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; - var _sdkStore$sdk = sdkStore.sdk, - sdk = _sdkStore$sdk === void 0 ? {} : _sdkStore$sdk; - var userFilledChannelListQuery = queries.channelListQuery; - var userFilledApplicationUserListQuery = queries.applicationUserListQuery; - var sdkError = sdkStore.error; - - var _useState = React.useState({}), - _useState2 = _slicedToArray(_useState, 2), - user = _useState2[0], - setUser = _useState2[1]; - - React.useEffect(function () { - setUser(userStore.user); - }, [userStore.user]); - var sdkIntialized = sdkStore.initialized; - - var _useReducer = React.useReducer(reducer$2, channelListInitialState), - _useReducer2 = _slicedToArray(_useReducer, 2), - channelListStore = _useReducer2[0], - channelListDispatcher = _useReducer2[1]; - - var _useState3 = React.useState({}), - _useState4 = _slicedToArray(_useState3, 2), - channelSource = _useState4[0], - setChannelSource = _useState4[1]; - - var _useState5 = React.useState(null), - _useState6 = _slicedToArray(_useState5, 2), - sdkChannelHandlerId = _useState6[0], - setSdkChannelHandlerId = _useState6[1]; - - var _useState7 = React.useState(false), - _useState8 = _slicedToArray(_useState7, 2), - showProfileEdit = _useState8[0], - setShowProfileEdit = _useState8[1]; - - var loading = channelListStore.loading, - currentChannel = channelListStore.currentChannel; - React.useEffect(function () { - var subscriber = pubSubHandler(pubSub, channelListDispatcher); - return function () { - pubSubHandleRemover(subscriber); - }; - }, [sdkIntialized]); - React.useEffect(function () { - setSdkChannelHandlerId(uuidv4); - - if (sdkIntialized) { - logger.info('ChannelList: Setup channelHandlers'); - setupChannelList({ - sdk: sdk, - sdkChannelHandlerId: sdkChannelHandlerId, - channelListDispatcher: channelListDispatcher, - setChannelSource: setChannelSource, - onChannelSelect: onChannelSelect, - userFilledChannelListQuery: userFilledChannelListQuery, - logger: logger, - sortChannelList: sortChannelList - }); - } else { - logger.info('ChannelList: Removing channelHandlers'); // remove previous channelHandlers - - if (sdk && sdk.removeChannelHandler) { - sdk.removeChannelHandler(sdkChannelHandlerId); - } // remove channelSource - - - setChannelSource({}); // cleanup - - channelListDispatcher({ - type: RESET_CHANNEL_LIST - }); - } - - return function () { - logger.info('ChannelList: Removing channelHandlers'); - - if (sdk && sdk.removeChannelHandler) { - sdk.removeChannelHandler(sdkChannelHandlerId); - } - }; - }, [sdkIntialized, userFilledChannelListQuery, sortChannelList]); - var allChannels = channelListStore.allChannels; - var sortedChannels = sortChannelList && typeof sortChannelList === 'function' ? sortChannelList(allChannels) : allChannels; - - if (sortedChannels.length !== allChannels.length) { - var warning = "ChannelList: You have removed/added extra channels on sortChannelList\n this could cause unexpected problems"; // eslint-disable-next-line no-console - - console.warn(warning, { - before: allChannels, - after: sortedChannels - }); - logger.warning(warning, { - before: allChannels, - after: sortedChannels - }); - } - - React.useEffect(function () { - if (!sdk || !sdk.GroupChannel) { - return; - } - - sdk.GroupChannel.getChannel(currentChannel, function (groupChannel) { - if (groupChannel) { - onChannelSelect(groupChannel); - } else { - onChannelSelect(null); - } - }); - }, [currentChannel]); - return React__default.createElement(UserProfileProvider, { - disableUserProfile: userDefinedDisableUserProfile, - renderUserProfile: userDefinedRenderProfile, - className: "sendbird-channel-list" - }, React__default.createElement("div", { - className: "sendbird-channel-list__header" - }, React__default.createElement(ChannelHeader, { - renderHeader: renderHeader, - user: user, - onEdit: function onEdit() { - if (enableEditProfile) { - setShowProfileEdit(true); - } - }, - allowProfileEdit: enableEditProfile, - iconButton: React__default.createElement(AddChannel, { - disabled: !isOnline, - userListQuery: userListQuery, - sdk: sdk, - channelListDispatcher: channelListDispatcher, - userId: userId, - userFilledApplicationUserListQuery: userFilledApplicationUserListQuery, - onBeforeCreateChannel: onBeforeCreateChannel - }) - })), showProfileEdit && React__default.createElement(ConnectedEditUserProfile, { - onThemeChange: onThemeChange, - user: user, - onCancel: function onCancel() { - setShowProfileEdit(false); - }, - onSubmit: function onSubmit(newName, newFile) { - sdk.updateCurrentUserInfoWithProfileImage(newName, newFile, function (updatedUser) { - userDispatcher({ - type: UPDATE_USER_INFO, - payload: updatedUser - }); - - if (onProfileEditSuccess && typeof onProfileEditSuccess === 'function') { - onProfileEditSuccess(updatedUser); - } - }); - } - }), React__default.createElement("div", { - className: "sendbird-channel-list__body", - onScroll: function onScroll(e) { - var fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight; - - if (fetchMore && channelSource.hasNext) { - logger.info('ChannelList: Fetching more channels'); - channelListDispatcher({ - type: FETCH_CHANNELS_START - }); - channelSource.next(function (response, error) { - var swapParams = sdk.getErrorFirstCallback(); - var channelList = response; - var err = error; - - if (swapParams) { - channelList = error; - err = response; - } - - if (err) { - logger.info('ChannelList: Fetching channels failed', err); - channelListDispatcher({ - type: FETCH_CHANNELS_FAILURE, - payload: channelList - }); - return; - } - - logger.info('ChannelList: Fetching channels successful', channelList); - channelListDispatcher({ - type: FETCH_CHANNELS_SUCCESS, - payload: channelList - }); - - if (channelList && typeof channelList.forEach === 'function') { - logger.info('ChannelList: Marking all channels as read'); - channelList.forEach(function (c) { - return c.markAsDelivered(); - }); - } - }); - } - } - }, sdkError && React__default.createElement(ChannelsPlaceholder, { - type: PlaceHolderTypes.WRONG - }), React__default.createElement("div", null, sortedChannels && sortedChannels.map(function (channel, idx) { - var _onLeaveChannel = function onLeaveChannel(c, cb) { - logger.info('ChannelList: Leaving channel', c); - c.leave().then(function (res) { - logger.info('ChannelList: Leaving channel success', res); - - if (cb && typeof cb === 'function') { - cb(res, null); - } - - channelListDispatcher({ - type: LEAVE_CHANNEL_SUCCESS, - payload: channel.url - }); - }).catch(function (err) { - logger.error('ChannelList: Leaving channel failed', err); - - if (cb && typeof cb === 'function') { - cb(null, err); - } - }); - }; - - var onClick = function onClick() { - if (!isOnline) { - return; - } - - logger.info('ChannelList: Clicked on channel:', channel); - channelListDispatcher({ - type: SET_CURRENT_CHANNEL, - payload: channel.url - }); - }; - - return renderChannelPreview ? // eslint-disable-next-line - React__default.createElement("div", { - key: channel.url, - onClick: onClick - }, renderChannelPreview({ - channel: channel, - onLeaveChannel: _onLeaveChannel - })) : React__default.createElement(ChannelPreview, { - key: channel.url, - tabIndex: idx, - onClick: onClick, - channel: channel, - currentUser: user, - theme: theme, - isActive: channel.url === currentChannel // todo - potential performance hit refactor - , - ChannelAction: React__default.createElement(ChannelPreviewAction, { - disabled: !isOnline, - onLeaveChannel: function onLeaveChannel() { - return _onLeaveChannel(channel); - } - }) - }); - })), (!sdkIntialized || loading) && React__default.createElement(ChannelsPlaceholder, { - type: PlaceHolderTypes.LOADING - }), // placeholder - (!allChannels || allChannels.length === 0) && React__default.createElement(ChannelsPlaceholder, { - type: PlaceHolderTypes.NO_CHANNELS - }))); -} - -ChannelList.propTypes = { - stores: PropTypes.shape({ - sdkStore: PropTypes.shape({ - initialized: PropTypes.bool - }), - userStore: PropTypes.shape({ - user: PropTypes.shape({}) - }) - }).isRequired, - dispatchers: PropTypes.shape({ - userDispatcher: PropTypes.func - }).isRequired, - config: PropTypes.shape({ - userId: PropTypes.string.isRequired, - userListQuery: PropTypes.func, - theme: PropTypes.string, - isOnline: PropTypes.bool, - logger: PropTypes.shape({ - info: PropTypes.func, - error: PropTypes.func, - warning: PropTypes.func - }), - pubSub: PropTypes.shape({ - subscribe: PropTypes.func, - publish: PropTypes.func - }) - }).isRequired, - queries: PropTypes.shape({ - channelListQuery: PropTypes.shape({ - channelNameContainsFilter: PropTypes.string, - channelUrlsFilter: PropTypes.arrayOf(PropTypes.string), - customTypesFilter: PropTypes.arrayOf(PropTypes.string), - customTypeStartsWithFilter: PropTypes.string, - hiddenChannelFilter: PropTypes.string, - includeEmpty: PropTypes.bool, - limit: PropTypes.number, - memberStateFilter: PropTypes.string, - metadataOrderKeyFilter: PropTypes.string, - nicknameContainsFilter: PropTypes.string, - order: PropTypes.string, - publicChannelFilter: PropTypes.string, - superChannelFilter: PropTypes.string, - unreadChannelFilter: PropTypes.string, - userIdsExactFilter: PropTypes.arrayOf(PropTypes.string), - userIdsIncludeFilter: PropTypes.arrayOf(PropTypes.string), - userIdsIncludeFilterQueryType: PropTypes.string - }), - applicationUserListQuery: PropTypes.shape({ - limit: PropTypes.number, - userIdsFilter: PropTypes.arrayOf(PropTypes.string), - metaDataKeyFilter: PropTypes.string, - metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string) - }) - }), - onBeforeCreateChannel: PropTypes.func, - renderChannelPreview: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - allowProfileEdit: PropTypes.bool, - sortChannelList: PropTypes.func, - onThemeChange: PropTypes.func, - onProfileEditSuccess: PropTypes.func, - renderHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - onChannelSelect: PropTypes.func -}; -ChannelList.defaultProps = { - onBeforeCreateChannel: null, - renderChannelPreview: null, - renderHeader: null, - disableUserProfile: false, - renderUserProfile: null, - allowProfileEdit: false, - onThemeChange: null, - sortChannelList: null, - onProfileEditSuccess: null, - queries: {}, - onChannelSelect: noop$1 -}; -var ChannelList$1 = withSendbirdContext(ChannelList); - -var RESET_MESSAGES = 'RESET_MESSAGES'; -var RESET_STATE = 'RESET_STATE'; -var CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES'; -var GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START'; -var GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS'; -var SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START'; -var SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS'; -var SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE'; -var RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START'; -var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED'; -var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED'; -var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED'; -var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID'; -var SET_CURRENT_CHANNEL$1 = 'SET_CURRENT_CHANNEL'; -var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID'; -var MARK_AS_READ = 'MARK_AS_READ'; -var ON_REACTION_UPDATED = 'ON_REACTION_UPDATED'; -var SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER'; -var SET_READ_STATUS = 'SET_READ_STATUS'; - -// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types -var SUPPORTED_MIMES = { - IMAGE: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp' // not supported in IE - ], - VIDEO: ['video/mpeg', 'video/ogg', 'video/webm', 'video/mp4'] -}; -var isImage = function isImage(type) { - return SUPPORTED_MIMES.IMAGE.includes(type); -}; -var isVideo = function isVideo(type) { - return SUPPORTED_MIMES.VIDEO.includes(type); -}; -var unSupported = function unSupported(type) { - return !(isImage(type) || isVideo(type)); -}; - -var MessageTypes = { - ADMIN: 'ADMIN', - USER: 'USER', - FILE: 'FILE', - THUMBNAIL: 'THUMBNAIL', - OG: 'OG' -}; -var SendingMessageStatus = { - NONE: 'none', - SUCCEEDED: 'succeeded', - FAILED: 'failed', - PENDING: 'pending' -}; -var getMessageType = function getMessageType(message) { - if (message.isUserMessage && message.isUserMessage() || message.messageType === 'user') { - return message.ogMetaData ? MessageTypes.OG : MessageTypes.USER; - } - - if (message.isAdminMessage && message.isAdminMessage()) { - return MessageTypes.ADMIN; - } - - if (message.isFileMessage && message.isFileMessage() || message.messageType === 'file') { - return isImage(message.type) || isVideo(message.type) ? MessageTypes.THUMBNAIL : MessageTypes.FILE; - } - - return ''; -}; - -var UNDEFINED = 'undefined'; -var SUCCEEDED = SendingMessageStatus.SUCCEEDED, - FAILED = SendingMessageStatus.FAILED, - PENDING = SendingMessageStatus.PENDING; -var scrollIntoLast = function scrollIntoLast(selector) { - var intialTry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var MAX_TRIES = 10; - var currentTry = intialTry; - - if (currentTry > MAX_TRIES) { - return; - } - - try { - var nodes = document.querySelectorAll(selector); - var last = nodes[nodes.length - 1]; - last.scrollIntoView(false); - /** alignToTop: false */ - } catch (error) { - setTimeout(function () { - scrollIntoLast(selector, currentTry + 1); - }, 500 * currentTry); - } -}; -var pubSubHandleRemover$1 = function pubSubHandleRemover(subscriber) { - subscriber.forEach(function (s) { - try { - s.remove(); - } catch (_unused) {// - } - }); -}; -var pubSubHandler$1 = function pubSubHandler(channelUrl, pubSub, dispatcher) { - var subscriber = new Map(); - if (!pubSub || !pubSub.subscribe) return subscriber; - subscriber.set(SEND_USER_MESSAGE, pubSub.subscribe(SEND_USER_MESSAGE, function (msg) { - var channel = msg.channel, - message = msg.message; - scrollIntoLast('.sendbird-msg--scroll-ref'); - - if (channel && channelUrl === channel.url) { - dispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - } - })); - subscriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, function (msg) { - var channel = msg.channel, - message = msg.message; - - if (channel && channelUrl === channel.url) { - dispatcher({ - type: SEND_MESSAGEGE_START, - payload: message - }); - } - })); - subscriber.set(SEND_FILE_MESSAGE, pubSub.subscribe(SEND_FILE_MESSAGE, function (msg) { - var channel = msg.channel, - message = msg.message; - scrollIntoLast('.sendbird-msg--scroll-ref'); - - if (channel && channelUrl === channel.url) { - dispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - } - })); - subscriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, function (msg) { - var channel = msg.channel, - message = msg.message, - fromSelector = msg.fromSelector; - - if (fromSelector && channel && channelUrl === channel.url) { - dispatcher({ - type: ON_MESSAGE_UPDATED, - payload: message - }); - } - })); - subscriber.set(DELETE_MESSAGE, pubSub.subscribe(DELETE_MESSAGE, function (msg) { - var channel = msg.channel, - messageId = msg.messageId; - - if (channel && channelUrl === channel.url) { - dispatcher({ - type: ON_MESSAGE_DELETED, - payload: messageId - }); - } - })); - return subscriber; -}; -var getParsedStatus = function getParsedStatus(message, currentGroupChannel) { - if (message.requestState === FAILED) { - return MessageStatusType.FAILED; - } - - if (message.requestState === PENDING) { - return MessageStatusType.PENDING; - } - - if (message.requestState === SUCCEEDED) { - if (!currentGroupChannel) { - return MessageStatusType.SENT; - } - - var unreadCount = currentGroupChannel.getReadReceipt(message); - - if (unreadCount === 0) { - return MessageStatusType.READ; - } - - var isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0; - - if (isDelivered) { - return MessageStatusType.DELIVERED; - } - - return MessageStatusType.SENT; - } - - return null; -}; -var isOperator = function isOperator() { - var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var myRole = groupChannel.myRole; - return myRole === 'operator'; -}; -var isDisabledBecauseFrozen = function isDisabledBecauseFrozen() { - var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var isFrozen = groupChannel.isFrozen; - return isFrozen && !isOperator(groupChannel); -}; -var isDisabledBecauseMuted = function isDisabledBecauseMuted() { - var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var myMutedState = groupChannel.myMutedState; - return myMutedState === 'muted'; -}; -var getEmojiCategoriesFromEmojiContainer = function getEmojiCategoriesFromEmojiContainer() { - var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []; -}; -var getAllEmojisFromEmojiContainer = function getAllEmojisFromEmojiContainer() { - var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _emojiContainer$emoji = emojiContainer.emojiCategories, - emojiCategories = _emojiContainer$emoji === void 0 ? [] : _emojiContainer$emoji; - var allEmojis = []; - - for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) { - var emojis = emojiCategories[categoryIndex].emojis; - - for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) { - allEmojis.push(emojis[emojiIndex]); - } - } - - return allEmojis; -}; -var getEmojisFromEmojiContainer = function getEmojisFromEmojiContainer() { - var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var emojiCategoryId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - return emojiContainer.emojiCategories ? emojiContainer.emojiCategories.filter(function (emojiCategory) { - return emojiCategory.id === emojiCategoryId; - })[0].emojis : []; -}; -var getAllEmojisMapFromEmojiContainer = function getAllEmojisMapFromEmojiContainer() { - var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var _emojiContainer$emoji2 = emojiContainer.emojiCategories, - emojiCategories = _emojiContainer$emoji2 === void 0 ? [] : _emojiContainer$emoji2; - var allEmojisMap = new Map(); - - for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) { - var emojis = emojiCategories[categoryIndex].emojis; - - for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) { - var _emojis$emojiIndex = emojis[emojiIndex], - key = _emojis$emojiIndex.key, - url = _emojis$emojiIndex.url; - allEmojisMap.set(key, url); - } - } - - return allEmojisMap; -}; -var getNicknamesMapFromMembers = function getNicknamesMapFromMembers() { - var members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var nicknamesMap = new Map(); - - for (var memberIndex = 0; memberIndex < members.length; memberIndex += 1) { - var _members$memberIndex = members[memberIndex], - userId = _members$memberIndex.userId, - nickname = _members$memberIndex.nickname; - nicknamesMap.set(userId, nickname); - } - - return nicknamesMap; -}; -var getMessageCreatedAt$1 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var isSameGroup = function isSameGroup(message, comparingMessage) { - if (!message || !comparingMessage || !message.sender || !comparingMessage.sender || !message.createdAt || !comparingMessage.createdAt || !message.sender.userId || !comparingMessage.sender.userId) { - return false; - } - - return message.sendingStatus === comparingMessage.sendingStatus && message.sender.userId === comparingMessage.sender.userId && getMessageCreatedAt$1(message) === getMessageCreatedAt$1(comparingMessage); -}; -var compareMessagesForGrouping = function compareMessagesForGrouping(prevMessage, currMessage, nextMessage) { - return [isSameGroup(prevMessage, currMessage), isSameGroup(currMessage, nextMessage)]; -}; -var passUnsuccessfullMessages = function passUnsuccessfullMessages(allMessages, newMessage) { - var _newMessage$sendingSt = newMessage.sendingStatus, - sendingStatus = _newMessage$sendingSt === void 0 ? UNDEFINED : _newMessage$sendingSt; - - if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) { - var lastIndexOfSucceededMessage = allMessages.map(function (message) { - return message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED : UNDEFINED); - }).lastIndexOf(SUCCEEDED); - - if (lastIndexOfSucceededMessage + 1 < allMessages.length) { - var messages = _toConsumableArray(allMessages); - - messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage); - return messages; - } - } - - return [].concat(_toConsumableArray(allMessages), [newMessage]); -}; - -var messagesInitialState = { - initialized: false, - loading: false, - allMessages: [], - currentGroupChannel: { - members: [] - }, - hasMore: false, - lastMessageTimeStamp: 0, - emojiContainer: {}, - readStatus: {}, - unreadCount: 0, - unreadSince: null, - isInvalid: false -}; - -var isEmpty$1 = function isEmpty(val) { - return val === null || val === undefined; -}; // Some Ids return string and number inconsistently -// only use to comapre IDs - - -function compareIds (a, b) { - if (isEmpty$1(a) || isEmpty$1(b)) { - return false; - } - - var aString = a.toString(); - var bString = b.toString(); - return aString === bString; -} - -var SUCCEEDED$1 = SendingMessageStatus.SUCCEEDED, - FAILED$1 = SendingMessageStatus.FAILED, - PENDING$1 = SendingMessageStatus.PENDING; -function reducer$3(state, action) { - switch (action.type) { - case RESET_STATE: - return messagesInitialState; - - case RESET_MESSAGES: - return _objectSpread2({}, state, { - // when user switches channel, if the previous channel `hasMore` - // the onScroll gets called twice, setting hasMore false prevents this - hasMore: false, - allMessages: [] - }); - - case GET_PREV_MESSAGES_START: - return _objectSpread2({}, state, { - loading: true - }); - - case CLEAR_SENT_MESSAGES: - return _objectSpread2({}, state, { - allMessages: _toConsumableArray(state.allMessages.filter(function (m) { - return m.sendingStatus !== SUCCEEDED$1; - })) - }); - - case GET_PREV_MESSAGES_SUCESS: - { - var recivedMessages = action.payload.messages || []; - var _action$payload$curre = action.payload.currentGroupChannel, - currentGroupChannel = _action$payload$curre === void 0 ? {} : _action$payload$curre; - var stateChannel = state.currentGroupChannel || {}; - var stateChannelUrl = stateChannel.url; - var actionChannelUrl = currentGroupChannel.url; - - if (actionChannelUrl !== stateChannelUrl) { - return state; - } // remove duplicate messages - - - var filteredAllMessages = state.allMessages.filter(function (msg) { - return !recivedMessages.find(function (_ref) { - var messageId = _ref.messageId; - return compareIds(messageId, msg.messageId); - }); - }); - return _objectSpread2({}, state, { - loading: false, - initialized: true, - hasMore: action.payload.hasMore, - lastMessageTimeStamp: action.payload.lastMessageTimeStamp, - allMessages: [].concat(_toConsumableArray(recivedMessages), _toConsumableArray(filteredAllMessages)) - }); - } - - case SEND_MESSAGEGE_START: - return _objectSpread2({}, state, { - allMessages: [].concat(_toConsumableArray(state.allMessages), [_objectSpread2({}, action.payload)]) - }); - - case SEND_MESSAGEGE_SUCESS: - { - var newMessages = state.allMessages.map(function (m) { - return compareIds(m.reqId, action.payload.reqId) ? action.payload : m; - }); - - _toConsumableArray(newMessages).sort(function (a, b) { - return a.sendingStatus && b.sendingStatus && a.sendingStatus === SUCCEEDED$1 && (b.sendingStatus === PENDING$1 || b.sendingStatus === FAILED$1) ? -1 : 1; - }); - - return _objectSpread2({}, state, { - allMessages: newMessages - }); - } - - case SEND_MESSAGEGE_FAILURE: - { - // eslint-disable-next-line no-param-reassign - action.payload.failed = true; - return _objectSpread2({}, state, { - allMessages: state.allMessages.map(function (m) { - return compareIds(m.reqId, action.payload.reqId) ? action.payload : m; - }) - }); - } - - case SET_CURRENT_CHANNEL$1: - { - return _objectSpread2({}, state, { - currentGroupChannel: action.payload, - isInvalid: false - }); - } - - case SET_CHANNEL_INVALID: - { - return _objectSpread2({}, state, { - isInvalid: true - }); - } - - case ON_MESSAGE_RECEIVED: - { - var _action$payload = action.payload, - channel = _action$payload.channel, - message = _action$payload.message; - - var _state$currentGroupCh = state.currentGroupChannel, - _currentGroupChannel = _state$currentGroupCh === void 0 ? {} : _state$currentGroupCh, - unreadCount = state.unreadCount, - unreadSince = state.unreadSince; - - var currentGroupChannelUrl = _currentGroupChannel.url; - - if (!compareIds(channel.url, currentGroupChannelUrl)) { - return state; - } // Excluded overlapping messages - - - if (!(state.allMessages.map(function (msg) { - return msg.messageId; - }).indexOf(message.messageId) < 0)) { - return state; - } - - if (message.isAdminMessage && message.isAdminMessage()) { - return _objectSpread2({}, state, { - allMessages: passUnsuccessfullMessages(state.allMessages, message) - }); - } - - return _objectSpread2({}, state, { - unreadCount: unreadCount + 1, - unreadSince: unreadCount === 0 ? format(new Date(), 'p MMM dd') : unreadSince, - allMessages: passUnsuccessfullMessages(state.allMessages, message) - }); - } - - case ON_MESSAGE_UPDATED: - return _objectSpread2({}, state, { - allMessages: state.allMessages.map(function (m) { - return compareIds(m.messageId, action.payload.messageId) ? action.payload : m; - }) - }); - - case RESEND_MESSAGEGE_START: - return _objectSpread2({}, state, { - allMessages: state.allMessages.map(function (m) { - return compareIds(m.reqId, action.payload.reqId) ? action.payload : m; - }) - }); - - case MARK_AS_READ: - return _objectSpread2({}, state, { - unreadCount: 0, - unreadSince: null - }); - - case ON_MESSAGE_DELETED: - return _objectSpread2({}, state, { - allMessages: state.allMessages.filter(function (m) { - return !compareIds(m.messageId, action.payload); - }) - }); - - case ON_MESSAGE_DELETED_BY_REQ_ID: - return _objectSpread2({}, state, { - allMessages: state.allMessages.filter(function (m) { - return !compareIds(m.reqId, action.payload); - }) - }); - - case SET_EMOJI_CONTAINER: - { - return _objectSpread2({}, state, { - emojiContainer: action.payload - }); - } - - case SET_READ_STATUS: - { - return _objectSpread2({}, state, { - readStatus: action.payload - }); - } - - case ON_REACTION_UPDATED: - { - return _objectSpread2({}, state, { - allMessages: state.allMessages.map(function (m) { - if (compareIds(m.messageId, action.payload.messageId)) { - if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') { - m.applyReactionEvent(action.payload); - } - - return m; - } - - return m; - }) - }); - } - - default: - return state; - } -} - -/** - * Handles ChannelEvents and send values to dispatcher using messagesDispatcher - * messagesDispatcher: Dispatcher - * sdk: sdkInstance - * logger: loggerInstance - * channelUrl: string - * sdkInit: bool - */ - -function useHandleChannelEvents(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - sdkInit = _ref.sdkInit; - var messagesDispatcher = _ref2.messagesDispatcher, - sdk = _ref2.sdk, - logger = _ref2.logger; - var channelUrl = currentGroupChannel && currentGroupChannel.url; - React.useEffect(function () { - var messageReciverId = uuidv4(); - - if (channelUrl && sdk && sdk.ChannelHandler) { - var ChannelHandler = new sdk.ChannelHandler(); - logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReciverId); - - ChannelHandler.onMessageReceived = function (channel, message) { - if (compareIds(channel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onMessageReceived', message); - messagesDispatcher({ - type: ON_MESSAGE_RECEIVED, - payload: { - channel: channel, - message: message - } - }); - } - }; - - ChannelHandler.onMessageUpdated = function (_, message) { - logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message); - messagesDispatcher({ - type: ON_MESSAGE_UPDATED, - payload: message - }); - }; - - ChannelHandler.onMessageDeleted = function (_, messageId) { - logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId); - messagesDispatcher({ - type: ON_MESSAGE_DELETED, - payload: messageId - }); - }; - - ChannelHandler.onReactionUpdated = function (_, reactionEvent) { - logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent); - messagesDispatcher({ - type: ON_REACTION_UPDATED, - payload: reactionEvent - }); - }; - - ChannelHandler.onChannelChanged = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onChannelFrozen = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onChannelUnfrozen = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onUserMuted = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onUserUnmuted = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onUserBanned = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; - - ChannelHandler.onOperatorUpdated = function (groupChannel) { - if (compareIds(groupChannel.url, currentGroupChannel.url)) { - logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - } - }; // Add this channel event handler to the SendBird object. - - - sdk.addChannelHandler(messageReciverId, ChannelHandler); - } - - return function () { - if (sdk && sdk.removeChannelHandler) { - logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReciverId); - sdk.removeChannelHandler(messageReciverId); - } - }; - }, [channelUrl, sdkInit]); -} - -function useSetChannel(_ref, _ref2) { - var channelUrl = _ref.channelUrl, - sdkInit = _ref.sdkInit; - var messagesDispatcher = _ref2.messagesDispatcher, - sdk = _ref2.sdk, - logger = _ref2.logger; - React.useEffect(function () { - if (channelUrl && sdkInit && sdk && sdk.GroupChannel) { - logger.info('Channel | useSetChannel fetching channel', channelUrl); - sdk.GroupChannel.getChannel(channelUrl).then(function (groupChannel) { - logger.info('Channel | useSetChannel fetched channel', groupChannel); - messagesDispatcher({ - type: SET_CURRENT_CHANNEL$1, - payload: groupChannel - }); - logger.info('Channel: Mark as read', groupChannel); // this order is important - this mark as read should update the event handler up above - - groupChannel.markAsRead(); - }).catch(function (e) { - logger.warning('Channel | useSetChannel fetch channel failed', { - channelUrl: channelUrl, - e: e - }); - messagesDispatcher({ - type: SET_CHANNEL_INVALID - }); - }); - sdk.getAllEmoji(function (emojiContainer_, err) { - if (err) { - logger.error('Channel: Getting emojis failed', err); - return; - } - - logger.info('Channel: Getting emojis success', emojiContainer_); - messagesDispatcher({ - type: SET_EMOJI_CONTAINER, - payload: emojiContainer_ - }); - }); - } - }, [channelUrl, sdkInit]); -} - -function useInitialMessagesFetch(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - userFilledMessageListQuery = _ref.userFilledMessageListQuery; - var sdk = _ref2.sdk, - logger = _ref2.logger, - messagesDispatcher = _ref2.messagesDispatcher; - var channelUrl = currentGroupChannel && currentGroupChannel.url; - React.useEffect(function () { - logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel); - messagesDispatcher({ - type: RESET_MESSAGES - }); - - if (sdk && sdk.MessageListParams && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) { - var messageListParams = new sdk.MessageListParams(); - messageListParams.prevResultSize = 30; - messageListParams.isInclusive = true; - messageListParams.includeReplies = false; - messageListParams.includeReaction = true; - - if (userFilledMessageListQuery) { - Object.keys(userFilledMessageListQuery).forEach(function (key) { - messageListParams[key] = userFilledMessageListQuery[key]; - }); - } - - logger.info('Channel: Fetching messages', { - currentGroupChannel: currentGroupChannel, - userFilledMessageListQuery: userFilledMessageListQuery - }); - currentGroupChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams).then(function (messages) { - var hasMore = messages && messages.length > 0; - var lastMessageTimeStamp = hasMore ? messages[0].createdAt : null; - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: messages, - hasMore: hasMore, - lastMessageTimeStamp: lastMessageTimeStamp, - currentGroupChannel: currentGroupChannel - } - }); - }).catch(function (error) { - logger.error('Channel: Fetching messages failed', error); - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: [], - hasMore: false, - lastMessageTimeStamp: 0, - currentGroupChannel: currentGroupChannel - } - }); - }).finally(function () { - currentGroupChannel.markAsRead(); - setTimeout(function () { - return scrollIntoLast('.sendbird-msg--scroll-ref'); - }); - }); - } - }, [channelUrl, userFilledMessageListQuery]); -} - -function useHandleReconnect(_ref, _ref2) { - var isOnline = _ref.isOnline; - var logger = _ref2.logger, - sdk = _ref2.sdk, - currentGroupChannel = _ref2.currentGroupChannel, - messagesDispatcher = _ref2.messagesDispatcher, - userFilledMessageListQuery = _ref2.userFilledMessageListQuery; - React.useEffect(function () { - var wasOffline = !isOnline; - return function () { - // state changed from offline to online - if (wasOffline) { - logger.info('Refreshing conversation state'); - var _sdk$appInfo = sdk.appInfo, - appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; - var useReaction = appInfo.isUsingReaction || false; - var messageListParams = new sdk.MessageListParams(); - messageListParams.prevResultSize = 30; - messageListParams.includeReplies = false; - messageListParams.includeReaction = useReaction; - - if (userFilledMessageListQuery) { - Object.keys(userFilledMessageListQuery).forEach(function (key) { - messageListParams[key] = userFilledMessageListQuery[key]; - }); - } - - logger.info('Channel: Fetching messages', { - currentGroupChannel: currentGroupChannel, - userFilledMessageListQuery: userFilledMessageListQuery - }); - messagesDispatcher({ - type: GET_PREV_MESSAGES_START - }); - sdk.GroupChannel.getChannel(currentGroupChannel.url).then(function (groupChannel) { - var lastMessageTime = new Date().getTime(); - groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams).then(function (messages) { - messagesDispatcher({ - type: CLEAR_SENT_MESSAGES - }); - var hasMore = messages && messages.length > 0; - var lastMessageTimeStamp = hasMore ? messages[0].createdAt : null; - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: messages, - hasMore: hasMore, - lastMessageTimeStamp: lastMessageTimeStamp, - currentGroupChannel: currentGroupChannel - } - }); - setTimeout(function () { - return scrollIntoLast('.sendbird-msg--scroll-ref'); - }); - }).catch(function (error) { - logger.error('Channel: Fetching messages failed', error); - }).finally(function () { - currentGroupChannel.markAsRead(); - }); - }); - } - }; - }, [isOnline]); -} - -function useScrollCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - lastMessageTimeStamp = _ref.lastMessageTimeStamp, - userFilledMessageListQuery = _ref.userFilledMessageListQuery; - var hasMore = _ref2.hasMore, - logger = _ref2.logger, - messagesDispatcher = _ref2.messagesDispatcher, - sdk = _ref2.sdk; - return React.useCallback(function (cb) { - if (!hasMore) { - return; - } - - var messageListParams = new sdk.MessageListParams(); - messageListParams.prevResultSize = 30; - messageListParams.includeReplies = false; - messageListParams.includeReaction = true; - - if (userFilledMessageListQuery) { - Object.keys(userFilledMessageListQuery).forEach(function (key) { - messageListParams[key] = userFilledMessageListQuery[key]; - }); - } - - logger.info('Channel: Fetching messages', { - currentGroupChannel: currentGroupChannel, - userFilledMessageListQuery: userFilledMessageListQuery - }); - currentGroupChannel.getMessagesByTimestamp(lastMessageTimeStamp || new Date().getTime(), messageListParams).then(function (messages) { - var hasMoreMessages = messages && messages.length > 0; - var lastMessageTs = hasMoreMessages ? messages[0].createdAt : null; - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: messages, - hasMore: hasMoreMessages, - lastMessageTimeStamp: lastMessageTs, - currentGroupChannel: currentGroupChannel - } - }); - cb([messages, null]); - }).catch(function (error) { - logger.error('Channel: Fetching messages failed', error); - messagesDispatcher({ - type: GET_PREV_MESSAGES_SUCESS, - payload: { - messages: [], - hasMore: false, - lastMessageTimeStamp: 0, - currentGroupChannel: currentGroupChannel - } - }); - cb([null, error]); - }).finally(function () { - currentGroupChannel.markAsRead(); - }); - }, [currentGroupChannel, lastMessageTimeStamp]); -} - -function useDeleteMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - messagesDispatcher = _ref.messagesDispatcher; - var logger = _ref2.logger; - return React.useCallback(function (message, cb) { - logger.info('Channel | useDeleteMessageCallback: Deleting message', message); - var requestState = message.requestState; - logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState); // Message is only on local - - if (requestState === 'failed' || requestState === 'pending') { - logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message); - messagesDispatcher({ - type: ON_MESSAGE_DELETED_BY_REQ_ID, - payload: message.reqId - }); - - if (cb) { - cb(); - } - - return; - } // Message is on server - - - currentGroupChannel.deleteMessage(message, function (err) { - logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState); - - if (cb) { - cb(err); - } - - if (!err) { - logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message); - messagesDispatcher({ - type: ON_MESSAGE_DELETED, - payload: message.messageId - }); - } else { - logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err); - } - }); - }, [currentGroupChannel, messagesDispatcher]); -} - -function useUpdateMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - messagesDispatcher = _ref.messagesDispatcher, - onBeforeUpdateUserMessage = _ref.onBeforeUpdateUserMessage; - var logger = _ref2.logger, - pubSub = _ref2.pubSub, - sdk = _ref2.sdk; - return React.useCallback(function (messageId, text, cb) { - var createParamsDefault = function createParamsDefault(txt) { - var params = new sdk.UserMessageParams(); - params.message = txt; - return params; - }; - - var createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function'; - - if (createCustomPrams) { - logger.info('Channel: creting params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage); - } - - var params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(text) : createParamsDefault(text); - currentGroupChannel.updateUserMessage(messageId, params, function (r, e) { - logger.info('Channel: Updating message!', params); - var swapParams = sdk.getErrorFirstCallback(); - var message = r; - var err = e; - - if (swapParams) { - message = e; - err = r; - } - - if (cb) { - cb(err, message); - } - - if (!err) { - logger.info('Channel: Updating message success!', message); - messagesDispatcher({ - type: ON_MESSAGE_UPDATED, - payload: message - }); - pubSub.publish(UPDATE_USER_MESSAGE, { - message: message, - channel: currentGroupChannel - }); - } else { - logger.warning('Channel: Updating message failed!', err); - } - }); - }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]); -} - -function useResendMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - messagesDispatcher = _ref.messagesDispatcher; - var logger = _ref2.logger; - return React.useCallback(function (failedMessage) { - logger.info('Channel: Resending message has started', failedMessage); - var messageType = failedMessage.messageType, - file = failedMessage.file; - - if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) { - // eslint-disable-next-line no-param-reassign - failedMessage.requestState = 'pending'; - messagesDispatcher({ - type: RESEND_MESSAGEGE_START, - payload: failedMessage - }); // userMessage - - if (messageType === 'user') { - currentGroupChannel.resendUserMessage(failedMessage).then(function (message) { - logger.info('Channel: Resending message success!', { - message: message - }); - messagesDispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - }).catch(function (e) { - logger.warning('Channel: Resending message failed!', { - e: e - }); // eslint-disable-next-line no-param-reassign - - failedMessage.requestState = 'failed'; - messagesDispatcher({ - type: SEND_MESSAGEGE_FAILURE, - payload: failedMessage - }); - }); // eslint-disable-next-line no-param-reassign - - failedMessage.requestState = 'pending'; - messagesDispatcher({ - type: RESEND_MESSAGEGE_START, - payload: failedMessage - }); - return; - } - - if (messageType === 'file') { - currentGroupChannel.resendFileMessage(failedMessage, file).then(function (message) { - logger.info('Channel: Resending file message success!', { - message: message - }); - messagesDispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - }).catch(function (e) { - logger.warning('Channel: Resending file message failed!', { - e: e - }); // eslint-disable-next-line no-param-reassign - - failedMessage.requestState = 'failed'; - messagesDispatcher({ - type: SEND_MESSAGEGE_FAILURE, - payload: failedMessage - }); - }); // eslint-disable-next-line no-param-reassign - - failedMessage.requestState = 'pending'; - messagesDispatcher({ - type: RESEND_MESSAGEGE_START, - payload: failedMessage - }); - } - } else { - // to alert user on console - // eslint-disable-next-line no-console - console.error('Message is not resendable'); - logger.warning('Message is not resendable', failedMessage); - } - }, [currentGroupChannel, messagesDispatcher]); -} - -function useSendMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - onBeforeSendUserMessage = _ref.onBeforeSendUserMessage; - var sdk = _ref2.sdk, - logger = _ref2.logger, - pubSub = _ref2.pubSub, - messagesDispatcher = _ref2.messagesDispatcher; - var messageInputRef = React.useRef(null); - var sendMessage = React.useCallback(function () { - var text = messageInputRef.current.value; - - var createParamsDefault = function createParamsDefault(txt) { - var message = typeof txt === 'string' ? txt.trim() : txt; - var params = new sdk.UserMessageParams(); - params.message = message; - return params; - }; - - var createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function'; - - if (createCustomPrams) { - logger.info('Channel: creting params using onBeforeSendUserMessage', onBeforeSendUserMessage); - } - - var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text); - logger.info('Channel: Sending message has started', params); - var pendingMsg = currentGroupChannel.sendUserMessage(params, function (res, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = res; - var error = err; - - if (swapParams) { - message = err; - error = res; - } // sending params instead of pending message - // to make sure that we can resend the message once it fails - - - if (error) { - logger.warning('Channel: Sending message failed!', { - message: message - }); - messagesDispatcher({ - type: SEND_MESSAGEGE_FAILURE, - payload: message - }); - return; - } - - logger.info('Channel: Sending message success!', message); - messagesDispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - }); - pubSub.publish(SEND_MESSAGE_START, { - /* pubSub is used instead of messagesDispatcher - to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */ - message: pendingMsg, - channel: currentGroupChannel - }); - setTimeout(function () { - return scrollIntoLast('.sendbird-msg--scroll-ref'); - }); - }, [currentGroupChannel, onBeforeSendUserMessage]); - return [messageInputRef, sendMessage]; -} - -function useSendFileMessageCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel, - onBeforeSendFileMessage = _ref.onBeforeSendFileMessage; - var sdk = _ref2.sdk, - logger = _ref2.logger, - pubSub = _ref2.pubSub, - messagesDispatcher = _ref2.messagesDispatcher; - var sendMessage = React.useCallback(function (file) { - var createParamsDefault = function createParamsDefault(file_) { - var params = new sdk.FileMessageParams(); - params.file = file_; - return params; - }; - - var createCustomPrams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function'; - - if (createCustomPrams) { - logger.info('Channel: creting params using onBeforeSendFileMessage', onBeforeSendFileMessage); - } - - var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefault(file); - logger.info('Channel: Uploading file message start!', params); - var pendingMsg = currentGroupChannel.sendFileMessage(params, function (response, err) { - var swapParams = sdk.getErrorFirstCallback(); - var message = response; - var error = err; - - if (swapParams) { - message = err; - error = response; - } - - if (error) { - // sending params instead of pending message - // to make sure that we can resend the message once it fails - logger.error('Channel: Sending file message failed!', message); - message.localUrl = URL.createObjectURL(file); - message.file = file; - messagesDispatcher({ - type: SEND_MESSAGEGE_FAILURE, - payload: message - }); - return; - } - - logger.info('Channel: Sending message success!', message); - messagesDispatcher({ - type: SEND_MESSAGEGE_SUCESS, - payload: message - }); - }); - pubSub.publish(SEND_MESSAGE_START, { - /* pubSub is used instead of messagesDispatcher - to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */ - message: _objectSpread2({}, pendingMsg, { - url: URL.createObjectURL(file), - // pending thumbnail message seems to be failed - requestState: 'pending' - }), - channel: currentGroupChannel - }); - setTimeout(function () { - return scrollIntoLast('.sendbird-msg--scroll-ref'); - }, 1000); - }, [currentGroupChannel, onBeforeSendFileMessage]); - return [sendMessage]; -} - -function useSetReadStatus(_ref, _ref2) { - var allMessages = _ref.allMessages, - currentGroupChannel = _ref.currentGroupChannel; - var messagesDispatcher = _ref2.messagesDispatcher, - sdk = _ref2.sdk, - logger = _ref2.logger; - React.useEffect(function () { - if (!sdk.ChannelHandler || !currentGroupChannel.url) { - return function () {}; - } // todo: move to reducer? - - - var setReadStatus = function setReadStatus() { - var allReadStatus = allMessages.reduce(function (accumulator, msg) { - if (msg.messageId !== 0) { - return _objectSpread2({}, accumulator, _defineProperty({}, msg.messageId, getParsedStatus(msg, currentGroupChannel))); - } - - return accumulator; - }, {}); - messagesDispatcher({ - type: SET_READ_STATUS, - payload: allReadStatus - }); - }; - - if (allMessages.length > 0) { - setReadStatus(); - } - - var channelUrl = currentGroupChannel.url; - var handler = new sdk.ChannelHandler(); - - var handleMessageStatus = function handleMessageStatus(c) { - if (channelUrl === c.url) { - setReadStatus(); - } - }; - - handler.onDeliveryReceiptUpdated = handleMessageStatus; - handler.onReadReceiptUpdated = handleMessageStatus; // Add this channel event handler to the SendBird object. - - var handlerId = uuidv4(); - logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId); - sdk.addChannelHandler(handlerId, handler); - return function () { - if (sdk && sdk.removeChannelHandler) { - logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId); - sdk.removeChannelHandler(handlerId); - } - }; - }, [allMessages, currentGroupChannel]); -} - -var ReactionButton = React__default.forwardRef(function (props, ref) { - var children = props.children, - width = props.width, - height = props.height, - _onClick = props.onClick, - selected = props.selected, - className = props.className; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - ref: ref, - className: "sendbird-reaction-button".concat(selected ? '--selected' : '', " ").concat(injectingClassName.join(' ')), - style: { - width: typeof width === 'string' ? "".concat(width.slice(0, -2) - 2, "px") : "".concat(width - 2, "px"), - height: typeof height === 'string' ? "".concat(height.slice(0, -2) - 2, "px") : "".concat(height - 2, "px") - }, - onClick: function onClick(e) { - return _onClick(e); - }, - role: "button", - onKeyDown: function onKeyDown(e) { - return _onClick(e); - }, - tabIndex: 0 - }, React__default.createElement("div", { - className: "sendbird-reaction-button__inner" - }, children)); -}); -ReactionButton.propTypes = { - children: PropTypes.element.isRequired, - onClick: PropTypes.func, - selected: PropTypes.bool, - width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -ReactionButton.defaultProps = { - selected: false, - width: '36px', - height: '36px', - onClick: function onClick() {}, - className: '' -}; - -function useMemoizedEmojiListItems(_ref, _ref2) { - var emojiContainer = _ref.emojiContainer, - toggleReaction = _ref.toggleReaction; - var useReaction = _ref2.useReaction, - logger = _ref2.logger, - userId = _ref2.userId, - emojiAllList = _ref2.emojiAllList; - return React.useMemo(function () { - return function (_ref3) { - var parentRef = _ref3.parentRef, - parentContainRef = _ref3.parentContainRef, - message = _ref3.message, - closeDropdown = _ref3.closeDropdown, - _ref3$spaceFromTrigge = _ref3.spaceFromTrigger, - spaceFromTrigger = _ref3$spaceFromTrigge === void 0 ? {} : _ref3$spaceFromTrigge; - - if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) { - logger.warning('Channel: Invalid Params in memoizedEmojiListItems'); - return null; - } - - return React__default.createElement(EmojiListItems$1, { - parentRef: parentRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: spaceFromTrigger - }, emojiAllList.map(function (emoji) { - var reactedReaction = message.reactions.filter(function (reaction) { - return reaction.key === emoji.key; - })[0]; - var isReacted = reactedReaction ? !(reactedReaction.userIds.indexOf(userId) < 0) : false; - return React__default.createElement(ReactionButton, { - key: emoji.key, - width: "36px", - height: "36px", - selected: isReacted, - onClick: function onClick() { - closeDropdown(); - toggleReaction(message, emoji.key, isReacted); - } - }, React__default.createElement(ImageRenderer, { - url: emoji.url, - width: "28px", - height: "28px", - defaultComponent: React__default.createElement(Icon, { - width: "28px", - height: "28px", - type: IconTypes.EMOJI_FAILED - }) - })); - })); - }; - }, [emojiContainer, toggleReaction]); -} - -function useToggleReactionCallback(_ref, _ref2) { - var currentGroupChannel = _ref.currentGroupChannel; - var logger = _ref2.logger; - return React.useCallback(function (message, key, isReacted) { - if (isReacted) { - currentGroupChannel.deleteReaction(message, key).then(function (res) { - logger.info('Delete reaction success', res); - }).catch(function (err) { - logger.warning('Delete reaction failed', err); - }); - return; - } - - currentGroupChannel.addReaction(message, key).then(function (res) { - logger.info('Add reaction success', res); - }).catch(function (err) { - logger.warning('Add reaction failed', err); - }); - }, [currentGroupChannel]); -} - -function MessageStatus(_ref) { - var message = _ref.message, - status = _ref.status, - className = _ref.className; - var injectingClassName = Array.isArray(className) ? className : [className]; - - var label = function label() { - switch (status) { - case MessageStatusType.FAILED: - case MessageStatusType.PENDING: - { - return null; - } - - case MessageStatusType.SENT: - case MessageStatusType.DELIVERED: - case MessageStatusType.READ: - { - return React__default.createElement(Label, { - className: "sendbird-message-status__text", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt(message)); - } - - default: - return null; - } - }; - - var icon = { - PENDING: React__default.createElement(Loader, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px" - }, React__default.createElement(Icon, { - type: IconTypes.SPINNER, - width: "16px", - height: "16px" - })), - SENT: React__default.createElement(Icon, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px", - type: IconTypes.SENT, - fillColor: IconColors.SENT - }), - DELIVERED: React__default.createElement(Icon, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px", - type: IconTypes.DELIVERED, - fillColor: IconColors.SENT - }), - READ: React__default.createElement(Icon, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px", - type: IconTypes.READ, - fillColor: IconColors.READ - }), - FAILED: React__default.createElement(Icon, { - className: "sendbird-message-status__icon", - width: "16px", - height: "16px", - type: IconTypes.ERROR - }) - }; - return React__default.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-message-status']).join(' ') - }, icon[status], React__default.createElement("br", null), label()); -} -MessageStatus.propTypes = { - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - status: PropTypes.string, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -MessageStatus.defaultProps = { - message: null, - status: '', - className: '' -}; - -var ReactionBadge = React__default.forwardRef(function (props, ref) { - var className = props.className, - children = props.children, - count = props.count, - selected = props.selected, - isAdd = props.isAdd, - onClick = props.onClick; - var injectingClassName = Array.isArray(className) ? className : [className]; - - if (selected && !isAdd) { - injectingClassName.unshift('sendbird-reaction-badge--selected'); - } else if (isAdd) { - injectingClassName.push('sendbird-reaction-badge--is-add'); - } else { - injectingClassName.unshift('sendbird-reaction-badge'); - } - - return React__default.createElement("div", { - ref: ref, - tabIndex: 0, - role: "button", - className: injectingClassName.join(' '), - onClick: onClick, - onKeyDown: onClick - }, React__default.createElement("div", { - className: "sendbird-reaction-badge__inner" - }, React__default.createElement("div", { - className: "sendbird-reaction-badge__inner__icon" - }, children), React__default.createElement(Label, { - className: children && count ? 'sendbird-reaction-badge__inner__count' : '', - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_1 - }, count))); -}); -ReactionBadge.propTypes = { - children: PropTypes.element.isRequired, - count: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - selected: PropTypes.bool, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - isAdd: PropTypes.bool, - onClick: PropTypes.func -}; -ReactionBadge.defaultProps = { - className: '', - count: '', - selected: false, - isAdd: false, - onClick: function onClick() {} -}; - -var CLASS_NAME$2 = 'sendbird-tooltip'; -function Tooltip(_ref) { - var className = _ref.className, - children = _ref.children; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift(CLASS_NAME$2); - return React__default.createElement("div", { - className: injectingClassName.join(' ') - }, React__default.createElement(Label, { - className: "".concat(CLASS_NAME$2, "__text") - }, children)); -} -Tooltip.propTypes = { - className: PropTypes.string, - children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.string), PropTypes.string]) -}; -Tooltip.defaultProps = { - className: '', - children: '' -}; - -var CLASS_NAME$3 = 'sendbird-tooltip-wrapper'; -var SPACE_FROM_TRIGGER = 8; -function TooltipWrapper(_ref) { - var className = _ref.className, - children = _ref.children, - hoverTooltip = _ref.hoverTooltip; - var injectingClassName = Array.isArray(className) ? [CLASS_NAME$3].concat(_toConsumableArray(className)) : [CLASS_NAME$3, className]; - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - showHoverTooltip = _useState2[0], - setShowHoverTooltip = _useState2[1]; - - var childrenRef = React.useRef(null); - return React__default.createElement("div", { - className: injectingClassName.join(' '), - onMouseOver: function onMouseOver() { - setShowHoverTooltip(true); - }, - onFocus: function onFocus() { - setShowHoverTooltip(true); - }, - onMouseOut: function onMouseOut() { - setShowHoverTooltip(false); - }, - onBlur: function onBlur() { - setShowHoverTooltip(false); - } - }, React__default.createElement("div", { - className: "".concat(CLASS_NAME$3, "__children"), - ref: childrenRef - }, children), showHoverTooltip && React__default.createElement("div", { - className: "".concat(CLASS_NAME$3, "__hover-tooltip"), - style: { - bottom: "calc(100% + ".concat(SPACE_FROM_TRIGGER, "px)") - } - }, React__default.createElement("div", { - className: "".concat(CLASS_NAME$3, "__hover-tooltip__inner") - }, React__default.createElement("div", { - className: "".concat(CLASS_NAME$3, "__hover-tooltip__inner__tooltip-container"), - style: { - left: childrenRef.current && "calc(".concat(childrenRef.current.offsetWidth / 2, "px - 50%)") - } - }, hoverTooltip)))); -} -TooltipWrapper.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.element.isRequired, - hoverTooltip: PropTypes.oneOfType([PropTypes.element, PropTypes.func]).isRequired -}; -TooltipWrapper.defaultProps = { - className: '' -}; - -function EmojiReactions(_ref) { - var className = _ref.className, - userId = _ref.userId, - message = _ref.message, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift('sendbird-emoji-reactions'); - var MemoizedEmojiListItems = memoizedEmojiListItems; - var imageWidth = '20px'; - var imageHeight = '20px'; - var emojiReactionAddRef = React.useRef(null); - var _message$reactions = message.reactions, - reactions = _message$reactions === void 0 ? [] : _message$reactions; - var messageReactions = reactions; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React__default.createElement("div", { - className: injectingClassName.join(' ') - }, React__default.createElement("div", { - className: "sendbird-emoji-reactions--inner" - }, messageReactions && messageReactions.map(function (reaction) { - var _reaction$userIds = reaction.userIds, - userIds = _reaction$userIds === void 0 ? [] : _reaction$userIds; - var emojiUrl = emojiAllMap.get(reaction.key) || ''; - var reactedUserCount = userIds.length; - var reactedByMe = !(userIds.indexOf(userId) < 0); - var nicknames = userIds.filter(function (currentUserId) { - return currentUserId !== userId; - }).map(function (currentUserId) { - return membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER; - }); - var stringSetForMe = nicknames.length > 0 ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU; - return React__default.createElement(TooltipWrapper, { - className: "sendbird-emoji-reactions__emoji-reaction", - key: reaction.key, - hoverTooltip: userIds.length > 0 && React__default.createElement(Tooltip, null, React__default.createElement(React__default.Fragment, null, "".concat(nicknames.join(', ')).concat(reactedByMe ? stringSetForMe : ''))) - }, React__default.createElement(ReactionBadge, { - count: reactedUserCount, - selected: reactedByMe, - onClick: function onClick() { - return toggleReaction(message, reaction.key, reactedByMe); - } - }, React__default.createElement(ImageRenderer, { - circle: true, - url: emojiUrl, - width: imageWidth, - height: imageHeight, - defaultComponent: React__default.createElement(Icon, { - width: imageWidth, - height: imageHeight, - type: IconTypes.EMOJI_FAILED - }) - }))); - }), messageReactions.length < emojiAllMap.size && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(ReactionBadge, { - isAdd: true, - onClick: toggleDropdown, - className: "sendbird-emoji-reactions__emoji-reaction-add", - ref: emojiReactionAddRef - }, React__default.createElement(Icon, { - width: imageWidth, - height: imageHeight, - fillColor: IconColors.ON_BACKGROUND_3, - type: IconTypes.EMOJI_REACTIONS_ADD - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: emojiReactionAddRef, - parentContainRef: emojiReactionAddRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 4 - } - }); - } - }))); -} -EmojiReactions.propTypes = { - userId: PropTypes.string, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - message: PropTypes.shape({ - reactions: PropTypes.arrayOf(PropTypes.shape({})) - }).isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func -}; -EmojiReactions.defaultProps = { - className: '', - membersMap: new Map(), - userId: '', - toggleReaction: function toggleReaction() {}, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -var copyToClipboard = function copyToClipboard(text) { - if (window.clipboardData && window.clipboardData.setData) { - // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible. - return window.clipboardData.setData('Text', text); - } - - if (document.queryCommandSupported && document.queryCommandSupported('copy')) { - var textarea = document.createElement('textarea'); - textarea.textContent = text; - textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. - - document.body.appendChild(textarea); - textarea.select(); - - try { - return document.execCommand('copy'); // Security exception may be thrown by some browsers. - } catch (ex) { - return false; - } finally { - document.body.removeChild(textarea); - } - } - - return false; -}; -var getMessageCreatedAt$2 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var getSenderName$1 = function getSenderName(message) { - return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); -}; -var getSenderProfileUrl$1 = function getSenderProfileUrl(message) { - return message.sender && message.sender.profileUrl; -}; -var getIsSentFromStatus$1 = function getIsSentFromStatus(status) { - return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; -}; - -var WORD_TYPOGRAPHY = LabelTypography.BODY_1; -var EDITED_COLOR = LabelColors.ONBACKGROUND_2; -function useMemoizedMessageText(_ref) { - var message = _ref.message, - updatedAt = _ref.updatedAt, - className = _ref.className; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.useMemo(function () { - return function () { - var splitMessage = message.split(/\r/); - var matchedMessage = splitMessage.map(function (word) { - return word !== '' ? word : React__default.createElement("br", null); - }); - - if (updatedAt > 0) { - matchedMessage.push(React__default.createElement(Label, { - key: uuidv4(), - className: className, - type: WORD_TYPOGRAPHY, - color: EDITED_COLOR - }, " ".concat(stringSet.MESSAGE_EDITED, " "))); - } - - return matchedMessage; - }; - }, [message, updatedAt, className]); -} - -var MOUSE_ENTER = 'mouseenter'; -var MOUSE_LEAVE = 'mouseleave'; - -var useMouseHover = function useMouseHover(_ref) { - var ref = _ref.ref, - setHover = _ref.setHover; - - var handleMouseOver = function handleMouseOver() { - if (ref.current) { - setHover(true); - } - }; - - var handleMouseOut = function handleMouseOut() { - if (ref.current) { - setHover(false); - } - }; - - React.useEffect(function () { - var current = ref.current; - current.addEventListener(MOUSE_ENTER, handleMouseOver); - current.addEventListener(MOUSE_LEAVE, handleMouseOut); - return function () { - current.removeEventListener(MOUSE_ENTER, handleMouseOver); - current.removeEventListener(MOUSE_LEAVE, handleMouseOut); - }; - }); -}; - -var noop$2 = function noop() {}; - -var GROUPING_PADDING = '1px'; -var NORMAL_PADDING = '8px'; -function Message(props) { - var isByMe = props.isByMe, - userId = props.userId, - message = props.message, - className = props.className, - resendMessage = props.resendMessage, - disabled = props.disabled, - showEdit = props.showEdit, - showRemove = props.showRemove, - status = props.status, - useReaction = props.useReaction, - emojiAllMap = props.emojiAllMap, - membersMap = props.membersMap, - toggleReaction = props.toggleReaction, - memoizedEmojiListItems = props.memoizedEmojiListItems, - chainTop = props.chainTop, - chainBottom = props.chainBottom; - if (!message) return null; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.push("sendbird-message".concat(isByMe ? '--outgoing' : '--incoming')); - var memoizedMessageText = useMemoizedMessageText({ - message: message.message, - updatedAt: message.updatedAt, - className: 'sendbird-user-message-word' - }); - return React__default.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-message']).join(' ') - }, isByMe ? React__default.createElement(OutgoingUserMessage, { - userId: userId, - message: message, - resendMessage: resendMessage, - disabled: disabled, - showEdit: showEdit, - showRemove: showRemove, - status: status, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedMessageText: memoizedMessageText, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - }) : React__default.createElement(IncomingUserMessage, { - userId: userId, - message: message, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedMessageText: memoizedMessageText, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })); -} -Message.propTypes = { - isByMe: PropTypes.bool, - disabled: PropTypes.bool, - userId: PropTypes.string, - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])).isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - showEdit: PropTypes.func, - status: PropTypes.string, - showRemove: PropTypes.func, - resendMessage: PropTypes.func, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -Message.defaultProps = { - isByMe: false, - disabled: false, - userId: '', - resendMessage: noop$2, - className: '', - showEdit: noop$2, - showRemove: noop$2, - status: '', - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$2, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - }, - chainTop: false, - chainBottom: false -}; - -function OutgoingUserMessage(_ref) { - var userId = _ref.userId, - message = _ref.message, - showEdit = _ref.showEdit, - disabled = _ref.disabled, - showRemove = _ref.showRemove, - status = _ref.status, - resendMessage = _ref.resendMessage, - useReaction = _ref.useReaction, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedMessageText = _ref.memoizedMessageText, - memoizedEmojiListItems = _ref.memoizedEmojiListItems, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom; - var MemoizedMessageText = memoizedMessageText; - var MemoizedEmojiListItems = memoizedEmojiListItems; // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED - - var messageRef = React.useRef(null); - var parentRefReactions = React.useRef(null); - var parentRefMenus = React.useRef(null); - var parentContainRef = React.useRef(null); - var isMessageSent = getIsSentFromStatus$1(status); - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = React.useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React__default.createElement("div", { - className: "sendbird-user-message--outgoing", - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING, - paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING - } - }, React__default.createElement("div", { - className: "sendbird-user-message--inner" - }, React__default.createElement("div", { - className: "sendbird-user-message__left-padding" - }, React__default.createElement("div", { - className: "sendbird-user-message__more", - ref: parentContainRef - }, React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - ref: parentRefMenus, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: parentRefMenus // for catching location(x, y) of MenuItems - , - parentContainRef: parentContainRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - openLeft: true - }, isMessageSent && React__default.createElement(MenuItem, { - className: "sendbird-user-message--copy", - onClick: function onClick() { - copyToClipboard(message.message); - closeDropdown(); - } - }, "Copy"), isMessageSent && React__default.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showEdit(true); - closeDropdown(); - } - }, "Edit"), message && message.isResendable && message.isResendable() && React__default.createElement(MenuItem, { - onClick: function onClick() { - resendMessage(message); - closeDropdown(); - } - }, "Resend"), React__default.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - }), isMessageSent && useReaction && emojiAllMap.size > 0 && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__add-reaction", - ref: parentRefReactions, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: parentRefReactions, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React__default.createElement("div", { - className: "sendbird-user-message__status" - }, React__default.createElement(MessageStatus, { - message: message, - status: status // onDelete={() => { showRemove(true); }} - // onResend={() => resendMessage(message)} - // duplicated and should replace to more - - }))), React__default.createElement("div", { - className: "sendbird-user-message__text-balloon" - }, React__default.createElement("div", { - className: "sendbird-user-message__text-balloon__inner" - }, React__default.createElement("div", { - className: "sendbird-user-message__text-balloon__inner__text-place" - }, React__default.createElement(Label, { - className: "sendbird-user-message__text-balloon__inner__text-place__text", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, React__default.createElement(MemoizedMessageText, null))), useReaction && message.reactions && message.reactions.length > 0 && React__default.createElement(EmojiReactions, { - className: "sendbird-user-message__text-balloon__inner__emoji-reactions", - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }))))); -} - -function IncomingUserMessage(_ref2) { - var userId = _ref2.userId, - message = _ref2.message, - useReaction = _ref2.useReaction, - emojiAllMap = _ref2.emojiAllMap, - membersMap = _ref2.membersMap, - toggleReaction = _ref2.toggleReaction, - memoizedMessageText = _ref2.memoizedMessageText, - memoizedEmojiListItems = _ref2.memoizedEmojiListItems, - chainTop = _ref2.chainTop, - chainBottom = _ref2.chainBottom; - var MemoizedMessageText = memoizedMessageText; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var messageRef = React.useRef(null); - var parentRefReactions = React.useRef(null); - var parentRefMenus = React.useRef(null); - var parentContainRef = React.useRef(null); - var avatarRef = React.useRef(null); - - var _React$useContext = React__default.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - var _useState5 = React.useState(false), - _useState6 = _slicedToArray(_useState5, 2), - mousehover = _useState6[0], - setMousehover = _useState6[1]; - - var _useState7 = React.useState(false), - _useState8 = _slicedToArray(_useState7, 2), - moreActive = _useState8[0], - setMoreActive = _useState8[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React__default.createElement("div", { - ref: messageRef, - className: "sendbird-user-message--incoming", - style: { - paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING, - paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING - } - }, React__default.createElement("div", { - className: "sendbird-user-message--inner" - }, React__default.createElement("div", { - className: "sendbird-user-message--body" - }, !chainBottom && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(Avatar$1, { - ref: avatarRef, - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "sendbird-user-message__avatar", - src: getSenderProfileUrl$1(message), - width: "28px", - height: "28px" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React__default.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - }), !chainTop && React__default.createElement(Label, { - className: "sendbird-user-message__sender-name", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getSenderName$1(message)), React__default.createElement("div", { - className: "sendbird-user-message__text-balloon" - }, React__default.createElement("div", { - className: "sendbird-user-message__text-balloon__inner" - }, React__default.createElement("div", { - className: "sendbird-user-message__text-balloon__inner__text-place" - }, React__default.createElement(Label, { - className: "sendbird-user-message__text-balloon__inner__text-place__text", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, React__default.createElement(MemoizedMessageText, null))), showEmojiReactions && React__default.createElement(EmojiReactions, { - className: "sendbird-user-message__text-balloon__inner__emoji-reactions", - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - })))), React__default.createElement("div", { - className: "sendbird-user-message__right-padding" - }, React__default.createElement("div", { - className: "sendbird-user-message__more", - ref: parentContainRef - }, showReactionAddButton && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: parentRefReactions, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MemoizedEmojiListItems, { - parentRef: parentRefReactions, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - message: message, - spaceFromTrigger: { - y: 2 - } - }); - } - }), React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: parentRefMenus, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: parentRefMenus, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown - }, React__default.createElement(MenuItem, { - className: "sendbird-user-message--copy", - onClick: function onClick() { - copyToClipboard(message.message); - closeDropdown(); - } - }, "Copy")); - } - })), !chainBottom && !(mousehover || moreActive) && React__default.createElement(Label, { - className: "sendbird-user-message__sent-at", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt$2(message))))); -} - -IncomingUserMessage.propTypes = { - userId: PropTypes.string.isRequired, - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedMessageText: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -IncomingUserMessage.defaultProps = { - message: {}, - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$2, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; -OutgoingUserMessage.propTypes = { - userId: PropTypes.string.isRequired, - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - showEdit: PropTypes.func, - showRemove: PropTypes.func, - disabled: PropTypes.bool, - resendMessage: PropTypes.func, - status: PropTypes.string.isRequired, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedMessageText: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingUserMessage.defaultProps = { - message: {}, - resendMessage: noop$2, - showEdit: noop$2, - showRemove: noop$2, - disabled: false, - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$2, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -function AdminMessage(_ref) { - var className = _ref.className, - message = _ref.message; - - if (!message.messageType || message.messageType !== 'admin') { - // change to use message.isAdminMessage() - return null; - } - - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-admin-message']).join(' ') - }, React__default.createElement(Label, { - className: "sendbird-admin-message__text", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, message.message)); -} -AdminMessage.propTypes = { - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) -}; -AdminMessage.defaultProps = { - message: {}, - className: '' -}; - -var getMessageCreatedAt$3 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var getIsSentFromStatus$2 = function getIsSentFromStatus(status) { - return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; -}; - -var noop$3 = function noop() {}; - -var OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message'; -var INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message'; -var GROUPING_PADDING$1 = '1px'; -var NORMAL_PADDING$1 = '8px'; -function ThumbnailMessage(_ref) { - var _ref$message = _ref.message, - message = _ref$message === void 0 ? {} : _ref$message, - userId = _ref.userId, - disabled = _ref.disabled, - isByMe = _ref.isByMe, - onClick = _ref.onClick, - showRemove = _ref.showRemove, - status = _ref.status, - resendMessage = _ref.resendMessage, - useReaction = _ref.useReaction, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom; - return isByMe ? React__default.createElement(OutgoingThumbnailMessage, { - userId: userId, - status: status, - message: message, - onClick: onClick, - disabled: disabled, - chainTop: chainTop, - showRemove: showRemove, - membersMap: membersMap, - chainBottom: chainBottom, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - resendMessage: resendMessage, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }) : React__default.createElement(IncomingThumbnailMessage, { - userId: userId, - status: status, - message: message, - onClick: onClick, - chainTop: chainTop, - membersMap: membersMap, - chainBottom: chainBottom, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }); -} -function OutgoingThumbnailMessage(_ref2) { - var _ref2$message = _ref2.message, - message = _ref2$message === void 0 ? {} : _ref2$message, - userId = _ref2.userId, - disabled = _ref2.disabled, - onClick = _ref2.onClick, - showRemove = _ref2.showRemove, - status = _ref2.status, - resendMessage = _ref2.resendMessage, - useReaction = _ref2.useReaction, - emojiAllMap = _ref2.emojiAllMap, - membersMap = _ref2.membersMap, - toggleReaction = _ref2.toggleReaction, - memoizedEmojiListItems = _ref2.memoizedEmojiListItems, - chainTop = _ref2.chainTop, - chainBottom = _ref2.chainBottom; - var type = message.type, - url = message.url, - localUrl = message.localUrl; - var messageRef = React.useRef(null); - var parentContainRef = React.useRef(null); - var menuRef = React.useRef(null); - var reactionAddRef = React.useRef(null); - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = React.useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var isMessageSent = getIsSentFromStatus$2(status); - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React__default.createElement("div", { - className: OUTGOING_THUMBNAIL_MESSAGE, - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPING_PADDING$1 : NORMAL_PADDING$1, - paddingBottom: chainBottom ? GROUPING_PADDING$1 : NORMAL_PADDING$1 - } - }, React__default.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "--inner") - }, React__default.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "__left-padding") - }, React__default.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-left-padding__more"), - ref: parentContainRef - }, React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: menuRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - color: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: menuRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - openLeft: true - }, message && message.isResendable && message.isResendable() && React__default.createElement(MenuItem, { - onClick: function onClick() { - resendMessage(message); - closeDropdown(); - } - }, "Resend"), React__default.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - }), isMessageSent && showReactionAddButton && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: reactionAddRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - color: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: reactionAddRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React__default.createElement(MessageStatus, { - message: message, - status: status, - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-left-padding__status") - })), React__default.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "__body") - }, React__default.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap") - }, React__default.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap--inner"), - onClick: isMessageSent ? function () { - return onClick(true); - } : function () {}, - onKeyDown: isMessageSent ? function () { - return onClick(true); - } : function () {}, - tabIndex: 0, - role: "button" - }, isVideo(type) && React__default.createElement(React__default.Fragment, null, React__default.createElement("video", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__video") - }, React__default.createElement("source", { - src: url || localUrl, - type: type - })), React__default.createElement(Icon, { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__video-icon"), - width: "56px", - height: "56px", - type: IconTypes.PLAY - })), isImage(type) && React__default.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__img"), - style: { - backgroundImage: "url(".concat(url || localUrl, ")"), - height: '280px', - width: '404px', - backgroundSize: 'cover', - backgroundRepeat: 'no-repeat', - backgroundPosition: 'center' - } - }), unSupported(type) && React__default.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__other") - }, "Unknown type"), React__default.createElement("div", { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap__overlay") - })), useReaction && message.reactions && message.reactions.length > 0 && React__default.createElement(EmojiReactions, { - className: "".concat(OUTGOING_THUMBNAIL_MESSAGE, "-body__wrap__emoji-reactions"), - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }))))); -} -function IncomingThumbnailMessage(_ref3) { - var _ref3$message = _ref3.message, - message = _ref3$message === void 0 ? {} : _ref3$message, - userId = _ref3.userId, - onClick = _ref3.onClick, - status = _ref3.status, - useReaction = _ref3.useReaction, - emojiAllMap = _ref3.emojiAllMap, - membersMap = _ref3.membersMap, - toggleReaction = _ref3.toggleReaction, - memoizedEmojiListItems = _ref3.memoizedEmojiListItems, - chainTop = _ref3.chainTop, - chainBottom = _ref3.chainBottom; - var type = message.type, - url = message.url, - localUrl = message.localUrl; - - var _React$useContext = React__default.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - var messageRef = React.useRef(null); - var parentContainRef = React.useRef(null); - var reactionAddRef = React.useRef(null); - var avatarRef = React.useRef(null); - - var _useState5 = React.useState(false), - _useState6 = _slicedToArray(_useState5, 2), - mousehover = _useState6[0], - setMousehover = _useState6[1]; - - var _useState7 = React.useState(false), - _useState8 = _slicedToArray(_useState7, 2), - moreActive = _useState8[0], - setMoreActive = _useState8[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var isMessageSent = getIsSentFromStatus$2(status); - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React__default.createElement("div", { - className: INCOMING_THUMBNAIL_MESSAGE, - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPING_PADDING$1 : NORMAL_PADDING$1, - paddingBottom: chainBottom ? GROUPING_PADDING$1 : NORMAL_PADDING$1 - } - }, !chainTop && React__default.createElement(Label, { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__sender-name"), - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getSenderName(message) || ''), React__default.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "--inner") - }, React__default.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__body") - }, React__default.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap") - }, !chainBottom && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(Avatar$1, { - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__avatar"), - src: getSenderProfileUrl(message), - width: "28px", - height: "28px" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React__default.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - }), React__default.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap--inner"), - role: "button", - tabIndex: 0, - onClick: isMessageSent ? function () { - return onClick(true); - } : function () {}, - onKeyDown: isMessageSent ? function () { - return onClick(true); - } : function () {} - }, isVideo(type) && React__default.createElement(React__default.Fragment, null, React__default.createElement("video", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__video") - }, React__default.createElement("source", { - src: url || localUrl, - type: type - })), React__default.createElement(Icon, { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__video-icon"), - width: "56px", - height: "56px", - type: IconTypes.PLAY - })), isImage(type) && React__default.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__img"), - style: { - backgroundImage: "url(".concat(url || localUrl, ")"), - height: '280px', - width: '404px', - backgroundSize: 'cover', - backgroundRepeat: 'no-repeat', - backgroundPosition: 'center' - } - }), unSupported(type) && React__default.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__other") - }, "Unknown type"), React__default.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "-body__wrap-overlay") - })), useReaction && message.reactions && message.reactions.length > 0 && React__default.createElement(EmojiReactions, { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__wrap__emoji-reactions"), - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }))), React__default.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__right-padding") - }, !chainBottom && !(mousehover || moreActive) && React__default.createElement(Label, { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__sent-at"), - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt$3(message)), React__default.createElement("div", { - className: "".concat(INCOMING_THUMBNAIL_MESSAGE, "__more"), - ref: parentContainRef - }, showReactionAddButton && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: reactionAddRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - color: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: reactionAddRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - }))))); -} -ThumbnailMessage.propTypes = { - message: PropTypes.shape({ - type: PropTypes.string, - url: PropTypes.string, - localUrl: PropTypes.string - }).isRequired, - userId: PropTypes.string, - resendMessage: PropTypes.func, - status: PropTypes.string, - isByMe: PropTypes.bool, - disabled: PropTypes.bool, - onClick: PropTypes.func, - showRemove: PropTypes.func, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -ThumbnailMessage.defaultProps = { - isByMe: false, - disabled: false, - resendMessage: noop$3, - onClick: noop$3, - showRemove: noop$3, - status: '', - userId: '', - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$3, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - }, - chainTop: false, - chainBottom: false -}; -OutgoingThumbnailMessage.propTypes = { - message: PropTypes.shape({ - type: PropTypes.string, - url: PropTypes.string, - localUrl: PropTypes.string - }).isRequired, - userId: PropTypes.string.isRequired, - disabled: PropTypes.bool.isRequired, - resendMessage: PropTypes.func.isRequired, - status: PropTypes.string, - onClick: PropTypes.func.isRequired, - showRemove: PropTypes.func.isRequired, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - toggleReaction: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingThumbnailMessage.defaultProps = { - status: '' -}; -IncomingThumbnailMessage.propTypes = { - message: PropTypes.shape({ - type: PropTypes.string, - url: PropTypes.string, - localUrl: PropTypes.string - }).isRequired, - userId: PropTypes.string.isRequired, - onClick: PropTypes.func.isRequired, - status: PropTypes.string, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - toggleReaction: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -IncomingThumbnailMessage.defaultProps = { - status: '' -}; - -var MAX_TRUNCATE_LENGTH = 40; -var GROUPAING_PADDING = '1px'; -var NORMAL_PADDING$2 = '8px'; - -var noop$4 = function noop() {}; - -function checkFileType(fileUrl) { - var result = null; - var imageFile = /(\.gif|\.jpg|\.jpeg|\.txt|\.pdf)$/i; - var audioFile = /(\.mp3)$/i; - - if (imageFile.test(fileUrl)) { - result = IconTypes.FILE_DOCUMENT; - } else if (audioFile.test(fileUrl)) { - result = IconTypes.FILE_AUDIO; - } - - return result; -} - -function OutgoingFileMessage(_ref) { - var message = _ref.message, - userId = _ref.userId, - status = _ref.status, - showRemove = _ref.showRemove, - disabled = _ref.disabled, - resendMessage = _ref.resendMessage, - useReaction = _ref.useReaction, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom; - var url = message.url; - - var openFileUrl = function openFileUrl() { - window.open(url); - }; - - var messageRef = React.useRef(null); - var parentContainRef = React.useRef(null); - var menuRef = React.useRef(null); - var reactionAddButtonRef = React.useRef(null); - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = React.useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var isMessageSent = getIsSentFromStatus(status); - var showEmojiReactions = isMessageSent && useReaction && message.reactions && message.reactions.length > 0; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React__default.createElement("div", { - className: "sendbird-file-message__outgoing", - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING$2, - paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING$2 - } - }, React__default.createElement("div", { - className: "sendbird-file-message--inner" - }, React__default.createElement("div", { - className: "sendbird-file-message__left-padding" - }, React__default.createElement("div", { - className: "sendbird-file-message__more", - ref: parentContainRef - }, React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: menuRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: menuRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - openLeft: true - }, message && message.isResendable && message.isResendable() && React__default.createElement(MenuItem, { - onClick: function onClick() { - resendMessage(message); - closeDropdown(); - } - }, "Resend"), React__default.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - }), showReactionAddButton && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: reactionAddButtonRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: reactionAddButtonRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React__default.createElement("div", { - className: "sendbird-file-message__status" - }, React__default.createElement(MessageStatus, { - message: message, - status: status - }))), React__default.createElement("div", { - className: "sendbird-file-message__tooltip" - }, React__default.createElement("div", { - className: "sendbird-file-message__tooltip__inner" - }, checkFileType(url) ? React__default.createElement(Icon, { - className: "sendbird-file-message__tooltip__icon", - width: "28px", - height: "28px", - type: checkFileType(url) - }) : null, React__default.createElement(TextButton, { - className: "sendbird-file-message__tooltip__text", - onClick: openFileUrl - }, React__default.createElement(Label, { - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, truncate(message.url, MAX_TRUNCATE_LENGTH)))), showEmojiReactions && React__default.createElement(EmojiReactions, { - className: "sendbird-file-message__tooltip__emoji-reactions", - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - })))); -} -function IncomingFileMessage(_ref2) { - var message = _ref2.message, - userId = _ref2.userId, - useReaction = _ref2.useReaction, - emojiAllMap = _ref2.emojiAllMap, - membersMap = _ref2.membersMap, - toggleReaction = _ref2.toggleReaction, - memoizedEmojiListItems = _ref2.memoizedEmojiListItems, - chainTop = _ref2.chainTop, - chainBottom = _ref2.chainBottom; - - var openFileUrl = function openFileUrl() { - window.open(message.url); - }; - - var messageRef = React.useRef(null); - - var _React$useContext = React__default.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - var parentContainRef = React.useRef(null); - var avatarRef = React.useRef(null); - var reactionAddButtonRef = React.useRef(null); - - var _useState5 = React.useState(false), - _useState6 = _slicedToArray(_useState5, 2), - mousehover = _useState6[0], - setMousehover = _useState6[1]; - - var _useState7 = React.useState(false), - _useState8 = _slicedToArray(_useState7, 2), - moreActive = _useState8[0], - setMoreActive = _useState8[1]; - - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - var MemoizedEmojiListItems = memoizedEmojiListItems; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React__default.createElement("div", { - className: "sendbird-file-message__incoming", - ref: messageRef, - style: { - paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING$2, - paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING$2 - } - }, React__default.createElement("div", { - className: "sendbird-file-message--inner" - }, React__default.createElement("div", { - className: "sendbird-file-message__body" - }, !chainBottom && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(Avatar$1, { - ref: avatarRef, - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "sendbird-file-message__avatar", - src: getSenderProfileUrl(message), - width: "28px", - height: "28px" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React__default.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - }), !chainTop && React__default.createElement(Label, { - className: "sendbird-file-message__sender-name", - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getSenderName(message)), React__default.createElement("div", { - className: "sendbird-file-message__tooltip" - }, React__default.createElement("div", { - className: "sendbird-file-message__tooltip__inner" - }, checkFileType(message.url) ? React__default.createElement(Icon, { - className: "sendbird-file-message__tooltip__icon", - width: "28px", - height: "28px", - type: checkFileType(message.url) - }) : null, React__default.createElement(TextButton, { - className: "sendbird-file-message__tooltip__text", - onClick: openFileUrl - }, React__default.createElement(Label, { - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, truncate(message.url, MAX_TRUNCATE_LENGTH)))), useReaction && message.reactions && message.reactions.length > 0 && React__default.createElement(EmojiReactions, { - className: "sendbird-file-message__tooltip__emoji-reactions", - userId: userId, - message: message, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }))), React__default.createElement("div", { - className: "sendbird-file-message__right-padding" - }, React__default.createElement("div", { - className: "sendbird-file-message__more", - ref: parentContainRef - }, showReactionAddButton && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: reactionAddButtonRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: reactionAddButtonRef, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React__default.createElement(Label, { - className: "sendbird-file-message__sent-at", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt(message))))); -} -OutgoingFileMessage.propTypes = { - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - userId: PropTypes.string, - status: PropTypes.string, - showRemove: PropTypes.func, - resendMessage: PropTypes.func, - useReaction: PropTypes.bool.isRequired, - disabled: PropTypes.bool, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingFileMessage.defaultProps = { - status: '', - showRemove: noop$4, - resendMessage: noop$4, - message: {}, - userId: '', - disabled: false, - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$4, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; -IncomingFileMessage.propTypes = { - message: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.array, PropTypes.object])), - userId: PropTypes.string, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -IncomingFileMessage.defaultProps = { - message: {}, - userId: '', - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$4, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -var MessageSwitch = function MessageSwitch(_ref3) { - var message = _ref3.message, - userId = _ref3.userId, - disabled = _ref3.disabled, - isByMe = _ref3.isByMe, - showRemove = _ref3.showRemove, - status = _ref3.status, - resendMessage = _ref3.resendMessage, - useReaction = _ref3.useReaction, - emojiAllMap = _ref3.emojiAllMap, - membersMap = _ref3.membersMap, - toggleReaction = _ref3.toggleReaction, - memoizedEmojiListItems = _ref3.memoizedEmojiListItems, - chainTop = _ref3.chainTop, - chainBottom = _ref3.chainBottom; - return React__default.createElement("div", { - className: "sendbird-file-message".concat(isByMe ? '--outgoing' : '--incoming') - }, isByMe ? React__default.createElement(OutgoingFileMessage, { - message: message, - userId: userId, - disabled: disabled, - showRemove: showRemove, - status: status, - resendMessage: resendMessage, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - }) : React__default.createElement(IncomingFileMessage, { - userId: userId, - message: message, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })); -}; - -MessageSwitch.propTypes = { - message: PropTypes.shape({}), - userId: PropTypes.string, - isByMe: PropTypes.bool, - disabled: PropTypes.bool, - showRemove: PropTypes.func, - resendMessage: PropTypes.func, - status: PropTypes.string.isRequired, - useReaction: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -MessageSwitch.defaultProps = { - message: {}, - isByMe: false, - disabled: false, - showRemove: noop$4, - resendMessage: noop$4, - userId: '', - emojiAllMap: new Map(), - membersMap: new Map(), - toggleReaction: noop$4, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - }, - chainTop: false, - chainBottom: false -}; - -function DateSeparator(_ref) { - var className = _ref.className, - children = _ref.children, - separatorColor = _ref.separatorColor; - var injectingClassName = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - className: [].concat(_toConsumableArray(injectingClassName), ['sendbird-separator']).join(' ') - }, React__default.createElement("div", { - className: ["".concat(changeColorToClassName$2(separatorColor), "--background-color"), 'sendbird-separator__left'].join(' ') - }), React__default.createElement("div", { - className: "sendbird-separator__text" - }, children), React__default.createElement("div", { - className: ["".concat(changeColorToClassName$2(separatorColor), "--background-color"), 'sendbird-separator__right'].join(' ') - })); -} -DateSeparator.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.element]), - separatorColor: PropTypes.string -}; -DateSeparator.defaultProps = { - className: '', - children: React__default.createElement(Label, { - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, "Date Separator"), - separatorColor: Colors$2.ONBACKGROUND_4 -}; - -// import IconAttach from '../../svgs/icon-attach.svg'; - -var LINE_HEIGHT = 76; - -var noop$5 = function noop() {}; - -var KeyCode = { - SHIFT: 16, - ENTER: 13 -}; - -var handleUploadFile = function handleUploadFile(callback) { - return function (event) { - if (event.target.files && event.target.files[0]) { - callback(event.target.files[0]); - } // eslint-disable-next-line no-param-reassign - - - event.target.value = ''; - }; -}; - -var MessageInput = React__default.forwardRef(function (props, ref) { - var isEdit = props.isEdit, - disabled = props.disabled, - value = props.value, - name = props.name, - placeholder = props.placeholder, - maxLength = props.maxLength, - onFileUpload = props.onFileUpload, - onSendMessage = props.onSendMessage, - onCancelEdit = props.onCancelEdit, - onStartTyping = props.onStartTyping; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var fileInputRef = React.useRef(null); - - var _useState = React.useState(value), - _useState2 = _slicedToArray(_useState, 2), - inputValue = _useState2[0], - setInputValue = _useState2[1]; - - var _useState3 = React.useState(false), - _useState4 = _slicedToArray(_useState3, 2), - isShiftPressed = _useState4[0], - setIsShiftPressed = _useState4[1]; - - var setHeight = function setHeight() { - var elem = ref.current; - var MAX_HEIGHT = window.document.body.offsetHeight * 0.6; - - if (elem.scrollHeight >= LINE_HEIGHT) { - if (MAX_HEIGHT < elem.scrollHeight) { - elem.style.height = 'auto'; - elem.style.height = "".concat(MAX_HEIGHT, "px"); - } else { - elem.style.height = 'auto'; - elem.style.height = "".concat(elem.scrollHeight, "px"); - } - } else { - elem.style.height = ''; - } - }; // after setHeight called twice, the textarea goes to the initialized - - - React.useEffect(function () { - setHeight(); - return setHeight; - }, [inputValue]); - - var sendMessage = function sendMessage() { - if (inputValue) { - var trimmedInputValue = inputValue.trim(); - - if (isEdit) { - onSendMessage(name, trimmedInputValue, function () { - onCancelEdit(); - }); - } else { - onSendMessage(trimmedInputValue); - setInputValue(''); - } - } - }; - - return React__default.createElement("form", { - className: "\n ".concat(isEdit ? 'sendbird-message-input__edit' : '', "\n ").concat(disabled ? 'sendbird-message-input-form__disabled' : '', "\n ") - }, React__default.createElement("div", { - className: "\n sendbird-message-input\n ".concat(disabled ? 'sendbird-message-input__disabled' : '', "\n ") - }, React__default.createElement("textarea", { - disabled: disabled, - ref: ref, - name: name, - value: inputValue, - className: "sendbird-message-input--textarea", - maxLength: maxLength, - onChange: function onChange(e) { - setInputValue(e.target.value); - onStartTyping(); - }, - onKeyDown: function onKeyDown(e) { - if (e.keyCode === KeyCode.SHIFT) { - setIsShiftPressed(true); - } - - if (!isShiftPressed && e.keyCode === KeyCode.ENTER) { - e.preventDefault(); - sendMessage(); - } - }, - onKeyUp: function onKeyUp(e) { - if (e.keyCode === KeyCode.SHIFT) { - setIsShiftPressed(false); - } - } - }), !inputValue && React__default.createElement(Label, { - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_3, - className: "sendbird-message-input--placeholder" - }, placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER), !isEdit && !inputValue && React__default.createElement(IconButton, { - className: "sendbird-message-input--attach", - height: "32px", - width: "32px", - onClick: function onClick() { - // todo: clear previous input - fileInputRef.current.click(); - } - }, React__default.createElement(Icon, { - type: IconTypes.ATTACH, - width: "20px", - height: "20px" - }), React__default.createElement("input", { - type: "file", - ref: fileInputRef, - onChange: handleUploadFile(onFileUpload), - className: "sendbird-message-input--attach-input" - })), !isEdit && inputValue && React__default.createElement(IconButton, { - className: "sendbird-message-input--send", - height: "32px", - width: "32px", - onClick: sendMessage - }, React__default.createElement(Icon, { - type: IconTypes.SEND, - fillColor: IconColors.PRIMARY, - width: "20px", - height: "20px" - }))), isEdit && React__default.createElement("div", { - className: "sendbird-message-input--edit-action" - }, React__default.createElement(Button, { - className: "sendbird-message-input--edit-action__cancel", - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: onCancelEdit - }, stringSet.BUTTON__CANCEL), React__default.createElement(Button, { - className: "sendbird-message-input--edit-action__save", - type: Type$1.PRIMARY, - size: Size.SMALL, - onClick: function onClick() { - if (inputValue) { - var trimmedInputValue = inputValue.trim(); - onSendMessage(name, trimmedInputValue, function () { - onCancelEdit(); - }); - } - } - }, stringSet.BUTTON__SAVE))); -}); -MessageInput.propTypes = { - placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), - isEdit: PropTypes.bool, - name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - value: PropTypes.string, - disabled: PropTypes.bool, - maxLength: PropTypes.number, - onFileUpload: PropTypes.func, - onSendMessage: PropTypes.func, - onStartTyping: PropTypes.func, - onCancelEdit: PropTypes.func -}; -MessageInput.defaultProps = { - value: '', - onSendMessage: noop$5, - name: 'sendbird-message-input', - isEdit: false, - disabled: false, - placeholder: '', - maxLength: 5000, - onFileUpload: noop$5, - onCancelEdit: noop$5, - onStartTyping: noop$5 -}; - -var FileViewerComponent = function FileViewerComponent(_ref) { - var profileUrl = _ref.profileUrl, - nickname = _ref.nickname, - type = _ref.type, - url = _ref.url, - name = _ref.name, - onClose = _ref.onClose, - onDelete = _ref.onDelete, - isByMe = _ref.isByMe; - return React__default.createElement("div", { - className: "sendbird-fileviewer" - }, React__default.createElement("div", { - className: "sendbird-fileviewer__header" - }, React__default.createElement("div", { - className: "sendbird-fileviewer__header-left" - }, React__default.createElement("div", { - className: "sendbird-fileviewer__header-avatar" - }, React__default.createElement(Avatar$1, { - height: "32px", - width: "32px", - src: profileUrl - })), React__default.createElement(Label, { - className: "sendbird-fileviewer__header-filename", - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, name), React__default.createElement(Label, { - className: "sendbird-fileviewer__header-sendername", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, nickname)), React__default.createElement("div", { - className: "sendbird-fileviewer__header-right" - }, !unSupported(type) && React__default.createElement("div", { - className: "sendbird-fileviewer__header-actions" - }, React__default.createElement("a", { - href: url, - rel: "noopener noreferrer", - target: "_blank", - className: "sendbird-fileviewer__header-download" - }, React__default.createElement(Icon, { - type: IconTypes.DOWNLOAD, - height: "24px", - width: "24px" - })), onDelete && isByMe && React__default.createElement("div", { - className: "sendbird-fileviewer__header-delete" - }, React__default.createElement(Icon, { - type: IconTypes.DELETE, - height: "24px", - width: "24px", - onClick: onDelete - }))), React__default.createElement("div", { - className: "sendbird-fileviewer__header-close" - }, React__default.createElement(Icon, { - type: IconTypes.CLOSE, - height: "24px", - width: "24px", - onClick: onClose - })))), React__default.createElement("div", { - className: "sendbird-fileviewer__content" - }, isVideo(type) && // eslint-disable-next-line jsx-a11y/media-has-caption - React__default.createElement("video", { - controls: true, - className: "sendbird-fileviewer__video" - }, React__default.createElement("source", { - src: url, - type: type - })), isImage(type) && React__default.createElement("img", { - src: url, - alt: name, - className: "sendbird-fileviewer__img" - }), unSupported(type) && React__default.createElement("div", { - className: "sendbird-fileviewer__unsupported" - }, React__default.createElement(Label, { - type: LabelTypography.H_1, - color: LabelColors.ONBACKGROUND_1 - }, "Unsupoprted message")))); -}; -FileViewerComponent.propTypes = { - profileUrl: PropTypes.string.isRequired, - nickname: PropTypes.string.isRequired, - type: PropTypes.string.isRequired, - url: PropTypes.string.isRequired, - name: PropTypes.string.isRequired, - onClose: PropTypes.func.isRequired, - onDelete: PropTypes.func.isRequired, - isByMe: PropTypes.bool -}; -FileViewerComponent.defaultProps = { - isByMe: true -}; -function FileViewer(props) { - var onClose = props.onClose, - message = props.message, - onDelete = props.onDelete, - isByMe = props.isByMe; - var sender = message.sender, - type = message.type, - url = message.url, - _message$name = message.name, - name = _message$name === void 0 ? '' : _message$name; - var profileUrl = sender.profileUrl, - _sender$nickname = sender.nickname, - nickname = _sender$nickname === void 0 ? '' : _sender$nickname; - return reactDom.createPortal(React__default.createElement(FileViewerComponent, { - profileUrl: profileUrl, - nickname: nickname, - type: type, - url: url, - name: name, - onClose: onClose, - onDelete: onDelete, - isByMe: isByMe - }), document.getElementById(MODAL_ROOT)); -} -FileViewer.propTypes = { - onClose: PropTypes.func.isRequired, - message: PropTypes.shape({ - sender: PropTypes.shape({ - profileUrl: PropTypes.string, - nickname: PropTypes.string - }), - type: PropTypes.string, - url: PropTypes.string, - name: PropTypes.string - }).isRequired, - onDelete: PropTypes.func.isRequired, - isByMe: PropTypes.bool -}; -FileViewer.defaultProps = { - isByMe: true -}; - -var RemoveMessage = function RemoveMessage(props) { - var onCloseModal = props.onCloseModal, - onDeleteMessage = props.onDeleteMessage; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React__default.createElement(Modal, { - onCancel: onCloseModal, - onSubmit: onDeleteMessage, - submitText: "Delete", - titleText: stringSet.MODAL__DELETE_MESSAGE__TITLE - }); -}; - -RemoveMessage.propTypes = { - onCloseModal: PropTypes.func.isRequired, - onDeleteMessage: PropTypes.func.isRequired -}; - -var getMessageCreatedAt$4 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; - -var CLASS_NAME$4 = 'sendbird-unknown-message'; -var GROUPING_PADDING$2 = '1px'; -var NORMAL_PADDING$3 = '8px'; -function UnknownMessage(_ref) { - var message = _ref.message, - isByMe = _ref.isByMe, - status = _ref.status, - className = _ref.className, - showRemove = _ref.showRemove, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom; - var injectingClassName = Array.isArray(className) ? className : [className]; - injectingClassName.unshift(CLASS_NAME$4); - injectingClassName.push("".concat(CLASS_NAME$4).concat(isByMe ? '--outgoing' : '--incoming')); - return React__default.createElement("div", { - className: injectingClassName.join(' ') - }, isByMe ? React__default.createElement(OutgoingUnknownMessage, { - status: status, - message: message, - chainTop: chainTop, - showRemove: showRemove, - chainBottom: chainBottom - }) : React__default.createElement(IncomingUnknownMessage, { - message: message, - chainTop: chainTop, - chainBottom: chainBottom - })); -} -UnknownMessage.propTypes = { - message: PropTypes.shape({}).isRequired, - isByMe: PropTypes.bool, - status: PropTypes.string, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - showRemove: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -UnknownMessage.defaultProps = { - isByMe: false, - status: '', - className: '', - showRemove: function showRemove() {}, - chainTop: false, - chainBottom: false -}; - -function OutgoingUnknownMessage(_ref2) { - var message = _ref2.message, - status = _ref2.status, - showRemove = _ref2.showRemove, - chainTop = _ref2.chainTop, - chainBottom = _ref2.chainBottom; - var className = 'sendbird-outgoing-unknown-message'; - var messageRef = React.useRef(null); - var parentContainRef = React.useRef(null); - var menuRef = React.useRef(null); - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = React.useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React__default.createElement("div", { - ref: messageRef, - className: className, - style: { - paddingTop: chainTop ? GROUPING_PADDING$2 : NORMAL_PADDING$3, - paddingBottom: chainBottom ? GROUPING_PADDING$2 : NORMAL_PADDING$3 - } - }, React__default.createElement("div", { - className: "".concat(className, "--inner") - }, React__default.createElement("div", { - className: "".concat(className, "--left-padding") - }, React__default.createElement("div", { - className: "".concat(className, "__more"), - ref: parentContainRef - }, React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "".concat(className, "__more__menu"), - ref: menuRef, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: menuRef // for catching location(x, y) of MenuItems - , - parentContainRef: parentContainRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - openLeft: true - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - })), !chainBottom && !(mousehover || moreActive) && React__default.createElement("div", { - className: "".concat(className, "__message-status") - }, React__default.createElement(MessageStatus, { - message: message, - status: status - }))), React__default.createElement("div", { - className: "".concat(className, "__body") - }, React__default.createElement("div", { - className: "".concat(className, "__body__text-balloon") - }, React__default.createElement(Label, { - className: "".concat(className, "__body__text-balloon__header"), - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React__default.createElement(Label, { - className: "".concat(className, "__body__text-balloon__description"), - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, stringSet.UNKNOWN__CANNOT_READ_MESSAGE))))); -} - -function IncomingUnknownMessage(_ref3) { - var message = _ref3.message, - chainTop = _ref3.chainTop, - chainBottom = _ref3.chainBottom; - var className = 'sendbird-incoming-unknown-message'; - var sender = message.sender; - var avatarRef = React.useRef(null); - - var _useContext2 = React.useContext(LocalizationContext), - stringSet = _useContext2.stringSet; - - var _React$useContext = React__default.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - return React__default.createElement("div", { - className: className, - style: { - paddingTop: chainTop ? GROUPING_PADDING$2 : NORMAL_PADDING$3, - paddingBottom: chainBottom ? GROUPING_PADDING$2 : NORMAL_PADDING$3 - } - }, React__default.createElement("div", { - className: "".concat(className, "--inner") - }, React__default.createElement("div", { - className: "".concat(className, "__left") - }, !chainBottom && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(Avatar$1, { - ref: avatarRef, - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "".concat(className, "__left__sender-profile-image"), - src: sender.profileUrl, - width: "28px", - height: "28px", - alt: "sender-profile-image" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React__default.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - })), React__default.createElement("div", { - className: "".concat(className, "__body") - }, !chainTop && React__default.createElement(Label, { - className: "".concat(className, "__body__sender-name"), - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, sender.nickname || stringSet.NO_NAME), React__default.createElement("div", { - className: "".concat(className, "__body__text-balloon") - }, React__default.createElement(Label, { - className: "".concat(className, "__body__text-balloon__header"), - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE), React__default.createElement(Label, { - className: "".concat(className, "__body__text-balloon__description"), - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, stringSet.UNKNOWN__CANNOT_READ_MESSAGE))), React__default.createElement("div", { - className: "".concat(className, "--right-padding") - }, !chainBottom && React__default.createElement(Label, { - className: "".concat(className, "__sent-at"), - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt$4(message))))); -} - -OutgoingUnknownMessage.propTypes = { - message: PropTypes.shape({}).isRequired, - status: PropTypes.string.isRequired, - showRemove: PropTypes.func, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingUnknownMessage.defaultProps = { - showRemove: function showRemove() {} -}; -IncomingUnknownMessage.propTypes = { - message: PropTypes.shape({ - sender: PropTypes.shape({ - nickname: PropTypes.string, - profileUrl: PropTypes.string - }) - }).isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; - -var URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; -var OG_MESSAGE = 'sendbird-og-message'; -var OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message'; -var INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message'; - -var createUrlTester = function createUrlTester(regexp) { - return function (text) { - return regexp.test(text); - }; -}; -var getIsSentFromStatus$3 = function getIsSentFromStatus(status) { - return status === MessageStatusType.SENT || status === MessageStatusType.DELIVERED || status === MessageStatusType.READ; -}; -var copyToClipboard$1 = function copyToClipboard(text) { - try { - if (window.clipboardData && window.clipboardData.setData) { - // Internet Explorer-specific code path - // to prevent textarea being shown while dialog is visible. - return window.clipboardData.setData('Text', text); - } - - if (document.queryCommandSupported && document.queryCommandSupported('copy')) { - var textarea = document.createElement('textarea'); - textarea.textContent = text; - textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. - - document.body.appendChild(textarea); - textarea.select(); - - try { - return document.execCommand('copy'); // Security exception may be thrown by some browsers. - } catch (ex) { - return false; - } finally { - document.body.removeChild(textarea); - } - } - - return false; - } catch (err) { - return err; - } -}; -var getSenderProfileUrl$2 = function getSenderProfileUrl(message) { - return message.sender && message.sender.profileUrl; -}; -var getSenderName$2 = function getSenderName(message) { - return message.sender && (message.sender.friendName || message.sender.nickname || message.sender.userId); -}; -var getMessageCreatedAt$5 = function getMessageCreatedAt(message) { - return format(message.createdAt, 'p'); -}; -var checkOGIsEnalbed = function checkOGIsEnalbed(message) { - var ogMetaData = message.ogMetaData; - - if (!ogMetaData) { - return false; - } - - var url = ogMetaData.url; - - if (!url) { - return false; - } - - return true; -}; - -var LINK_LABEL = 'sendbird-link-label'; -var http = /https?:\/\//; -function LinkLabel(_ref) { - var className = _ref.className, - src = _ref.src, - type = _ref.type, - color = _ref.color, - children = _ref.children; - var injecingClassName = Array.isArray(className) ? className : [className]; - var url = http.test(src) ? src : "http://".concat(src); - return React__default.createElement("a", { - className: "".concat(LINK_LABEL, " ").concat(injecingClassName.join(' ')), - href: url - }, React__default.createElement(Label, { - type: type, - color: color, - className: "".concat(LINK_LABEL, "__label") - }, children)); -} -LinkLabel.propTypes = { - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.arrayOf(PropTypes.string), PropTypes.arrayOf(PropTypes.element)]).isRequired, - src: PropTypes.string.isRequired, - type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired, - color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired -}; -LinkLabel.defaultProps = { - className: '' -}; - -var WORD_TYPOGRAPHY$1 = LabelTypography.BODY_1; -var WORD_COLOR = LabelColors.ONBACKGROUND_1; -var EDITED_COLOR$1 = LabelColors.ONBACKGROUND_2; -var isUrl = createUrlTester(URL_REG); -function useMemoizedMessageText$1(_ref) { - var message = _ref.message, - updatedAt = _ref.updatedAt, - className = _ref.className; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React.useMemo(function () { - return function () { - var splitMessage = message.split(' '); - var matchedMessage = splitMessage.map(function (word) { - return isUrl(word) ? React__default.createElement(LinkLabel, { - key: uuidv4(), - className: className, - src: word, - type: WORD_TYPOGRAPHY$1, - color: WORD_COLOR - }, word) : React__default.createElement(Label, { - key: uuidv4(), - className: className, - type: WORD_TYPOGRAPHY$1, - color: WORD_COLOR - }, word); - }); - - if (updatedAt > 0) { - matchedMessage.push(React__default.createElement(Label, { - key: uuidv4(), - className: className, - type: WORD_TYPOGRAPHY$1, - color: EDITED_COLOR$1 - }, stringSet.MESSAGE_EDITED)); - } // return (<>{matchedMessage}); - - - return matchedMessage; - }; - }, [message, updatedAt, className]); -} - -var GROUPING_PADDING$3 = '1px'; -var NORAML_PADDING = '8px'; - -var OGMessageSwitch = function OGMessageSwitch(_ref) { - var isByMe = _ref.isByMe, - userId = _ref.userId, - status = _ref.status, - message = _ref.message, - disabled = _ref.disabled, - showEdit = _ref.showEdit, - chainTop = _ref.chainTop, - className = _ref.className, - membersMap = _ref.membersMap, - showRemove = _ref.showRemove, - useReaction = _ref.useReaction, - emojiAllMap = _ref.emojiAllMap, - chainBottom = _ref.chainBottom, - resendMessage = _ref.resendMessage, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems; - var ogMetaData = message.ogMetaData; - var injectingClassName = Array.isArray(className) ? className : [className]; - var memoizedMessageText = useMemoizedMessageText$1({ - message: message.message, - updatedAt: message.updatedAt, - className: 'sendbird-og-message-word' - }); - - var openLink = function openLink() { - if (checkOGIsEnalbed(message)) { - var url = ogMetaData.url; - window.open(url); - } - }; - - return React__default.createElement("div", { - className: "".concat(OG_MESSAGE, " ").concat(OG_MESSAGE).concat(isByMe ? '--outgoing' : '--incoming', " ").concat(injectingClassName.join(' ')) - }, isByMe ? React__default.createElement(OutgoingOGMessage, { - status: status, - userId: userId, - message: message, - disabled: disabled, - openLink: openLink, - showEdit: showEdit, - chainTop: chainTop, - showRemove: showRemove, - membersMap: membersMap, - chainBottom: chainBottom, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - resendMessage: resendMessage, - toggleReaction: toggleReaction, - memoizedMessageText: memoizedMessageText, - memoizedEmojiListItems: memoizedEmojiListItems - }) : React__default.createElement(IncomingOGMessage, { - userId: userId, - message: message, - openLink: openLink, - chainTop: chainTop, - membersMap: membersMap, - chainBottom: chainBottom, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - toggleReaction: toggleReaction, - memoizedMessageText: memoizedMessageText, - memoizedEmojiListItems: memoizedEmojiListItems - })); -}; - -function OutgoingOGMessage(props) { - var status = props.status, - userId = props.userId, - message = props.message, - disabled = props.disabled, - openLink = props.openLink, - showEdit = props.showEdit, - chainTop = props.chainTop, - showRemove = props.showRemove, - membersMap = props.membersMap, - chainBottom = props.chainBottom, - emojiAllMap = props.emojiAllMap, - useReaction = props.useReaction, - resendMessage = props.resendMessage, - toggleReaction = props.toggleReaction, - memoizedMessageText = props.memoizedMessageText, - memoizedEmojiListItems = props.memoizedEmojiListItems; - var ogMetaData = message.ogMetaData; - var defaultImage = ogMetaData.defaultImage; - var MemoizedMessageText = memoizedMessageText; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var messageRef = React.useRef(null); - var parentRefReactions = React.useRef(null); - var parentRefMenus = React.useRef(null); - var parentContainRef = React.useRef(null); - var isMessageSent = getIsSentFromStatus$3(status); - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - mousehover = _useState2[0], - setMousehover = _useState2[1]; - - var _useState3 = React.useState(false), - _useState4 = _slicedToArray(_useState3, 2), - moreActive = _useState4[0], - setMoreActive = _useState4[1]; - - var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React__default.createElement("div", { - ref: messageRef, - className: OUTGOING_OG_MESSAGE, - style: { - paddingTop: chainTop ? GROUPING_PADDING$3 : NORAML_PADDING, - paddingBottom: chainBottom ? GROUPING_PADDING$3 : NORAML_PADDING - } - }, React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "--inner") - }, React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "--left-padding") - }, React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__more"), - ref: parentContainRef - }, React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "".concat(OUTGOING_OG_MESSAGE, "__more__menu"), - ref: parentRefMenus, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: parentRefMenus // for catching location(x, y) of MenuItems - , - parentContainRef: parentContainRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - openLeft: true - }, isMessageSent && React__default.createElement(MenuItem, { - className: "".concat(OUTGOING_OG_MESSAGE, "__more__menu__copy"), - onClick: function onClick() { - copyToClipboard$1(message.message); - closeDropdown(); - } - }, "Copy"), isMessageSent && React__default.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showEdit(true); - closeDropdown(); - } - }, "Edit"), message && message.isResendable && message.isResendable() && React__default.createElement(MenuItem, { - onClick: function onClick() { - resendMessage(message); - closeDropdown(); - } - }, "Resend"), React__default.createElement(MenuItem, { - onClick: function onClick() { - if (disabled) { - return; - } - - showRemove(true); - closeDropdown(); - } - }, "Delete")); - } - }), isMessageSent && useReaction && emojiAllMap.size > 0 && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "".concat(OUTGOING_OG_MESSAGE, "__more__add-reaction"), - ref: parentRefReactions, - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MemoizedEmojiListItems, { - message: message, - parentRef: parentRefReactions, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - spaceFromTrigger: { - y: 2 - } - }); - } - })), !chainBottom && !(mousehover || moreActive) && React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__message-status") - }, React__default.createElement(MessageStatus, { - message: message, - status: status - }))), React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "--body") - }, React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__text-balloon") - }, React__default.createElement(MemoizedMessageText, null)), React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail ").concat(checkOGIsEnalbed(message) ? '' : "".concat(OUTGOING_OG_MESSAGE, "__thumbnail--disabled")), - onClick: openLink, - onKeyDown: openLink, - role: "button", - tabIndex: 0 - }, defaultImage && React__default.createElement(ImageRenderer, { - url: defaultImage.url || '', - alt: defaultImage.alt, - className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail__image"), - width: "320px", - height: "180px", - defaultComponent: React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__thumbnail__image__placeholder") - }, React__default.createElement(Icon, { - width: "56px", - height: "56px", - type: IconTypes.NO_THUMBNAIL - })) - })), React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag ").concat(checkOGIsEnalbed(message) ? '' : "".concat(OUTGOING_OG_MESSAGE, "__og-tag--disabled")), - onClick: openLink, - onKeyDown: openLink, - role: "button", - tabIndex: 0 - }, ogMetaData.title && React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__title") - }, React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, ogMetaData.title)), ogMetaData.description && React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__description") - }, React__default.createElement(Label, { - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_1, - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__description__label") - }, ogMetaData.description)), ogMetaData.url && React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__url") - }, React__default.createElement(Label, { - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2, - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__url__label") - }, ogMetaData.url)), showEmojiReactions && React__default.createElement("div", { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__emoji-reactions--wrapper"), - onClick: function onClick(event) { - return event.stopPropagation(); - }, - onKeyDown: function onKeyDown(event) { - return event.stopPropagation(); - }, - role: "button", - tabIndex: 0 - }, React__default.createElement(EmojiReactions, { - className: "".concat(OUTGOING_OG_MESSAGE, "__og-tag__emoji-reactions"), - userId: userId, - message: message, - membersMap: membersMap, - emojiAllMap: emojiAllMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - })))))); -} - -function IncomingOGMessage(props) { - var userId = props.userId, - message = props.message, - openLink = props.openLink, - chainTop = props.chainTop, - membersMap = props.membersMap, - chainBottom = props.chainBottom, - useReaction = props.useReaction, - emojiAllMap = props.emojiAllMap, - toggleReaction = props.toggleReaction, - memoizedMessageText = props.memoizedMessageText, - memoizedEmojiListItems = props.memoizedEmojiListItems; - var ogMetaData = message.ogMetaData; - var defaultImage = ogMetaData.defaultImage; - var MemoizedMessageText = memoizedMessageText; - var MemoizedEmojiListItems = memoizedEmojiListItems; - var messageRef = React.useRef(null); - var avatarRef = React.useRef(null); - var parentRefReactions = React.useRef(null); - var parentRefMenus = React.useRef(null); - var parentContainRef = React.useRef(null); - - var _React$useContext = React__default.useContext(UserProfileContext), - disableUserProfile = _React$useContext.disableUserProfile, - renderUserProfile = _React$useContext.renderUserProfile; - - var _useState5 = React.useState(false), - _useState6 = _slicedToArray(_useState5, 2), - mousehover = _useState6[0], - setMousehover = _useState6[1]; - - var _useState7 = React.useState(false), - _useState8 = _slicedToArray(_useState7, 2), - moreActive = _useState8[0], - setMoreActive = _useState8[1]; - - var showEmojiReactions = useReaction && message.reactions && message.reactions.length > 0; - var showReactionAddButton = useReaction && emojiAllMap && emojiAllMap.size > 0; - - var handleMoreIconClick = function handleMoreIconClick() { - setMoreActive(true); - }; - - var handleMoreIconBlur = function handleMoreIconBlur() { - setMoreActive(false); - }; - - useMouseHover({ - ref: messageRef, - setHover: setMousehover - }); - return React__default.createElement("div", { - ref: messageRef, - className: INCOMING_OG_MESSAGE, - style: { - paddingTop: chainTop ? GROUPING_PADDING$3 : NORAML_PADDING, - paddingBottom: chainBottom ? GROUPING_PADDING$3 : NORAML_PADDING - } - }, React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "--inner") - }, React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "--body") - }, !chainBottom && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(Avatar$1, { - ref: avatarRef, - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - className: "".concat(INCOMING_OG_MESSAGE, "__avatar"), - src: getSenderProfileUrl$2(message), - width: "28px", - height: "28px", - alt: "sender-profile-image" - }); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: message.sender, - close: closeDropdown - }) : React__default.createElement(ConnectedUserProfile, { - user: message.sender, - onSuccess: closeDropdown - })); - } - }), !chainTop && React__default.createElement(Label, { - className: "".concat(INCOMING_OG_MESSAGE, "__sender-name"), - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, getSenderName$2(message)), React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__text-balloon") - }, React__default.createElement(MemoizedMessageText, null)), React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail ").concat(checkOGIsEnalbed(message) ? '' : "".concat(INCOMING_OG_MESSAGE, "__thumbnail--disabled")), - onClick: openLink, - onKeyDown: openLink, - role: "button", - tabIndex: 0 - }, defaultImage && React__default.createElement(ImageRenderer, { - url: defaultImage.url || '', - alt: defaultImage.alt || '', - className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail__image"), - width: "320px", - height: "180px", - defaultComponent: React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__thumbnail__image__placeholder") - }, React__default.createElement(Icon, { - width: "56px", - height: "56px", - type: IconTypes.NO_THUMBNAIL - })) - })), React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag ").concat(checkOGIsEnalbed(message) ? '' : "".concat(INCOMING_OG_MESSAGE, "__og-tag--disabled")), - onClick: openLink, - onKeyDown: openLink, - role: "button", - tabIndex: 0 - }, ogMetaData.title && React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__title") - }, React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, ogMetaData.title)), ogMetaData.description && React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__description") - }, React__default.createElement(Label, { - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_1, - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__description__label") - }, ogMetaData.description)), ogMetaData.url && React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__url") - }, React__default.createElement(Label, { - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2, - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__url__label") - }, ogMetaData.url)), showEmojiReactions && React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__emoji-reactions--wrapper"), - onClick: function onClick(event) { - return event.stopPropagation(); - }, - onKeyDown: function onKeyDown(event) { - return event.stopPropagation(); - }, - role: "button", - tabIndex: 0 - }, React__default.createElement(EmojiReactions, { - className: "".concat(INCOMING_OG_MESSAGE, "__og-tag__emoji-reactions"), - userId: userId, - message: message, - membersMap: membersMap, - emojiAllMap: emojiAllMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - })))), React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "--right-padding") - }, !chainBottom && !(mousehover || moreActive) && React__default.createElement(Label, { - className: "".concat(INCOMING_OG_MESSAGE, "__sent-at"), - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, getMessageCreatedAt$5(message)), React__default.createElement("div", { - className: "".concat(INCOMING_OG_MESSAGE, "__more"), - ref: parentContainRef - }, showReactionAddButton && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: parentRefReactions, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.EMOJI_REACTIONS_ADD, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MemoizedEmojiListItems, { - parentRef: parentRefReactions, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown, - message: message, - spaceFromTrigger: { - y: 2 - } - }); - } - }), React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - ref: parentRefMenus, - width: "32px", - height: "32px", - onClick: function onClick() { - toggleDropdown(); - handleMoreIconClick(); - }, - onBlur: function onBlur() { - handleMoreIconBlur(); - } - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentRef: parentRefMenus, - parentContainRef: parentContainRef, - closeDropdown: closeDropdown - }, React__default.createElement(MenuItem, { - className: "".concat(INCOMING_OG_MESSAGE, "__more__menu__copy"), - onClick: function onClick() { - copyToClipboard$1(message.message); - closeDropdown(); - } - }, "Copy")); - } - }))))); -} - -var noop$6 = function noop() {}; - -OGMessageSwitch.propTypes = { - isByMe: PropTypes.bool.isRequired, - userId: PropTypes.string.isRequired, - message: PropTypes.shape({ - message: PropTypes.string, - sender: PropTypes.shape({}), - ogMetaData: PropTypes.shape({ - title: PropTypes.string, - description: PropTypes.string, - url: PropTypes.string, - defaultImage: PropTypes.shape({ - url: PropTypes.string, - alt: PropTypes.string - }) - }), - reactions: PropTypes.array, - updatedAt: PropTypes.number - }).isRequired, - useReaction: PropTypes.bool.isRequired, - className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - status: PropTypes.string, - disabled: PropTypes.bool, - showEdit: PropTypes.func, - showRemove: PropTypes.func, - resendMessage: PropTypes.func, - toggleReaction: PropTypes.func, - membersMap: PropTypes.instanceOf(Map), - emojiAllMap: PropTypes.instanceOf(Map), - memoizedEmojiListItems: PropTypes.func, - chainTop: PropTypes.bool, - chainBottom: PropTypes.bool -}; -OGMessageSwitch.defaultProps = { - className: '', - status: '', - disabled: false, - showEdit: noop$6, - showRemove: noop$6, - resendMessage: noop$6, - toggleReaction: noop$6, - membersMap: new Map(), - emojiAllMap: new Map(), - memoizedEmojiListItems: noop$6, - chainTop: false, - chainBottom: false -}; -OutgoingOGMessage.propTypes = { - status: PropTypes.string, - userId: PropTypes.string.isRequired, - message: PropTypes.shape({ - message: PropTypes.string, - ogMetaData: PropTypes.shape({ - title: PropTypes.string, - description: PropTypes.string, - url: PropTypes.string, - defaultImage: PropTypes.shape({ - url: PropTypes.string, - alt: PropTypes.string - }) - }), - reactions: PropTypes.array, - updatedAt: PropTypes.number, - isResendable: PropTypes.func, - errorCode: PropTypes.number - }).isRequired, - disabled: PropTypes.bool.isRequired, - openLink: PropTypes.func.isRequired, - showEdit: PropTypes.func.isRequired, - showRemove: PropTypes.func.isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - useReaction: PropTypes.bool.isRequired, - resendMessage: PropTypes.func.isRequired, - toggleReaction: PropTypes.func.isRequired, - memoizedMessageText: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; -OutgoingOGMessage.defaultProps = { - status: '' -}; -IncomingOGMessage.propTypes = { - userId: PropTypes.string.isRequired, - message: PropTypes.shape({ - message: PropTypes.string, - sender: PropTypes.shape({}), - ogMetaData: PropTypes.shape({ - title: PropTypes.string, - description: PropTypes.string, - url: PropTypes.string, - defaultImage: PropTypes.shape({ - url: PropTypes.string, - alt: PropTypes.string - }) - }), - reactions: PropTypes.array, - updatedAt: PropTypes.number - }).isRequired, - openLink: PropTypes.func.isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - useReaction: PropTypes.bool.isRequired, - toggleReaction: PropTypes.func.isRequired, - memoizedMessageText: PropTypes.func.isRequired, - memoizedEmojiListItems: PropTypes.func.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired -}; - -function MessageHoc(_ref) { - var _MessageTypes$ADMIN$M; - - var message = _ref.message, - userId = _ref.userId, - disabled = _ref.disabled, - editDisabled = _ref.editDisabled, - hasSeperator = _ref.hasSeperator, - deleteMessage = _ref.deleteMessage, - updateMessage = _ref.updateMessage, - status = _ref.status, - resendMessage = _ref.resendMessage, - useReaction = _ref.useReaction, - chainTop = _ref.chainTop, - chainBottom = _ref.chainBottom, - emojiAllMap = _ref.emojiAllMap, - membersMap = _ref.membersMap, - toggleReaction = _ref.toggleReaction, - memoizedEmojiListItems = _ref.memoizedEmojiListItems; - var _message$sender = message.sender, - sender = _message$sender === void 0 ? {} : _message$sender; - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - showEdit = _useState2[0], - setShowEdit = _useState2[1]; - - var _useState3 = React.useState(false), - _useState4 = _slicedToArray(_useState3, 2), - showRemove = _useState4[0], - setShowRemove = _useState4[1]; - - var _useState5 = React.useState(false), - _useState6 = _slicedToArray(_useState5, 2), - showFileViewer = _useState6[0], - setShowFileViewer = _useState6[1]; - - var editMessageInputRef = React.useRef(null); - var isByMe = userId === sender.userId || message.requestState === 'pending' || message.requestState === 'failed'; - - if (showEdit) { - return React__default.createElement(MessageInput, { - isEdit: true, - disabled: editDisabled, - ref: editMessageInputRef, - name: message.messageId, - onSendMessage: updateMessage, - onCancelEdit: function onCancelEdit() { - setShowEdit(false); - }, - value: message.message - }); - } - - return React__default.createElement("div", { - className: "sendbird-msg-hoc sendbird-msg--scroll-ref" - }, hasSeperator && React__default.createElement(DateSeparator, null, React__default.createElement(Label, { - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, format(message.createdAt, 'MMMM dd, yyyy'))), (_MessageTypes$ADMIN$M = {}, _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.ADMIN, React__default.createElement(AdminMessage, { - message: message - })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.FILE, React__default.createElement(MessageSwitch, { - message: message, - userId: userId, - disabled: disabled, - isByMe: isByMe, - showRemove: setShowRemove, - resendMessage: resendMessage, - status: status, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.OG, React__default.createElement(OGMessageSwitch, { - message: message, - status: status, - isByMe: isByMe, - userId: userId, - showEdit: setShowEdit, - disabled: disabled, - showRemove: setShowRemove, - resendMessage: resendMessage, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.THUMBNAIL, React__default.createElement(ThumbnailMessage, { - disabled: disabled, - message: message, - userId: userId, - isByMe: isByMe, - showRemove: setShowRemove, - resendMessage: resendMessage, - onClick: setShowFileViewer, - status: status, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })), _defineProperty(_MessageTypes$ADMIN$M, MessageTypes.USER, React__default.createElement(Message, { - message: message, - disabled: disabled, - isByMe: isByMe, - userId: userId, - showEdit: setShowEdit, - showRemove: setShowRemove, - resendMessage: resendMessage, - status: status, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - membersMap: membersMap, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems, - chainTop: chainTop, - chainBottom: chainBottom - })), _MessageTypes$ADMIN$M)[getMessageType(message)], showRemove && React__default.createElement(RemoveMessage, { - onCloseModal: function onCloseModal() { - return setShowRemove(false); - }, - onDeleteMessage: function onDeleteMessage() { - deleteMessage(message); - } - }), showFileViewer && React__default.createElement(FileViewer, { - onClose: function onClose() { - return setShowFileViewer(false); - }, - message: message, - onDelete: function onDelete() { - deleteMessage(message, function () { - setShowFileViewer(false); - }); - }, - isByMe: isByMe - }), !(message.isFileMessage && message.isFileMessage() || message.messageType === 'file') && !(message.isAdminMessage && message.isAdminMessage()) && !(message.isUserMessage && message.isUserMessage() || message.messageType === 'user') && !showFileViewer && React__default.createElement(UnknownMessage, { - message: message, - status: status, - isByMe: isByMe, - showRemove: setShowRemove, - chainTop: chainTop, - chainBottom: chainBottom - })); -} -MessageHoc.propTypes = { - userId: PropTypes.string, - message: PropTypes.shape({ - isFileMessage: PropTypes.func, - isAdminMessage: PropTypes.func, - isUserMessage: PropTypes.func, - isDateSeperator: PropTypes.func, - // should be a number, but there's a bug in SDK shich returns string - messageId: PropTypes.number, - type: PropTypes.string, - createdAt: PropTypes.number, - message: PropTypes.string, - requestState: PropTypes.string, - messageType: PropTypes.string, - sender: PropTypes.shape({ - userId: PropTypes.string - }), - ogMetaData: PropTypes.shape({}) - }), - hasSeperator: PropTypes.bool, - disabled: PropTypes.bool, - editDisabled: PropTypes.bool, - deleteMessage: PropTypes.func.isRequired, - updateMessage: PropTypes.func.isRequired, - resendMessage: PropTypes.func.isRequired, - status: PropTypes.string, - useReaction: PropTypes.bool.isRequired, - chainTop: PropTypes.bool.isRequired, - chainBottom: PropTypes.bool.isRequired, - emojiAllMap: PropTypes.instanceOf(Map).isRequired, - membersMap: PropTypes.instanceOf(Map).isRequired, - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func -}; -MessageHoc.defaultProps = { - userId: '', - editDisabled: false, - message: {}, - hasSeperator: false, - disabled: false, - status: '', - toggleReaction: function toggleReaction() {}, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -var ConversationScroll = -/*#__PURE__*/ -function (_Component) { - _inherits(ConversationScroll, _Component); - - function ConversationScroll() { - var _getPrototypeOf2; - - var _this; - - _classCallCheck(this, ConversationScroll); - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ConversationScroll)).call.apply(_getPrototypeOf2, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this), "onScroll", function (e) { - var _this$props = _this.props, - scrollRef = _this$props.scrollRef, - hasMore = _this$props.hasMore, - messagesDispatcher = _this$props.messagesDispatcher, - onScroll = _this$props.onScroll, - currentGroupChannel = _this$props.currentGroupChannel; - var element = e.target; - var scrollTop = element.scrollTop, - clientHeight = element.clientHeight, - scrollHeight = element.scrollHeight; - - if (scrollTop === 0) { - if (!hasMore) { - return; - } - - var nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref'); - var first = nodes[0]; - onScroll(function (_ref) { - var _ref2 = _slicedToArray(_ref, 1), - messages = _ref2[0]; - - if (messages) { - // https://github.com/scabbiaza/react-scroll-position-on-updating-dom - first.scrollIntoView(); - } - }); - } - - setTimeout(function () { - // mark as read if scroll is at end - if (clientHeight + scrollTop === scrollHeight) { - messagesDispatcher({ - type: MARK_AS_READ - }); - currentGroupChannel.markAsRead(); - } - }, 500); - }); - - return _this; - } - - _createClass(ConversationScroll, [{ - key: "render", - value: function render() { - var _this$props2 = this.props, - userId = _this$props2.userId, - disabled = _this$props2.disabled, - scrollRef = _this$props2.scrollRef, - readStatus = _this$props2.readStatus, - membersMap = _this$props2.membersMap, - initialized = _this$props2.initialized, - allMessages = _this$props2.allMessages, - useReaction = _this$props2.useReaction, - emojiAllMap = _this$props2.emojiAllMap, - editDisabled = _this$props2.editDisabled, - deleteMessage = _this$props2.deleteMessage, - updateMessage = _this$props2.updateMessage, - resendMessage = _this$props2.resendMessage, - renderChatItem = _this$props2.renderChatItem, - emojiContainer = _this$props2.emojiContainer, - toggleReaction = _this$props2.toggleReaction, - useMessageGrouping = _this$props2.useMessageGrouping, - currentGroupChannel = _this$props2.currentGroupChannel, - memoizedEmojiListItems = _this$props2.memoizedEmojiListItems; - return React__default.createElement("div", { - className: "sendbird-conversation__messages" - }, React__default.createElement("div", { - ref: scrollRef, - className: "sendbird-conversation__scroll-container", - onScroll: this.onScroll - }, React__default.createElement("div", { - className: "sendbird-conversation__padding" - }), React__default.createElement("div", { - className: "sendbird-conversation__messages-padding" - }, initialized && allMessages.map(function (m, idx) { - var previousMessage = allMessages[idx - 1]; - var nextMessage = allMessages[idx + 1]; - - var _ref3 = useMessageGrouping ? compareMessagesForGrouping(previousMessage, m, nextMessage) : [false, false], - _ref4 = _slicedToArray(_ref3, 2), - chainTop = _ref4[0], - chainBottom = _ref4[1]; - - var previousMessageCreatedAt = previousMessage && previousMessage.createdAt; - var currentCreatedAt = m.createdAt; // https://stackoverflow.com/a/41855608 - - var hasSeperator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt)); - - if (renderChatItem) { - return React__default.createElement("div", { - key: m.messageId || m.reqId, - className: "sendbird-msg--scroll-ref" - }, renderChatItem({ - message: m, - channel: currentGroupChannel, - onDeleteMessage: deleteMessage, - onUpdateMessage: updateMessage, - onResendMessage: resendMessage, - emojiContainer: emojiContainer - })); - } - - return React__default.createElement(MessageHoc, { - key: m.messageId || m.reqId, - userId: userId, - status: readStatus[m.messageId] || getParsedStatus(m, currentGroupChannel) // show status for pending/failed messages - , - message: m, - disabled: disabled, - membersMap: membersMap, - chainTop: chainTop, - useReaction: useReaction, - emojiAllMap: emojiAllMap, - editDisabled: editDisabled, - hasSeperator: hasSeperator, - chainBottom: chainBottom, - updateMessage: updateMessage, - deleteMessage: deleteMessage, - resendMessage: resendMessage, - toggleReaction: toggleReaction, - memoizedEmojiListItems: memoizedEmojiListItems - }); - })))); - } - }]); - - return ConversationScroll; -}(React.Component); -ConversationScroll.propTypes = { - // https://stackoverflow.com/a/52646941 - scrollRef: PropTypes.shape({ - current: PropTypes.oneOfType([PropTypes.element, PropTypes.shape({})]) - }).isRequired, - hasMore: PropTypes.bool, - messagesDispatcher: PropTypes.func.isRequired, - onScroll: PropTypes.func, - initialized: PropTypes.bool, - editDisabled: PropTypes.bool, - disabled: PropTypes.bool, - userId: PropTypes.string, - allMessages: PropTypes.arrayOf(PropTypes.shape({ - createdAt: PropTypes.number - })).isRequired, - deleteMessage: PropTypes.func.isRequired, - resendMessage: PropTypes.func.isRequired, - updateMessage: PropTypes.func.isRequired, - readStatus: PropTypes.shape({}).isRequired, - currentGroupChannel: PropTypes.shape({ - markAsRead: PropTypes.func, - members: PropTypes.arrayOf(PropTypes.shape({})) - }).isRequired, - renderChatItem: PropTypes.element, - useReaction: PropTypes.bool, - emojiContainer: PropTypes.shape({}), - emojiAllMap: PropTypes.instanceOf(Map), - membersMap: PropTypes.instanceOf(Map), - useMessageGrouping: PropTypes.bool, - toggleReaction: PropTypes.func, - memoizedEmojiListItems: PropTypes.func -}; -ConversationScroll.defaultProps = { - hasMore: false, - editDisabled: false, - disabled: false, - initialized: false, - userId: '', - renderChatItem: null, - onScroll: null, - useReaction: true, - emojiContainer: {}, - emojiAllMap: new Map(), - membersMap: new Map(), - useMessageGrouping: true, - toggleReaction: function toggleReaction() {}, - memoizedEmojiListItems: function memoizedEmojiListItems() { - return ''; - } -}; - -function Notification(_ref) { - var count = _ref.count, - time = _ref.time, - onClick = _ref.onClick; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var timeArray = time.split(' '); - timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON); - return (// eslint-disable-next-line - React__default.createElement("div", { - className: "sendbird-notification", - onClick: onClick - }, React__default.createElement(Label, { - className: "sendbird-notification__text", - color: LabelColors.ONCONTENT_1, - type: LabelTypography.CAPTION_2 - }, "".concat(count, " "), stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE, " ".concat(timeArray.join(' '))), React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.SHEVRON_DOWN, - fillColor: IconColors.CONTENT - })) - ); -} -Notification.propTypes = { - count: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - time: PropTypes.string, - onClick: PropTypes.func.isRequired -}; -Notification.defaultProps = { - count: 0, - time: '' -}; - -var FrozenNotification = function FrozenNotification() { - var stringSet = React.useContext(LocalizationContext).stringSet; - return React__default.createElement("div", { - className: "sendbird-notification sendbird-notification--frozen" - }, React__default.createElement(Label, { - className: "sendbird-notification__text", - type: LabelTypography.CAPTION_2 - }, stringSet.CHANNEL_FROZEN)); -}; - -var TypingIndicatorText = function TypingIndicatorText(_ref) { - var members = _ref.members; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - if (!members || members.length === 0) { - return ''; - } - - if (members && members.length === 1) { - return "".concat(members[0].nickname, " ").concat(stringSet.TYPING_INDICATOR__IS_TYPING); - } - - if (members && members.length === 2) { - return "".concat(members[0].nickname, " ").concat(stringSet.TYPING_INDICATOR__AND, " ").concat(members[1].nickname, " ").concat(stringSet.TYPING_INDICATOR__ARE_TYPING); - } - - return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING; -}; - -function TypingIndicator(_ref2) { - var channelUrl = _ref2.channelUrl, - sb = _ref2.sb, - logger = _ref2.logger; - - var _useState = React.useState(uuidv4()), - _useState2 = _slicedToArray(_useState, 2), - handlerId = _useState2[0], - setHandlerId = _useState2[1]; - - var _useState3 = React.useState([]), - _useState4 = _slicedToArray(_useState3, 2), - typingMembers = _useState4[0], - setTypingMembers = _useState4[1]; - - React.useEffect(function () { - if (sb && sb.ChannelHandler) { - sb.removeChannelHandler(handlerId); - var newHandlerId = uuidv4(); - var handler = new sb.ChannelHandler(); // there is a possible warning in here - setState called after unmount - - handler.onTypingStatusUpdated = function (groupChannel) { - logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel); - var members = groupChannel.getTypingMembers(); - - if (groupChannel.url === channelUrl) { - setTypingMembers(members); - } - }; - - sb.addChannelHandler(newHandlerId, handler); - setHandlerId(newHandlerId); - } - - return function () { - setTypingMembers([]); - - if (sb && sb.removeChannelHandler) { - sb.removeChannelHandler(handlerId); - } - }; - }, [channelUrl]); - return React__default.createElement(Label, { - type: LabelTypography.CAPTION_2, - color: LabelColors.ONBACKGROUND_2 - }, React__default.createElement(TypingIndicatorText, { - members: typingMembers - })); -} - -TypingIndicator.propTypes = { - channelUrl: PropTypes.string.isRequired, - sb: PropTypes.shape({ - ChannelHandler: PropTypes.func, - removeChannelHandler: PropTypes.func, - addChannelHandler: PropTypes.func - }).isRequired, - logger: PropTypes.shape({ - info: PropTypes.func - }).isRequired -}; - -// Logic required to handle message input rendering - -var MessageInputWrapper = function MessageInputWrapper(_a, ref) { - var channel = _a.channel, - user = _a.user, - onSendMessage = _a.onSendMessage, - onFileUpload = _a.onFileUpload, - renderMessageInput = _a.renderMessageInput, - isOnline = _a.isOnline, - initialized = _a.initialized; - var stringSet = React.useContext(LocalizationContext).stringSet; - var disabled = !initialized || isDisabledBecauseFrozen(channel) || isDisabledBecauseMuted(channel) || !isOnline; - var isOperator$1 = isOperator(channel); - var isBroadcast = channel.isBroadcast; // custom message - - if (renderMessageInput) { - return renderMessageInput({ - channel: channel, - user: user, - disabled: disabled - }); - } // broadcast channel + not operator - - - if (isBroadcast && !isOperator$1) { - return null; - } // other conditions - - - return React__default.createElement(MessageInput, { - placeholder: isDisabledBecauseFrozen(channel) && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED || isDisabledBecauseMuted(channel) && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED, - ref: ref, - disabled: disabled, - onStartTyping: function onStartTyping() { - channel.startTyping(); - }, - onSendMessage: onSendMessage, - onFileUpload: onFileUpload - }); -}; - -var MessageInputWrapper$1 = React__default.forwardRef(MessageInputWrapper); - -function ConnectionStatus() { - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React__default.createElement("div", { - className: "sendbird-conversation__connection-status" - }, React__default.createElement(Label, { - type: LabelTypography.BODY_2, - color: LabelColors.ONBACKGROUND_2 - }, stringSet.TRYING_TO_CONNECT), React__default.createElement(Icon, { - type: IconTypes.DISCONNECTED, - fillColor: IconColors.SENT, - height: "14px", - width: "14px" - })); -} - -var prettyDate = function prettyDate(date) { - return formatDistanceToNowStrict(date, { - addSuffix: true - }); -}; -var getOthersLastSeenAt = function getOthersLastSeenAt(channel) { - if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) { - return ''; - } - - var lastSeenList = _toConsumableArray(Object.values(channel.getReadStatus())); - - var lastSeenAt = lastSeenList.length > 0 ? lastSeenList[0].last_seen_at : 0; - - if (lastSeenAt === 0) { - return ''; - } - - return prettyDate(lastSeenAt); -}; -var getChannelTitle$1 = function getChannelTitle() { - var channel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var currentUserId = arguments.length > 1 ? arguments[1] : undefined; - var stringSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LabelStringSet; - - if (!channel || !channel.name && !channel.members) { - return stringSet.NO_TITLE; - } - - if (channel.name && channel.name !== 'Group Channel') { - return channel.name; - } - - if (channel.members.length === 1) { - return stringSet.NO_MEMBERS; - } - - return channel.members.filter(function (_ref) { - var userId = _ref.userId; - return userId !== currentUserId; - }).map(function (_ref2) { - var nickname = _ref2.nickname; - return nickname || stringSet.NO_NAME; - }).join(', '); -}; - -function AutoRefresh(_ref) { - var repeatFunc = _ref.repeatFunc; - - var _useState = React.useState(repeatFunc()), - _useState2 = _slicedToArray(_useState, 2), - label = _useState2[0], - setLabel = _useState2[1]; - - React.useEffect(function () { - var interval = setInterval(function () { - if (label !== repeatFunc()) { - setLabel(repeatFunc()); - } - }, 10000); - return function () { - clearInterval(interval); - }; - }, []); - return React__default.createElement("div", { - className: "sendbird-repeat-text" - }, label); -} -AutoRefresh.propTypes = { - repeatFunc: PropTypes.func.isRequired -}; - -function ChatHeader(props) { - var currentGroupChannel = props.currentGroupChannel, - currentUser = props.currentUser, - title = props.title, - subTitle = props.subTitle, - isActive = props.isActive, - isMuted = props.isMuted, - onActionClick = props.onActionClick, - theme = props.theme; - var userId = currentUser.userId; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React__default.createElement("div", { - className: "sendbird-chat-header" - }, React__default.createElement("div", { - className: "sendbird-chat-header__left" - }, React__default.createElement(ChannelAvatar, { - theme: theme, - channel: currentGroupChannel, - userId: userId, - height: 32, - width: 32 - }), React__default.createElement(Label, { - className: "sendbird-chat-header__title", - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, title || getChannelTitle$1(currentGroupChannel, userId, stringSet)), typeof isActive === 'string' && isActive === 'true' || typeof isActive === 'boolean' && isActive ? React__default.createElement("div", { - className: "sendbird-chat-header__active" - }) : null, React__default.createElement(Label, { - className: "sendbird-chat-header__subtitle", - type: LabelTypography.BODY_1, - color: LabelColors.ONBACKGROUND_2 - }, subTitle || React__default.createElement(AutoRefresh, { - repeatFunc: function repeatFunc() { - return getOthersLastSeenAt(currentGroupChannel); - } - }))), React__default.createElement("div", { - className: "sendbird-chat-header__right" - }, typeof isMuted === 'string' && isMuted === 'true' || typeof isMuted === 'boolean' && isMuted ? React__default.createElement(Icon, { - className: "sendbird-chat-header__mute", - type: IconTypes.MUTE, - width: "24px", - height: "24px" - }) : null, React__default.createElement(IconButton, { - className: "sendbird-chat-header__info", - width: "32px", - height: "32px", - onClick: onActionClick - }, React__default.createElement(Icon, { - type: IconTypes.INFO, - fillColor: IconColors.PRIMARY, - width: "24px", - height: "24px" - })))); -} -ChatHeader.propTypes = { - currentGroupChannel: PropTypes.shape({ - members: PropTypes.arrayOf(PropTypes.shape({})), - coverUrl: PropTypes.string - }), - theme: PropTypes.string, - currentUser: PropTypes.shape({ - userId: PropTypes.string - }), - title: PropTypes.string, - subTitle: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), - isActive: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), - isMuted: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), - onActionClick: PropTypes.func -}; -ChatHeader.defaultProps = { - currentGroupChannel: {}, - title: '', - theme: 'light', - subTitle: '', - isActive: false, - isMuted: false, - currentUser: {}, - onActionClick: function onActionClick() {} -}; - -var noop$7 = function noop() {}; - -var ConversationPanel = function ConversationPanel(props) { - var channelUrl = props.channelUrl, - _props$stores = props.stores, - sdkStore = _props$stores.sdkStore, - userStore = _props$stores.userStore, - _props$config = props.config, - userId = _props$config.userId, - logger = _props$config.logger, - pubSub = _props$config.pubSub, - isOnline = _props$config.isOnline, - theme = _props$config.theme, - reconnect = props.dispatchers.reconnect, - _props$queries = props.queries, - queries = _props$queries === void 0 ? {} : _props$queries, - useReaction = props.useReaction, - renderChatItem = props.renderChatItem, - renderChatHeader = props.renderChatHeader, - renderMessageInput = props.renderMessageInput, - useMessageGrouping = props.useMessageGrouping, - onChatHeaderActionClick = props.onChatHeaderActionClick, - onBeforeSendUserMessage = props.onBeforeSendUserMessage, - onBeforeSendFileMessage = props.onBeforeSendFileMessage, - onBeforeUpdateUserMessage = props.onBeforeUpdateUserMessage; - var sdk = sdkStore.sdk; - var config = props.config; - var sdkError = sdkStore.error; - var sdkInit = sdkStore.initialized; - var user = userStore.user; - - if (queries.messageListQuery) { - // eslint-disable-next-line no-console - console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead'); - } - - var userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery; - - var _useReducer = React.useReducer(reducer$3, messagesInitialState), - _useReducer2 = _slicedToArray(_useReducer, 2), - messagesStore = _useReducer2[0], - messagesDispatcher = _useReducer2[1]; - - var scrollRef = React.useRef(null); - var allMessages = messagesStore.allMessages, - loading = messagesStore.loading, - hasMore = messagesStore.hasMore, - initialized = messagesStore.initialized, - unreadCount = messagesStore.unreadCount, - disableUserProfile = messagesStore.disableUserProfile, - renderUserProfile = messagesStore.renderUserProfile, - unreadSince = messagesStore.unreadSince, - invalidChannel = messagesStore.invalidChannel, - _messagesStore$curren = messagesStore.currentGroupChannel, - currentGroupChannel = _messagesStore$curren === void 0 ? {} : _messagesStore$curren, - lastMessageTimeStamp = messagesStore.lastMessageTimeStamp, - emojiContainer = messagesStore.emojiContainer, - readStatus = messagesStore.readStatus; - var isFrozen = currentGroupChannel.isFrozen, - isBroadcast = currentGroupChannel.isBroadcast; - var _sdk$appInfo = sdk.appInfo, - appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo; - var usingReaction = appInfo.isUsingReaction && !isBroadcast || useReaction || false; - var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; - var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; - var emojiAllMap = React.useMemo(function () { - return usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map(); - }, [emojiContainer]); - var emojiAllList = React.useMemo(function () { - return usingReaction ? getAllEmojisFromEmojiContainer(emojiContainer) : []; - }, [emojiContainer]); - var nicknamesMap = React.useMemo(function () { - return usingReaction ? getNicknamesMapFromMembers(currentGroupChannel.members) : new Map(); - }, [currentGroupChannel.members]); - var onScrollCallback = useScrollCallback({ - currentGroupChannel: currentGroupChannel, - lastMessageTimeStamp: lastMessageTimeStamp, - userFilledMessageListQuery: userFilledMessageListQuery - }, { - hasMore: hasMore, - logger: logger, - messagesDispatcher: messagesDispatcher, - sdk: sdk - }); - var toggleReaction = useToggleReactionCallback({ - currentGroupChannel: currentGroupChannel - }, { - logger: logger - }); - var memoizedEmojiListItems = useMemoizedEmojiListItems({ - emojiContainer: emojiContainer, - toggleReaction: toggleReaction - }, { - useReaction: usingReaction, - logger: logger, - userId: userId, - emojiAllList: emojiAllList - }); // to create message-datasource - - useSetChannel({ - channelUrl: channelUrl, - sdkInit: sdkInit - }, { - messagesDispatcher: messagesDispatcher, - sdk: sdk, - logger: logger - }); // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher - - useHandleChannelEvents({ - currentGroupChannel: currentGroupChannel, - sdkInit: sdkInit, - userId: userId - }, { - messagesDispatcher: messagesDispatcher, - sdk: sdk, - logger: logger - }); - useInitialMessagesFetch({ - currentGroupChannel: currentGroupChannel, - userFilledMessageListQuery: userFilledMessageListQuery - }, { - sdk: sdk, - logger: logger, - messagesDispatcher: messagesDispatcher - }); // handles API calls from withSendbird - - React.useEffect(function () { - var subScriber = pubSubHandler$1(channelUrl, pubSub, messagesDispatcher); - return function () { - pubSubHandleRemover$1(subScriber); - }; - }, [channelUrl, sdkInit]); // to create initial read status - - useSetReadStatus({ - allMessages: allMessages, - currentGroupChannel: currentGroupChannel - }, { - messagesDispatcher: messagesDispatcher, - sdk: sdk, - logger: logger - }); // handling connection breaks - - useHandleReconnect({ - isOnline: isOnline - }, { - logger: logger, - sdk: sdk, - currentGroupChannel: currentGroupChannel, - messagesDispatcher: messagesDispatcher, - userFilledMessageListQuery: userFilledMessageListQuery - }); - var deleteMessage = useDeleteMessageCallback({ - currentGroupChannel: currentGroupChannel, - messagesDispatcher: messagesDispatcher - }, { - logger: logger - }); - var updateMessage = useUpdateMessageCallback({ - currentGroupChannel: currentGroupChannel, - messagesDispatcher: messagesDispatcher, - onBeforeUpdateUserMessage: onBeforeUpdateUserMessage - }, { - logger: logger, - sdk: sdk, - pubSub: pubSub - }); - var resendMessage = useResendMessageCallback({ - currentGroupChannel: currentGroupChannel, - messagesDispatcher: messagesDispatcher - }, { - logger: logger - }); - - var _useSendMessageCallba = useSendMessageCallback({ - currentGroupChannel: currentGroupChannel, - onBeforeSendUserMessage: onBeforeSendUserMessage - }, { - sdk: sdk, - logger: logger, - pubSub: pubSub, - messagesDispatcher: messagesDispatcher - }), - _useSendMessageCallba2 = _slicedToArray(_useSendMessageCallba, 2), - messageInputRef = _useSendMessageCallba2[0], - onSendMessage = _useSendMessageCallba2[1]; - - var _useSendFileMessageCa = useSendFileMessageCallback({ - currentGroupChannel: currentGroupChannel, - onBeforeSendFileMessage: onBeforeSendFileMessage - }, { - sdk: sdk, - logger: logger, - pubSub: pubSub, - messagesDispatcher: messagesDispatcher - }), - _useSendFileMessageCa2 = _slicedToArray(_useSendFileMessageCa, 1), - onSendFileMessage = _useSendFileMessageCa2[0]; - - if (sdkError) { - return React__default.createElement("div", { - className: "sendbird-conversation" - }, React__default.createElement(PlaceHolder, { - type: PlaceHolderTypes.WRONG, - retryToConnect: function retryToConnect() { - logger.info('Channel: reconnecting'); - reconnect(); - } - })); - } - - if (!channelUrl) { - return React__default.createElement("div", { - className: "sendbird-conversation" - }, React__default.createElement(PlaceHolder, { - type: PlaceHolderTypes.NO_CHANNELS - })); - } - - if (loading) { - return React__default.createElement("div", { - className: "sendbird-conversation" - }, React__default.createElement(PlaceHolder, { - type: PlaceHolderTypes.LOADING - })); - } - - if (invalidChannel) { - return React__default.createElement("div", { - className: "sendbird-conversation" - }, React__default.createElement(PlaceHolder, { - type: PlaceHolderTypes.WRONG - })); - } - - return React__default.createElement(UserProfileProvider, { - className: "sendbird-conversation", - disableUserProfile: userDefinedDisableUserProfile, - renderUserProfile: userDefinedRenderProfile - }, renderChatHeader ? renderChatHeader({ - channel: currentGroupChannel, - user: user - }) : React__default.createElement(ChatHeader, { - theme: theme, - currentGroupChannel: currentGroupChannel, - currentUser: user, - onActionClick: onChatHeaderActionClick, - subTitle: currentGroupChannel.members && currentGroupChannel.members.length !== 2, - isActive: false, - isMuted: false - }), isFrozen && React__default.createElement(FrozenNotification, null), unreadCount > 0 && React__default.createElement(Notification, { - count: unreadCount, - onClick: function onClick() { - scrollIntoLast('.sendbird-msg--scroll-ref'); // there is no scroll - - if (scrollRef.current.scrollTop === 0) { - currentGroupChannel.markAsRead(); - messagesDispatcher({ - type: MARK_AS_READ - }); - } - }, - time: unreadSince - }), React__default.createElement(ConversationScroll, { - swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), - userId: userId, - hasMore: hasMore, - disabled: !isOnline, - onScroll: onScrollCallback, - scrollRef: scrollRef, - readStatus: readStatus, - initialized: initialized, - useReaction: usingReaction, - allMessages: allMessages, - emojiAllMap: emojiAllMap, - membersMap: nicknamesMap, - editDisabled: isDisabledBecauseFrozen(currentGroupChannel), - deleteMessage: deleteMessage, - updateMessage: updateMessage, - resendMessage: resendMessage, - toggleReaction: toggleReaction, - emojiContainer: emojiContainer, - renderChatItem: renderChatItem, - useMessageGrouping: useMessageGrouping, - messagesDispatcher: messagesDispatcher, - currentGroupChannel: currentGroupChannel, - memoizedEmojiListItems: memoizedEmojiListItems - }), React__default.createElement("div", { - className: "sendbird-conversation__footer" - }, React__default.createElement(MessageInputWrapper$1, { - channel: currentGroupChannel, - user: user, - ref: messageInputRef, - onSendMessage: onSendMessage, - onFileUpload: onSendFileMessage, - renderMessageInput: renderMessageInput, - isOnline: isOnline, - initialized: initialized - }), React__default.createElement("div", { - className: "sendbird-conversation__typing-indicator" - }, React__default.createElement(TypingIndicator, { - channelUrl: channelUrl, - sb: sdk, - logger: logger - })), !isOnline && React__default.createElement(ConnectionStatus, { - sdkInit: sdkInit, - sb: sdk, - logger: logger - }))); -}; -ConversationPanel.propTypes = { - channelUrl: PropTypes.string, - stores: PropTypes.shape({ - sdkStore: PropTypes.shape({ - initialized: PropTypes.bool, - sdk: PropTypes.shape({ - getErrorFirstCallback: PropTypes.func, - removeChannelHandler: PropTypes.func, - GroupChannel: PropTypes.any, - ChannelHandler: PropTypes.any, - addChannelHandler: PropTypes.func, - UserMessageParams: PropTypes.any, - FileMessageParams: PropTypes.any, - getAllEmoji: PropTypes.func, - appInfo: PropTypes.shape({}) - }), - error: PropTypes.bool - }), - userStore: PropTypes.shape({ - user: PropTypes.shape({}) - }) - }).isRequired, - dispatchers: PropTypes.shape({ - reconnect: PropTypes.func - }).isRequired, - config: PropTypes.shape({ - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - userId: PropTypes.string.isRequired, - isOnline: PropTypes.bool.isRequired, - theme: PropTypes.string, - logger: PropTypes.shape({ - info: PropTypes.func, - error: PropTypes.func, - warning: PropTypes.func - }), - pubSub: PropTypes.shape({ - subscribe: PropTypes.func, - publish: PropTypes.func - }) - }).isRequired, - queries: PropTypes.shape({ - messageListParams: PropTypes.shape({ - includeMetaArray: PropTypes.bool, - includeParentMessageText: PropTypes.bool, - includeReaction: PropTypes.bool, - includeReplies: PropTypes.bool, - includeThreadInfo: PropTypes.bool, - limit: PropTypes.number, - reverse: PropTypes.bool, - senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string) - }), - // deprecate in v1.3 - messageListQuery: PropTypes.shape({ - includeMetaArray: PropTypes.bool, - includeParentMessageText: PropTypes.bool, - includeReaction: PropTypes.bool, - includeReplies: PropTypes.bool, - includeThreadInfo: PropTypes.bool, - limit: PropTypes.number, - reverse: PropTypes.bool, - senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string) - }) - }), - onBeforeSendUserMessage: PropTypes.func, - // onBeforeSendUserMessage(text) - onBeforeSendFileMessage: PropTypes.func, - // onBeforeSendFileMessage(File) - onBeforeUpdateUserMessage: PropTypes.func, - renderChatItem: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - renderMessageInput: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - renderChatHeader: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - onChatHeaderActionClick: PropTypes.func, - useReaction: PropTypes.bool, - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - useMessageGrouping: PropTypes.bool -}; -ConversationPanel.defaultProps = { - channelUrl: null, - queries: {}, - onBeforeSendUserMessage: null, - onBeforeSendFileMessage: null, - onBeforeUpdateUserMessage: null, - renderChatItem: null, - renderMessageInput: null, - renderChatHeader: null, - useReaction: true, - disableUserProfile: false, - renderUserProfile: null, - useMessageGrouping: true, - onChatHeaderActionClick: noop$7 -}; -var getEmojiCategoriesFromEmojiContainer$1 = getEmojiCategoriesFromEmojiContainer, - getAllEmojisFromEmojiContainer$1 = getAllEmojisFromEmojiContainer, - getEmojisFromEmojiContainer$1 = getEmojisFromEmojiContainer; -var Conversation = withSendbirdContext(ConversationPanel); - -var EditDetails = function EditDetails(props) { - var _onSubmit = props.onSubmit, - onCancel = props.onCancel, - channel = props.channel, - userId = props.userId, - theme = props.theme; - var inputRef = React.useRef(null); - var formRef = React.useRef(null); - var hiddenInputRef = React.useRef(null); - - var _useState = React.useState(null), - _useState2 = _slicedToArray(_useState, 2), - currentImg = _useState2[0], - setCurrentImg = _useState2[1]; - - var _useState3 = React.useState(null), - _useState4 = _slicedToArray(_useState3, 2), - newFile = _useState4[0], - setNewFile = _useState4[1]; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var title = channel.name; - return React__default.createElement(Modal, { - titleText: stringSet.MODAL__CHANNEL_INFORMATION__TITLE, - submitText: stringSet.BUTTON__SAVE, - onCancel: onCancel, - onSubmit: function onSubmit() { - if (title !== '' && !inputRef.current.value) { - if (formRef.current.reportValidity) { - // might not work in explorer - formRef.current.reportValidity(); - } - - return; - } - - _onSubmit(newFile, inputRef.current.value); - - onCancel(); - }, - type: Type$1.PRIMARY - }, React__default.createElement("form", { - className: "channel-profile-form", - ref: formRef, - onSubmit: function onSubmit(e) { - e.preventDefault(); - } - }, React__default.createElement("div", { - className: "channel-profile-form__img-section" - }, React__default.createElement(InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE), React__default.createElement("div", { - className: "channel-profile-form__avatar" - }, currentImg ? React__default.createElement(Avatar$1, { - height: "80px", - width: "80px", - src: currentImg - }) : React__default.createElement(ChannelAvatar, { - height: 80, - width: 80, - channel: channel, - userId: userId, - theme: theme - })), React__default.createElement("input", { - ref: hiddenInputRef, - type: "file", - accept: "image/gif, image/jpeg, image/png", - style: { - display: 'none' - }, - onChange: function onChange(e) { - setCurrentImg(URL.createObjectURL(e.target.files[0])); - setNewFile(e.target.files[0]); - hiddenInputRef.current.value = ''; - } - }), React__default.createElement(TextButton, { - className: "channel-profile-form__avatar-button", - onClick: function onClick() { - return hiddenInputRef.current.click(); - }, - notUnderline: true - }, React__default.createElement(Label, { - type: LabelTypography.BUTTON_1, - color: LabelColors.PRIMARY - }, stringSet.MODAL__CHANNEL_INFORMATION__UPLOAD))), React__default.createElement("div", { - className: "channel-profile-form__name-section" - }, React__default.createElement(InputLabel, null, stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME), React__default.createElement(Input, { - required: title !== '', - name: "channel-profile-form__name", - ref: inputRef, - value: title, - placeHolder: stringSet.MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER - })))); -}; - -EditDetails.propTypes = { - onSubmit: PropTypes.func.isRequired, - onCancel: PropTypes.func.isRequired, - channel: PropTypes.shape({ - name: PropTypes.string - }).isRequired, - userId: PropTypes.string.isRequired, - theme: PropTypes.string.isRequired -}; - -var ChannelProfile = function ChannelProfile(props) { - var disabled = props.disabled, - channel = props.channel, - userId = props.userId, - theme = props.theme, - onChannelInfoChange = props.onChannelInfoChange; - var title = channel.name; - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - showModal = _useState2[0], - setShowModal = _useState2[1]; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - return React__default.createElement("div", { - className: "sendbird-channel-profile" - }, React__default.createElement("div", { - className: "sendbird-channel-profile--inner" - }, React__default.createElement("div", { - className: "sendbird-channel-profile__avatar" - }, React__default.createElement(ChannelAvatar, { - channel: channel, - userId: userId, - theme: theme - })), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1, - className: "sendbird-channel-profile__title" - }, title), React__default.createElement(TextButton, { - disabled: disabled, - className: "sendbird-channel-profile__edit", - onClick: function onClick() { - if (disabled) { - return; - } - - setShowModal(true); - }, - notUnderline: true - }, React__default.createElement(Label, { - type: LabelTypography.BUTTON_1, - color: disabled ? LabelColors.ONBACKGROUND_2 : LabelColors.PRIMARY - }, stringSet.CHANNEL_SETTING__PROFILE__EDIT)), showModal && React__default.createElement(EditDetails, { - onCancel: function onCancel() { - return setShowModal(false); - }, - onSubmit: onChannelInfoChange, - channel: channel, - userId: userId, - theme: theme - }))); -}; - -ChannelProfile.propTypes = { - channel: PropTypes.shape({ - name: PropTypes.string - }).isRequired, - userId: PropTypes.string.isRequired, - theme: PropTypes.string, - disabled: PropTypes.bool, - onChannelInfoChange: PropTypes.func -}; -ChannelProfile.defaultProps = { - theme: 'light', - disabled: false, - onChannelInfoChange: function onChannelInfoChange() {} -}; - -function MembersModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel, - currentUser = _a.currentUser; - - var _b = React.useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = React.useState(null), - memberQuery = _c[0], - setMemberQuery = _c[1]; - - React.useEffect(function () { - var memberListQuery = channel.createMemberListQuery(); - memberListQuery.limit = 20; - memberListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - }); - setMemberQuery(memberListQuery); - }, []); - return React__default.createElement("div", null, React__default.createElement(Modal, { - hideFooter: true, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: noop, - titleText: "All Members" - }, React__default.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = memberQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - memberQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React__default.createElement(UserListItem, { - user: member, - key: member.userId, - currentUser: currentUser, - action: function action(_a) { - var parentRef = _a.parentRef, - actionRef = _a.actionRef; - return React__default.createElement(React__default.Fragment, null, channel.myRole === 'operator' && React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - if (member.role !== 'operator') { - channel.addOperators([member.userId], function () { - setMembers(members.map(function (m) { - if (m.userId === member.userId) { - return __assign(__assign({}, member), { - role: 'operator' - }); - } - - return m; - })); - closeDropdown(); - }); - } else { - channel.removeOperators([member.userId], function () { - setMembers(members.map(function (m) { - if (m.userId === member.userId) { - return __assign(__assign({}, member), { - role: '' - }); - } - - return m; - })); - closeDropdown(); - }); - } - } - }, member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'), // No muted members in broadcast channel - !channel.isBroadcast && React__default.createElement(MenuItem, { - onClick: function onClick() { - if (member.isMuted) { - channel.unmuteUser(member, function () { - setMembers(members.map(function (m) { - if (m.userId === member.userId) { - return __assign(__assign({}, member), { - isMuted: false - }); - } - - return m; - })); - closeDropdown(); - }); - } else { - channel.muteUser(member, function () { - setMembers(members.map(function (m) { - if (m.userId === member.userId) { - return __assign(__assign({}, member), { - isMuted: true - }); - } - - return m; - })); - closeDropdown(); - }); - } - } - }, member.isMuted ? 'Unmute' : 'Mute'), React__default.createElement(MenuItem, { - onClick: function onClick() { - channel.banUser(member, -1, '', function () { - setMembers(members.filter(function (_a) { - var userId = _a.userId; - return userId !== member.userId; - })); - }); - } - }, "Ban")); - } - })); - } - }); - })))); -} - -var SHOWN_MEMBER_MAX = 10; - -var UserListItem$1 = function UserListItem(_ref) { - var _ref$member = _ref.member, - member = _ref$member === void 0 ? {} : _ref$member, - _ref$currentUser = _ref.currentUser, - currentUser = _ref$currentUser === void 0 ? '' : _ref$currentUser; - var avatarRef = React.useRef(null); - - var _useContext = React.useContext(UserProfileContext), - disableUserProfile = _useContext.disableUserProfile, - renderUserProfile = _useContext.renderUserProfile; - - var _useContext2 = React.useContext(LocalizationContext), - stringSet = _useContext2.stringSet; - - return React__default.createElement("div", { - className: "sendbird-members-accordion__member" - }, React__default.createElement("div", { - className: "sendbird-members-accordion__member-avatar" - }, React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(Avatar$1, { - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - ref: avatarRef, - src: member.profileUrl, - width: 24, - height: 24 - }); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - openLeft: true, - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: member, - currentUserId: currentUser, - close: closeDropdown - }) : React__default.createElement(ConnectedUserProfile, { - user: member, - currentUserId: currentUser, - onSuccess: closeDropdown - })); - } - })), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_1 - }, member.nickname || stringSet.NO_NAME, currentUser === member.userId && ' (You)')); -}; - -UserListItem$1.propTypes = { - member: PropTypes.shape({ - userId: PropTypes.string, - profileUrl: PropTypes.string, - nickname: PropTypes.string - }).isRequired, - currentUser: PropTypes.string.isRequired -}; - -var MemebersAccordion = function MemebersAccordion(_ref2) { - var channel = _ref2.channel, - disabled = _ref2.disabled, - currentUser = _ref2.currentUser, - userQueryCreator = _ref2.userQueryCreator, - onInviteMemebers = _ref2.onInviteMemebers, - swapParams = _ref2.swapParams; - var members = channel.members || []; - - var _useState = React.useState(false), - _useState2 = _slicedToArray(_useState, 2), - showMoreModal = _useState2[0], - setShowMoreModal = _useState2[1]; - - var _useState3 = React.useState(false), - _useState4 = _slicedToArray(_useState3, 2), - showAddUserModal = _useState4[0], - setShowAddUserModal = _useState4[1]; - - var _useContext3 = React.useContext(LocalizationContext), - stringSet = _useContext3.stringSet; - - return React__default.createElement("div", { - className: "sendbird-members-accordion" - }, React__default.createElement("div", { - className: "sendbird-members-accordion__list" - }, members.slice(0, SHOWN_MEMBER_MAX).map(function (member) { - return React__default.createElement(UserListItem$1, { - member: member, - currentUser: currentUser, - key: member.userId - }); - })), React__default.createElement("div", { - className: "sendbird-members-accordion__footer" - }, members.length >= SHOWN_MEMBER_MAX && React__default.createElement(Button, { - className: "sendbird-members-accordion__footer__all-members", - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - return setShowMoreModal(true); - } - }, stringSet.CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS), members.length >= SHOWN_MEMBER_MAX && showMoreModal && React__default.createElement(MembersModal, { - currentUser: currentUser, - hideModal: function hideModal() { - setShowMoreModal(false); - }, - channel: channel - }), React__default.createElement(Button, { - className: "sendbird-members-accordion__footer__invite-users", - type: Type$1.SECONDARY, - size: Size.SMALL, - disabled: disabled, - onClick: function onClick() { - if (disabled) { - return; - } - - setShowAddUserModal(true); - } - }, stringSet.CHANNEL_SETTING__MEMBERS__INVITE_MEMBER), showAddUserModal && React__default.createElement(InviteMembers, { - swapParams: swapParams, - titleText: stringSet.MODAL__INVITE_MEMBER__TITLE, - submitText: stringSet.BUTTON__INVITE, - closeModal: function closeModal() { - return setShowAddUserModal(false); - }, - idsToFilter: members.map(function (member) { - return member.userId; - }), - userQueryCreator: userQueryCreator, - onSubmit: onInviteMemebers - }))); -}; - -MemebersAccordion.propTypes = { - swapParams: PropTypes.bool, - disabled: PropTypes.bool, - channel: PropTypes.shape({ - members: PropTypes.arrayOf(PropTypes.shape({})) - }), - currentUser: PropTypes.string, - userQueryCreator: PropTypes.func.isRequired, - onInviteMemebers: PropTypes.func.isRequired -}; -MemebersAccordion.defaultProps = { - swapParams: false, - currentUser: '', - disabled: false, - channel: {} -}; - -var Context = React__default.createContext({ - opened: '', - setOpened: noop -}); -var Consumer = Context.Consumer; -var Provider = Context.Provider; - -// Wraps all the accordions in an accordion set -function AccordionGroup(_a) { - var children = _a.children, - _b = _a.className, - className = _b === void 0 ? '' : _b; - - var _c = React.useState(''), - opened = _c[0], - setOpened = _c[1]; - - return React__default.createElement(Provider, { - value: { - opened: opened, - setOpened: setOpened - } - }, React__default.createElement("div", { - className: className - }, children)); -} - -function Accordion(_a) { - var id = _a.id, - renderTitle = _a.renderTitle, - renderContent = _a.renderContent, - renderFooter = _a.renderFooter, - className = _a.className; - - var _b = React.useState(false), - showAccordion = _b[0], - setShowAccordion = _b[1]; - - return React__default.createElement(Consumer, null, function (value) { - var opened = value.opened, - setOpened = value.setOpened; - - if (id === opened) { - setShowAccordion(true); - } else { - setShowAccordion(false); - } - - var handleClick = function handleClick() { - if (showAccordion) { - setOpened(''); - } else { - setOpened(id); - } - }; - - return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { - id: id, - role: "switch", - "aria-checked": false, - tabIndex: 0, - onKeyDown: handleClick, - className: "sendbird-accordion__panel-heder " + className, - onClick: handleClick - }, renderTitle(), React__default.createElement(Icon, { - type: IconTypes.SHEVRON, - className: ['sendbird-accordion__panel-icon-right', 'sendbird-accordion__panel-icon--chevron', showAccordion ? 'sendbird-accordion__panel-icon--open' : ''].join(' '), - height: "24px", - width: "24px" - })), showAccordion && React__default.createElement("div", { - className: "sendbird-accordion" - }, React__default.createElement("div", { - className: "sendbird-accordion__list" - }, renderContent()), renderFooter && React__default.createElement("div", { - className: "sendbird-accordion__footer" - }, renderFooter()))); - }); -} -var AccordionGroup$1 = AccordionGroup; - -// might move to reusable/UI -var COMPONENT_NAME$1 = 'sendbird-user-list-item--small'; - -var UserListItem$2 = function UserListItem(_a) { - var user = _a.user, - className = _a.className, - currentUser = _a.currentUser, - action = _a.action; - var actionRef = React.useRef(null); - var parentRef = React.useRef(null); - var avatarRef = React.useRef(null); - var stringSet = React.useContext(LocalizationContext).stringSet; - - var _b = React.useContext(UserProfileContext), - disableUserProfile = _b.disableUserProfile, - renderUserProfile = _b.renderUserProfile; - - var injectingClassNames = Array.isArray(className) ? className : [className]; - return React__default.createElement("div", { - ref: parentRef, - className: __spreadArrays([COMPONENT_NAME$1], injectingClassNames).join(' ') - }, user.isMuted && React__default.createElement(MutedAvatarOverlay, null), React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(Avatar$1, { - onClick: function onClick() { - if (!disableUserProfile) { - toggleDropdown(); - } - }, - ref: avatarRef, - className: COMPONENT_NAME$1 + "__avatar", - src: user.profileUrl, - width: 24, - height: 24 - }); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - openLeft: true, - parentRef: avatarRef // for catching location(x, y) of MenuItems - , - parentContainRef: avatarRef // for toggling more options(menus & reactions) - , - closeDropdown: closeDropdown, - style: { - paddingTop: 0, - paddingBottom: 0 - } - }, renderUserProfile ? renderUserProfile({ - user: user, - currentUserId: currentUser, - close: closeDropdown - }) : React__default.createElement(ConnectedUserProfile, { - user: user, - currentUserId: currentUser, - onSuccess: closeDropdown - })); - } - }), React__default.createElement(Label, { - className: COMPONENT_NAME$1 + "__title", - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, user.nickname || stringSet.NO_NAME, currentUser === user.userId && " (You)"), !user.nickname && React__default.createElement(Label, { - className: COMPONENT_NAME$1 + "__subtitle", - type: LabelTypography.CAPTION_3, - color: LabelColors.ONBACKGROUND_2 - }, user.userId), user.role === 'operator' && React__default.createElement(Label, { - className: COMPONENT_NAME$1 + "__operator", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_2 - }, "Operator"), action && React__default.createElement("div", { - ref: actionRef, - className: COMPONENT_NAME$1 + "__action" - }, action({ - actionRef: actionRef, - parentRef: parentRef - }))); -}; - -function OperatorsModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel, - currentUser = _a.currentUser; - - var _b = React.useState([]), - operators = _b[0], - setOperators = _b[1]; - - var _c = React.useState(null), - operatorQuery = _c[0], - setOperatorQuery = _c[1]; - - React.useEffect(function () { - var operatorListQuery = channel.createOperatorListQuery(); - operatorListQuery.limit = 20; - operatorListQuery.next(function (operators, error) { - if (error) { - return; - } - - setOperators(operators); - }); - setOperatorQuery(operatorListQuery); - }, []); - return React__default.createElement("div", null, React__default.createElement(Modal, { - hideFooter: true, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: noop, - titleText: "All operators" - }, React__default.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = operatorQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - operatorQuery.next(function (o, error) { - if (error) { - return; - } - - setOperators(__spreadArrays(operators, o)); - }); - } - } - }, operators.map(function (member) { - return React__default.createElement(UserListItem, { - currentUser: currentUser, - user: member, - key: member.userId, - action: function action(_a) { - var parentRef = _a.parentRef, - actionRef = _a.actionRef; - return React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - channel.removeOperators([member.userId], function (response, error) { - if (error) { - return; - } - - setOperators(operators.filter(function (_a) { - var userId = _a.userId; - return userId !== member.userId; - })); - }); - closeDropdown(); - } - }, "Dismiss operator")); - } - }); - } - }); - })))); -} - -function AddOperatorsModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel, - _onSubmit = _a.onSubmit; - - var _b = React.useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = React.useState({}), - selectedMembers = _c[0], - setSelectedMembers = _c[1]; - - var _d = React.useState(null), - memberQuery = _d[0], - setMemberQuery = _d[1]; - - var stringSet = React.useContext(LocalizationContext).stringSet; - React.useEffect(function () { - var memberListQuery = channel.createMemberListQuery(); - memberListQuery.limit = 20; - memberListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - }); - setMemberQuery(memberListQuery); - }, []); - var selectedCount = Object.keys(selectedMembers).filter(function (m) { - return selectedMembers[m]; - }).length; - return React__default.createElement("div", null, React__default.createElement(Modal, { - type: Type$1.PRIMARY, - submitText: "Add", - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: function onSubmit() { - var members = Object.keys(selectedMembers).filter(function (m) { - return selectedMembers[m]; - }); - - _onSubmit(members); - }, - titleText: "Select members" - }, React__default.createElement(Label, { - color: selectedCount > 0 ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3, - type: LabelTypography.CAPTION_1 - }, selectedCount + " " + stringSet.MODAL__INVITE_MEMBER__SELECTEC), React__default.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = memberQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - memberQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React__default.createElement(UserListItem, { - checkBox: true, - checked: selectedMembers[member.userId], - onChange: function onChange(event) { - var _a; - - var modifiedSelectedMembers = __assign(__assign({}, selectedMembers), (_a = {}, _a[event.target.id] = event.target.checked, _a)); - - if (!event.target.checked) { - delete modifiedSelectedMembers[event.target.id]; - } - - setSelectedMembers(modifiedSelectedMembers); - }, - user: member, - key: member.userId - }); - })))); -} - -var OperatorList = function OperatorList(_a) { - var sdk = _a.sdk, - channel = _a.channel; - - var _b = React.useState([]), - operators = _b[0], - setOperators = _b[1]; - - var _c = React.useState(false), - showMore = _c[0], - setShowMore = _c[1]; - - var _d = React.useState(false), - showAdd = _d[0], - setShowAdd = _d[1]; - - var _e = React.useState(false), - hasNext = _e[0], - setHasNext = _e[1]; - - var stringSet = React.useContext(LocalizationContext).stringSet; - React.useEffect(function () { - if (!channel) { - setOperators([]); - return; - } - - var operatorListQuery = channel.createOperatorListQuery(); - operatorListQuery.limit = 10; - operatorListQuery.next(function (operators, error) { - if (error) { - return; - } - - setOperators(operators); - setHasNext(operatorListQuery.hasNext); - }); - }, [channel]); - var refershList = React.useCallback(function () { - if (!channel) { - setOperators([]); - return; - } - - var operatorListQuery = channel.createOperatorListQuery(); - operatorListQuery.limit = 10; - operatorListQuery.next(function (operators, error) { - if (error) { - return; - } - - setOperators(operators); - setHasNext(operatorListQuery.hasNext); - }); - }, [channel]); - return React__default.createElement(React__default.Fragment, null, operators.map(function (operator) { - return React__default.createElement(UserListItem$2, { - key: operator.userId, - user: operator, - currentUser: sdk.currentUser.userId, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - channel.removeOperators([operator.userId], function (response, error) { - if (error) { - return; - } - - setOperators(operators.filter(function (_a) { - var userId = _a.userId; - return userId !== operator.userId; - })); - }); - closeDropdown(); - } - }, "Dismiss operator")); - } - }); - } - }); - }), hasNext && React__default.createElement("div", { - className: "sendbird-channel-settings-accordion__footer" - }, React__default.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - setShowMore(true); - } - }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ALL), React__default.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - setShowAdd(true); - } - }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ADD)), showMore && React__default.createElement(OperatorsModal, { - currentUser: sdk.currentUser.userId, - hideModal: function hideModal() { - setShowMore(false); - refershList(); - }, - channel: channel - }), showAdd && React__default.createElement(AddOperatorsModal, { - hideModal: function hideModal() { - return setShowAdd(false); - }, - channel: channel, - onSubmit: function onSubmit(members) { - setShowAdd(false); - channel.addOperators(members, function () { - refershList(); - }); - } - })); -}; - -var mapStoreToProps$2 = function mapStoreToProps(store) { - return { - sdk: getSdk(store) - }; -}; - -var OperatorList$1 = withSendbirdContext(OperatorList, mapStoreToProps$2); - -function InviteMembers$1(_a) { - var hideModal = _a.hideModal, - userQueryCreator = _a.userQueryCreator, - _onSubmit = _a.onSubmit; - - var _b = React.useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = React.useState({}), - selectedMembers = _c[0], - setSelectedMembers = _c[1]; - - var _d = React.useState(null), - userQuery = _d[0], - setUserQuery = _d[1]; - - React.useEffect(function () { - var userListQuery = userQueryCreator(); - userListQuery.limit = 20; - userListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - }); - setUserQuery(userListQuery); - }, []); - return React__default.createElement("div", null, React__default.createElement(Modal, { - disabled: Object.keys(selectedMembers).length === 0, - submitText: "Invite", - type: Type$1.PRIMARY, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: function onSubmit() { - var members = Object.keys(selectedMembers).filter(function (m) { - return selectedMembers[m]; - }); - - _onSubmit(members); - }, - titleText: "Select members" - }, React__default.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = userQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - userQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React__default.createElement(UserListItem, { - checkBox: true, - checked: selectedMembers[member.userId], - onChange: function onChange(event) { - var _a; - - var modifiedSelectedMembers = __assign(__assign({}, selectedMembers), (_a = {}, _a[event.target.id] = event.target.checked, _a)); - - if (!event.target.checked) { - delete modifiedSelectedMembers[event.target.id]; - } - - setSelectedMembers(modifiedSelectedMembers); - }, - user: member, - key: member.userId - }); - })))); -} - -var MemberList = function MemberList(_a) { - var sdk = _a.sdk, - channel = _a.channel, - userQueryCreator = _a.userQueryCreator; - - var _b = React.useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = React.useState(false), - hasNext = _c[0], - setHasNext = _c[1]; - - var _d = React.useState(false), - showAllMembers = _d[0], - setShowAllMembers = _d[1]; - - var _e = React.useState(false), - showInviteMembers = _e[0], - setShowInviteMembers = _e[1]; - - React.useEffect(function () { - if (!channel) { - setMembers([]); - return; - } - - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - setHasNext(memberUserListQuery.hasNext); - }); - }, [channel]); - var refershList = React.useCallback(function () { - if (!channel) { - setMembers([]); - return; - } - - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - setHasNext(memberUserListQuery.hasNext); - }); - }, [channel]); - return React__default.createElement(React__default.Fragment, null, members.map(function (member) { - return React__default.createElement(UserListItem$2, { - key: member.userId, - user: member, - currentUser: sdk.currentUser.userId, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - if (member.role !== 'operator') { - channel.addOperators([member.userId], function () { - refershList(); - closeDropdown(); - }); - } else { - channel.removeOperators([member.userId], function () { - refershList(); - closeDropdown(); - }); - } - } - }, member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'), // No muted members in broadcast channel - !channel.isBroadcast && React__default.createElement(MenuItem, { - onClick: function onClick() { - if (member.isMuted) { - channel.unmuteUser(member, function () { - refershList(); - closeDropdown(); - }); - } else { - channel.muteUser(member, function () { - refershList(); - closeDropdown(); - }); - } - } - }, member.isMuted ? 'Unmute' : 'Mute'), React__default.createElement(MenuItem, { - onClick: function onClick() { - channel.banUser(member, -1, '', function () { - refershList(); - closeDropdown(); - }); - } - }, "Ban")); - } - }); - } - }); - }), React__default.createElement("div", { - className: "sendbird-channel-settings-accordion__footer" - }, hasNext && React__default.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - return setShowAllMembers(true); - } - }, "All members"), React__default.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - return setShowInviteMembers(true); - } - }, "Invite members")), showAllMembers && React__default.createElement(MembersModal, { - currentUser: sdk.currentUser.userId, - channel: channel, - hideModal: function hideModal() { - setShowAllMembers(false); - refershList(); - } - }), showInviteMembers && React__default.createElement(InviteMembers$1, { - userQueryCreator: userQueryCreator, - onSubmit: function onSubmit(selectedMemebers) { - channel.inviteWithUserIds(selectedMemebers, function () { - setShowInviteMembers(false); - refershList(); - }); - }, - channel: channel, - hideModal: function hideModal() { - return setShowInviteMembers(false); - } - })); -}; - -var mapStoreToProps$3 = function mapStoreToProps(store) { - return { - sdk: getSdk(store) - }; -}; - -var MemberList$1 = withSendbirdContext(MemberList, mapStoreToProps$3); - -function BannedMembersModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel; - - var _b = React.useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = React.useState(null), - memberQuery = _c[0], - setMemberQuery = _c[1]; - - React.useEffect(function () { - var bannedUserListQuery = channel.createBannedUserListQuery(); - bannedUserListQuery.next(function (users, error) { - if (error) { - return; - } - - setMembers(users); - }); - setMemberQuery(bannedUserListQuery); - }, []); - return React__default.createElement("div", null, React__default.createElement(Modal, { - hideFooter: true, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: noop, - titleText: "Muted members" - }, React__default.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = memberQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - memberQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React__default.createElement(UserListItem, { - user: member, - key: member.userId, - action: function action(_a) { - var parentRef = _a.parentRef, - actionRef = _a.actionRef; - return React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - channel.unbanUser(member, function () { - closeDropdown(); - setMembers(members.filter(function (m) { - return m.userId !== member.userId; - })); - }); - } - }, "Unban")); - } - }); - } - }); - })))); -} - -var BannedMemberList = function BannedMemberList(_a) { - var channel = _a.channel; - - var _b = React.useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = React.useState(false), - hasNext = _c[0], - setHasNext = _c[1]; - - var _d = React.useState(false), - showModal = _d[0], - setShowModal = _d[1]; - - React.useEffect(function () { - if (!channel) { - setMembers([]); - return; - } - - var bannedUserListQuery = channel.createBannedUserListQuery(); - bannedUserListQuery.next(function (users, error) { - if (error) { - return; - } - - setMembers(users); - setHasNext(bannedUserListQuery.hasNext); - }); - }, [channel]); - var refreshList = React.useCallback(function () { - if (!channel) { - setMembers([]); - return; - } - - var bannedUserListQuery = channel.createBannedUserListQuery(); - bannedUserListQuery.next(function (users, error) { - if (error) { - return; - } - - setMembers(users); - setHasNext(bannedUserListQuery.hasNext); - }); - }, [channel]); - return React__default.createElement(React__default.Fragment, null, members.map(function (member) { - return React__default.createElement(UserListItem$2, { - key: member.userId, - user: member, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - channel.unbanUser(member, function () { - closeDropdown(); - refreshList(); - }); - } - }, "Unban")); - } - }); - } - }); - }), members && members.length === 0 && React__default.createElement(Label, { - className: "sendbird-channel-settings__empty-list", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_3 - }, "No banned members yet"), hasNext && React__default.createElement("div", { - className: "sendbird-channel-settings-accordion__footer" - }, React__default.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - setShowModal(true); - } - }, "All banned members")), showModal && React__default.createElement(BannedMembersModal, { - channel: channel, - hideModal: function hideModal() { - setShowModal(false); - refreshList(); - } - })); -}; - -var mapStoreToProps$4 = function mapStoreToProps(store) { - return { - sdk: getSdk(store) - }; -}; - -var BannedMemberList$1 = withSendbirdContext(BannedMemberList, mapStoreToProps$4); - -function MutedMembersModal(_a) { - var hideModal = _a.hideModal, - channel = _a.channel, - currentUser = _a.currentUser; - - var _b = React.useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = React.useState(null), - memberQuery = _c[0], - setMemberQuery = _c[1]; - - React.useEffect(function () { - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.mutedMemberFilter = 'muted'; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - }); - setMemberQuery(memberUserListQuery); - }, []); - return React__default.createElement("div", null, React__default.createElement(Modal, { - hideFooter: true, - onCancel: function onCancel() { - return hideModal(); - }, - onSubmit: noop, - titleText: "Muted members" - }, React__default.createElement("div", { - className: "sendbird-more-members__popup-scroll", - onScroll: function onScroll(e) { - var hasNext = memberQuery.hasNext; - var target = e.target; - var fetchMore = target.clientHeight + target.scrollTop === target.scrollHeight; - - if (hasNext && fetchMore) { - memberQuery.next(function (o, error) { - if (error) { - return; - } - - setMembers(__spreadArrays(members, o)); - }); - } - } - }, members.map(function (member) { - return React__default.createElement(UserListItem, { - currentUser: currentUser, - user: member, - key: member.userId, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - , - closeDropdown: closeDropdown, - openLeft: true - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - channel.unmuteUser(member, function () { - closeDropdown(); - setMembers(members.filter(function (m) { - return m.userId !== member.userId; - })); - }); - } - }, "Unmute")); - } - }); - } - }); - })))); -} - -var MutedMemberList = function MutedMemberList(_a) { - var sdk = _a.sdk, - channel = _a.channel; - - var _b = React.useState([]), - members = _b[0], - setMembers = _b[1]; - - var _c = React.useState(false), - hasNext = _c[0], - setHasNext = _c[1]; - - var _d = React.useState(false), - showModal = _d[0], - setShowModal = _d[1]; - - React.useEffect(function () { - if (!channel) { - setMembers([]); - return; - } - - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.mutedMemberFilter = 'muted'; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - setHasNext(memberUserListQuery.hasNext); - }); - }, [channel]); - var refreshList = React.useCallback(function () { - if (!channel) { - setMembers([]); - return; - } - - var memberUserListQuery = channel.createMemberListQuery(); - memberUserListQuery.limit = 10; - memberUserListQuery.mutedMemberFilter = 'muted'; - memberUserListQuery.next(function (members, error) { - if (error) { - return; - } - - setMembers(members); - setHasNext(memberUserListQuery.hasNext); - }); - }, [channel]); - return React__default.createElement(React__default.Fragment, null, members.map(function (member) { - return React__default.createElement(UserListItem$2, { - key: member.userId, - user: member, - currentUser: sdk.currentUser.userId, - action: function action(_a) { - var actionRef = _a.actionRef, - parentRef = _a.parentRef; - return React__default.createElement(ContextMenu, { - menuTrigger: function menuTrigger(toggleDropdown) { - return React__default.createElement(IconButton, { - className: "sendbird-user-message__more__menu", - width: "32px", - height: "32px", - onClick: toggleDropdown - }, React__default.createElement(Icon, { - width: "24px", - height: "24px", - type: IconTypes.MORE, - fillColor: IconColors.CONTENT_INVERSE - })); - }, - menuItems: function menuItems(closeDropdown) { - return React__default.createElement(MenuItems$1, { - closeDropdown: closeDropdown, - openLeft: true, - parentContainRef: parentRef, - parentRef: actionRef // for catching location(x, y) of MenuItems - - }, React__default.createElement(MenuItem, { - onClick: function onClick() { - channel.unmuteUser(member, function () { - refreshList(); - closeDropdown(); - }); - } - }, "Unmute")); - } - }); - } - }); - }), members && members.length === 0 && React__default.createElement(Label, { - className: "sendbird-channel-settings__empty-list", - type: LabelTypography.SUBTITLE_2, - color: LabelColors.ONBACKGROUND_3 - }, "No muted members yet"), hasNext && React__default.createElement("div", { - className: "sendbird-channel-settings-accordion__footer" - }, React__default.createElement(Button, { - type: Type$1.SECONDARY, - size: Size.SMALL, - onClick: function onClick() { - setShowModal(true); - } - }, "All muted members")), showModal && React__default.createElement(MutedMembersModal, { - currentUser: sdk.currentUser.userId, - channel: channel, - hideModal: function hideModal() { - setShowModal(false); - refreshList(); - } - })); -}; - -var mapStoreToProps$5 = function mapStoreToProps(store) { - return { - sdk: getSdk(store) - }; -}; - -var MutedMemberList$1 = withSendbirdContext(MutedMemberList, mapStoreToProps$5); - -var kFormatter = function kFormatter(num) { - return Math.abs(num) > 999 ? (Math.abs(num) / 1000).toFixed(1) + "K" : num; -}; - -function index(_a) { - var userQueryCreator = _a.userQueryCreator, - channel = _a.channel; - - var _b = React.useState(false), - frozen = _b[0], - setFrozen = _b[1]; // work around for - // https://sendbird.slack.com/archives/G01290GCDCN/p1595922832000900 - // SDK bug - after frozen/unfrozen myRole becomes "none" - - - React.useEffect(function () { - setFrozen(channel.isFrozen); - }, [channel]); - var stringSet = React.useContext(LocalizationContext).stringSet; - return React__default.createElement(AccordionGroup$1, { - className: "sendbird-channel-settings__operator" - }, React__default.createElement(Accordion, { - className: "sendbird-channel-settings__operators-list", - id: "operators", - renderTitle: function renderTitle() { - return React__default.createElement(React__default.Fragment, null, React__default.createElement(Icon, { - type: IconTypes.ICON_OPERATOR, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__OPERATORS__TITLE)); - }, - renderContent: function renderContent() { - return React__default.createElement(React__default.Fragment, null, React__default.createElement(OperatorList$1, { - channel: channel - })); - } - }), React__default.createElement(Accordion, { - className: "sendbird-channel-settings__members-list", - id: "members", - renderTitle: function renderTitle() { - return React__default.createElement(React__default.Fragment, null, React__default.createElement(Icon, { - type: IconTypes.MEMBERS, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__MEMBERS__TITLE), React__default.createElement(Badge, { - count: kFormatter(channel.memberCount) - })); - }, - renderContent: function renderContent() { - return React__default.createElement(React__default.Fragment, null, React__default.createElement(MemberList$1, { - userQueryCreator: userQueryCreator, - channel: channel - })); - } - }), // No muted members in broadcast channel - !channel.isBroadcast && React__default.createElement(Accordion, { - id: "mutedMembers", - className: "sendbird-channel-settings__muted-members-list", - renderTitle: function renderTitle() { - return React__default.createElement(React__default.Fragment, null, React__default.createElement(Icon, { - type: IconTypes.ICON_MUTED, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__MUTED_MEMBERS__TITLE)); - }, - renderContent: function renderContent() { - return React__default.createElement(React__default.Fragment, null, React__default.createElement(MutedMemberList$1, { - channel: channel - })); - } - }), React__default.createElement(Accordion, { - className: "sendbird-channel-settings__banned-members-list", - id: "bannedMembers", - renderTitle: function renderTitle() { - return React__default.createElement(React__default.Fragment, null, React__default.createElement(Icon, { - type: IconTypes.ICON_BANNED, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__BANNED_MEMBERS__TITLE)); - }, - renderContent: function renderContent() { - return React__default.createElement(React__default.Fragment, null, React__default.createElement(BannedMemberList$1, { - channel: channel - })); - } - }), // cannot frozen broadcast channel - !channel.isBroadcast && React__default.createElement("div", { - className: "sendbird-channel-settings__freeze" - }, React__default.createElement(Icon, { - type: IconTypes.FROZEN_LIGHT, - fillColor: IconColors.PRIMARY, - width: 24, - height: 24, - className: "sendbird-channel-settings__accordion-icon" - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__FREEZE_CHANNEL), React__default.createElement("div", { - className: "sendbird-channel-settings__frozen-icon" - }, frozen ? React__default.createElement(Icon, { - onClick: function onClick() { - channel.unfreeze(function () { - setFrozen(false); - }); - }, - type: IconTypes.TOGGLE_ON, - width: 44, - height: 24 - }) : React__default.createElement(Icon, { - onClick: function onClick() { - channel.freeze(function () { - setFrozen(true); - }); - }, - type: IconTypes.TOGGLE_OFF, - width: 44, - height: 24 - })))); -} - -var kFormatter$1 = function kFormatter(num) { - return Math.abs(num) > 999 ? "".concat((Math.abs(num) / 1000).toFixed(1), "K") : num; -}; - -function ChannelSettings(props) { - var onCloseClick = props.onCloseClick, - channelUrl = props.channelUrl, - disableUserProfile = props.disableUserProfile, - renderUserProfile = props.renderUserProfile, - _onChannelModified = props.onChannelModified, - renderChannelProfile = props.renderChannelProfile, - onBeforeUpdateChannel = props.onBeforeUpdateChannel; - var sdkStore = props.stores.sdkStore, - _props$config = props.config, - userListQuery = _props$config.userListQuery, - theme = _props$config.theme, - userId = _props$config.userId, - logger = _props$config.logger, - isOnline = _props$config.isOnline, - _props$queries = props.queries, - queries = _props$queries === void 0 ? {} : _props$queries; - var _props$config2 = props.config, - config = _props$config2 === void 0 ? {} : _props$config2; - var userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile; - var userDefinedRenderProfile = renderUserProfile || config.renderUserProfile; - var userFilledApplicationUserListQuery = queries.applicationUserListQuery; - - var _useContext = React.useContext(LocalizationContext), - stringSet = _useContext.stringSet; - - var sdk = sdkStore.sdk, - initialized = sdkStore.initialized; // hack to kepp track of channel updates by triggering useEffect - - var _useState = React.useState(uuidv4()), - _useState2 = _slicedToArray(_useState, 2), - channelUpdateId = _useState2[0], - setChannelUpdateId = _useState2[1]; - - var _useState3 = React.useState(null), - _useState4 = _slicedToArray(_useState3, 2), - channel = _useState4[0], - setChannel = _useState4[1]; - - var _useState5 = React.useState(false), - _useState6 = _slicedToArray(_useState5, 2), - invalidChannel = _useState6[0], - setInvalidChannel = _useState6[1]; - - var _useState7 = React.useState(false), - _useState8 = _slicedToArray(_useState7, 2), - showAccordion = _useState8[0], - setShowAccordion = _useState8[1]; - - var _useState9 = React.useState(false), - _useState10 = _slicedToArray(_useState9, 2), - showLeaveChannelModal = _useState10[0], - setShowLeaveChannelModal = _useState10[1]; - - React.useEffect(function () { - logger.info('ChannelSettings: Setting up'); - - if (!channelUrl || !initialized || !sdk) { - logger.warning('ChannelSettings: Setting up failed', 'No channelUrl or sdk uninitialized'); - setInvalidChannel(false); - } else { - if (!sdk || !sdk.GroupChannel) { - logger.warning('ChannelSettings: No GroupChannel'); - return; - } - - sdk.GroupChannel.getChannel(channelUrl, function (groupChannel) { - if (!groupChannel) { - logger.warning('ChannelSettings: Channel not found'); - setInvalidChannel(true); - } else { - logger.info('ChannelSettings: Fetched group channel', groupChannel); - setInvalidChannel(false); - setChannel(groupChannel); - } - }); - } - }, [channelUrl, initialized, channelUpdateId]); - - if (!channel || invalidChannel) { - return React__default.createElement("div", { - className: "sendbird-channel-settings" - }, React__default.createElement("div", { - className: "sendbird-channel-settings__header" - }, React__default.createElement(Label, { - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React__default.createElement(Icon, { - type: IconTypes.CLOSE, - className: "sendbird-channel-settings__close-icon", - height: "24px", - width: "24px", - onClick: function onClick() { - logger.info('ChannelSettings: Click close'); - onCloseClick(); - } - })), React__default.createElement("div", null, React__default.createElement(PlaceHolder, { - type: PlaceHolderTypes.WRONG - }))); - } - - return React__default.createElement(UserProfileProvider, { - disableUserProfile: userDefinedDisableUserProfile, - renderUserProfile: userDefinedRenderProfile, - className: "sendbird-channel-settings" - }, React__default.createElement("div", { - className: "sendbird-channel-settings__header" - }, React__default.createElement(Label, { - type: LabelTypography.H_2, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__HEADER__TITLE), React__default.createElement("div", { - className: "sendbird-channel-settings__header-icon" - }, React__default.createElement(IconButton, { - width: "32px", - height: "32px", - onClick: function onClick() { - logger.info('ChannelSettings: Click close'); - onCloseClick(); - } - }, React__default.createElement(Icon, { - type: IconTypes.CLOSE, - className: "sendbird-channel-settings__close-icon", - height: "24px", - width: "24px" - })))), React__default.createElement("div", { - className: "sendbird-channel-settings__scroll-area" - }, renderChannelProfile ? renderChannelProfile({ - channel: channel - }) : React__default.createElement(ChannelProfile, { - disabled: !isOnline, - channel: channel, - userId: userId, - theme: theme, - onChannelInfoChange: function onChannelInfoChange(currentImg, currentTitle) { - logger.info('ChannelSettings: Channel information being updated'); - var swapParams = sdk.getErrorFirstCallback(); - - if (onBeforeUpdateChannel) { - var params = onBeforeUpdateChannel(currentTitle, currentImg, channel.data); // swapParams - - channel.updateChannel(params, function (response, error) { - var groupChannel = response; - - if (swapParams) { - groupChannel = error; - } - - _onChannelModified(groupChannel); - - setChannelUpdateId(uuidv4()); - }); - return; - } - - channel.updateChannel(currentTitle, currentImg, channel.data, function (response, error) { - var groupChannel = response; - - if (swapParams) { - groupChannel = error; - } - - logger.info('ChannelSettings: Channel information updated', groupChannel); - - _onChannelModified(groupChannel); - - setChannelUpdateId(uuidv4()); - }); - } - }), channel.myRole === 'operator' ? React__default.createElement(index, { - channel: channel, - onChannelModified: function onChannelModified(groupChannel) { - // setChannelUpdateId(uuidv4()); - _onChannelModified(groupChannel); - }, - userQueryCreator: function userQueryCreator() { - return userListQuery && typeof userListQuery === 'function' ? userListQuery() : createDefaultUserListQuery({ - sdk: sdk, - userFilledApplicationUserListQuery: userFilledApplicationUserListQuery - }); - } - }) : React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { - role: "switch", - "aria-checked": showAccordion, - tabIndex: 0, - onKeyDown: function onKeyDown() { - return setShowAccordion(!showAccordion); - }, - className: "\n sendbird-channel-settings__panel-item\n sendbird-channel-settings__members\n ", - onClick: function onClick() { - return setShowAccordion(!showAccordion); - } - }, React__default.createElement(Icon, { - type: IconTypes.MEMBERS, - className: "sendbird-channel-settings__panel-icon-left", - height: "24px", - width: "24px", - fillColor: IconColors.PRIMARY - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, "".concat(stringSet.CHANNEL_SETTING__MEMBERS__TITLE), React__default.createElement(Badge, { - count: kFormatter$1(channel.memberCount) - })), React__default.createElement(Icon, { - type: IconTypes.SHEVRON, - className: ['sendbird-channel-settings__panel-icon-right', 'sendbird-channel-settings__panel-icon--chevron', showAccordion ? 'sendbird-channel-settings__panel-icon--open' : ''].join(' '), - height: "24px", - width: "24px" - })), showAccordion && React__default.createElement(MemebersAccordion, { - currentUser: userId, - disabled: !isOnline // eslint-disable-next-line - , - userQueryCreator: function userQueryCreator() { - return userListQuery && typeof userListQuery === 'function' ? userListQuery() : createDefaultUserListQuery({ - sdk: sdk, - userFilledApplicationUserListQuery: userFilledApplicationUserListQuery - }); - }, - swapParams: sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback(), - channel: channel, - members: channel.members, - onInviteMemebers: function onInviteMemebers(selectedMemebers) { - logger.info('ChannelSettings: Inviting new users'); - channel.inviteWithUserIds(selectedMemebers).then(function (res) { - _onChannelModified(res); - - setChannelUpdateId(uuidv4()); - logger.info('ChannelSettings: Inviting new users success!', res); - }); - } - })), React__default.createElement("div", { - className: "sendbird-channel-settings__panel-item\n sendbird-channel-settings__leave-channel\n ".concat(!isOnline ? 'sendbird-channel-settings__panel-item__disabled' : ''), - role: "button", - tabIndex: 0, - disabled: true, - onKeyDown: function onKeyDown() { - if (!isOnline) { - return; - } - - setShowLeaveChannelModal(true); - }, - onClick: function onClick() { - if (!isOnline) { - return; - } - - setShowLeaveChannelModal(true); - } - }, React__default.createElement(Icon, { - type: IconTypes.LEAVE, - className: ['sendbird-channel-settings__panel-icon-left', 'sendbird-channel-settings__panel-icon__leave'].join(' '), - height: "24px", - width: "24px" - }), React__default.createElement(Label, { - type: LabelTypography.SUBTITLE_1, - color: LabelColors.ONBACKGROUND_1 - }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE)), showLeaveChannelModal && React__default.createElement(LeaveChannel, { - onCloseModal: function onCloseModal() { - return setShowLeaveChannelModal(false); - }, - onLeaveChannel: function onLeaveChannel() { - logger.info('ChannelSettings: Leaving channel', channel); - channel.leave().then(function () { - logger.info('ChannelSettings: Leaving channel successful!', channel); - onCloseClick(); - }); - } - }))); -} - -ChannelSettings.propTypes = { - onCloseClick: PropTypes.func, - onChannelModified: PropTypes.func, - onBeforeUpdateChannel: PropTypes.func, - renderChannelProfile: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - channelUrl: PropTypes.string.isRequired, - queries: PropTypes.shape({ - applicationUserListQuery: PropTypes.shape({ - limit: PropTypes.number, - userIdsFilter: PropTypes.arrayOf(PropTypes.string), - metaDataKeyFilter: PropTypes.string, - metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string) - }) - }), - // from withSendbirdContext - stores: PropTypes.shape({ - sdkStore: PropTypes.shape({ - sdk: PropTypes.shape({ - getErrorFirstCallback: PropTypes.func, - GroupChannel: PropTypes.oneOfType([PropTypes.shape({ - getChannel: PropTypes.func - }), PropTypes.func]), - createApplicationUserListQuery: PropTypes.any - }), - initialized: PropTypes.bool - }) - }).isRequired, - config: PropTypes.shape({ - userId: PropTypes.string, - theme: PropTypes.string, - userListQuery: PropTypes.func, - isOnline: PropTypes.bool, - logger: PropTypes.shape({ - info: PropTypes.func, - error: PropTypes.func, - warning: PropTypes.func - }) - }).isRequired -}; -ChannelSettings.defaultProps = { - onBeforeUpdateChannel: null, - queries: {}, - disableUserProfile: false, - renderUserProfile: null, - renderChannelProfile: null, - onCloseClick: function onCloseClick() {}, - onChannelModified: function onChannelModified() {} -}; -var ChannelSettings$1 = withSendbirdContext(ChannelSettings); - -function App(props) { - var appId = props.appId, - userId = props.userId, - accessToken = props.accessToken, - theme = props.theme, - userListQuery = props.userListQuery, - nickname = props.nickname, - profileUrl = props.profileUrl, - _props$config = props.config, - config = _props$config === void 0 ? {} : _props$config, - useReaction = props.useReaction, - useMessageGrouping = props.useMessageGrouping, - colorSet = props.colorSet, - stringSet = props.stringSet, - allowProfileEdit = props.allowProfileEdit, - disableUserProfile = props.disableUserProfile, - renderUserProfile = props.renderUserProfile, - onProfileEditSuccess = props.onProfileEditSuccess; - - var _useState = React.useState(null), - _useState2 = _slicedToArray(_useState, 2), - currentChannelUrl = _useState2[0], - setCurrentChannelUrl = _useState2[1]; - - var _useState3 = React.useState(false), - _useState4 = _slicedToArray(_useState3, 2), - showSettings = _useState4[0], - setShowSettings = _useState4[1]; - - return React__default.createElement(Sendbird, { - stringSet: stringSet, - appId: appId, - userId: userId, - accessToken: accessToken, - theme: theme, - nickname: nickname, - profileUrl: profileUrl, - userListQuery: userListQuery, - config: config, - colorSet: colorSet, - disableUserProfile: disableUserProfile, - renderUserProfile: renderUserProfile - }, React__default.createElement("div", { - className: "sendbird-app__wrap" - }, React__default.createElement("div", { - className: "sendbird-app__channellist-wrap" - }, React__default.createElement(ChannelList$1, { - allowProfileEdit: allowProfileEdit, - onProfileEditSuccess: onProfileEditSuccess, - onChannelSelect: function onChannelSelect(channel) { - if (channel && channel.url) { - setCurrentChannelUrl(channel.url); - } else { - setCurrentChannelUrl(''); - } - } - })), React__default.createElement("div", { - className: "\n ".concat(showSettings ? 'sendbird-app__conversation--settings-open' : '', "\n sendbird-app__conversation-wrap\n ") - }, React__default.createElement(Conversation, { - channelUrl: currentChannelUrl, - onChatHeaderActionClick: function onChatHeaderActionClick() { - if (showSettings) { - setShowSettings(false); - } else { - setShowSettings(true); - } - }, - useReaction: useReaction, - useMessageGrouping: useMessageGrouping - })), showSettings && React__default.createElement("div", { - className: "sendbird-app__settingspanel-wrap" - }, React__default.createElement(ChannelSettings$1, { - channelUrl: currentChannelUrl, - onCloseClick: function onCloseClick() { - setShowSettings(false); - } - })))); -} -App.propTypes = { - appId: PropTypes.string.isRequired, - userId: PropTypes.string.isRequired, - accessToken: PropTypes.string, - theme: PropTypes.string, - userListQuery: PropTypes.func, - nickname: PropTypes.string, - profileUrl: PropTypes.string, - allowProfileEdit: PropTypes.bool, - disableUserProfile: PropTypes.bool, - renderUserProfile: PropTypes.func, - onProfileEditSuccess: PropTypes.func, - config: PropTypes.shape({ - // None Error Warning Info 'All/Debug' - logLevel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]) - }), - useReaction: PropTypes.bool, - useMessageGrouping: PropTypes.bool, - stringSet: PropTypes.objectOf(PropTypes.string), - colorSet: PropTypes.objectOf(PropTypes.string) -}; -App.defaultProps = { - accessToken: '', - theme: 'light', - nickname: '', - profileUrl: '', - userListQuery: null, - allowProfileEdit: false, - onProfileEditSuccess: null, - disableUserProfile: false, - renderUserProfile: null, - config: {}, - useReaction: true, - useMessageGrouping: true, - stringSet: null, - colorSet: null -}; - -exports.App = App; -exports.Channel = Conversation; -exports.ChannelList = ChannelList$1; -exports.ChannelSettings = ChannelSettings$1; -exports.SendBirdProvider = Sendbird; -exports.getAllEmojisFromEmojiContainer = getAllEmojisFromEmojiContainer$1; -exports.getEmojiCategoriesFromEmojiContainer = getEmojiCategoriesFromEmojiContainer$1; -exports.getEmojisFromEmojiContainer = getEmojisFromEmojiContainer$1; -exports.getStringSet = getStringSet; -exports.sendBirdSelectors = selectors; -exports.withSendBird = withSendbirdContext; -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index ffe97d7..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../../src/lib/SendbirdSdkContext.jsx","../../src/lib/dux/sdk/actionTypes.js","../../src/lib/dux/user/actionTypes.js","../../src/lib/dux/sdk/thunks.js","../../node_modules/tslib/tslib.es6.js","../../src/lib/hooks/useTheme.ts","../../src/lib/dux/sdk/initialState.js","../../src/lib/dux/sdk/reducers.js","../../src/lib/dux/user/initialState.js","../../src/lib/dux/user/reducers.js","../../src/utils/uuid.ts","../../src/lib/hooks/useOnlineStatus.js","../../src/lib/Logger/index.js","../../src/lib/pubSub/index.js","../../src/hooks/useAppendDomNode.js","../../src/ui/Label/stringSet.js","../../src/lib/LocalizationContext.tsx","../../src/lib/Sendbird.jsx","../../src/lib/UserProfileContext.jsx","../../src/smart-components/ChannelList/dux/actionTypes.js","../../src/smart-components/ChannelList/dux/initialState.js","../../src/smart-components/ChannelList/dux/reducers.js","../../src/ui/ImageRenderer/index.jsx","../../src/ui/Icon/type.js","../../src/ui/Icon/index.jsx","../../src/ui/Avatar/index.tsx","../../src/ui/ChannelAvatar/utils.ts","../../src/ui/ChannelAvatar/index.tsx","../../src/ui/Label/types.js","../../src/ui/Label/utils.js","../../src/ui/Label/index.jsx","../../src/ui/Badge/index.jsx","../../src/ui/MessageStatus/type.js","../../src/ui/FileMessage/utils.js","../../src/ui/ChannelPreview/utils.js","../../src/ui/ChannelPreview/index.jsx","../../src/ui/IconButton/index.jsx","../../src/ui/ChannelHeader/index.jsx","../../src/hooks/useModal/ModalRoot/index.jsx","../../src/ui/Button/type.js","../../src/ui/Button/utils.js","../../src/ui/Button/index.jsx","../../src/ui/Modal/index.jsx","../../src/ui/Input/index.jsx","../../src/utils/color.js","../../src/ui/TextButton/index.jsx","../../src/utils/utils.js","../../src/ui/EditUserProfile/index.tsx","../../src/ui/PlaceHolder/type.js","../../src/ui/Avatar/MutedAvatarOverlay.tsx","../../src/ui/Checkbox/index.jsx","../../src/lib/pubSub/topics.js","../../src/lib/selectors.js","../../src/ui/UserProfile/index.tsx","../../src/ui/ContextMenu/items/MenuItems.jsx","../../src/ui/SortByRow/index.jsx","../../src/ui/ContextMenu/items/EmojiListItems.jsx","../../src/ui/ContextMenu/index.jsx","../../src/ui/UserListItem/index.jsx","../../src/smart-components/InviteMembers/index.jsx","../../src/smart-components/ChannelList/components/utils.js","../../src/smart-components/ChannelList/components/AddChannel.jsx","../../src/smart-components/ChannelSettings/components/LeaveChannel.jsx","../../src/smart-components/ChannelList/components/ChannelPreviewAction.jsx","../../src/ui/Loader/index.jsx","../../src/ui/PlaceHolder/index.jsx","../../src/smart-components/ChannelList/components/Placeholder.jsx","../../src/smart-components/ChannelList/utils.js","../../src/smart-components/ChannelList/index.jsx","../../src/smart-components/Conversation/dux/actionTypes.js","../../src/ui/FileViewer/types.js","../../src/smart-components/Conversation/types.js","../../src/smart-components/Conversation/utils.js","../../src/smart-components/Conversation/dux/initialState.js","../../src/utils/compareIds.js","../../src/smart-components/Conversation/dux/reducers.js","../../src/smart-components/Conversation/hooks/useHandleChannelEvents.js","../../src/smart-components/Conversation/hooks/useGetChannel.js","../../src/smart-components/Conversation/hooks/useInitialMessagesFetch.js","../../src/smart-components/Conversation/hooks/useHandleReconnect.js","../../src/smart-components/Conversation/hooks/useScrollCallback.js","../../src/smart-components/Conversation/hooks/useDeleteMessageCallback.js","../../src/smart-components/Conversation/hooks/useUpdateMessageCallback.js","../../src/smart-components/Conversation/hooks/useResendMessageCallback.js","../../src/smart-components/Conversation/hooks/useSendMessageCallback.js","../../src/smart-components/Conversation/hooks/useSendFileMessageCallback.js","../../src/smart-components/Conversation/hooks/useSetReadStatus.js","../../src/ui/ReactionButton/index.jsx","../../src/smart-components/Conversation/hooks/useMemoizedEmojiListItems.jsx","../../src/smart-components/Conversation/hooks/useToggleReactionCallback.js","../../src/ui/MessageStatus/index.jsx","../../src/ui/ReactionBadge/index.jsx","../../src/ui/Tooltip/index.jsx","../../src/ui/TooltipWrapper/index.jsx","../../src/ui/EmojiReactions/index.jsx","../../src/ui/Message/utils.js","../../src/ui/Message/memoizedMessageText.jsx","../../src/hooks/onMouseHover.jsx","../../src/ui/Message/index.jsx","../../src/ui/AdminMessage/index.jsx","../../src/ui/ThumbnailMessage/util.js","../../src/ui/ThumbnailMessage/index.jsx","../../src/ui/FileMessage/index.jsx","../../src/ui/DateSeparator/index.jsx","../../src/ui/MessageInput/index.jsx","../../src/ui/FileViewer/index.jsx","../../src/smart-components/Conversation/components/RemoveMessage.jsx","../../src/ui/UnknownMessage/utils.js","../../src/ui/UnknownMessage/index.jsx","../../src/ui/OGMessage/const.js","../../src/ui/OGMessage/utils.js","../../src/ui/LinkLabel/index.jsx","../../src/ui/OGMessage/memoizedMessageText.jsx","../../src/ui/OGMessage/index.jsx","../../src/smart-components/Conversation/components/MessageHOC.jsx","../../src/smart-components/Conversation/components/ConversationScroll.jsx","../../src/smart-components/Conversation/components/Notification.jsx","../../src/smart-components/Conversation/components/FrozenNotification.tsx","../../src/smart-components/Conversation/components/TypingIndicator.jsx","../../src/smart-components/Conversation/components/MessageInputWrapper.tsx","../../src/ui/ConnectionStatus/index.jsx","../../src/ui/ChatHeader/utils.js","../../src/ui/AutoRefresh/index.jsx","../../src/ui/ChatHeader/index.jsx","../../src/smart-components/Conversation/index.jsx","../../src/smart-components/ChannelSettings/components/EditDetails.jsx","../../src/smart-components/ChannelSettings/components/ChannelProfile.jsx","../../src/smart-components/ChannelSettings/components/AdminPanel/MembersModal.tsx","../../src/smart-components/ChannelSettings/components/MemebersAccordion.jsx","../../src/ui/Accordion/context.ts","../../src/ui/Accordion/AccordionGroup.tsx","../../src/ui/Accordion/index.tsx","../../src/smart-components/ChannelSettings/components/UserListItem.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/OperatorsModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/AddOperatorsModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/OperatorList.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/InviteMembersModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/MemberList.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/BannedMembersModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/BannedMemberList.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/MutedMembersModal.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/MutedMemberList.tsx","../../src/smart-components/ChannelSettings/components/AdminPanel/index.tsx","../../src/smart-components/ChannelSettings/index.jsx","../../src/smart-components/App/index.jsx"],"sourcesContent":["import React from 'react';\n\nexport const SendbirdSdkContext = React.createContext();\n\nconst withSendbirdContext = (OriginalComponent, mapStoreToProps) => {\n const ContextAwareComponent = (props) => (\n \n {(context) => {\n if (mapStoreToProps && typeof mapStoreToProps !== 'function') {\n // eslint-disable-next-line no-console\n console.warn('Second parameter to withSendbirdContext must be a pure function');\n }\n // todo - memoize\n const mergedProps = (mapStoreToProps && typeof mapStoreToProps === 'function')\n ? { ...mapStoreToProps(context), ...props }\n : { ...context, ...props };\n // eslint-disable-next-line react/jsx-props-no-spreading\n return ;\n }}\n \n );\n\n const componentName = OriginalComponent.displayName || OriginalComponent.name || 'Component';\n ContextAwareComponent.displayName = `SendbirdAware${componentName}`;\n\n return ContextAwareComponent;\n};\n\nexport default withSendbirdContext;\n","export const INIT_SDK = 'INIT_SDK';\nexport const SET_SDK_LOADING = 'SET_SDK_LOADING';\nexport const RESET_SDK = 'RESET_SDK';\nexport const SDK_ERROR = 'SDK_ERROR';\n","export const INIT_USER = 'INIT_USER';\nexport const RESET_USER = 'RESET_USER';\nexport const SET_USER_LOADING = 'SET_USER_LOADING';\nexport const UPDATE_USER_INFO = 'UPDATE_USER_INFO';\n","import Sb from 'sendbird';\n\nimport {\n INIT_SDK,\n SET_SDK_LOADING,\n RESET_SDK,\n SDK_ERROR,\n} from './actionTypes';\nimport { INIT_USER, UPDATE_USER_INFO, RESET_USER } from '../user/actionTypes';\n\nconst APP_VERSION_STRING = '__uikit_app_version__';\nconst IS_ROLLUP = '__is_rollup__';\nconst IS_ROLLUP_REPLACE = '__is_rollup_replace__';\n\nexport const disconnectSdk = ({\n sdkDispatcher,\n userDispatcher,\n sdk,\n onDisconnect,\n}) => {\n sdkDispatcher({ type: SET_SDK_LOADING, payload: true });\n if (sdk && sdk.disconnect) {\n sdk.disconnect()\n .then(() => {\n sdkDispatcher({ type: RESET_SDK });\n userDispatcher({ type: RESET_USER });\n })\n .finally(() => {\n onDisconnect();\n });\n } else {\n onDisconnect();\n }\n};\n\nexport const handleConnection = ({\n userId,\n appId,\n nickname,\n profileUrl,\n accessToken,\n sdk,\n logger,\n}, dispatchers) => {\n const {\n sdkDispatcher,\n userDispatcher,\n } = dispatchers;\n disconnectSdk({\n sdkDispatcher,\n userDispatcher,\n sdk,\n logger,\n onDisconnect: () => {\n logger.info('Setup connection');\n sdkDispatcher({ type: SET_SDK_LOADING, payload: true });\n if (userId && appId) {\n const newSdk = new Sb({ appId });\n // to check if code is released version from rollup and *not from storybook*\n // see rollup config file\n if (IS_ROLLUP === IS_ROLLUP_REPLACE) {\n newSdk.addExtension('sb_uikit', APP_VERSION_STRING);\n }\n const connectCbSucess = (user) => {\n sdkDispatcher({ type: INIT_SDK, payload: newSdk });\n userDispatcher({ type: INIT_USER, payload: user });\n // use nickname/profileUrl if provided\n // or set userID as nickname\n const newNickName = nickname || user.nickname;\n const newProfileUrl = profileUrl || user.profileUrl;\n newSdk.updateCurrentUserInfo(newNickName, newProfileUrl)\n .then((namedUser) => {\n userDispatcher({ type: UPDATE_USER_INFO, payload: namedUser });\n });\n };\n\n const connectCbError = (e) => {\n logger.error('Connection failed', `${e}`);\n sdkDispatcher({ type: RESET_SDK });\n sdkDispatcher({ type: RESET_USER });\n sdkDispatcher({ type: SDK_ERROR });\n };\n\n if (accessToken) {\n newSdk.connect(userId, accessToken)\n .then((res) => connectCbSucess(res))\n .catch((err) => connectCbError(err));\n } else {\n newSdk.connect(userId)\n .then((res) => connectCbSucess(res))\n .catch((err) => connectCbError(err));\n }\n } else {\n sdkDispatcher({ type: SDK_ERROR });\n logger.warning('Connection failed', 'UserId or appId missing');\n }\n },\n });\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { useLayoutEffect } from 'react';\nimport cssVars from 'css-vars-ponyfill';\n\nconst isEmpty = (obj) => {\n if (obj === null || obj === undefined) {\n return true;\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n return JSON.stringify(obj) === JSON.stringify({});\n}\n\nconst useTheme = (overrides: Record): void => {\n useLayoutEffect(() => {\n if (!isEmpty(overrides)) {\n cssVars({\n variables: {\n ...{\n '--sendbird-dark-primary-500': '#4d2aa6',\n '--sendbird-dark-primary-400': '#6440C4',\n '--sendbird-dark-primary-300': '#7B53EF',\n '--sendbird-dark-primary-200': '#9E8CF5',\n '--sendbird-dark-primary-100': '#E2DFFF',\n\n '--sendbird-dark-secondary-500': '#007A7A',\n '--sendbird-dark-secondary-400': '#189A8D',\n '--sendbird-dark-secondary-300': '#2EBA9F',\n '--sendbird-dark-secondary-200': '#6FD6BE',\n '--sendbird-dark-secondary-100': '#AEF2DC',\n\n '--sendbird-dark-information-100': '#b2d9ff',\n\n '--sendbird-dark-error-500': '#A30E2D',\n '--sendbird-dark-error-400': '#C11F41',\n '--sendbird-dark-error-300': '#E53157',\n '--sendbird-dark-error-200': '#FF6183',\n '--sendbird-dark-error-100': '#FFABBD',\n\n '--sendbird-dark-background-700': '#000000',\n '--sendbird-dark-background-600': '#161616',\n '--sendbird-dark-background-500': '#2C2C2C',\n '--sendbird-dark-background-400': '#393939',\n '--sendbird-dark-background-300': '#A8A8A8',\n '--sendbird-dark-background-200': '#D9D9D9',\n '--sendbird-dark-background-100': '#F0F0F0',\n '--sendbird-dark-background-50': '#FFFFFF',\n\n '--sendbird-dark-overlay': 'rgba(0, 0, 0, 0.32)',\n\n '--sendbird-dark-onlight-01': 'rgba(0, 0, 0, 0.88)',\n '--sendbird-dark-onlight-02': 'rgba(0, 0, 0, 0.50)',\n '--sendbird-dark-onlight-03': 'rgba(0, 0, 0, 0.38)',\n '--sendbird-dark-onlight-04': 'rgba(0, 0, 0, 0.12)',\n\n '--sendbird-dark-ondark-01': 'rgba(255, 255, 255, 0.88)',\n '--sendbird-dark-ondark-02': 'rgba(255, 255, 255, 0.50)',\n '--sendbird-dark-ondark-03': 'rgba(255, 255, 255, 0.38)',\n '--sendbird-dark-ondark-04': 'rgba(255, 255, 255, 0.12)',\n\n '--sendbird-dark-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',\n '--sendbird-dark-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',\n\n '--sendbird-dark-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-primary-500': '#4d2aa6',\n '--sendbird-light-primary-400': '#6440C4',\n '--sendbird-light-primary-300': '#7B53EF',\n '--sendbird-light-primary-200': '#9E8CF5',\n '--sendbird-light-primary-100': '#E2DFFF',\n\n '--sendbird-light-secondary-500': '#007A7A',\n '--sendbird-light-secondary-400': '#189A8D',\n '--sendbird-light-secondary-300': '#2EBA9F',\n '--sendbird-light-secondary-200': '#6FD6BE',\n '--sendbird-light-secondary-100': '#AEF2DC',\n\n '--sendbird-light-information-100': '#b2d9ff',\n\n '--sendbird-light-error-500': '#A30E2D',\n '--sendbird-light-error-400': '#C11F41',\n '--sendbird-light-error-300': '#E53157',\n '--sendbird-light-error-200': '#FF6183',\n '--sendbird-light-error-100': '#FFABBD',\n\n '--sendbird-light-background-700': '#000000',\n '--sendbird-light-background-600': '#161616',\n '--sendbird-light-background-500': '#2C2C2C',\n '--sendbird-light-background-400': '#393939',\n '--sendbird-light-background-300': '#A8A8A8',\n '--sendbird-light-background-200': '#D9D9D9',\n '--sendbird-light-background-100': '#F0F0F0',\n '--sendbird-light-background-50': ' #FFFFFF',\n\n '--sendbird-light-overlay': 'rgba(0, 0, 0, 0.32)',\n\n '--sendbird-light-onlight-01': 'rgba(0, 0, 0, 0.88)',\n '--sendbird-light-onlight-02': 'rgba(0, 0, 0, 0.50)',\n '--sendbird-light-onlight-03': 'rgba(0, 0, 0, 0.38)',\n '--sendbird-light-onlight-04': 'rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-ondark-01': 'rgba(255, 255, 255, 0.88)',\n '--sendbird-light-ondark-02': 'rgba(255, 255, 255, 0.50)',\n '--sendbird-light-ondark-03': 'rgba(255, 255, 255, 0.38)',\n '--sendbird-light-ondark-04': 'rgba(255, 255, 255, 0.12)',\n\n '--sendbird-light-shadow-01': '0 1px 5px 0 rgba(33, 34, 66, 0.04), 0 0 3px 0 rgba(0, 0, 0, 0.08), 0 2px 1px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-02': '0 3px 5px -3px rgba(33, 34, 66, 0.04), 0 3px 14px 2px rgba(0, 0, 0, 0.08), 0 8px 10px 1px rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-03': '0 6px 10px -5px rgba(0, 0, 0, 0.04), 0 6px 30px 5px rgba(0, 0, 0, 0.08), 0 16px 24px 2px rgba(0, 0, 0, 0.12)',\n '--sendbird-light-shadow-04': '0 9px 15px -7px rgba(0, 0, 0, 0.04), 0 9px 46px 8px rgba(0, 0, 0, 0.08), 0 24px 38px 3px rgba(0, 0, 0, 0.12)',\n\n '--sendbird-light-shadow-message-input': '0 1px 5px 0 rgba(33, 34, 66, 0.12), 0 0 1px 0 rgba(33, 34, 66, 0.16), 0 2px 1px 0 rgba(33, 34, 66, 0.08), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n '--sendbird-light-theme-surface-2': '#EAEAEA',\n },\n ...overrides,\n },\n });\n }\n }, [overrides]);\n};\n\nexport default useTheme;\n","export default {\n initialized: false,\n loading: false,\n sdk: {},\n error: false,\n};\n","import * as sdkActions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case sdkActions.SET_SDK_LOADING:\n return {\n ...state,\n initialized: false,\n loading: action.payload,\n };\n case sdkActions.SDK_ERROR:\n return {\n ...state,\n initialized: false,\n loading: false,\n error: true,\n };\n case sdkActions.INIT_SDK:\n return {\n sdk: action.payload,\n initialized: true,\n loading: false,\n error: false,\n };\n case sdkActions.RESET_SDK:\n return initialState;\n default:\n return state;\n }\n}\n","export default {\n initialized: false,\n loading: false,\n user: {},\n};\n","import * as actions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actions.INIT_USER:\n return {\n initialized: true,\n loading: false,\n user: action.payload,\n };\n case actions.RESET_USER:\n return initialState;\n case actions.UPDATE_USER_INFO:\n return {\n ...state,\n user: action.payload,\n };\n default:\n return state;\n }\n}\n","/* eslint-disable no-bitwise */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-mixed-operators */\n// https://stackoverflow.com/a/2117523\n// used mainly for dom key generation\nexport const uuidv4 = (): string => 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n});\n\nexport default uuidv4;\n","import { useState, useEffect } from 'react';\n\nimport { uuidv4 } from '../../utils/uuid';\n\nfunction useConnectionStatus(sdk, logger) {\n const [isOnline, setIsOnline] = useState(true);\n\n useEffect(() => {\n const uniqueHandlerId = uuidv4();\n logger.warning('sdk changed', uniqueHandlerId);\n let handler;\n if (sdk && sdk.ConnectionHandler) {\n handler = new sdk.ConnectionHandler();\n\n handler.onReconnectStarted = () => {\n setIsOnline(false);\n logger.warning('onReconnectStarted', { isOnline });\n };\n handler.onReconnectSucceeded = () => {\n setIsOnline(true);\n logger.warning('onReconnectSucceeded', { isOnline });\n };\n handler.onReconnectFailed = () => {\n sdk.reconnect();\n logger.warning('onReconnectFailed');\n };\n logger.info('Added ConnectionHandler', uniqueHandlerId);\n sdk.addConnectionHandler(uniqueHandlerId, handler);\n }\n return () => {\n try {\n sdk.removeConnectionHandler(uniqueHandlerId);\n logger.info('Removed ConnectionHandler', uniqueHandlerId);\n } catch {\n //\n }\n };\n }, [sdk]);\n\n useEffect(() => {\n const tryReconnect = () => {\n try {\n logger.warning('Try reconnecting SDK');\n if (sdk.getConnectionState() !== 'OPEN') { // connection is not broken yet\n sdk.reconnect();\n }\n } catch {\n //\n }\n };\n // addEventListener version\n window.addEventListener('online', tryReconnect);\n return () => {\n window.removeEventListener('online', tryReconnect);\n };\n }, [sdk]);\n\n // add offline-class to body\n useEffect(() => {\n const body = document.querySelector('body');\n if (!isOnline) {\n try {\n body.classList.add('sendbird__offline');\n logger.info('Added class sendbird__offline to body');\n } catch (e) {\n //\n }\n } else {\n try {\n body.classList.remove('sendbird__offline');\n logger.info('Removed class sendbird__offline from body');\n } catch (e) {\n //\n }\n }\n }, [isOnline]);\n\n return isOnline;\n}\n\nexport default useConnectionStatus;\n","export const LOG_LEVELS = {\n DEBUG: 'debug',\n WARNING: 'warning',\n ERROR: 'error',\n INFO: 'info',\n ALL: 'all',\n};\n\nconst colorLog = (level) => {\n switch (level) {\n case LOG_LEVELS.WARNING:\n return ('color: Orange');\n case LOG_LEVELS.ERROR:\n return ('color: Red');\n default:\n return ('color: Gray');\n }\n};\n\nexport const printLog = ({\n level,\n title,\n description = '',\n}) => {\n // eslint-disable-next-line no-console\n console.log(\n `%c SendbirdUIKit | ${level} | ${new Date().toISOString()} | ${title} ${description && '|'}`, colorLog(level),\n description,\n );\n};\n\nexport const getDefaultLogger = () => ({\n info: () => {},\n error: () => {},\n warning: () => {},\n});\n\nexport const LoggerFactory = (lvl, customInterface) => {\n const logInterface = customInterface || printLog;\n const lvlArray = Array.isArray(lvl) ? lvl : [lvl];\n\n const applyLog = (lgLvl) => (title, description) => logInterface({\n level: lgLvl,\n title,\n description,\n });\n\n const logger = lvlArray.reduce((accumulator, currentLvl) => {\n if (currentLvl === LOG_LEVELS.DEBUG || currentLvl === LOG_LEVELS.ALL) {\n return ({\n ...accumulator,\n info: applyLog(LOG_LEVELS.INFO),\n error: applyLog(LOG_LEVELS.ERROR),\n warning: applyLog(LOG_LEVELS.WARNING),\n });\n }\n\n if (currentLvl === LOG_LEVELS.INFO) {\n return ({\n ...accumulator,\n info: applyLog(LOG_LEVELS.INFO),\n });\n }\n\n if (currentLvl === LOG_LEVELS.ERROR) {\n return ({\n ...accumulator,\n error: applyLog(LOG_LEVELS.ERROR),\n });\n }\n\n if (currentLvl === LOG_LEVELS.WARNING) {\n return ({\n ...accumulator,\n warning: applyLog(LOG_LEVELS.WARNING),\n });\n }\n\n return { ...accumulator };\n }, getDefaultLogger());\n return logger;\n};\n","// https://davidwalsh.name/pubsub-javascript\nexport default () => {\n const topics = {};\n const hOP = topics.hasOwnProperty;\n\n return {\n __getTopics: () => topics,\n subscribe: (topic, listener) => {\n // Create the topic's object if not yet created\n if (!hOP.call(topics, topic)) { topics[topic] = []; }\n\n // Add the listener to queue\n const index = topics[topic].push(listener) - 1;\n\n // Provide handle back for removal of topic\n return {\n remove: () => {\n delete topics[topic][index];\n },\n };\n },\n publish: (topic, info) => {\n // If the topic doesn't exist, or there's no listeners in queue, just leave\n if (!hOP.call(topics, topic)) { return; }\n\n // Cycle through topics queue, fire!\n topics[topic].forEach((item) => {\n item(info !== undefined ? info : {});\n });\n },\n };\n};\n","import { useEffect } from 'react';\n\nfunction useAppendDomNode(ids = [], rootSelector) {\n useEffect(() => {\n const root = document.querySelector(rootSelector);\n ids.forEach((id) => {\n const elem = document.createElement('div');\n elem.setAttribute('id', id);\n root.appendChild(elem);\n });\n return () => {\n ids.forEach((id) => {\n const target = document.getElementById(id);\n if (target) {\n root.removeChild(target);\n }\n });\n };\n }, []);\n}\n\nexport default useAppendDomNode;\n","const getStringSet = (lang = 'en') => {\n const stringSet = {\n en: {\n TRYING_TO_CONNECT: 'Trying to connect…',\n USER_PROFILE__MESSAGE: 'Message',\n USER_PROFILE__USER_ID: 'User ID',\n EDIT_PROFILE__TITLE: 'My profile',\n EDIT_PROFILE__IMAGE_LABEL: 'Profile image',\n EDIT_PROFILE__IMAGE_UPLOAD: 'Upload',\n EDIT_PROFILE__NICKNAME_LABEL: 'Nickname',\n EDIT_PROFILE__NICKNAME_PLACEHOLDER: 'Enter your nickname',\n EDIT_PROFILE__USERID_LABEL: 'User ID',\n EDIT_PROFILE__THEME_LABEL: 'Dark theme',\n CHANNEL_LIST__TITLE: 'Channels',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER: 'Enter message',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED: 'Chat is unavailable in this channel',\n CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED: 'Chat is unavailable because you are being muted',\n CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE: 'new message(s) since',\n CHANNEL__MESSAGE_LIST__NOTIFICATION__ON: 'on',\n CHANNEL_SETTING__HEADER__TITLE: 'Channel information',\n CHANNEL_SETTING__PROFILE__EDIT: 'Edit',\n CHANNEL_SETTING__MEMBERS__TITLE: 'Members',\n CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS: 'All members',\n CHANNEL_SETTING__MEMBERS__INVITE_MEMBER: 'Invite users',\n CHANNEL_SETTING__LEAVE_CHANNEL__TITLE: 'Leave channel',\n CHANNEL_SETTING__OPERATORS__TITLE: 'Operators',\n CHANNEL_SETTING__OPERATORS__TITLE_ALL: 'All operators',\n CHANNEL_SETTING__OPERATORS__TITLE_ADD: 'Add operator',\n CHANNEL_SETTING__MUTED_MEMBERS__TITLE: 'Muted members',\n CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL: 'All muted members',\n CHANNEL_SETTING__BANNED_MEMBERS__TITLE: 'Banned members',\n CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL: 'All banned members',\n CHANNEL_SETTING__FREEZE_CHANNEL: 'Freeze Channel',\n BUTTON__CANCEL: 'Cancel',\n BUTTON__DELETE: 'Delete',\n BUTTON__SAVE: 'Save',\n BUTTON__CREATE: 'Create',\n BUTTON__INVITE: 'Invite',\n BUTTON__CLOSE: 'Close',\n BADGE__OVER: '+',\n MODAL__DELETE_MESSAGE__TITLE: 'Delete this message?',\n MODAL__CHANNEL_INFORMATION__TITLE: 'Edit channel information',\n MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE: 'Channel image',\n MODAL__CHANNEL_INFORMATION__UPLOAD: 'Upload',\n MODAL__CHANNEL_INFORMATION__CHANNEL_NAME: 'Channel name',\n MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER: 'Enter name',\n MODAL__INVITE_MEMBER__TITLE: 'Invite member',\n MODAL__INVITE_MEMBER__SELECTEC: 'selected',\n MODAL__CREATE_CHANNEL__TITLE: 'New channel',\n MODAL__CREATE_CHANNEL__SELECTED: 'selected',\n MODAL__USER_LIST__TITLE: 'members',\n TYPING_INDICATOR__IS_TYPING: 'is typing...',\n TYPING_INDICATOR__AND: 'and',\n TYPING_INDICATOR__ARE_TYPING: 'are typing...',\n TYPING_INDICATOR__MULTIPLE_TYPING: 'Several people are typing...',\n MESSAGE_STATUS__SENDING_FAILED: 'Couldn\\'t send message.',\n MESSAGE_STATUS__TRY_AGAIN: 'Try again',\n MESSAGE_STATUS__OR: 'or',\n MESSAGE_STATUS__DELETE: 'delete',\n PLACE_HOLDER__NO_CHANNEL: 'No channels',\n CHANNEL_FROZEN: 'Channel frozen',\n MUTED_PL: 'Channel frozen',\n PLACE_HOLDER__WRONG: 'Something went wrong',\n PLACE_HOLDER__RETRY_TO_CONNECT: 'Retry',\n NO_TITLE: 'No title',\n NO_NAME: '(No name)',\n NO_MEMBERS: '(No members)',\n TOOLTIP__AND_YOU: ', and you',\n TOOLTIP__YOU: 'you',\n TOOLTIP__UNKOWN_USER: '(no name)',\n UNKNOWN__UNKNOWN_MESSAGE_TYPE: '(Unknown message type)',\n UNKNOWN__CANNOT_READ_MESSAGE: 'Cannot read this message.',\n MESSAGE_EDITED: '(edited)',\n },\n };\n return stringSet[lang];\n};\n\nexport default getStringSet;\n","import React from 'react';\n\nimport getStringSet from '../ui/Label/stringSet';\n\nconst LocalizationContext = React.createContext({\n stringSet: getStringSet('en'),\n});\n\ninterface LocalizationProviderProps {\n stringSet: Record;\n children: React.Component;\n}\n\nconst LocalizationProvider = (props: LocalizationProviderProps): React.ReactNode => {\n const { children } = props;\n return (\n \n {children}\n \n );\n};\n\nexport { LocalizationContext, LocalizationProvider };\n","import './index.scss';\n\nimport React, { useEffect, useReducer, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SendbirdSdkContext } from './SendbirdSdkContext';\nimport { handleConnection } from './dux/sdk/thunks';\n\nimport useTheme from './hooks/useTheme';\n\nimport sdkReducers from './dux/sdk/reducers';\nimport userReducers from './dux/user/reducers';\nimport sdkInitialState from './dux/sdk/initialState';\nimport userInitialState from './dux/user/initialState';\n\nimport useOnlineStatus from './hooks/useOnlineStatus';\n\nimport { LoggerFactory } from './Logger';\nimport pubSubFactory from './pubSub/index';\nimport useAppendDomNode from '../hooks/useAppendDomNode';\n\nimport { LocalizationProvider } from './LocalizationContext';\nimport getStringSet from '../ui/Label/stringSet';\n\nexport default function Sendbird(props) {\n const {\n userId,\n appId,\n accessToken,\n children,\n disableUserProfile,\n renderUserProfile,\n allowProfileEdit,\n theme,\n nickname,\n profileUrl,\n userListQuery,\n config = {},\n colorSet,\n stringSet,\n } = props;\n\n const {\n logLevel = '',\n } = config;\n const [logger, setLogger] = useState(LoggerFactory(logLevel));\n const [pubSub, setPubSub] = useState();\n const [sdkStore, sdkDispatcher] = useReducer(sdkReducers, sdkInitialState);\n const [userStore, userDispatcher] = useReducer(userReducers, userInitialState);\n\n useTheme(colorSet);\n\n useEffect(() => {\n setPubSub(pubSubFactory());\n }, []);\n\n useEffect(() => {\n logger.info('App Init');\n // dispatch action\n handleConnection({\n userId,\n appId,\n accessToken,\n sdkStore,\n nickname,\n profileUrl,\n sdk: sdkStore.sdk,\n logger,\n }, {\n sdkDispatcher,\n userDispatcher,\n });\n }, [userId, appId, accessToken]);\n\n // to create a pubsub to communicate between parent and child\n useEffect(() => {\n setLogger(LoggerFactory(logLevel));\n }, [logLevel]);\n\n useAppendDomNode([\n 'sendbird-modal-root',\n 'sendbird-dropdown-portal',\n 'sendbird-emoji-list-portal',\n ], 'body');\n\n // should move to reducer\n const [currenttheme, setCurrenttheme] = useState(theme);\n useEffect(() => {\n setCurrenttheme(theme);\n }, [theme]);\n // add-remove theme from body\n useEffect(() => {\n logger.info('Setup theme', `Theme: ${currenttheme}`);\n try {\n const body = document.querySelector('body');\n body.classList.add(`sendbird-theme--${currenttheme || 'light'}`);\n logger.info('Finish setup theme');\n // eslint-disable-next-line no-empty\n } catch (e) {\n logger.warning('Setup theme failed', `${e}`);\n }\n return () => {\n try {\n const body = document.querySelector('body');\n body.classList.remove('sendbird-theme--light');\n body.classList.remove('sendbird-theme--dark');\n // eslint-disable-next-line no-empty\n } catch { }\n };\n }, [currenttheme]);\n\n const isOnline = useOnlineStatus(sdkStore.sdk, logger);\n\n const localeStringSet = React.useMemo(() => {\n if (!stringSet) {\n return getStringSet('en');\n }\n return {\n ...getStringSet('en'),\n ...stringSet,\n };\n }, [stringSet]);\n\n return (\n {\n handleConnection({\n userId,\n appId,\n accessToken,\n sdkStore,\n nickname,\n profileUrl,\n logger,\n sdk: sdkStore.sdk,\n }, {\n sdkDispatcher,\n userDispatcher,\n });\n },\n },\n config: {\n disableUserProfile,\n renderUserProfile,\n allowProfileEdit,\n isOnline,\n userId,\n appId,\n accessToken,\n theme: currenttheme,\n setCurrenttheme,\n userListQuery,\n logger,\n pubSub,\n },\n }}\n >\n \n {children}\n \n \n );\n}\n\nSendbird.propTypes = {\n userId: PropTypes.string.isRequired,\n appId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n theme: PropTypes.string,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n userListQuery: PropTypes.func,\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }),\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n};\n\nSendbird.defaultProps = {\n accessToken: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n disableUserProfile: false,\n renderUserProfile: null,\n allowProfileEdit: false,\n userListQuery: null,\n config: {},\n stringSet: null,\n colorSet: null,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst UserProfileContext = React.createContext({\n disableUserProfile: true,\n renderUserProfile: null,\n});\n\nconst UserProfileProvider = (props) => {\n const { children, className } = props;\n return (\n \n
\n {children}\n
\n
\n );\n};\n\nUserProfileProvider.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n disableUserProfile: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n renderUserProfile: PropTypes.func,\n className: PropTypes.string,\n};\n\nUserProfileProvider.defaultProps = {\n className: null,\n disableUserProfile: false,\n renderUserProfile: null,\n};\n\nexport { UserProfileContext, UserProfileProvider };\n","export const RESET_CHANNEL_LIST = 'RESET_CHANNEL_LIST';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\nexport const UNLOAD_CHANNELS = 'UNLOAD_CHANNELS';\nexport const SET_CHANNEL_LOADING = 'SET_CHANNEL_LOADING';\nexport const LEAVE_CHANNEL_SUCCESS = 'LEAVE_CHANNEL_SUCCESS';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\n\nexport const SHOW_CHANNEL_SETTINGS = 'SHOW_CHANNEL_SETTINGS';\nexport const HIDE_CHANNEL_SETTINGS = 'HIDE_CHANNEL_SETTINGS';\n\nexport const FETCH_CHANNELS_START = 'FETCH_CHANNELS_START';\nexport const FETCH_CHANNELS_SUCCESS = 'FETCH_CHANNELS_SUCCESS';\nexport const FETCH_CHANNELS_FAILURE = 'FETCH_CHANNELS_FAILURE';\n\nexport const INIT_CHANNELS_START = 'INIT_CHANNELS_START';\nexport const INIT_CHANNELS_SUCCESS = 'INIT_CHANNELS_SUCCESS';\nexport const INIT_CHANNELS_FAILURE = 'INIT_CHANNELS_FAILURE';\n\nexport const INVITE_MEMBERS_SUCESS = 'INVITE_MEMBERS_SUCESS';\n\nexport const ON_USER_JOINED = 'ON_USER_JOINED';\nexport const ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED';\nexport const ON_LAST_MESSAGE_UPDATED = 'ON_LAST_MESSAGE_UPDATED';\nexport const ON_USER_LEFT = 'ON_USER_LEFT';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_CHANNEL_ARCHIVED = 'ON_CHANNEL_ARCHIVED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\n\nexport const ON_READ_RECEIPT_UPDATED = 'ON_READ_RECEIPT_UPDATED';\nexport const ON_DELIVERY_RECEIPT_UPDATED = 'ON_DELIVERY_RECEIPT_UPDATED';\n\nexport const CHANNEL_REPLACED_TO_TOP = 'CHANNEL_REPLACED_TO_TOP';\n","export default {\n // we might not need this initialized state -> should remove\n initialized: false,\n loading: false,\n allChannels: [],\n currentChannel: null,\n showSettings: false,\n};\n","import * as actions from './actionTypes';\nimport initialState from './initialState';\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actions.INIT_CHANNELS_START:\n return {\n ...state,\n loading: true,\n };\n case actions.RESET_CHANNEL_LIST:\n return initialState;\n case actions.INIT_CHANNELS_SUCCESS:\n return {\n ...state,\n initialized: true,\n loading: false,\n allChannels: action.payload,\n currentChannel: (action.payload && action.payload.length && action.payload.length > 0)\n ? action.payload[0].url\n : null,\n };\n case actions.FETCH_CHANNELS_SUCCESS: {\n const currentChannels = state.allChannels.map((c) => c.url);\n const filteredChannels = action.payload.filter(\n ({ url }) => !(currentChannels.find((c) => c === url)),\n );\n return {\n ...state,\n allChannels: [\n ...state.allChannels,\n ...filteredChannels,\n ],\n };\n }\n case actions.CREATE_CHANNEL: {\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter(\n (channel) => channel.url !== action.payload.url,\n )],\n currentChannel: action.payload.url,\n };\n }\n case actions.ON_CHANNEL_ARCHIVED:\n case actions.LEAVE_CHANNEL_SUCCESS:\n case actions.ON_CHANNEL_DELETED: {\n const channelUrl = action.payload;\n const leftCurrentChannel = (state.currentChannel === channelUrl);\n const newAllChannels = state.allChannels.filter(({ url }) => url !== channelUrl);\n const currentChannel = leftCurrentChannel\n ? (() => (\n (newAllChannels.length > 0)\n ? newAllChannels[0].url\n : ''\n ))()\n : state.currentChannel;\n\n return {\n ...state,\n currentChannel,\n allChannels: newAllChannels,\n };\n }\n case actions.ON_USER_LEFT: {\n const { channel, isMe } = action.payload;\n const { url } = channel;\n if (isMe) {\n const leftCurrentChannel = (url === state.currentChannel);\n const newAllChannels = state.allChannels.filter((c) => (c.url !== url));\n const currentChannel = leftCurrentChannel\n ? (() => (\n (newAllChannels.length > 0)\n ? newAllChannels[0].url\n : ''\n ))()\n : state.currentChannel;\n\n return {\n ...state,\n currentChannel,\n allChannels: newAllChannels,\n };\n }\n // other user left\n const newAllChannels = state.allChannels.map((c) => ((c.url === url) ? channel : c));\n return {\n ...state,\n allChannels: newAllChannels,\n };\n }\n case actions.ON_USER_JOINED:\n case actions.ON_CHANNEL_CHANGED:\n case actions.ON_READ_RECEIPT_UPDATED:\n case actions.ON_DELIVERY_RECEIPT_UPDATED: {\n const { allChannels = [] } = state;\n const { unreadMessageCount } = action.payload;\n const channel = action.payload;\n if (!channel.lastMessage) {\n return state;\n }\n // if its only an unread message count change, dont push to top\n if (unreadMessageCount === 0) {\n const currentChannel = allChannels.find(({ url }) => url === channel.url);\n const currentUnReadCount = currentChannel && currentChannel.unreadMessageCount;\n if (currentUnReadCount === 0) {\n return {\n ...state,\n allChannels: allChannels.map((c) => {\n if (c.url === channel.url) {\n return channel;\n }\n return c;\n }),\n };\n }\n }\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter(({ url }) => url !== action.payload.url),\n ],\n };\n }\n case actions.SET_CURRENT_CHANNEL:\n return {\n ...state,\n currentChannel: action.payload,\n };\n case actions.SHOW_CHANNEL_SETTINGS:\n return {\n ...state,\n showSettings: true,\n };\n case actions.HIDE_CHANNEL_SETTINGS:\n return {\n ...state,\n showSettings: false,\n };\n case actions.ON_LAST_MESSAGE_UPDATED:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n return action.payload;\n }\n return channel;\n }),\n };\n case actions.ON_CHANNEL_FROZEN:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n // eslint-disable-next-line no-param-reassign\n channel.isFrozen = true;\n return channel;\n }\n return channel;\n }),\n };\n case actions.ON_CHANNEL_UNFROZEN:\n return {\n ...state,\n allChannels: state.allChannels.map((channel) => {\n if (channel.url === action.payload.url) {\n // eslint-disable-next-line no-param-reassign\n channel.isFrozen = false;\n return channel;\n }\n return channel;\n }),\n };\n case actions.CHANNEL_REPLACED_TO_TOP:\n return {\n ...state,\n allChannels: [\n action.payload,\n ...state.allChannels.filter((channel) => channel.url !== action.payload.url),\n ],\n };\n default:\n return state;\n }\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\n/*\n ImageRenderer displays image with url or source\n it checks if the source exist with img tag first\n if it exists onLoad is called, if not onError is called\n and those properties switch img tag to real purposing element\n*/\n\nexport default function ImageRenderer({\n alt,\n url,\n width,\n height,\n className,\n defaultComponent,\n circle,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-image-renderer');\n const [realElement, setRealElement] = useState(null);\n useEffect(() => {\n setRealElement(null);\n }, [url]);\n return (\n realElement || (\n {\n setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent);\n }}\n onLoad={() => {\n setRealElement((\n \n ));\n }}\n />\n )\n );\n}\n\nImageRenderer.propTypes = {\n alt: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]).isRequired,\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n defaultComponent: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n circle: PropTypes.bool,\n};\nImageRenderer.defaultProps = {\n alt: '',\n className: '',\n circle: false,\n};\n","export default {\n ADD: 'ADD',\n ATTACH: 'ATTACH',\n ARROW_LEFT: 'ARROW_LEFT',\n AVATAR_DARK: 'AVATAR_DARK',\n AVATAR_LIGHT: 'AVATAR_LIGHT',\n BROADCAST_LARGE_DARK: 'BROADCAST_LARGE_DARK',\n BROADCAST_LARGE_LIGHT: 'BROADCAST_LARGE_LIGHT',\n BROADCAST_DARK: 'BROADCAST_DARK',\n BROADCAST_LIGHT: 'BROADCAST_LIGHT',\n BROADCAST: 'BROADCAST',\n FROZEN_DARK: 'FROZEN_DARK',\n FROZEN_LIGHT: 'FROZEN_LIGHT',\n CAMERA: 'CAMERA',\n MORE: 'MORE',\n MUTE: 'MUTE',\n NO_THUMBNAIL: 'NO_THUMBNAIL',\n CHECKBOX: 'CHECKBOX',\n CHECKBOX_OFF: 'CHECKBOX_OFF',\n CLOSE: 'CLOSE',\n COPY: 'COPY',\n CHAT: 'CHAT',\n CREATE: 'CREATE',\n DELETE: 'DELETE',\n DISCONNECTED: 'DISCONNECTED',\n DUMMY: 'DUMMY',\n EDIT: 'EDIT',\n ERROR: 'ERROR',\n ERROR_FILLED: 'ERROR_FILLED',\n EMOJI_FAILED: 'EMOJI_FAILED',\n EMOJI_REACTIONS_ADD: 'EMOJI_REACTIONS_ADD',\n EMOJI_REACTIONS_ADD_GRAY: 'EMOJI_REACTIONS_ADD_GRAY',\n DELIVERED: 'DELIVERED',\n DOCUMENT: 'DOCUMENT',\n DOWNLOAD: 'DOWNLOAD',\n FILE_AUDIO: 'FILE_AUDIO',\n FILE_DOCUMENT: 'FILE_DOCUMENT',\n GIF: 'GIF',\n INFO: 'INFO',\n LEAVE: 'LEAVE',\n MEMBERS: 'MEMBERS',\n NOTIFICATIONS: 'NOTIFICATIONS',\n PHOTO: 'PHOTO',\n PLAY: 'PLAY',\n PLUS: 'PLUS',\n READ: 'READ',\n REFRESH: 'REFRESH',\n SEND: 'SEND',\n SENT: 'SENT',\n SUPER_GROUP: 'SUPER_GROUP',\n SHEVRON: 'SHEVRON',\n SHEVRON_DOWN: 'SHEVRON_DOWN',\n SPINNER: 'SPINNER',\n SPINNER_LARGE: 'SPINNER_LARGE',\n USER: 'USER',\n ICON_OPERATOR: 'ICON_OPERATOR',\n ICON_BANNED: 'ICON_BANNED',\n ICON_FREEZE: 'ICON_FREEZE',\n ICON_MUTED: 'ICON_MUTED',\n ICON_MUTED_FG: 'ICON_MUTED_FG',\n TOGGLE_ON: 'TOGGLE_ON',\n TOGGLE_OFF: 'TOGGLE_OFF',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Type from './type';\n\nimport IconAdd from '../../svgs/icon-add.svg';\nimport IconAttach from '../../svgs/icon-attach.svg';\nimport IconArrowLeft from '../../svgs/icon-arrow-left.svg';\nimport IconAvatarDark from '../../svgs/icon-avatar-dark.svg';\nimport IconAvatarLight from '../../svgs/icon-avatar-light.svg';\nimport BroadcastLargeDark from '../../svgs/icon-broadcast-lrg-dark.svg';\nimport BroadcastLargeLight from '../../svgs/icon-broadcast-lrg-light.svg';\nimport BroadcastDark from '../../svgs/icon-broadcast-dark.svg';\nimport BroadcastLight from '../../svgs/icon-broadcast-light.svg';\nimport Broadcast from '../../svgs/icon-broadcast.svg';\nimport FrozenDark from '../../svgs/frozen-dark.svg';\nimport FrozenLight from '../../svgs/frozen-light.svg';\nimport IconCamera from '../../svgs/icon-camera.svg';\nimport IconMore from '../../svgs/icon-more.svg';\nimport IconMute from '../../svgs/icon-mute.svg';\nimport IconNoThumbnail from '../../svgs/icon-no-thumbnail.svg';\nimport IconCheckbox from '../../svgs/icon-checkbox.svg';\nimport IconCheckboxOff from '../../svgs/icon-checkbox-off.svg';\nimport IconClose from '../../svgs/icon-close.svg';\nimport IconCopy from '../../svgs/icon-copy.svg';\nimport IconChat from '../../svgs/icon-chat.svg';\nimport IconSupergroup from '../../svgs/icon-supergroup.svg';\nimport IconCreate from '../../svgs/icon-create.svg';\nimport IconDelete from '../../svgs/icon-delete.svg';\nimport IconDummy from '../../svgs/icon-dummy.svg';\nimport IconEdit from '../../svgs/icon-edit.svg';\nimport IconError from '../../svgs/icon-error.svg';\nimport IconErrorFilled from '../../svgs/icon-error-filled.svg';\nimport IconEmojiFailed from '../../svgs/emoji-fail.svg';\nimport IconEmojiReactionsAdd from '../../svgs/icon-reactions-add.svg';\nimport IconEmojiReactionsAddGray from '../../svgs/icon-emoji-reactions-add.svg';\nimport IconDelivered from '../../svgs/icon-delivered.svg';\nimport IconDisconnected from '../../svgs/icon-disconnected.svg';\nimport IconDocument from '../../svgs/icon-document.svg';\nimport IconDownload from '../../svgs/icon-download.svg';\nimport IconFileAudio from '../../svgs/icon-file-audio.svg';\nimport IconFileDocument from '../../svgs/icon-file-document.svg';\nimport IconGif from '../../svgs/icon-gif.svg';\nimport IconInfo from '../../svgs/icon-info.svg';\nimport IconLeave from '../../svgs/icon-leave.svg';\nimport IconMembers from '../../svgs/icon-members.svg';\nimport IconNotifications from '../../svgs/icon-notifications.svg';\nimport IconPhoto from '../../svgs/icon-photo.svg';\nimport IconPlay from '../../svgs/icon-play.svg';\nimport IconPlus from '../../svgs/icon-plus.svg';\nimport IconRead from '../../svgs/icon-read.svg';\nimport IconRefresh from '../../svgs/icon-refresh.svg';\nimport IconSend from '../../svgs/icon-send.svg';\nimport IconSent from '../../svgs/icon-sent.svg';\nimport IconShevron from '../../svgs/icon-shevron.svg';\nimport IconShevronDown from '../../svgs/icon-shevron-down.svg';\nimport IconSpinner from '../../svgs/icon-spinner-small.svg';\nimport IconSpinnerLarge from '../../svgs/icon-spinner-large.svg';\nimport IconUser from '../../svgs/icon-user.svg';\nimport IconOperator from '../../svgs/icon-operator.svg';\nimport IconBanned from '../../svgs/icon-banned.svg';\nimport IconMuted from '../../svgs/icon-muted.svg';\nimport IconMutedFg from '../../svgs/icon-muted-foreground.svg';\nimport IconFreeze from '../../svgs/icon-freeze.svg';\nimport ToggleOn from '../../svgs/icon-toggleon.svg';\nimport ToggleOff from '../../svgs/icon-toggleoff.svg';\n\nconst Colors = {\n DEFAULT: 'DEFAULT',\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n CONTENT: 'CONTENT',\n CONTENT_INVERSE: 'CONTENT_INVERSE',\n WHITE: 'WHITE',\n SENT: 'SENT',\n READ: 'READ',\n ON_BACKGROUND_3: 'ON_BACKGROUND_3',\n};\n\nfunction changeColorToClassName(color) {\n switch (color) {\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.SECONDARY: return 'sendbird-color--secondary';\n case Colors.CONTENT: return 'sendbird-color--content';\n case Colors.CONTENT_INVERSE: return 'sendbird-color--content-inverse';\n case Colors.WHITE: return 'sendbird-color--white';\n case Colors.SENT: return 'sendbird-color--sent';\n case Colors.READ: return 'sendbird-color--read';\n case Colors.ON_BACKGROUND_3: return 'sendbird-color--on-background';\n default: return '';\n }\n}\n\nfunction changeTypeToIconComponent(type) {\n switch (type) {\n case Type.ADD: return ;\n case Type.ARROW_LEFT: return ;\n case Type.CAMERA: return ;\n case Type.ATTACH: return ;\n case Type.AVATAR_DARK: return ;\n case Type.AVATAR_LIGHT: return ;\n case Type.BROADCAST_LARGE_DARK: return ;\n case Type.BROADCAST_LARGE_LIGHT: return ;\n case Type.BROADCAST_DARK: return ;\n case Type.BROADCAST_LIGHT: return ;\n case Type.BROADCAST: return ;\n case Type.FROZEN_DARK: return ;\n case Type.FROZEN_LIGHT: return ;\n case Type.MORE: return ;\n case Type.MUTE: return ;\n case Type.NO_THUMBNAIL: return ;\n case Type.CHECKBOX: return ;\n case Type.CHECKBOX_OFF: return ;\n case Type.CLOSE: return ;\n case Type.COPY: return ;\n case Type.CHAT: return ;\n case Type.SUPER_GROUP: return ;\n case Type.CREATE: return ;\n case Type.DELETE: return ;\n case Type.DISCONNECTED: return ;\n case Type.DUMMY: return ;\n case Type.EDIT: return ;\n case Type.ERROR: return ;\n case Type.ERROR_FILLED: return ;\n case Type.EMOJI_FAILED: return ;\n case Type.EMOJI_REACTIONS_ADD: return ;\n case Type.EMOJI_REACTIONS_ADD_GRAY: return ;\n case Type.DELIVERED: return ;\n case Type.DOCUMENT: return ;\n case Type.DOWNLOAD: return ;\n case Type.FILE_AUDIO: return ;\n case Type.FILE_DOCUMENT: return ;\n case Type.GIF: return ;\n case Type.INFO: return ;\n case Type.LEAVE: return ;\n case Type.MEMBERS: return ;\n case Type.NOTIFICATIONS: return ;\n case Type.PHOTO: return ;\n case Type.PLAY: return ;\n case Type.PLUS: return ;\n case Type.READ: return ;\n case Type.REFRESH: return ;\n case Type.SEND: return ;\n case Type.SENT: return ;\n case Type.SHEVRON: return ;\n case Type.SHEVRON_DOWN: return ;\n case Type.SPINNER: return ;\n case Type.SPINNER_LARGE: return ;\n case Type.USER: return ;\n case Type.ICON_OPERATOR: return ;\n case Type.ICON_BANNED: return ;\n case Type.ICON_MUTED: return ;\n case Type.ICON_MUTED_FG: return ;\n case Type.ICON_FREEZE: return ;\n case Type.TOGGLE_ON: return ;\n case Type.TOGGLE_OFF: return ;\n default: return null;\n }\n}\n\nexport default function Icon({\n type,\n width,\n height,\n children,\n className,\n onClick,\n fillColor,\n}) {\n const iconStyle = {\n width: typeof width === 'string' ? width : `${width}px`,\n height: typeof height === 'string' ? height : `${height}px`,\n };\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {\n children || changeTypeToIconComponent(type)\n }\n \n );\n}\n\nIcon.propTypes = {\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(Type)),\n PropTypes.string,\n ]).isRequired,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n onClick: PropTypes.func,\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n fillColor: PropTypes.oneOf(Object.keys(Colors)),\n};\n\nIcon.defaultProps = {\n onClick: () => { },\n width: 26,\n height: 26,\n children: null,\n className: '',\n fillColor: Colors.DEFAULT,\n};\n\nexport const IconTypes = Type;\nexport const IconColors = Colors;\n","import React, { ReactElement } from 'react';\n\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes } from '../Icon';\n\nimport './index.scss';\nimport { uuidv4 } from '../../utils/uuid';\n\nconst imageRendererClassName = 'sendbird-avatar-img';\n\ninterface DefaultComponentProps {\n width: string | number,\n height: string | number,\n}\n\nconst defaultComponent = (\n {\n width,\n height,\n }: DefaultComponentProps\n) => (): ReactElement => (\n document.querySelector('.sendbird-theme--dark')\n ? \n : \n);\n\ninterface AvatarInnerProps {\n height: string | number,\n width: string | number,\n src?: string | string[],\n alt?: string,\n}\n\nexport const AvatarInner = ({\n src = '',\n alt = '',\n height,\n width,\n}: AvatarInnerProps): ReactElement => {\n if (typeof src === 'string') {\n return (\n \n );\n }\n\n if (src && src.length) {\n if (src.length === 1) {\n return (\n \n );\n }\n\n if (src.length === 2) {\n return (\n
\n \n \n
\n );\n }\n\n if (src.length === 3) {\n return (\n <>\n
\n \n
\n
\n \n \n
\n \n );\n }\n\n return (\n
\n {\n src.slice(0, 4)\n .map((i) => (\n \n ))\n }\n
\n );\n }\n // default img\n return (\n \n );\n};\n\ninterface AvatarProps {\n height?: string | number,\n width?: string | number,\n src?: string | string[],\n alt?: string,\n onClick?(): void,\n className?: string | string[],\n}\n\nfunction Avatar(\n {\n src = '',\n alt = '',\n width = '56px',\n height = '56px',\n onClick,\n className = '',\n }: AvatarProps,\n ref: React.Ref,\n): ReactElement {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n \n \n );\n}\n\nexport default React.forwardRef(Avatar);\n","import { SendbirdTypes } from \"../../types\";\n\nexport const DEFAULT_URL_PREFIX = 'https://static.sendbird.com/sample/cover/cover_';\n\nexport const getChannelAvatarSource = (channel: SendbirdTypes[\"GroupChannel\"], currentUserId: string): string | string[] => {\n if (channel && channel.coverUrl) {\n if (!(new RegExp(`^${DEFAULT_URL_PREFIX}`).test(channel.coverUrl))) {\n return channel.coverUrl;\n }\n }\n\n return channel && channel.members\n ? channel.members\n .filter((member) => member.userId !== currentUserId)\n .map(({ profileUrl }) => profileUrl)\n : [];\n};\n\n\nexport const useDefaultAvatar = (channel: SendbirdTypes[\"GroupChannel\"]): boolean => {\n if (channel && channel.coverUrl) {\n if (new RegExp(`^${DEFAULT_URL_PREFIX}`).test(channel.coverUrl)) {\n return true;\n }\n return false;\n }\n return true;\n}\n","import React, { useMemo } from 'react';\n\nimport { SendbirdTypes } from '../../types';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes } from '../Icon';\n\nimport * as utils from './utils';\n\ninterface Props {\n channel: SendbirdTypes[\"GroupChannel\"];\n userId: string;\n theme: string;\n height: number,\n width: number,\n}\n\nfunction ChannelAvatar({\n channel,\n userId,\n theme,\n height = 56,\n width = 56,\n}: Props): JSX.Element{\n const { isBroadcast } = channel;\n const memoizedAvatar = useMemo(() => (\n isBroadcast\n ? (\n utils.useDefaultAvatar(channel)\n ? (\n theme === 'dark'\n ? (\n \n )\n : (\n \n )\n )\n : (\n \n )\n )\n : (\n \n )\n ),[channel.members, channel.coverUrl, theme]);\n return (\n <>{ memoizedAvatar }\n );\n}\n\nexport default ChannelAvatar;\n","export const Typography = {\n H_1: 'H_1',\n H_2: 'H_2',\n SUBTITLE_1: 'SUBTITLE_1',\n SUBTITLE_2: 'SUBTITLE_2',\n BODY_1: 'BODY_1',\n BODY_2: 'BODY_2',\n BUTTON_1: 'BUTTON_1',\n BUTTON_2: 'BUTTON_2',\n CAPTION_1: 'CAPTION_1',\n CAPTION_2: 'CAPTION_2',\n CAPTION_3: 'CAPTION_3',\n};\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONCONTENT_1: 'ONCONTENT_1',\n ONCONTENT_2: 'ONCONTENT_2',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n","import { Typography, Colors } from './types';\n\nexport function changeTypographyToClassName(type) {\n switch (type) {\n case Typography.H_1: return 'sendbird-label--h-1';\n case Typography.H_2: return 'sendbird-label--h-2';\n case Typography.SUBTITLE_1: return 'sendbird-label--subtitle-1';\n case Typography.SUBTITLE_2: return 'sendbird-label--subtitle-2';\n case Typography.BODY_1: return 'sendbird-label--body-1';\n case Typography.BODY_2: return 'sendbird-label--body-2';\n case Typography.BUTTON_1: return 'sendbird-label--button-1';\n case Typography.BUTTON_2: return 'sendbird-label--button-2';\n case Typography.CAPTION_1: return 'sendbird-label--caption-1';\n case Typography.CAPTION_2: return 'sendbird-label--caption-2';\n case Typography.CAPTION_3: return 'sendbird-label--caption-3';\n default: return null;\n }\n}\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-label--color-onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-label--color-onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-label--color-onbackground-3';\n case Colors.ONCONTENT_1: return 'sendbird-label--color-oncontent-1';\n case Colors.ONCONTENT_2: return 'sendbird-label--color-oncontent-2';\n case Colors.PRIMARY: return 'sendbird-label--color-primary';\n case Colors.ERROR: return 'sendbird-label--color-error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { Typography, Colors } from './types';\nimport { changeTypographyToClassName, changeColorToClassName } from './utils';\nimport getStringSet from './stringSet';\n\nconst CLASS_NAME = 'sendbird-label';\n\nexport default function Label({\n type,\n color,\n children,\n className,\n}) {\n const injectingClassName = (Array.isArray(className))\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n if (type) {\n injectingClassName.push(changeTypographyToClassName(type));\n }\n if (color) {\n injectingClassName.push(changeColorToClassName(color));\n }\n\n return (\n \n {children}\n \n );\n}\n\nLabel.propTypes = {\n type: PropTypes.oneOf([...Object.keys(Typography), '']),\n color: PropTypes.oneOf([...Object.keys(Colors), '']),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.element,\n PropTypes.any,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nLabel.defaultProps = {\n type: '',\n color: '',\n className: [],\n children: null,\n};\n\nconst LabelTypography = Typography;\nconst LabelColors = Colors;\nconst LabelStringSet = getStringSet('en');\nexport { LabelTypography, LabelColors, LabelStringSet };\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function Badge({\n count,\n maxLevel,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const maximumNumber = parseInt('9'.repeat((maxLevel > 6) ? 6 : maxLevel), 10);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n
\n \n
\n
\n );\n}\n\nBadge.propTypes = {\n count: PropTypes.number.isRequired,\n maxLevel: PropTypes.number,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nBadge.defaultProps = {\n maxLevel: 2,\n className: [],\n};\n","const MessageStatusType = {\n PENDING: 'PENDING',\n SENT: 'SENT',\n DELIVERED: 'DELIVERED',\n READ: 'READ',\n FAILED: 'FAILED',\n};\n\nexport default MessageStatusType;\n","import MessageStatusType from '../MessageStatus/type';\n\nexport const truncate = (fullStr, strLen) => {\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n truncate,\n getIsSentFromStatus,\n};\n","import isToday from 'date-fns/isToday';\nimport format from 'date-fns/format';\nimport isYesterday from 'date-fns/isYesterday';\n\nimport { truncate } from '../FileMessage/utils';\nimport { LabelStringSet } from '../Label';\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n\nexport const getLastMessageCreatedAt = (channel) => {\n if (!channel || !channel.lastMessage) {\n return '';\n }\n const date = channel.lastMessage.createdAt;\n if (isToday(date)) {\n return format(date, 'p');\n }\n\n if (isYesterday(date)) {\n return 'Yesterday';\n }\n\n return format(date, 'MMM dd');\n};\n\nexport const getTotalMembers = (channel) => (\n channel && channel.memberCount\n ? channel.memberCount\n : 0\n);\n\nconst getPrettyLastMessage = (message = {}) => {\n const MAXLEN = 30;\n const { messageType, name } = message;\n if (messageType === 'file') {\n return truncate(name, MAXLEN);\n }\n return message.message;\n};\n\nexport const getLastMessage = (channel) => (\n channel && channel.lastMessage\n ? getPrettyLastMessage(channel.lastMessage)\n : ''\n);\n\nexport const getChannelUnreadMessageCount = (channel) => (\n (channel && channel.unreadMessageCount)\n ? channel.unreadMessageCount\n : 0\n);\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ChannelAvatar from '../ChannelAvatar/index';\nimport Badge from '../Badge';\nimport Icon, { IconTypes } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport * as utils from './utils';\n\nexport default function ChannelPreview({\n channel,\n isActive,\n ChannelAction,\n theme,\n onClick,\n tabIndex,\n currentUser,\n}) {\n const {\n userId,\n } = currentUser;\n const { isBroadcast, isFrozen } = channel;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n \n
\n
\n {\n isBroadcast\n && (\n
\n \n
\n )\n }\n \n {utils.getChannelTitle(channel, userId, stringSet)}\n \n \n {utils.getTotalMembers(channel)}\n \n {\n isFrozen\n && (\n
\n \n
\n )\n }\n
\n \n {utils.getLastMessageCreatedAt(channel)}\n \n
\n\n
\n \n {utils.getLastMessage(channel)}\n \n
\n {\n utils.getChannelUnreadMessageCount(channel)\n ? \n : null\n }\n
\n
\n \n \n {ChannelAction}\n \n \n );\n}\n\nChannelPreview.propTypes = {\n isActive: PropTypes.bool,\n theme: PropTypes.string,\n channel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n isBroadcast: PropTypes.bool,\n isFrozen: PropTypes.bool,\n }),\n ChannelAction: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n tabIndex: PropTypes.number,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n};\n\nChannelPreview.defaultProps = {\n channel: {},\n isActive: false,\n theme: 'light',\n onClick: () => { },\n tabIndex: 0,\n currentUser: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-iconbutton';\n\nconst IconButton = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n disabled = false,\n type,\n height,\n width,\n onClick,\n onBlur,\n } = props;\n\n const [pressed, setPressed] = useState('');\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n // eslint-disable-next-line react/button-has-type\n {\n if (disabled) { return; }\n setPressed('sendbird-iconbutton--pressed');\n onClick(e);\n }}\n onBlur={(e) => {\n setPressed('');\n onBlur(e);\n }}\n >\n \n {children}\n \n \n );\n});\n\nIconButton.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n};\n\nIconButton.defaultProps = {\n height: '56px',\n width: '56px',\n className: '',\n type: 'button',\n disabled: false,\n onClick: () => { },\n onBlur: () => { },\n};\n\nexport default IconButton;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport IconButton from '../IconButton';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\n\nexport default function ChannelHeader({\n user,\n iconButton,\n onEdit,\n renderHeader,\n allowProfileEdit,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n renderHeader\n ? renderHeader()\n : (\n \n
\n \n
\n
\n \n {user.nickname || stringSet.NO_NAME}\n \n \n {user.userId}\n \n
\n \n )\n }\n
\n {iconButton}\n
\n \n );\n}\n\nChannelHeader.propTypes = {\n user: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n userId: PropTypes.string,\n }),\n renderHeader: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n onEdit: PropTypes.func.isRequired,\n iconButton: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.instanceOf(IconButton),\n ]),\n};\n\nChannelHeader.defaultProps = {\n user: {},\n renderHeader: null,\n allowProfileEdit: false,\n iconButton: null,\n};\n","// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n
\n);\n","export const Type = {\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n DANGER: 'DANGER',\n DISABLED: 'DISABLED',\n};\n\nexport const Size = {\n BIG: 'BIG',\n SMALL: 'SMALL',\n};\n","import { Type, Size } from './type';\n\nexport function changeTypeToClassName(type) {\n switch (type) {\n case Type.PRIMARY: return 'sendbird-button--primary';\n case Type.SECONDARY: return 'sendbird-button--secondary';\n case Type.DANGER: return 'sendbird-button--danger';\n case Type.DISABLED: return 'sendbird-button--disabled';\n default: return null;\n }\n}\n\nexport function changeSizeToClassName(size) {\n switch (size) {\n case Size.BIG: return 'sendbird-button--big';\n case Size.SMALL: return 'sendbird-button--small';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { Type, Size } from './type';\nimport { changeTypeToClassName, changeSizeToClassName } from './utils';\n\nexport default function Button({\n type,\n size,\n children,\n disabled,\n onClick,\n className,\n}) {\n const injectingClassNames = [\n 'sendbird-button',\n (disabled ? 'sendbird-button__disabled' : ''),\n changeTypeToClassName(type),\n changeSizeToClassName(size),\n ...((Array.isArray(className)) ? className : [className]),\n ].join(' ');\n\n return (\n \n );\n}\n\nButton.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n disabled: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(Type)),\n size: PropTypes.oneOf(Object.keys(Size)),\n onClick: PropTypes.func,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nButton.defaultProps = {\n children: 'Button',\n type: Type.PRIMARY,\n disabled: false,\n size: Size.BIG,\n onClick: () => { },\n className: '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport const ModalHeader = ({ titleText }) => (\n
\n \n
\n);\nModalHeader.propTypes = {\n titleText: PropTypes.string.isRequired,\n};\n\nexport const ModalBody = ({ children }) => (\n
{children}
\n);\nModalBody.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element.isRequired,\n PropTypes.arrayOf(PropTypes.element.isRequired),\n ]),\n};\nModalBody.defaultProps = {\n children: null,\n};\n\nexport const ModalFooter = ({\n onSubmit,\n onCancel,\n disabled = false,\n submitText,\n type,\n}) => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n \n
\n );\n};\n\nModalFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModalFooter.defaultProps = {\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nfunction Modal(props) {\n const {\n children,\n onCancel,\n onSubmit,\n disabled,\n submitText,\n titleText,\n hideFooter,\n type,\n } = props;\n return createPortal((\n
\n
\n \n {children}\n {\n !hideFooter && (\n \n )\n }\n
\n \n \n \n
\n
\n
\n
\n ), document.getElementById(MODAL_ROOT));\n}\n\nModal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]),\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n hideFooter: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\nModal.defaultProps = {\n children: null,\n hideFooter: false,\n disabled: false,\n type: ButtonTypes.DANGER,\n};\n\nexport default Modal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nexport const InputLabel = ({ children }) => (\n \n {children}\n \n);\n\nInputLabel.propTypes = {\n children: PropTypes.string.isRequired,\n};\n\n// future: add validations? onChange? more props etc etc\nconst Input = React.forwardRef((props, ref) => {\n const {\n value,\n placeHolder,\n disabled,\n name,\n required,\n } = props;\n const [inputValue, setInputValue] = useState(value);\n return (\n
\n {\n setInputValue(e.target.value);\n }}\n />\n {(placeHolder && !inputValue) && (\n \n {placeHolder}\n \n )}\n
\n );\n});\n\nInput.propTypes = {\n value: PropTypes.string,\n placeHolder: PropTypes.string,\n name: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n};\n\nInput.defaultProps = {\n value: '',\n placeHolder: '',\n disabled: false,\n required: false,\n};\n\nexport default Input;\n","import './color.scss';\n\nexport const Colors = {\n ONBACKGROUND_1: 'ONBACKGROUND_1',\n ONBACKGROUND_2: 'ONBACKGROUND_2',\n ONBACKGROUND_3: 'ONBACKGROUND_3',\n ONBACKGROUND_4: 'ONBACKGROUND_4',\n ONCONTENT_1: 'ONCONTENT_1',\n PRIMARY: 'PRIMARY',\n ERROR: 'ERROR',\n};\n\nexport function changeColorToClassName(color) {\n switch (color) {\n case Colors.ONBACKGROUND_1: return 'sendbird-color--onbackground-1';\n case Colors.ONBACKGROUND_2: return 'sendbird-color--onbackground-2';\n case Colors.ONBACKGROUND_3: return 'sendbird-color--onbackground-3';\n case Colors.ONBACKGROUND_4: return 'sendbird-color--onbackground-4';\n case Colors.ONCONTENT_1: return 'sendbird-color--oncontent-1';\n case Colors.PRIMARY: return 'sendbird-color--primary';\n case Colors.ERROR: return 'sendbird-color--error';\n default: return null;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\n\nexport default function TextButton({\n color,\n children,\n disabled,\n className,\n onClick,\n notUnderline,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n
\n );\n}\n\nTextButton.propTypes = {\n color: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClick: PropTypes.func,\n notUnderline: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nTextButton.defaultProps = {\n color: Colors.ONBACKGROUND_1,\n className: '',\n onClick: () => { },\n notUnderline: false,\n disabled: false,\n};\n","import format from 'date-fns/format';\n\nexport const noop = () => {};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport default {\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n};\n","import React, {\n ReactElement,\n useRef,\n useState,\n useContext,\n} from 'react';\nimport './index.scss';\n\nimport Modal from '../Modal';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport Input, { InputLabel } from '../Input';\nimport Avatar from '../Avatar';\nimport Icon, { IconTypes } from '../Icon';\nimport { Type as ButtonType } from '../Button/type';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport TextButton from '../TextButton';\nimport { SendbirdTypes } from '../../types';\nimport { noop } from '../../utils/utils';\n\ninterface Props {\n user: SendbirdTypes['User'];\n onCancel(): void;\n onSubmit(newFile: File, newNickname: string): void;\n onThemeChange?(theme: string): void;\n theme?: string;\n changeTheme?(theme: string): void;\n}\n\nexport function EditUserProfile({\n user,\n onCancel,\n onSubmit,\n onThemeChange = null,\n theme = 'light',\n changeTheme = noop,\n}: Props): ReactElement {\n const hiddenInputRef = useRef(null);\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n\n return (\n {\n if (user.nickname !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(inputRef.current.value, newFile);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.EDIT_PROFILE__IMAGE_LABEL}\n \n
\n \n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.EDIT_PROFILE__NICKNAME_LABEL}\n \n \n
\n
\n \n {/* userID */}\n {stringSet.EDIT_PROFILE__USERID_LABEL}\n \n \n
\n
\n \n {stringSet.EDIT_PROFILE__THEME_LABEL}\n \n
\n {\n theme === 'dark'\n ? (\n {\n changeTheme('light');\n if (onThemeChange && typeof onThemeChange === 'function') {\n onThemeChange('light');\n }\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n {\n changeTheme('dark');\n if (onThemeChange && typeof onThemeChange === 'function') {\n onThemeChange('dark');\n }\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nconst mapStoreToProps = (store) => {\n return {\n theme: store.config.theme,\n changeTheme: store.config.setCurrenttheme,\n };\n};\n\ninterface ConnectedEditUserProfileProps {\n user: SendbirdTypes['User'];\n onCancel(): void;\n onSubmit(newFile: File, newNickname: string): void;\n onThemeChange?(theme: string): void;\n}\n\nconst ConnectedEditUserProfile: (\n props: ConnectedEditUserProfileProps\n) => React.Component = withSendbirdContext(EditUserProfile, mapStoreToProps);\n\nexport default ConnectedEditUserProfile;\n","export function Types() {\n return {\n LOADING: 'LOADING',\n NO_CHANNELS: 'NO_CHANNELS',\n WRONG: 'WRONG',\n };\n}\n\nexport default Types();\n","import './muted-avatar-overlay.scss';\n\nimport React, { ReactElement } from 'react'\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\ninterface Props {\n height?: number;\n width?: number;\n}\n\nexport default function MutedAvatarOverlay(props: Props): ReactElement {\n const { height = 24, width = 24 } = props;\n return (\n \n
\n \n \n
\n
\n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nexport default function Checkbox({\n id,\n checked,\n onChange,\n}) {\n const [isChecked, setCheck] = useState(checked);\n return (\n \n );\n}\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nCheckbox.defaultProps = {\n id: 'sendbird-checkbox-input',\n checked: false,\n onChange: () => { },\n};\n","export const USER_UPDATED = 'USER_UPDATED';\nexport const SEND_MESSAGE_START = 'SEND_MESSAGE_START';\nexport const SEND_USER_MESSAGE = 'SEND_USER_MESSAGE';\nexport const SEND_FILE_MESSAGE = 'SEND_FILE_MESSAGE';\nexport const UPDATE_USER_MESSAGE = 'UPDATE_USER_MESSAGE';\nexport const DELETE_MESSAGE = 'DELETE_MESSAGE';\nexport const LEAVE_CHANNEL = 'LEAVE_CHANNEL';\nexport const CREATE_CHANNEL = 'CREATE_CHANNEL';\n","import * as topics from './pubSub/topics';\n\nexport const getSdk = (store) => {\n const { stores = {} } = store;\n const { sdkStore = {} } = stores;\n const { sdk } = sdkStore;\n return sdk;\n};\n\nexport const getPubSub = (store) => {\n const { config = {} } = store;\n const { pubSub } = config;\n return pubSub;\n};\n\n// SendBird disconnect. Invalidates currentUser\n// eslint-disable-next-line max-len\nexport const getConnect = (store) => (userId, accessToken) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n if (!accessToken) {\n sdk.connect(userId)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n } else {\n sdk.connect(userId, accessToken)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n }\n});\n\n// SendBird disconnect. Invalidates currentUser\nexport const getDisconnect = (store) => () => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.disconnect()\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\n// Using the updateCurrentUserInfo() method\n// you can update a user's nickname and profile image with a URL\n// eslint-disable-next-line max-len\nexport const getUpdateUserInfo = (store) => (nickName, profileUrl) => new Promise((resolve, reject) => {\n const sdk = getSdk(store);\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.updateCurrentUserInfo(nickName, profileUrl)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n});\n\nexport const getSendUserMessage = (store) => (channelUrl, userMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendUserMessage(userMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n });\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getSendFileMessage = (store) => (channelUrl, fileMessageParams) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const promisify = () => {\n let pendingMsg = null;\n const pendingPromise = new Promise((resolve_, reject_) => {\n pendingMsg = channel.sendFileMessage(fileMessageParams, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject_(error);\n return;\n }\n resolve_(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n });\n });\n if (fileMessageParams.file) {\n // keep the file's local version in pendingMsg.localUrl\n // because promise doesnt allow overriding of pendingMsg.url\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = URL.createObjectURL(fileMessageParams.file);\n }\n if (fileMessageParams.fileUrl) {\n // eslint-disable-next-line no-param-reassign\n pendingMsg.localUrl = fileMessageParams.fileUrl;\n }\n // eslint-disable-next-line no-param-reassign\n pendingMsg.requestState = 'pending';\n pubsub.publish(\n topics.SEND_MESSAGE_START,\n {\n message: pendingMsg,\n channel,\n },\n );\n pendingPromise.get = () => pendingMsg;\n return pendingPromise;\n };\n resolve(promisify());\n })\n .catch(reject);\n });\n};\nexport const getUpdateUserMessage = (store) => (channelUrl, messageId, params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.updateUserMessage(messageId, params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel,\n // workaround for updating channelPreview on message-edit\n // https://sendbird.atlassian.net/browse/UIKIT-268\n fromSelector: true,\n },\n );\n });\n })\n .catch(reject);\n });\n};\nexport const getDeleteMessage = (store) => (channelUrl, message) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n const { messageId } = message;\n channel.deleteMessage(message, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let error = err;\n if (swapParams) {\n error = res;\n }\n\n if (error) {\n reject(error);\n return;\n }\n resolve(message);\n pubsub.publish(\n topics.DELETE_MESSAGE,\n {\n messageId,\n channel,\n },\n );\n });\n })\n .catch(reject);\n });\n};\n\nexport const getResendUserMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendUserMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_USER_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getResendFileMessage = (store) => (channelUrl, failedMessage) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.resendFileMessage(failedMessage)\n .then((message) => {\n resolve(message);\n pubsub.publish(\n topics.SEND_FILE_MESSAGE,\n {\n message,\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getCreateChannel = (store) => (params) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.createChannel(params)\n .then((channel) => {\n resolve(channel);\n pubsub.publish(\n topics.CREATE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n });\n};\n\nexport const getLeaveChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n const pubsub = getPubSub(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.leave()\n .then(() => {\n resolve(channel);\n pubsub.publish(\n topics.LEAVE_CHANNEL,\n {\n channel,\n },\n );\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.freeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport const getUnFreezeChannel = (store) => (channelUrl) => {\n const sdk = getSdk(store);\n return new Promise((resolve, reject) => {\n if (!sdk) {\n reject(new Error('Sdk not found'));\n }\n sdk.GroupChannel.getChannel(channelUrl)\n .then((channel) => {\n channel.unfreeze()\n .then(() => {\n // do not need pubsub here - event listener works\n resolve(channel);\n })\n .catch(reject);\n })\n .catch(reject);\n });\n};\n\nexport default {\n getSdk,\n getConnect,\n getDisconnect,\n getUpdateUserInfo,\n getSendUserMessage,\n getSendFileMessage,\n getUpdateUserMessage,\n getDeleteMessage,\n getResendUserMessage,\n getResendFileMessage,\n getFreezeChannel,\n getUnFreezeChannel,\n getCreateChannel,\n getLeaveChannel,\n};\n","import React, { ReactElement, useContext } from 'react';\nimport { SendbirdTypes } from '../../types';\nimport './index.scss';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { getSdk, getCreateChannel } from '../../lib/selectors';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Button from '../Button';\nimport { Type as ButtonTypes } from '../Button/type';\n\ninterface Logger {\n info?(message: string, channel: SendbirdTypes['GroupChannel']): void;\n}\n\ninterface Props {\n user: SendbirdTypes['User'];\n currentUserId?: string;\n sdk?: SendbirdTypes['SendBirdInstance'];\n logger?: Logger;\n createChannel?(params: SendbirdTypes['GroupChannelParams']): Promise;\n onSuccess?(): void;\n}\n\nfunction UserProfile({\n user,\n currentUserId,\n sdk,\n logger,\n createChannel,\n onSuccess,\n}: Props): ReactElement {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n
\n
\n \n
\n {\n user.userId !== currentUserId && (\n
\n {\n const params = new sdk.GroupChannelParams();\n params.isDistinct = true;\n params.addUserIds([user.userId]);\n onSuccess();\n createChannel(params)\n .then((groupChannel) => {\n logger.info('UserProfile, channel create', groupChannel);\n });\n }}\n >\n {stringSet.USER_PROFILE__MESSAGE}\n \n
\n )\n }\n
\n
\n \n {stringSet.USER_PROFILE__USER_ID}\n \n \n {user.userId}\n \n
\n
\n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n createChannel: getCreateChannel(store),\n logger: store.config.logger,\n pubsub: store.config.pubSub,\n});\n\nconst ConnectedUserProfile = withSendbirdContext(UserProfile, mapStoreToProps);\n\nexport default ConnectedUserProfile;\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class MenuItems extends Component {\n constructor(props) {\n super(props);\n this.menuRef = React.createRef();\n this.state = {\n menuStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getMenuPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-icon--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-icon--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { menuRef } = this;\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getMenuPosition = () => {\n const { parentRef, openLeft } = this.props;\n const parentRect = parentRef.current.getBoundingClientRect();\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n const menuStyle = {\n top: y,\n left: x,\n };\n\n if (!this.menuRef.current) return menuStyle;\n\n const { innerWidth, innerHeight } = window;\n const rect = this.menuRef.current.getBoundingClientRect();\n if (y + rect.height > innerHeight) {\n menuStyle.top -= rect.height;\n }\n\n if (x + rect.width > innerWidth && !openLeft) {\n menuStyle.left -= rect.width;\n }\n\n if (menuStyle.top < 0) {\n menuStyle.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;\n }\n\n if (menuStyle.left < 0) {\n menuStyle.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;\n }\n\n menuStyle.top += 32;\n if (openLeft) {\n const padding = Number.isNaN(rect.width - 30)\n ? 108 // default\n : rect.width - 30;\n menuStyle.left -= padding;\n }\n\n return this.setState({ menuStyle });\n }\n\n render() {\n const { menuStyle } = this.state;\n const { children, style } = this.props;\n return (\n createPortal(\n (\n <>\n
\n \n {children}\n \n \n ),\n document.getElementById('sendbird-dropdown-portal'),\n )\n );\n }\n}\nMenuItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n style: PropTypes.shape({}),\n // https://stackoverflow.com/a/51127130\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n openLeft: PropTypes.bool,\n};\nMenuItems.defaultProps = {\n style: {},\n openLeft: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst componentClassName = 'sendbird-sort-by-row';\nexport default function SortByRow({\n className,\n maxItemCount,\n itemWidth,\n itemHeight,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(componentClassName);\n\n if (children.length > maxItemCount) {\n const result = [];\n for (let i = 0; i < children.length; i += maxItemCount) {\n result.push(\n \n {\n children.slice(i, i + maxItemCount)\n }\n
,\n );\n }\n\n return result;\n }\n return (\n \n {children}\n
\n );\n}\n\nSortByRow.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n maxItemCount: PropTypes.number.isRequired,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]).isRequired,\n};\n\nSortByRow.defaultProps = {\n className: '',\n};\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport SortByRow from '../../SortByRow';\n\nexport default class EmojiListItems extends Component {\n constructor(props) {\n super(props);\n this.reactionRef = React.createRef();\n this.state = {\n reactionStyle: {},\n handleClickOutside: () => { },\n };\n }\n\n componentDidMount() {\n this.setupEvents();\n this.getBarPosition();\n this.showParent();\n }\n\n componentWillUnmount() {\n this.cleanUpEvents();\n this.hideParent();\n }\n\n showParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.add('sendbird-reactions--pressed');\n }\n }\n\n hideParent = () => {\n const { parentContainRef = {} } = this.props;\n const { current } = parentContainRef;\n if (parentContainRef && current) {\n current.classList.remove('sendbird-reactions--pressed');\n }\n }\n\n setupEvents = () => {\n const { closeDropdown } = this.props;\n const { reactionRef } = this;\n const handleClickOutside = (event) => {\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\n closeDropdown();\n }\n };\n this.setState({\n handleClickOutside,\n });\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n cleanUpEvents = () => {\n const {\n handleClickOutside,\n } = this.state;\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n getBarPosition = () => {\n const {\n parentRef,\n spaceFromTrigger,\n } = this.props;\n const spaceFromTriggerX = spaceFromTrigger.x || 0;\n const spaceFromTriggerY = spaceFromTrigger.y || 0;\n\n const parentRect = parentRef.current.getBoundingClientRect();\n\n const x = parentRect.x || parentRect.left;\n const y = parentRect.y || parentRect.top;\n\n const reactionStyle = {\n top: y,\n left: x,\n };\n\n if (!this.reactionRef.current) return reactionStyle;\n const rect = this.reactionRef.current.getBoundingClientRect();\n // const childRect = this.reactionRef.current.children[0].getBoundingClientRect();\n\n if (reactionStyle.top < rect.height) {\n reactionStyle.top += parentRect.height;\n reactionStyle.top += spaceFromTriggerY;\n } else {\n reactionStyle.top -= rect.height;\n reactionStyle.top -= spaceFromTriggerY;\n }\n\n reactionStyle.left -= (rect.width / 2);\n reactionStyle.left += (parentRect.height / 2) - 2;\n reactionStyle.left += spaceFromTriggerX;\n\n const maximumLeft = (window.innerWidth - rect.width);\n if (maximumLeft < reactionStyle.left) {\n reactionStyle.left = maximumLeft;\n }\n if (reactionStyle.left < 0) {\n reactionStyle.left = 0;\n }\n\n return this.setState({ reactionStyle });\n }\n\n render() {\n const { reactionStyle } = this.state;\n const { children } = this.props;\n return (\n createPortal(\n <>\n
\n \n \n {children}\n \n \n ,\n document.getElementById('sendbird-emoji-list-portal'),\n )\n );\n }\n}\nEmojiListItems.propTypes = {\n closeDropdown: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n parentRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n parentContainRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]).isRequired,\n spaceFromTrigger: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n};\nEmojiListItems.defaultProps = {\n spaceFromTrigger: {},\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport MenuItems_ from './items/MenuItems';\nimport EmojiListItems_ from './items/EmojiListItems';\n\nconst ENTER = 13;\n\nexport const MenuItems = MenuItems_;\nexport const EmojiListItems = EmojiListItems_;\n\nexport const MenuItem = ({ children, onClick, className }) => {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n {\n if (e.keyCode === ENTER) {\n onClick(e);\n }\n }}\n role=\"menuitem\"\n >\n \n {children}\n \n \n );\n};\n\nMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n};\n\nMenuItem.defaultProps = {\n className: '',\n};\n\nexport const MenuRoot = () => (\n
\n);\n\nexport const EmojiReactionListRoot = () => (\n
\n);\n\nexport default function ContextMenu({ menuTrigger, menuItems }) {\n const [showMenu, setShowMenu] = useState(false);\n\n return (\n
\n {menuTrigger(() => setShowMenu(!showMenu))}\n {showMenu && menuItems(() => setShowMenu(false))}\n
\n );\n}\n\nContextMenu.propTypes = {\n menuTrigger: PropTypes.func.isRequired,\n menuItems: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport MutedAvatarOverlay from '../Avatar/MutedAvatarOverlay';\nimport Checkbox from '../Checkbox';\nimport UserProfile from '../UserProfile';\nimport ContextMenu, { MenuItems } from '../ContextMenu';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item';\n\nexport default function UserListItem({\n user,\n className,\n checkBox,\n currentUser,\n checked,\n onChange,\n action,\n}) {\n const injectingClassNames = Array.isArray(className) ? className : [className];\n const uniqueKey = user.userId;\n const actionRef = React.useRef(null);\n const parentRef = React.useRef(null);\n const avatarRef = React.useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width=\"40px\"\n height=\"40px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n ' (You)'\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n checkBox && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n onChange(event)}\n />\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n
\n );\n}\n\nUserListItem.propTypes = {\n user: PropTypes.shape({\n userId: PropTypes.string,\n role: PropTypes.string,\n isMuted: PropTypes.bool,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n currentUser: PropTypes.string,\n action: PropTypes.element,\n checkBox: PropTypes.bool,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nUserListItem.defaultProps = {\n className: '',\n currentUser: '',\n checkBox: false,\n checked: false,\n action: null,\n onChange: () => { },\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Modal from '../../ui/Modal';\nimport { Type as ButtonTypes } from '../../ui/Button/type';\nimport UserListItem from '../../ui/UserListItem';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nconst filterUser = (idsToFilter) => (currentId) => idsToFilter.includes(currentId);\n\nconst InviteMembers = (props) => {\n const {\n userQueryCreator,\n closeModal,\n onSubmit,\n submitText,\n titleText,\n idsToFilter,\n swapParams,\n } = props;\n\n const [users, setUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState({});\n const { stringSet } = useContext(LocalizationContext);\n const [usersDataSource, setUsersDataSource] = useState({});\n const selectedCount = Object.keys(selectedUsers).length;\n\n useEffect(() => {\n const applicationUserListQuery = userQueryCreator();\n setUsersDataSource(applicationUserListQuery);\n applicationUserListQuery.next((res, err) => {\n // eslint-disable-next-line no-underscore-dangle\n let users_ = res;\n let error = err;\n if (swapParams) {\n users_ = err;\n error = users_;\n }\n if (error) {\n return;\n }\n setUsers(users_);\n });\n }, []);\n\n return (\n {\n const selectedUserList = Object.keys(selectedUsers);\n if (selectedUserList.length > 0) {\n onSubmit(selectedUserList);\n closeModal();\n }\n }}\n submitText={submitText}\n titleText={titleText}\n type={ButtonTypes.PRIMARY}\n >\n
\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = usersDataSource;\n const fetchMore = (\n e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n usersDataSource.next((usersBatch, error) => {\n if (error) {\n return;\n }\n setUsers([\n ...users,\n ...usersBatch,\n ]);\n });\n }\n }}\n >\n {\n users.map((user) => (!filterUser(idsToFilter)(user.userId)) && (\n {\n const modifiedSelectedUsers = {\n ...selectedUsers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedUsers[event.target.id];\n }\n setSelectedUsers(modifiedSelectedUsers);\n }\n }\n />\n ))\n }\n
\n
\n \n );\n};\n\nInviteMembers.propTypes = {\n idsToFilter: PropTypes.arrayOf(PropTypes.string),\n swapParams: PropTypes.bool,\n userQueryCreator: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitText: PropTypes.string,\n titleText: PropTypes.string,\n};\nInviteMembers.defaultProps = {\n swapParams: false,\n submitText: 'create',\n titleText: 'Create new channel',\n idsToFilter: [],\n};\n\nexport default InviteMembers;\n","export const createDefaultUserListQuery = ({ sdk, userFilledApplicationUserListQuery = {} }) => {\n const params = sdk.createApplicationUserListQuery();\n if (userFilledApplicationUserListQuery) {\n Object.keys(userFilledApplicationUserListQuery).forEach((key) => {\n params[key] = userFilledApplicationUserListQuery[key];\n });\n }\n return params;\n};\n\nconst getApplicationAttributes = (sdk = {}) => {\n const { appInfo = {} } = sdk;\n const { applicationAttributes = [] } = appInfo;\n return applicationAttributes;\n};\n\nexport const isBroadcastChannelEnabled = (sdk = {}) => {\n const ALLOW_BROADCAST_CHANNEL = 'allow_broadcast_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_BROADCAST_CHANNEL);\n }\n\n return false;\n};\nexport const isSuperGroupChannelEnabled = (sdk = {}) => {\n const ALLOW_SUPER_GROUP_CHANNEL = 'allow_super_group_channel';\n const applicationAttributes = getApplicationAttributes(sdk);\n\n if (Array.isArray(applicationAttributes)) {\n return applicationAttributes.includes(ALLOW_SUPER_GROUP_CHANNEL);\n }\n\n return false;\n};\n\nexport const setChannelType = (params, type) => {\n if (type === 'broadcast') {\n // eslint-disable-next-line no-param-reassign\n params.isBroadcast = true;\n }\n if (type === 'supergroup') {\n // eslint-disable-next-line no-param-reassign\n params.isSuper = true;\n }\n return params;\n};\n\nexport const createChannel = (\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type = 'group',\n) => new Promise((resolve, reject) => {\n // have custom params\n if (onBeforeCreateChannel) {\n const params = onBeforeCreateChannel(selectedUsers);\n setChannelType(params, type);\n sdk.GroupChannel.createChannel(params, (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n });\n return;\n }\n\n const params = new sdk.GroupChannelParams();\n params.addUserIds(selectedUsers);\n params.isDistinct = false;\n\n if (userId) {\n params.operatorUserIds = [userId];\n }\n setChannelType(params, type);\n // do not have custom params\n sdk.GroupChannel.createChannel(\n params,\n (response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let groupChannel = response;\n let err = error;\n if (swapParams) {\n groupChannel = error;\n err = response;\n }\n if (err) {\n reject(err);\n }\n resolve(groupChannel);\n },\n );\n});\n\nexport default createChannel;\n","import './add-channel.scss';\n\nimport React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport IconButton from '../../../ui/IconButton';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport InviteMembers from '../../InviteMembers';\n\nimport {\n createChannel,\n createDefaultUserListQuery,\n isBroadcastChannelEnabled,\n isSuperGroupChannelEnabled,\n} from './utils';\nimport { CREATE_CHANNEL } from '../dux/actionTypes';\nimport Modal from '../../../ui/Modal';\n\nexport default function AddChannel({\n sdk,\n disabled,\n channelListDispatcher,\n onBeforeCreateChannel,\n userId,\n userFilledApplicationUserListQuery,\n userListQuery,\n}) {\n const [showModal, setShowModal] = useState(false);\n const [step, setStep] = useState(0);\n const [type, setType] = useState('group');\n const { stringSet } = useContext(LocalizationContext);\n\n if (!sdk || !sdk.createApplicationUserListQuery) {\n return null;\n }\n\n const isBroadcastAvailable = isBroadcastChannelEnabled(sdk);\n const isSupergroupAvailable = isSuperGroupChannelEnabled(sdk);\n\n return (\n <>\n {\n setShowModal(true);\n }}\n disabled={disabled}\n >\n \n \n {\n showModal && step === 0 && (\n { setShowModal(false); }}\n onSubmit={() => {}}\n >\n
\n {\n setType('group');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('group');\n setStep(1);\n }}\n >\n \n \n
\n {\n isSupergroupAvailable && (\n {\n setType('supergroup');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('supergroup');\n setStep(1);\n }}\n >\n \n \n
\n )\n }\n {\n isBroadcastAvailable && (\n {\n setType('broadcast');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('broadcast');\n setStep(1);\n }}\n >\n \n \n \n )\n }\n \n \n )\n }\n {\n showModal && step === 1 && (\n {\n setStep(0);\n setShowModal(false);\n }}\n idsToFilter={[userId]}\n userQueryCreator={() => ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )}\n onSubmit={(selectedUsers) => createChannel(\n sdk,\n selectedUsers,\n onBeforeCreateChannel,\n userId,\n type,\n ).then((channel) => {\n // maybe - do this in event listener\n channelListDispatcher({\n type: CREATE_CHANNEL,\n payload: channel,\n });\n })}\n />\n )\n }\n \n );\n}\n\nAddChannel.propTypes = {\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n createApplicationUserListQuery: PropTypes.func,\n }).isRequired,\n disabled: PropTypes.bool,\n channelListDispatcher: PropTypes.func.isRequired,\n userFilledApplicationUserListQuery: PropTypes.shape({}),\n onBeforeCreateChannel: PropTypes.func,\n userId: PropTypes.string.isRequired,\n userListQuery: PropTypes.func,\n};\n\nAddChannel.defaultProps = {\n disabled: false,\n userFilledApplicationUserListQuery: {},\n onBeforeCreateChannel: null,\n userListQuery: null,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\n\nconst LeaveChannel = (props) => {\n const {\n onCloseModal,\n onLeaveChannel,\n } = props;\n return (\n \n );\n};\n\nLeaveChannel.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nexport default LeaveChannel;\n","import React, {\n useState,\n useRef,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../ui/ContextMenu';\nimport IconButton from '../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\nimport LeaveChannelModal from '../../ChannelSettings/components/LeaveChannel';\n\nexport default function ChannelPreviewAction({ disabled, onLeaveChannel }) {\n const parentRef = useRef(null);\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n { e.stopPropagation(); }}\n tabIndex={0}\n onClick={(e) => { e.stopPropagation(); }}\n >\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if (disabled) { return; }\n setShowModal(true);\n closeDropdown();\n }}\n >\n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n \n \n )}\n />\n {\n showModal && (\n setShowModal(false)}\n onLeaveChannel={onLeaveChannel}\n />\n )\n }\n \n );\n}\n\nChannelPreviewAction.propTypes = {\n disabled: PropTypes.bool,\n onLeaveChannel: PropTypes.func.isRequired,\n};\n\nChannelPreviewAction.defaultProps = {\n disabled: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes } from '../Icon';\n\nexport default function Loader({\n children,\n className,\n width,\n height,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n {children}\n \n );\n}\n\nLoader.propTypes = {\n children: PropTypes.element,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n};\n\nLoader.defaultProps = {\n children: ,\n className: '',\n width: '26px',\n height: '26px',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Loader from '../Loader';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport PlaceHolderTypes from './type';\n\nexport default function PlaceHolder({\n className,\n type,\n retryToConnect,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n {\n type === PlaceHolderTypes.LOADING\n ? (\n \n \n \n )\n : null\n }\n {\n type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG\n ? (\n
\n {\n type === PlaceHolderTypes.NO_CHANNELS && (\n \n )\n }\n {\n type === PlaceHolderTypes.WRONG && (\n \n )\n }\n \n {\n retryToConnect\n ? (\n \n \n \n
\n )\n : null\n }\n
\n )\n : null\n }\n \n );\n}\n\nPlaceHolder.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n type: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(PlaceHolderTypes)),\n PropTypes.string,\n ]).isRequired,\n retryToConnect: PropTypes.func,\n};\n\nPlaceHolder.defaultProps = {\n className: '',\n retryToConnect: null,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Placeholder from '../../../ui/PlaceHolder';\n\nexport default function ChannelsPlaceholder({\n type,\n}) {\n return (\n
\n \n
\n );\n}\n\nChannelsPlaceholder.propTypes = {\n type: PropTypes.string.isRequired,\n};\n","import * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nconst createEventHandler = ({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n logger,\n}) => {\n const ChannelHandler = new sdk.ChannelHandler();\n\n ChannelHandler.onChannelChanged = (channel) => {\n logger.info('ChannelList: onChannelChanged', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n };\n ChannelHandler.onChannelDeleted = (channelUrl) => {\n logger.info('ChannelList: onChannelDeleted', channelUrl);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_DELETED,\n payload: channelUrl,\n });\n };\n ChannelHandler.onUserJoined = (channel) => {\n logger.info('ChannelList: onUserJoined', channel);\n if (channel.lastMessage) {\n channelListDispatcher({\n type: channelActions.ON_USER_JOINED,\n payload: channel,\n });\n }\n };\n ChannelHandler.onUserBanned = (channel, user) => {\n const { currentUser } = sdk;\n logger.info('Channel | useHandleChannelEvents: onUserBanned', channel);\n if (user.userId === currentUser.userId) {\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe: true,\n },\n });\n } else {\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe: false,\n },\n });\n }\n };\n ChannelHandler.onUserLeft = (channel, leftUser) => {\n const { currentUser } = sdk;\n const isMe = (currentUser.userId === leftUser.userId);\n logger.info('ChannelList: onUserLeft', channel);\n channelListDispatcher({\n type: channelActions.ON_USER_LEFT,\n payload: {\n channel,\n isMe,\n },\n });\n };\n\n ChannelHandler.onReadStatus = (channel) => {\n logger.info('ChannelList: onReadStatus', channel);\n channelListDispatcher({\n type: channelActions.ON_READ_RECEIPT_UPDATED,\n payload: channel,\n });\n };\n\n ChannelHandler.onDeliveryReceiptUpdated = (channel) => {\n logger.info('ChannelList: onDeliveryReceiptUpdated', channel);\n if (channel.lastMessage) {\n channelListDispatcher({\n type: channelActions.ON_DELIVERY_RECEIPT_UPDATED,\n payload: channel,\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (channel, message) => {\n if (channel.lastMessage.isEqual(message)) {\n logger.info('ChannelList: onMessageUpdated', channel);\n channelListDispatcher({\n type: channelActions.ON_LAST_MESSAGE_UPDATED,\n payload: channel,\n });\n }\n };\n\n ChannelHandler.onChannelHidden = (channel) => {\n logger.info('ChannelList: onChannelHidden', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_ARCHIVED,\n payload: channel.url,\n });\n };\n\n ChannelHandler.onChannelFrozen = (channel) => {\n logger.info('ChannelList: onChannelFrozen', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n };\n\n ChannelHandler.onChannelUnfrozen = (channel) => {\n logger.info('ChannelList: onChannelUnfrozen', channel);\n channelListDispatcher({\n type: channelActions.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n };\n\n logger.info('ChannelList: Added channelHandler');\n sdk.addChannelHandler(sdkChannelHandlerId, ChannelHandler);\n};\n\nconst createApplicationUserListQuery = ({ sdk, userFilledChannelListQuery = {} }) => {\n const channelListQuery = sdk.GroupChannel.createMyGroupChannelListQuery();\n channelListQuery.includeEmpty = false;\n channelListQuery.order = 'latest_last_message'; // 'chronological', 'latest_last_message', 'channel_name_alphabetical', and 'metadata_value_alphabetical'\n channelListQuery.limit = 20; // The value of pagination limit could be set up to 100.\n\n if (userFilledChannelListQuery) {\n Object.keys(userFilledChannelListQuery).forEach((key) => {\n channelListQuery[key] = userFilledChannelListQuery[key];\n });\n }\n\n return channelListQuery;\n};\n\n/**\n * Setup event listener\n * create channel source query\n * addloading screen\n */\nfunction setupChannelList({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n setChannelSource,\n onChannelSelect,\n userFilledChannelListQuery,\n logger,\n sortChannelList,\n}) {\n createEventHandler({\n sdk,\n channelListDispatcher,\n sdkChannelHandlerId,\n logger,\n });\n\n logger.info('ChannelList - creating query', { userFilledChannelListQuery });\n const channelListQuery = createApplicationUserListQuery({ sdk, userFilledChannelListQuery });\n logger.info('ChannelList - created query', channelListQuery);\n\n setChannelSource(channelListQuery);\n\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_START,\n });\n\n logger.info('ChannelList - fetching channels');\n if (channelListQuery.hasNext) {\n channelListQuery.next((response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let channelList = response;\n let err = error;\n if (swapParams) {\n channelList = error;\n err = response;\n }\n logger.info('ChannelList - fetched channels', channelList);\n if (err) {\n logger.error('ChannelList - couldnt fetch channels', err);\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_FAILURE,\n });\n return;\n }\n // select first channel\n logger.info('ChannelList - highlight channel', channelList[0]);\n let sorted = channelList;\n if (sortChannelList && typeof sortChannelList === 'function') {\n sorted = sortChannelList(channelList);\n logger.info('ChannelList - channel list sorted', sorted);\n }\n onChannelSelect(sorted[0]);\n channelListDispatcher({\n type: channelActions.INIT_CHANNELS_SUCCESS,\n payload: sorted,\n });\n if (channelList && typeof channelList.forEach === 'function') {\n logger.info('ChannelList - mark all channels as delivered');\n channelList.forEach((c) => c.markAsDelivered());\n }\n });\n } else {\n logger.warning('ChannelList - there are no more channels');\n }\n}\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (pubSub, channelListDispatcher) => {\n const subScriber = new Map();\n if (!pubSub) return subScriber;\n subScriber.set(topics.CREATE_CHANNEL, pubSub.subscribe(topics.CREATE_CHANNEL, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: 'CREATE_CHANNEL',\n payload: channel,\n });\n }));\n\n subScriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n const updatedChannel = channel;\n updatedChannel.lastMessage = message;\n if (channel) {\n channelListDispatcher({\n type: channelActions.ON_LAST_MESSAGE_UPDATED,\n payload: updatedChannel,\n });\n }\n }));\n\n subScriber.set(topics.LEAVE_CHANNEL, pubSub.subscribe(topics.LEAVE_CHANNEL, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: channelActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel.url,\n });\n }));\n\n subScriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel } = msg;\n channelListDispatcher({\n type: channelActions.CHANNEL_REPLACED_TO_TOP,\n payload: channel,\n });\n }));\n\n return subScriber;\n};\n\nexport default setupChannelList;\n","import React, { useEffect, useState, useReducer } from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as userActions from '../../lib/dux/user/actionTypes';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\n\nimport * as channelListActions from './dux/actionTypes';\nimport channelListInitialState from './dux/initialState';\nimport channelListReducers from './dux/reducers';\n\nimport ChannelPreview from '../../ui/ChannelPreview';\nimport ChannelHeader from '../../ui/ChannelHeader';\nimport EditUserProfile from '../../ui/EditUserProfile';\nimport PlaceholderTypes from '../../ui/PlaceHolder/type';\n\nimport AddChannel from './components/AddChannel';\nimport ChannelPreviewAction from './components/ChannelPreviewAction';\nimport PlaceHolder from './components/Placeholder';\n\nimport setupChannelList, {\n pubSubHandler,\n pubSubHandleRemover,\n} from './utils';\nimport { uuidv4 } from '../../utils/uuid';\n\nimport './index.scss';\n\nconst noop = () => { };\n\nfunction ChannelList(props) {\n const {\n stores: { sdkStore = {}, userStore = {} },\n config: {\n userId,\n isOnline,\n userListQuery,\n logger,\n pubSub,\n theme,\n },\n dispatchers: {\n userDispatcher,\n },\n queries = {},\n renderChannelPreview,\n renderHeader,\n renderUserProfile,\n disableUserProfile,\n allowProfileEdit,\n sortChannelList,\n onProfileEditSuccess,\n onThemeChange,\n onBeforeCreateChannel,\n onChannelSelect,\n } = props;\n const { config = {} } = props;\n // enable if it is true atleast once(both are flase by default)\n const enableEditProfile = allowProfileEdit || config.allowProfileEdit;\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n const { sdk = {} } = sdkStore;\n const userFilledChannelListQuery = queries.channelListQuery;\n const userFilledApplicationUserListQuery = queries.applicationUserListQuery;\n\n const sdkError = sdkStore.error;\n\n const [user, setUser] = useState({});\n\n useEffect(() => {\n setUser(userStore.user);\n }, [userStore.user]);\n\n\n const sdkIntialized = sdkStore.initialized;\n const [channelListStore, channelListDispatcher] = useReducer(\n channelListReducers,\n channelListInitialState,\n );\n const [channelSource, setChannelSource] = useState({});\n const [sdkChannelHandlerId, setSdkChannelHandlerId] = useState(null);\n const [showProfileEdit, setShowProfileEdit] = useState(false);\n\n const { loading, currentChannel } = channelListStore;\n\n useEffect(() => {\n const subscriber = pubSubHandler(pubSub, channelListDispatcher);\n return () => {\n pubSubHandleRemover(subscriber);\n };\n }, [sdkIntialized]);\n\n useEffect(() => {\n setSdkChannelHandlerId(uuidv4);\n if (sdkIntialized) {\n logger.info('ChannelList: Setup channelHandlers');\n setupChannelList({\n sdk,\n sdkChannelHandlerId,\n channelListDispatcher,\n setChannelSource,\n onChannelSelect,\n userFilledChannelListQuery,\n logger,\n sortChannelList,\n });\n } else {\n logger.info('ChannelList: Removing channelHandlers');\n // remove previous channelHandlers\n if (sdk && sdk.removeChannelHandler) {\n sdk.removeChannelHandler(sdkChannelHandlerId);\n }\n // remove channelSource\n setChannelSource({});\n // cleanup\n channelListDispatcher({\n type: channelListActions.RESET_CHANNEL_LIST,\n });\n }\n return () => {\n logger.info('ChannelList: Removing channelHandlers');\n if (sdk && sdk.removeChannelHandler) {\n sdk.removeChannelHandler(sdkChannelHandlerId);\n }\n };\n }, [sdkIntialized, userFilledChannelListQuery, sortChannelList]);\n\n const { allChannels } = channelListStore;\n const sortedChannels = (sortChannelList && typeof sortChannelList === 'function')\n ? sortChannelList(allChannels)\n : allChannels;\n\n if (sortedChannels.length !== allChannels.length) {\n const warning = `ChannelList: You have removed/added extra channels on sortChannelList\n this could cause unexpected problems`;\n // eslint-disable-next-line no-console\n console.warn(warning, { before: allChannels, after: sortedChannels });\n logger.warning(warning, { before: allChannels, after: sortedChannels });\n }\n\n useEffect(() => {\n if (!sdk || !sdk.GroupChannel) { return; }\n sdk.GroupChannel.getChannel(currentChannel, (groupChannel) => {\n if (groupChannel) {\n onChannelSelect(groupChannel);\n } else {\n onChannelSelect(null);\n }\n });\n }, [currentChannel]);\n\n return (\n \n
\n {\n if (enableEditProfile) {\n setShowProfileEdit(true);\n }\n }}\n allowProfileEdit={enableEditProfile}\n iconButton={(\n \n )}\n />\n
\n {\n showProfileEdit && (\n { setShowProfileEdit(false); }}\n onSubmit={(newName, newFile) => {\n sdk.updateCurrentUserInfoWithProfileImage(newName, newFile, (updatedUser) => {\n userDispatcher({ type: userActions.UPDATE_USER_INFO, payload: updatedUser });\n if (onProfileEditSuccess && typeof onProfileEditSuccess === 'function') {\n onProfileEditSuccess(updatedUser);\n }\n });\n }}\n />\n )\n }\n {\n const fetchMore = e.target.clientHeight + e.target.scrollTop === e.target.scrollHeight;\n if (fetchMore && channelSource.hasNext) {\n logger.info('ChannelList: Fetching more channels');\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_START,\n });\n channelSource.next((response, error) => {\n const swapParams = sdk.getErrorFirstCallback();\n let channelList = response;\n let err = error;\n if (swapParams) {\n channelList = error;\n err = response;\n }\n if (err) {\n logger.info('ChannelList: Fetching channels failed', err);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_FAILURE,\n payload: channelList,\n });\n return;\n }\n logger.info('ChannelList: Fetching channels successful', channelList);\n channelListDispatcher({\n type: channelListActions.FETCH_CHANNELS_SUCCESS,\n payload: channelList,\n });\n if (channelList && typeof channelList.forEach === 'function') {\n logger.info('ChannelList: Marking all channels as read');\n channelList.forEach((c) => c.markAsDelivered());\n }\n });\n }\n }}\n >\n {\n (sdkError) && (\n \n )\n }\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n sortedChannels && sortedChannels.map((channel, idx) => {\n const onLeaveChannel = (c, cb) => {\n logger.info('ChannelList: Leaving channel', c);\n c.leave()\n .then((res) => {\n logger.info('ChannelList: Leaving channel success', res);\n if (cb && typeof cb === 'function') {\n cb(res, null);\n }\n channelListDispatcher({\n type: channelListActions.LEAVE_CHANNEL_SUCCESS,\n payload: channel.url,\n });\n })\n .catch((err) => {\n logger.error('ChannelList: Leaving channel failed', err);\n if (cb && typeof cb === 'function') {\n cb(null, err);\n }\n });\n };\n\n const onClick = () => {\n if (!isOnline) { return; }\n logger.info('ChannelList: Clicked on channel:', channel);\n channelListDispatcher({\n type: channelListActions.SET_CURRENT_CHANNEL,\n payload: channel.url,\n });\n };\n\n return (\n (renderChannelPreview)\n ? (\n // eslint-disable-next-line\n
\n {renderChannelPreview({ channel, onLeaveChannel })}\n
\n )\n : (\n onLeaveChannel(channel)}\n />\n )}\n />\n )\n );\n })\n }\n
\n {\n (!sdkIntialized || loading) && (\n \n )\n }\n {\n // placeholder\n (!allChannels || allChannels.length === 0) && (\n \n )\n }\n \n \n );\n}\n\nChannelList.propTypes = {\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n userDispatcher: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n userId: PropTypes.string.isRequired,\n userListQuery: PropTypes.func,\n theme: PropTypes.string,\n isOnline: PropTypes.bool,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n channelListQuery: PropTypes.shape({\n channelNameContainsFilter: PropTypes.string,\n channelUrlsFilter: PropTypes.arrayOf(PropTypes.string),\n customTypesFilter: PropTypes.arrayOf(PropTypes.string),\n customTypeStartsWithFilter: PropTypes.string,\n hiddenChannelFilter: PropTypes.string,\n includeEmpty: PropTypes.bool,\n limit: PropTypes.number,\n memberStateFilter: PropTypes.string,\n metadataOrderKeyFilter: PropTypes.string,\n nicknameContainsFilter: PropTypes.string,\n order: PropTypes.string,\n publicChannelFilter: PropTypes.string,\n superChannelFilter: PropTypes.string,\n unreadChannelFilter: PropTypes.string,\n userIdsExactFilter: PropTypes.arrayOf(PropTypes.string),\n userIdsIncludeFilter: PropTypes.arrayOf(PropTypes.string),\n userIdsIncludeFilterQueryType: PropTypes.string,\n }),\n applicationUserListQuery: PropTypes.shape({\n limit: PropTypes.number,\n userIdsFilter: PropTypes.arrayOf(PropTypes.string),\n metaDataKeyFilter: PropTypes.string,\n metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeCreateChannel: PropTypes.func,\n renderChannelPreview: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n allowProfileEdit: PropTypes.bool,\n sortChannelList: PropTypes.func,\n onThemeChange: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n renderHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChannelSelect: PropTypes.func,\n};\n\nChannelList.defaultProps = {\n onBeforeCreateChannel: null,\n renderChannelPreview: null,\n renderHeader: null,\n disableUserProfile: false,\n renderUserProfile: null,\n allowProfileEdit: false,\n onThemeChange: null,\n sortChannelList: null,\n onProfileEditSuccess: null,\n queries: {},\n onChannelSelect: noop,\n};\n\nexport default withSendbirdContext(ChannelList);\n","export const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const RESET_STATE = 'RESET_STATE';\nexport const CLEAR_SENT_MESSAGES = 'CLEAR_SENT_MESSAGES';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAILURE = 'GET_PREV_MESSAGES_FAILURE';\n\nexport const SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';\nexport const SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';\nexport const SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';\n\nexport const RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';\n\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\n\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const MARK_AS_READ = 'MARK_AS_READ';\n\nexport const ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';\nexport const SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';\nexport const SET_READ_STATUS = 'SET_READ_STATUS';\n","// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nconst SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n ],\n};\n\nexport const isImage = (type) => SUPPORTED_MIMES.IMAGE.includes(type);\nexport const isVideo = (type) => SUPPORTED_MIMES.VIDEO.includes(type);\nexport const unSupported = (type) => !(isImage(type) || isVideo(type));\n\nexport default SUPPORTED_MIMES;\n","import { isImage, isVideo } from '../../ui/FileViewer/types';\n\nexport const MessageTypes = {\n ADMIN: 'ADMIN',\n USER: 'USER',\n FILE: 'FILE',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n};\n\nexport const SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport const getMessageType = (message) => {\n if ((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user') {\n return (message.ogMetaData)\n ? MessageTypes.OG\n : MessageTypes.USER;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return MessageTypes.ADMIN;\n }\n if ((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file') {\n return (isImage(message.type) || isVideo(message.type))\n ? MessageTypes.THUMBNAIL\n : MessageTypes.FILE;\n }\n return '';\n};\n\nexport default {\n MessageTypes,\n SendingMessageStatus,\n getMessageType,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../../ui/MessageStatus/type';\nimport * as channelActions from './dux/actionTypes';\nimport * as topics from '../../lib/pubSub/topics';\n\nimport { SendingMessageStatus } from './types';\n\nconst UNDEFINED = 'undefined';\nconst { SUCCEEDED, FAILED, PENDING } = SendingMessageStatus;\n\nexport const scrollIntoLast = (selector, intialTry = 0) => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const nodes = document.querySelectorAll(selector);\n const last = nodes[nodes.length - 1];\n last.scrollIntoView(false); /** alignToTop: false */\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(selector, currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const pubSubHandleRemover = (subscriber) => {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n};\n\nexport const pubSubHandler = (channelUrl, pubSub, dispatcher) => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) return subscriber;\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_START,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast('.sendbird-msg--scroll-ref');\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_UPDATED,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel.url)) {\n dispatcher({\n type: channelActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return subscriber;\n};\n\nexport const getParsedStatus = (message, currentGroupChannel) => {\n if (message.requestState === FAILED) {\n return MessageStatusType.FAILED;\n }\n\n if (message.requestState === PENDING) {\n return MessageStatusType.PENDING;\n }\n\n if (message.requestState === SUCCEEDED) {\n if (!currentGroupChannel) {\n return MessageStatusType.SENT;\n }\n\n const unreadCount = currentGroupChannel.getReadReceipt(message);\n if (unreadCount === 0) {\n return MessageStatusType.READ;\n }\n\n const isDelivered = currentGroupChannel.getDeliveryReceipt(message) === 0;\n if (isDelivered) {\n return MessageStatusType.DELIVERED;\n }\n\n return MessageStatusType.SENT;\n }\n\n return null;\n};\n\nexport const isOperator = (groupChannel = {}) => {\n const { myRole } = groupChannel;\n return myRole === 'operator';\n};\n\nexport const isDisabledBecauseFrozen = (groupChannel = {}) => {\n const { isFrozen } = groupChannel;\n return isFrozen && !isOperator(groupChannel);\n};\n\nexport const isDisabledBecauseMuted = (groupChannel = {}) => {\n const { myMutedState } = groupChannel;\n return myMutedState === 'muted';\n};\n\nexport const getEmojiCategoriesFromEmojiContainer = (emojiContainer = {}) => (\n emojiContainer.emojiCategories ? emojiContainer.emojiCategories : []\n);\n\nexport const getAllEmojisFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojis = [];\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n allEmojis.push(emojis[emojiIndex]);\n }\n }\n return allEmojis;\n};\n\nexport const getEmojisFromEmojiContainer = (emojiContainer = {}, emojiCategoryId = '') => (\n emojiContainer.emojiCategories\n ? emojiContainer.emojiCategories\n .filter((emojiCategory) => emojiCategory.id === emojiCategoryId)[0].emojis\n : []\n);\n\nexport const getAllEmojisMapFromEmojiContainer = (emojiContainer = {}) => {\n const { emojiCategories = [] } = emojiContainer;\n const allEmojisMap = new Map();\n\n for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {\n const { emojis } = emojiCategories[categoryIndex];\n for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {\n const { key, url } = emojis[emojiIndex];\n allEmojisMap.set(key, url);\n }\n }\n return allEmojisMap;\n};\n\nexport const getNicknamesMapFromMembers = (members = []) => {\n const nicknamesMap = new Map();\n for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {\n const { userId, nickname } = members[memberIndex];\n nicknamesMap.set(userId, nickname);\n }\n return nicknamesMap;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const isSameGroup = (message, comparingMessage) => {\n if (\n !message\n || !comparingMessage\n || !message.sender\n || !comparingMessage.sender\n || !message.createdAt\n || !comparingMessage.createdAt\n || !message.sender.userId\n || !comparingMessage.sender.userId\n ) {\n return false;\n }\n return (\n message.sendingStatus === comparingMessage.sendingStatus\n && message.sender.userId === comparingMessage.sender.userId\n && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage)\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage,\n currMessage,\n nextMessage,\n) => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const passUnsuccessfullMessages = (allMessages, newMessage) => {\n const { sendingStatus = UNDEFINED } = newMessage;\n if (sendingStatus === SUCCEEDED || sendingStatus === PENDING) {\n const lastIndexOfSucceededMessage = allMessages\n .map((message) => (\n message.sendingStatus\n || ((message.isAdminMessage && message.isAdminMessage()) ? SUCCEEDED : UNDEFINED)\n ))\n .lastIndexOf(SUCCEEDED);\n if (lastIndexOfSucceededMessage + 1 < allMessages.length) {\n const messages = [...allMessages];\n messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);\n return messages;\n }\n }\n return [\n ...allMessages,\n newMessage,\n ];\n};\n\nexport default getParsedStatus;\n","export default {\n initialized: false,\n loading: false,\n allMessages: [],\n currentGroupChannel: { members: [] },\n hasMore: false,\n lastMessageTimeStamp: 0,\n emojiContainer: {},\n readStatus: {},\n unreadCount: 0,\n unreadSince: null,\n isInvalid: false,\n};\n","const isEmpty = (val) => (val === null || val === undefined);\n\n// Some Ids return string and number inconsistently\n// only use to comapre IDs\nexport default function (a, b) {\n if (isEmpty(a) || isEmpty(b)) {\n return false;\n }\n const aString = a.toString();\n const bString = b.toString();\n return aString === bString;\n}\n","import format from 'date-fns/format';\n\nimport * as actionTypes from './actionTypes';\nimport initialState from './initialState';\n\nimport compareIds from '../../../utils/compareIds';\nimport { passUnsuccessfullMessages } from '../utils';\nimport { SendingMessageStatus } from '../types';\n\nconst {\n SUCCEEDED,\n FAILED,\n PENDING,\n} = SendingMessageStatus;\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case actionTypes.RESET_STATE:\n return initialState;\n case actionTypes.RESET_MESSAGES:\n return {\n ...state,\n // when user switches channel, if the previous channel `hasMore`\n // the onScroll gets called twice, setting hasMore false prevents this\n hasMore: false,\n allMessages: [],\n };\n case actionTypes.GET_PREV_MESSAGES_START:\n return {\n ...state,\n loading: true,\n };\n case actionTypes.CLEAR_SENT_MESSAGES:\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => (\n m.sendingStatus !== SUCCEEDED\n )),\n ],\n };\n case actionTypes.GET_PREV_MESSAGES_SUCESS: {\n const recivedMessages = action.payload.messages || [];\n const { currentGroupChannel = {} } = action.payload;\n\n const stateChannel = state.currentGroupChannel || {};\n const stateChannelUrl = stateChannel.url;\n const actionChannelUrl = currentGroupChannel.url;\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n // remove duplicate messages\n const filteredAllMessages = state.allMessages.filter((msg) => (\n !(recivedMessages.find(({ messageId }) => compareIds(messageId, msg.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: action.payload.hasMore,\n lastMessageTimeStamp: action.payload.lastMessageTimeStamp,\n allMessages: [\n ...recivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n { ...action.payload },\n ],\n };\n case actionTypes.SEND_MESSAGEGE_SUCESS: {\n const newMessages = state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId) ? action.payload : m\n ));\n [...newMessages].sort((a, b) => (\n (\n a.sendingStatus\n && b.sendingStatus\n && a.sendingStatus === SUCCEEDED\n && (\n b.sendingStatus === PENDING\n || b.sendingStatus === FAILED\n )\n ) ? -1 : 1\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SEND_MESSAGEGE_FAILURE: {\n // eslint-disable-next-line no-param-reassign\n action.payload.failed = true;\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n return {\n ...state,\n currentGroupChannel: action.payload,\n isInvalid: false,\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const { channel, message } = action.payload;\n const { currentGroupChannel = {}, unreadCount, unreadSince } = state;\n const currentGroupChannelUrl = currentGroupChannel.url;\n if (!compareIds(channel.url, currentGroupChannelUrl)) {\n return state;\n }\n // Excluded overlapping messages\n if (!(state.allMessages.map((msg) => msg.messageId).indexOf(message.messageId) < 0)) {\n return state;\n }\n if (message.isAdminMessage && message.isAdminMessage()) {\n return {\n ...state,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n return {\n ...state,\n unreadCount: unreadCount + 1,\n unreadSince: (unreadCount === 0)\n ? format(new Date(), 'p MMM dd')\n : unreadSince,\n allMessages: passUnsuccessfullMessages(state.allMessages, message),\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.messageId, action.payload.messageId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.RESEND_MESSAGEGE_START:\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds(m.reqId, action.payload.reqId)\n ? action.payload\n : m\n )),\n };\n case actionTypes.MARK_AS_READ:\n return {\n ...state,\n unreadCount: 0,\n unreadSince: null,\n };\n case actionTypes.ON_MESSAGE_DELETED:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.messageId, action.payload)\n )),\n };\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID:\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds(m.reqId, action.payload)\n )),\n };\n case actionTypes.SET_EMOJI_CONTAINER: {\n return {\n ...state,\n emojiContainer: action.payload,\n };\n }\n case actionTypes.SET_READ_STATUS: {\n return {\n ...state,\n readStatus: action.payload,\n };\n }\n case actionTypes.ON_REACTION_UPDATED: {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => {\n if (compareIds(m.messageId, action.payload.messageId)) {\n if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {\n m.applyReactionEvent(action.payload);\n }\n return m;\n }\n return m;\n }),\n };\n }\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\n\nimport * as messageActions from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\nimport compareIds from '../../../utils/compareIds';\n\n/**\n * Handles ChannelEvents and send values to dispatcher using messagesDispatcher\n * messagesDispatcher: Dispatcher\n * sdk: sdkInstance\n * logger: loggerInstance\n * channelUrl: string\n * sdkInit: bool\n */\nfunction useHandleChannelEvents({ currentGroupChannel, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n const messageReciverId = uuidv4();\n if (channelUrl && sdk && sdk.ChannelHandler) {\n const ChannelHandler = new sdk.ChannelHandler();\n logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReciverId);\n ChannelHandler.onMessageReceived = (channel, message) => {\n if (compareIds(channel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n }\n };\n\n ChannelHandler.onMessageUpdated = (_, message) => {\n logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_UPDATED,\n payload: message,\n });\n };\n\n ChannelHandler.onMessageDeleted = (_, messageId) => {\n logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);\n messagesDispatcher({\n type: messageActions.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n };\n\n ChannelHandler.onReactionUpdated = (_, reactionEvent) => {\n logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);\n messagesDispatcher({\n type: messageActions.ON_REACTION_UPDATED,\n payload: reactionEvent,\n });\n };\n\n ChannelHandler.onChannelChanged = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelFrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onChannelUnfrozen = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserMuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserUnmuted = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onUserBanned = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n ChannelHandler.onOperatorUpdated = (groupChannel) => {\n if (compareIds(groupChannel.url, currentGroupChannel.url)) {\n logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);\n messagesDispatcher({\n type: messageActions.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n }\n };\n\n // Add this channel event handler to the SendBird object.\n sdk.addChannelHandler(messageReciverId, ChannelHandler);\n }\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReciverId);\n sdk.removeChannelHandler(messageReciverId);\n }\n };\n }, [channelUrl, sdkInit]);\n}\n\nexport default useHandleChannelEvents;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useSetChannel({ channelUrl, sdkInit }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {\n logger.info('Channel | useSetChannel fetching channel', channelUrl);\n sdk.GroupChannel.getChannel(channelUrl)\n .then((groupChannel) => {\n logger.info('Channel | useSetChannel fetched channel', groupChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: groupChannel,\n });\n\n logger.info('Channel: Mark as read', groupChannel);\n // this order is important - this mark as read should update the event handler up above\n groupChannel.markAsRead();\n })\n .catch((e) => {\n logger.warning('Channel | useSetChannel fetch channel failed', { channelUrl, e });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n });\n });\n sdk.getAllEmoji((emojiContainer_, err) => {\n if (err) {\n logger.error('Channel: Getting emojis failed', err);\n return;\n }\n logger.info('Channel: Getting emojis success', emojiContainer_);\n messagesDispatcher({\n type: messageActionTypes.SET_EMOJI_CONTAINER,\n payload: emojiContainer_,\n });\n });\n }\n }, [channelUrl, sdkInit]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\nfunction useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n}) {\n const channelUrl = currentGroupChannel && currentGroupChannel.url;\n useEffect(() => {\n logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);\n\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n });\n\n if (sdk && sdk.MessageListParams\n && currentGroupChannel && currentGroupChannel.getMessagesByMessageId) {\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.isInclusive = true;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n });\n }\n }, [channelUrl, userFilledMessageListQuery]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n}) {\n useEffect(() => {\n const wasOffline = !isOnline;\n return () => {\n // state changed from offline to online\n if (wasOffline) {\n logger.info('Refreshing conversation state');\n const { appInfo = {} } = sdk;\n const useReaction = appInfo.isUsingReaction || false;\n\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = useReaction;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n });\n\n sdk.GroupChannel.getChannel(currentGroupChannel.url)\n .then((groupChannel) => {\n const lastMessageTime = new Date().getTime();\n\n groupChannel.getMessagesByTimestamp(\n lastMessageTime,\n messageListParams,\n )\n .then((messages) => {\n messagesDispatcher({\n type: messageActionTypes.CLEAR_SENT_MESSAGES,\n });\n\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimeStamp = hasMore\n ? messages[0].createdAt\n : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore,\n lastMessageTimeStamp,\n currentGroupChannel,\n },\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n });\n }\n };\n }, [isOnline]);\n}\n\nexport default useHandleReconnect;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useScrollCallback({\n currentGroupChannel,\n lastMessageTimeStamp,\n userFilledMessageListQuery,\n}, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n}) {\n return useCallback((cb) => {\n if (!hasMore) { return; }\n const messageListParams = new sdk.MessageListParams();\n messageListParams.prevResultSize = 30;\n messageListParams.includeReplies = false;\n messageListParams.includeReaction = true;\n\n if (userFilledMessageListQuery) {\n Object.keys(userFilledMessageListQuery).forEach((key) => {\n messageListParams[key] = userFilledMessageListQuery[key];\n });\n }\n logger.info('Channel: Fetching messages', { currentGroupChannel, userFilledMessageListQuery });\n\n currentGroupChannel.getMessagesByTimestamp(\n lastMessageTimeStamp || new Date().getTime(),\n messageListParams,\n )\n .then((messages) => {\n const hasMoreMessages = (messages && messages.length > 0);\n const lastMessageTs = hasMoreMessages\n ? messages[0].createdAt\n : null;\n\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages,\n hasMore: hasMoreMessages,\n lastMessageTimeStamp: lastMessageTs,\n currentGroupChannel,\n },\n });\n cb([messages, null]);\n })\n .catch((error) => {\n logger.error('Channel: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n messages: [],\n hasMore: false,\n lastMessageTimeStamp: 0,\n currentGroupChannel,\n },\n });\n cb([null, error]);\n })\n .finally(() => {\n currentGroupChannel.markAsRead();\n });\n }, [currentGroupChannel, lastMessageTimeStamp]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher }, { logger }) {\n return useCallback((message, cb) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message', message);\n const { requestState } = message;\n logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);\n\n // Message is only on local\n if (requestState === 'failed' || requestState === 'pending') {\n logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (cb) { cb(); }\n return;\n }\n\n // Message is on server\n currentGroupChannel.deleteMessage(message, (err) => {\n logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);\n if (cb) { cb(err); }\n if (!err) {\n logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: message.messageId,\n });\n } else {\n logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);\n }\n });\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useDeleteMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as topics from '../../../lib/pubSub/topics';\n\nfunction useUpdateMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n onBeforeUpdateUserMessage,\n}, {\n logger,\n pubSub,\n sdk,\n}) {\n return useCallback((messageId, text, cb) => {\n const createParamsDefault = (txt) => {\n const params = new sdk.UserMessageParams();\n params.message = txt;\n return params;\n };\n\n const createCustomPrams = onBeforeUpdateUserMessage\n && typeof onBeforeUpdateUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creting params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);\n }\n\n const params = onBeforeUpdateUserMessage\n ? onBeforeUpdateUserMessage(text)\n : createParamsDefault(text);\n\n currentGroupChannel.updateUserMessage(messageId, params, (r, e) => {\n logger.info('Channel: Updating message!', params);\n const swapParams = sdk.getErrorFirstCallback();\n let message = r;\n let err = e;\n if (swapParams) {\n message = e;\n err = r;\n }\n if (cb) {\n cb(err, message);\n }\n if (!err) {\n logger.info('Channel: Updating message success!', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: message,\n });\n pubSub.publish(\n topics.UPDATE_USER_MESSAGE,\n {\n message,\n channel: currentGroupChannel,\n },\n );\n } else {\n logger.warning('Channel: Updating message failed!', err);\n }\n });\n }, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\n\nfunction useResendMessageCallback({\n currentGroupChannel,\n messagesDispatcher,\n}, {\n logger,\n}) {\n return useCallback((failedMessage) => {\n logger.info('Channel: Resending message has started', failedMessage);\n const { messageType, file } = failedMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function'\n && failedMessage.isResendable()\n ) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n\n // userMessage\n if (messageType === 'user') {\n currentGroupChannel\n .resendUserMessage(failedMessage)\n .then((message) => {\n logger.info('Channel: Resending message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n return;\n }\n\n if (messageType === 'file') {\n currentGroupChannel\n .resendFileMessage(failedMessage, file)\n .then((message) => {\n logger.info('Channel: Resending file message success!', { message });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n })\n .catch((e) => {\n logger.warning('Channel: Resending file message failed!', { e });\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: failedMessage,\n });\n });\n\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESEND_MESSAGEGE_START,\n payload: failedMessage,\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('Message is not resendable');\n logger.warning('Message is not resendable', failedMessage);\n }\n }, [currentGroupChannel, messagesDispatcher]);\n}\n\nexport default useResendMessageCallback;\n","import { useRef, useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendMessageCallback({ currentGroupChannel, onBeforeSendUserMessage }, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const messageInputRef = useRef(null);\n\n const sendMessage = useCallback(\n () => {\n const text = messageInputRef.current.value;\n const createParamsDefault = (txt) => {\n const message = (typeof txt === 'string') ? txt.trim() : txt;\n const params = new sdk.UserMessageParams();\n params.message = message;\n return params;\n };\n\n const createCustomPrams = onBeforeSendUserMessage\n && typeof onBeforeSendUserMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creting params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n\n const params = onBeforeSendUserMessage\n ? onBeforeSendUserMessage(text)\n : createParamsDefault(text);\n\n logger.info('Channel: Sending message has started', params);\n const pendingMsg = currentGroupChannel.sendUserMessage(params, (res, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = res;\n let error = err;\n if (swapParams) {\n message = err;\n error = res;\n }\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n if (error) {\n logger.warning('Channel: Sending message failed!', {\n message,\n });\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: pendingMsg,\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'));\n },\n [currentGroupChannel, onBeforeSendUserMessage],\n );\n\n return [messageInputRef, sendMessage];\n}\n","import { useCallback } from 'react';\n\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\nexport default function useSendFileMessageCallback({\n currentGroupChannel, onBeforeSendFileMessage,\n}, {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n}) {\n const sendMessage = useCallback((file) => {\n const createParamsDefault = (file_) => {\n const params = new sdk.FileMessageParams();\n params.file = file_;\n return params;\n };\n\n const createCustomPrams = onBeforeSendFileMessage\n && typeof onBeforeSendFileMessage === 'function';\n\n if (createCustomPrams) {\n logger.info('Channel: creting params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n\n const params = onBeforeSendFileMessage\n ? onBeforeSendFileMessage(file)\n : createParamsDefault(file);\n\n logger.info('Channel: Uploading file message start!', params);\n const pendingMsg = currentGroupChannel.sendFileMessage(params, (response, err) => {\n const swapParams = sdk.getErrorFirstCallback();\n let message = response;\n let error = err;\n if (swapParams) {\n message = err;\n error = response;\n }\n if (error) {\n // sending params instead of pending message\n // to make sure that we can resend the message once it fails\n logger.error('Channel: Sending file message failed!', message);\n message.localUrl = URL.createObjectURL(file);\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_FAILURE,\n payload: message,\n });\n return;\n }\n logger.info('Channel: Sending message success!', message);\n messagesDispatcher({\n type: messageActionTypes.SEND_MESSAGEGE_SUCESS,\n payload: message,\n });\n });\n pubSub.publish(topics.SEND_MESSAGE_START, {\n /* pubSub is used instead of messagesDispatcher\n to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */\n message: {\n ...pendingMsg,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentGroupChannel,\n });\n setTimeout(() => utils.scrollIntoLast('.sendbird-msg--scroll-ref'), 1000);\n }, [currentGroupChannel, onBeforeSendFileMessage]);\n return [sendMessage];\n}\n","import { useEffect } from 'react';\n\nimport * as utils from '../utils';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { uuidv4 } from '../../../utils/uuid';\n\nexport default function useSetReadStatus({ allMessages, currentGroupChannel }, {\n messagesDispatcher,\n sdk,\n logger,\n}) {\n useEffect(() => {\n if (!sdk.ChannelHandler || !currentGroupChannel.url) {\n return () => {};\n }\n // todo: move to reducer?\n const setReadStatus = () => {\n const allReadStatus = allMessages.reduce((accumulator, msg) => {\n if (msg.messageId !== 0) {\n return {\n ...accumulator,\n [msg.messageId]: utils.getParsedStatus(msg, currentGroupChannel),\n };\n }\n return accumulator;\n }, {});\n messagesDispatcher({\n type: messageActionTypes.SET_READ_STATUS,\n payload: allReadStatus,\n });\n };\n if (allMessages.length > 0) {\n setReadStatus();\n }\n\n const channelUrl = currentGroupChannel.url;\n const handler = new sdk.ChannelHandler();\n const handleMessageStatus = (c) => {\n if (channelUrl === c.url) {\n setReadStatus();\n }\n };\n handler.onDeliveryReceiptUpdated = handleMessageStatus;\n handler.onReadReceiptUpdated = handleMessageStatus;\n // Add this channel event handler to the SendBird object.\n const handlerId = uuidv4();\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.addChannelHandler(handlerId, handler);\n return () => {\n if (sdk && sdk.removeChannelHandler) {\n logger.info('Channel | useSetReadStatus: Removing message reciver handler', handlerId);\n sdk.removeChannelHandler(handlerId);\n }\n };\n }, [allMessages, currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst ReactionButton = React.forwardRef((props, ref) => {\n const {\n children,\n width,\n height,\n onClick,\n selected,\n className,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n return (\n onClick(e)}\n role=\"button\"\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n
\n {children}\n
\n \n );\n});\n\nReactionButton.propTypes = {\n children: PropTypes.element.isRequired,\n onClick: PropTypes.func,\n selected: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nReactionButton.defaultProps = {\n selected: false,\n width: '36px',\n height: '36px',\n onClick: () => { },\n className: '',\n};\n\nexport default ReactionButton;\n","import React, { useMemo } from 'react';\n\nimport { EmojiListItems } from '../../../ui/ContextMenu';\nimport ReactionButton from '../../../ui/ReactionButton';\nimport ImageRenderer from '../../../ui/ImageRenderer';\nimport Icon, { IconTypes } from '../../../ui/Icon';\n\nexport default function useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n}, {\n useReaction,\n logger,\n userId,\n emojiAllList,\n}) {\n return useMemo(() => ({\n parentRef,\n parentContainRef,\n message,\n closeDropdown,\n spaceFromTrigger = {},\n }) => {\n if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {\n logger.warning('Channel: Invalid Params in memoizedEmojiListItems');\n return null;\n }\n\n return (\n \n {\n emojiAllList.map((emoji) => {\n const reactedReaction = message.reactions\n .filter((reaction) => reaction.key === emoji.key)[0];\n const isReacted = reactedReaction\n ? !(reactedReaction.userIds.indexOf(userId) < 0)\n : false;\n return (\n {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n \n }\n />\n \n );\n })\n }\n \n );\n }, [emojiContainer, toggleReaction]);\n}\n","import { useCallback } from 'react';\n\nexport default function useToggleReactionCallback({ currentGroupChannel }, { logger }) {\n return useCallback((message, key, isReacted) => {\n if (isReacted) {\n currentGroupChannel.deleteReaction(message, key)\n .then((res) => {\n logger.info('Delete reaction success', res);\n })\n .catch((err) => {\n logger.warning('Delete reaction failed', err);\n });\n return;\n }\n currentGroupChannel.addReaction(message, key)\n .then((res) => {\n logger.info('Add reaction success', res);\n })\n .catch((err) => {\n logger.warning('Add reaction failed', err);\n });\n }, [currentGroupChannel]);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport Loader from '../Loader';\nimport MessageStatusType from './type';\n\nimport { getMessageCreatedAt } from '../../utils/utils';\n\nconst MessageStatusTypes = MessageStatusType;\nexport { MessageStatusTypes };\nexport default function MessageStatus({\n message,\n status,\n className,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n const label = () => {\n switch (status) {\n case MessageStatusType.FAILED:\n case MessageStatusType.PENDING: {\n return null;\n }\n case MessageStatusType.SENT:\n case MessageStatusType.DELIVERED:\n case MessageStatusType.READ: {\n return (\n \n {getMessageCreatedAt(message)}\n \n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n \n \n \n ),\n SENT: ,\n DELIVERED: ,\n READ: ,\n FAILED: ,\n };\n\n return (\n
\n {icon[status]}\n
\n {label(status)}\n
\n );\n}\n\nMessageStatus.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nMessageStatus.defaultProps = {\n message: null,\n status: '',\n className: '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nimport './index.scss';\n\nconst ReactionBadge = React.forwardRef((props, ref) => {\n const {\n className,\n children,\n count,\n selected,\n isAdd,\n onClick,\n } = props;\n\n const injectingClassName = Array.isArray(className) ? className : [className];\n if (selected && !isAdd) {\n injectingClassName.unshift('sendbird-reaction-badge--selected');\n } else if (isAdd) {\n injectingClassName.push('sendbird-reaction-badge--is-add');\n } else {\n injectingClassName.unshift('sendbird-reaction-badge');\n }\n\n return (\n \n
\n
\n {children}\n
\n \n
\n \n );\n});\n\nReactionBadge.propTypes = {\n children: PropTypes.element.isRequired,\n count: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n selected: PropTypes.bool,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n isAdd: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nReactionBadge.defaultProps = {\n className: '',\n count: '',\n selected: false,\n isAdd: false,\n onClick: () => { },\n};\n\nexport default ReactionBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport Label from '../Label';\n\nconst CLASS_NAME = 'sendbird-tooltip';\n\nexport default function Tooltip({\n className,\n children,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n\n return (\n
\n \n {children}\n \n
\n );\n}\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n};\n\nTooltip.defaultProps = {\n className: '',\n children: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nconst CLASS_NAME = 'sendbird-tooltip-wrapper';\nconst SPACE_FROM_TRIGGER = 8;\n\nexport default function TooltipWrapper({\n className,\n children,\n hoverTooltip,\n // clickTooltip can be added later\n}) {\n const injectingClassName = Array.isArray(className)\n ? [CLASS_NAME, ...className]\n : [CLASS_NAME, className];\n const [showHoverTooltip, setShowHoverTooltip] = useState(false);\n const childrenRef = useRef(null);\n\n return (\n { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n \n {children}\n \n {\n showHoverTooltip && (\n \n \n \n {hoverTooltip}\n \n \n \n )\n }\n \n );\n}\n\nTooltipWrapper.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.element.isRequired,\n hoverTooltip: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]).isRequired,\n};\nTooltipWrapper.defaultProps = {\n className: '',\n};\n","import React, { useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport ReactionBadge from '../ReactionBadge';\nimport ImageRenderer from '../ImageRenderer';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport ContextMenu from '../ContextMenu';\nimport Tooltip from '../Tooltip';\nimport TooltipWrapper from '../TooltipWrapper';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nexport default function EmojiReactions({\n className,\n userId,\n message,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift('sendbird-emoji-reactions');\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const imageWidth = '20px';\n const imageHeight = '20px';\n const emojiReactionAddRef = useRef(null);\n const { reactions = [] } = message;\n const messageReactions = reactions;\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n {\n messageReactions && (\n messageReactions.map((reaction) => {\n const { userIds = [] } = reaction;\n const emojiUrl = emojiAllMap.get(reaction.key) || '';\n const reactedUserCount = userIds.length;\n const reactedByMe = !(userIds.indexOf(userId) < 0);\n const nicknames = userIds\n .filter((currentUserId) => currentUserId !== userId)\n .map((currentUserId) => (\n membersMap.get(currentUserId) || stringSet.TOOLTIP__UNKOWN_USER\n ));\n const stringSetForMe = (nicknames.length > 0)\n ? stringSet.TOOLTIP__AND_YOU : stringSet.TOOLTIP__YOU;\n return (\n 0 && (\n \n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n \n \n )\n }\n >\n toggleReaction(message, reaction.key, reactedByMe)}\n >\n \n )}\n />\n \n \n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n );\n}\n\nEmojiReactions.propTypes = {\n userId: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n message: PropTypes.shape({\n reactions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\nEmojiReactions.defaultProps = {\n className: '',\n membersMap: new Map(),\n userId: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const copyToClipboard = (text) => {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport default {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n createUrlTester,\n};\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport uuidv4 from '../../utils/uuid';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(/\\r/);\n const matchedMessage = splitMessage\n .map((word) => (word !== '' ? word :
));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {` ${stringSet.MESSAGE_EDITED} `}\n ,\n );\n }\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import { useEffect } from 'react';\n\nconst MOUSE_ENTER = 'mouseenter';\nconst MOUSE_LEAVE = 'mouseleave';\n\nconst useMouseHover = ({\n ref,\n setHover,\n}) => {\n const handleMouseOver = () => {\n if (ref.current) {\n setHover(true);\n }\n };\n const handleMouseOut = () => {\n if (ref.current) {\n setHover(false);\n }\n };\n\n useEffect(() => {\n const { current } = ref;\n current.addEventListener(MOUSE_ENTER, handleMouseOver);\n current.addEventListener(MOUSE_LEAVE, handleMouseOut);\n return () => {\n current.removeEventListener(MOUSE_ENTER, handleMouseOver);\n current.removeEventListener(MOUSE_LEAVE, handleMouseOut);\n };\n });\n};\n\nexport default useMouseHover;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport UserProfile from '../UserProfile';\nimport Avatar from '../Avatar/index';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport MessageStatus from '../MessageStatus';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n copyToClipboard,\n getMessageCreatedAt,\n getSenderName,\n getSenderProfileUrl,\n getIsSentFromStatus,\n} from './utils';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function Message(props) {\n const {\n isByMe,\n userId,\n message,\n className,\n resendMessage,\n disabled,\n showEdit,\n showRemove,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n } = props;\n\n if (!message) return null;\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n injectingClassName.push(`sendbird-message${isByMe ? '--outgoing' : '--incoming'}`);\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-user-message-word',\n });\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nMessage.propTypes = {\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])).isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showEdit: PropTypes.func,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n userId: '',\n resendMessage: noop,\n className: '',\n showEdit: noop,\n showRemove: noop,\n status: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUserMessage({\n userId,\n message,\n showEdit,\n disabled,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n // TODO: when message.requestState is succeeded, consider if it's SENT or DELIVERED\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n \n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n { showRemove(true); }}\n // onResend={() => resendMessage(message)}\n // duplicated and should replace to more\n />\n
\n )\n }\n
\n
\n
\n
\n \n \n \n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n \n \n );\n}\n\nfunction IncomingUserMessage({\n userId,\n message,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n // showProfile && ()\n }\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-user-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n
\n \n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n
\n
\n
\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nIncomingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingUserMessage.defaultProps = {\n message: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nOutgoingUserMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n disabled: PropTypes.bool,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUserMessage.defaultProps = {\n message: {},\n resendMessage: noop,\n showEdit: noop,\n showRemove: noop,\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport Label, { LabelColors, LabelTypography } from '../Label';\n\nexport default function AdminMessage({\n className,\n message,\n}) {\n if (!message.messageType || message.messageType !== 'admin') { // change to use message.isAdminMessage()\n return null;\n }\n\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n
\n \n
\n );\n}\n\nAdminMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nAdminMessage.defaultProps = {\n message: {},\n className: '',\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport default {\n getMessageCreatedAt,\n getIsSentFromStatus,\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport {\n getMessageCreatedAt,\n getIsSentFromStatus,\n} from './util';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport {\n isImage,\n isVideo,\n unSupported,\n} from '../FileViewer/types';\nimport {\n getSenderName,\n getSenderProfileUrl,\n} from '../../utils/utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst noop = () => { };\n\nconst OUTGOING_THUMBNAIL_MESSAGE = 'sendbird-outgoing-thumbnail-message';\nconst INCOMING_THUMBNAIL_MESSAGE = 'sendbird-incoming-thumbnail-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function ThumbnailMessage({\n message = {},\n userId,\n disabled,\n isByMe,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n return (\n isByMe\n ? (\n \n )\n : (\n \n )\n );\n}\n\nexport function OutgoingThumbnailMessage({\n message = {},\n userId,\n disabled,\n onClick,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n isMessageSent && showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n )\n }\n
\n
\n \n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n tabIndex={0}\n role=\"button\"\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n Unknown type\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n \n \n \n );\n}\n\nexport function IncomingThumbnailMessage({\n message = {},\n userId,\n onClick,\n status,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n type,\n url,\n localUrl,\n } = message;\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const reactionAddRef = useRef(null);\n const avatarRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showReactionAddButton = (useReaction && emojiAllMap && emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n {\n !chainTop && (\n \n {getSenderName(message) || ''}\n \n )\n }\n
\n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_THUMBNAIL_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n \n \n \n )\n }\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n Unknown type\n
\n )\n }\n
\n
\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n \n )\n }\n
\n
\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n
\n \n \n );\n}\n\nThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string,\n resendMessage: PropTypes.func,\n status: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n showRemove: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\nThumbnailMessage.defaultProps = {\n isByMe: false,\n disabled: false,\n resendMessage: noop,\n onClick: noop,\n showRemove: noop,\n status: '',\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nOutgoingThumbnailMessage.defaultProps = {\n status: '',\n};\n\nIncomingThumbnailMessage.propTypes = {\n message: PropTypes.shape({\n type: PropTypes.string,\n url: PropTypes.string,\n localUrl: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\nIncomingThumbnailMessage.defaultProps = {\n status: '',\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport IconButton from '../IconButton';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport TextButton from '../TextButton';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelColors, LabelTypography } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport EmojiReactions from '../EmojiReactions';\n\nimport { getSenderProfileUrl, getSenderName, getMessageCreatedAt } from '../../utils/utils';\nimport {\n truncate,\n getIsSentFromStatus,\n} from './utils';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst MAX_TRUNCATE_LENGTH = 40;\nconst GROUPAING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\nconst noop = () => { };\n\nfunction checkFileType(fileUrl) {\n let result = null;\n const imageFile = /(\\.gif|\\.jpg|\\.jpeg|\\.txt|\\.pdf)$/i;\n const audioFile = /(\\.mp3)$/i;\n if (imageFile.test(fileUrl)) {\n result = IconTypes.FILE_DOCUMENT;\n } else if (audioFile.test(fileUrl)) {\n result = IconTypes.FILE_AUDIO;\n }\n return result;\n}\n\nexport function OutgoingFileMessage({\n message,\n userId,\n status,\n showRemove,\n disabled,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const {\n url,\n } = message;\n const openFileUrl = () => { window.open(url); };\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const isMessageSent = getIsSentFromStatus(status);\n const showEmojiReactions = isMessageSent && useReaction && message.reactions\n && (message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n {\n checkFileType(url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n showEmojiReactions && (\n \n )\n }\n
\n \n \n );\n}\n\nexport function IncomingFileMessage({\n message,\n userId,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) {\n const openFileUrl = () => { window.open(message.url); };\n const messageRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n const parentContainRef = useRef(null);\n const avatarRef = useRef(null);\n const reactionAddButtonRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className=\"sendbird-file-message__avatar\"\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n
\n {\n checkFileType(message.url)\n ? (\n \n )\n : null\n }\n \n \n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n \n \n
\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n \n )\n }\n
\n
\n
\n \n {\n showReactionAddButton && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n \n \n );\n}\n\nOutgoingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n status: PropTypes.string,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n useReaction: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingFileMessage.defaultProps = {\n status: '',\n showRemove: noop,\n resendMessage: noop,\n message: {},\n userId: '',\n disabled: false,\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nIncomingFileMessage.propTypes = {\n message: PropTypes.objectOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.array,\n PropTypes.object,\n ])),\n userId: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nIncomingFileMessage.defaultProps = {\n message: {},\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n};\n\nconst MessageSwitch = ({\n message,\n userId,\n disabled,\n isByMe,\n showRemove,\n status,\n resendMessage,\n useReaction,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n chainTop,\n chainBottom,\n}) => (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n);\n\n\nMessageSwitch.propTypes = {\n message: PropTypes.shape({}),\n userId: PropTypes.string,\n isByMe: PropTypes.bool,\n disabled: PropTypes.bool,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n status: PropTypes.string.isRequired,\n useReaction: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nMessageSwitch.defaultProps = {\n message: {},\n isByMe: false,\n disabled: false,\n showRemove: noop,\n resendMessage: noop,\n userId: '',\n emojiAllMap: new Map(),\n membersMap: new Map(),\n toggleReaction: noop,\n memoizedEmojiListItems: () => '',\n chainTop: false,\n chainBottom: false,\n};\n\nexport default MessageSwitch;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { changeColorToClassName, Colors } from '../../utils/color';\nimport Label, { LabelTypography, LabelColors } from '../Label';\n\nexport default function DateSeparator({\n className,\n children,\n separatorColor,\n}) {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n \n
\n
{children}
\n
\n
\n );\n}\n\nDateSeparator.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.element,\n ]),\n separatorColor: PropTypes.string,\n};\n\nDateSeparator.defaultProps = {\n className: '',\n children: (\n \n ),\n separatorColor: Colors.ONBACKGROUND_4,\n};\n","import React, {\n useState,\n useRef,\n useEffect,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\n\nimport IconButton from '../IconButton';\nimport Button from '../Button';\nimport { Type, Size } from '../Button/type';\n\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n// import IconSend from '../../svgs/icon-send.svg';\n// import IconAttach from '../../svgs/icon-attach.svg';\n\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst KeyCode = {\n SHIFT: 16,\n ENTER: 13,\n};\n\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n isEdit,\n disabled,\n value,\n name,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onCancelEdit,\n onStartTyping,\n } = props;\n\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [inputValue, setInputValue] = useState(value);\n const [isShiftPressed, setIsShiftPressed] = useState(false);\n\n const setHeight = () => {\n const elem = ref.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n };\n\n // after setHeight called twice, the textarea goes to the initialized\n useEffect(() => {\n setHeight();\n return setHeight;\n }, [inputValue]);\n\n const sendMessage = () => {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n if (isEdit) {\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n } else {\n onSendMessage(trimmedInputValue);\n setInputValue('');\n }\n }\n };\n\n return (\n \n \n {\n setInputValue(e.target.value);\n onStartTyping();\n }}\n onKeyDown={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(true);\n }\n if (!isShiftPressed && e.keyCode === KeyCode.ENTER) {\n e.preventDefault();\n sendMessage();\n }\n }}\n onKeyUp={(e) => {\n if (e.keyCode === KeyCode.SHIFT) {\n setIsShiftPressed(false);\n }\n }}\n />\n {/* placeholder */}\n {!inputValue && (\n \n {placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER}\n \n )}\n {/* upload icon */}\n {\n (!isEdit && !inputValue) && (\n {\n // todo: clear previous input\n fileInputRef.current.click();\n }}\n >\n \n \n \n )\n }\n {/* send icon */}\n {\n (!isEdit && inputValue) && (\n \n \n \n )\n }\n
\n {/* Edit */}\n {\n isEdit && (\n
\n \n {stringSet.BUTTON__CANCEL}\n \n {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n }\n }}\n >\n {stringSet.BUTTON__SAVE}\n \n
\n )\n }\n \n );\n});\n\nMessageInput.propTypes = {\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isEdit: PropTypes.bool,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n value: PropTypes.string,\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n value: '',\n onSendMessage: noop,\n name: 'sendbird-message-input',\n isEdit: false,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n};\n\nexport default MessageInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\n\nimport './index.scss';\nimport Avatar from '../Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes } from '../Icon';\nimport { MODAL_ROOT } from '../../hooks/useModal/ModalRoot';\n\nimport { isImage, isVideo, unSupported } from './types';\n\nexport const FileViewerComponent = ({\n profileUrl,\n nickname,\n type,\n url,\n name,\n onClose,\n onDelete,\n isByMe,\n}) => (\n
\n
\n
\n
\n \n
\n \n {name}\n \n \n {nickname}\n \n
\n
\n {\n !unSupported(type) && (\n
\n \n \n \n {\n onDelete && isByMe && (\n
\n \n
\n )\n }\n
\n )\n }\n
\n \n
\n
\n
\n
\n {isVideo(type) && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n \n )}\n {\n isImage(type) && (\n \n )\n }\n {\n unSupported(type) && (\n
\n \n
\n )\n }\n
\n
\n);\n\nFileViewerComponent.propTypes = {\n profileUrl: PropTypes.string.isRequired,\n nickname: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewerComponent.defaultProps = {\n isByMe: true,\n};\n\nexport default function FileViewer(props) {\n const {\n onClose,\n message,\n onDelete,\n isByMe,\n } = props;\n const {\n sender,\n type,\n url,\n name = '',\n } = message;\n const { profileUrl, nickname = '' } = sender;\n return createPortal(\n (\n \n ),\n document.getElementById(MODAL_ROOT),\n );\n}\n\nFileViewer.propTypes = {\n onClose: PropTypes.func.isRequired,\n message: PropTypes.shape({\n sender: PropTypes.shape({\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }),\n type: PropTypes.string,\n url: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onDelete: PropTypes.func.isRequired,\n isByMe: PropTypes.bool,\n};\n\nFileViewer.defaultProps = {\n isByMe: true,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from '../../../ui/Modal';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\nconst RemoveMessage = (props) => {\n const {\n onCloseModal,\n onDeleteMessage,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n );\n};\n\nRemoveMessage.propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n onDeleteMessage: PropTypes.func.isRequired,\n};\n\nexport default RemoveMessage;\n","import format from 'date-fns/format';\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport default {\n getMessageCreatedAt,\n};\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Avatar from '../Avatar/index';\nimport UserProfile from '../UserProfile';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport MessageStatus from '../MessageStatus';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport IconButton from '../IconButton';\nimport Icon, { IconColors, IconTypes } from '../Icon';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst CLASS_NAME = 'sendbird-unknown-message';\nconst GROUPING_PADDING = '1px';\nconst NORMAL_PADDING = '8px';\n\nexport default function UnknownMessage({\n message,\n isByMe,\n status,\n className,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const injectingClassName = Array.isArray(className) ? className : [className];\n injectingClassName.unshift(CLASS_NAME);\n injectingClassName.push(`${CLASS_NAME}${isByMe ? '--outgoing' : '--incoming'}`);\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n}\n\nUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n isByMe: PropTypes.bool,\n status: PropTypes.string,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nUnknownMessage.defaultProps = {\n isByMe: false,\n status: '',\n className: '',\n showRemove: () => { },\n chainTop: false,\n chainBottom: false,\n};\n\nfunction OutgoingUnknownMessage({\n message,\n status,\n showRemove,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-outgoing-unknown-message';\n const messageRef = useRef(null);\n const parentContainRef = useRef(null);\n const menuRef = useRef(null);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n \n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { showRemove(true); closeDropdown(); }}\n >\n Delete\n \n \n )}\n />\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n \n \n );\n}\n\nfunction IncomingUnknownMessage({\n message,\n chainTop,\n chainBottom,\n}) {\n const className = 'sendbird-incoming-unknown-message';\n const { sender } = message;\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${className}__left__sender-profile-image`}\n src={sender.profileUrl}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n
\n
\n {\n !chainTop && (\n \n {sender.nickname || stringSet.NO_NAME}\n \n )\n }\n
\n \n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n \n \n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n \n
\n
\n
\n {\n !chainBottom && (\n \n {utils.getMessageCreatedAt(message)}\n \n )\n }\n
\n
\n \n );\n}\n\nOutgoingUnknownMessage.propTypes = {\n message: PropTypes.shape({}).isRequired,\n status: PropTypes.string.isRequired,\n showRemove: PropTypes.func,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingUnknownMessage.defaultProps = {\n showRemove: () => { },\n};\n\nIncomingUnknownMessage.propTypes = {\n message: PropTypes.shape({\n sender: PropTypes.shape({\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n }),\n }).isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","export const URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const OG_MESSAGE = 'sendbird-og-message';\nexport const OUTGOING_OG_MESSAGE = 'sendbird-outgoing-og-message';\nexport const INCOMING_OG_MESSAGE = 'sendbird-incoming-og-message';\nexport const generateMockMessage = (process) => {\n const message = {\n message: 'go to this link sendbird.com it will be usefull to you!!',\n ogMetaData: {\n title: 'This is the TITLE',\n description: 'I\\'m description I\\'m description I\\'m description I\\'m description ',\n url: 'https://sendbird.com/',\n defaultImage: {\n url: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n alt: 'test',\n },\n },\n sender: {\n profileUrl: 'https://static.sendbird.com/sample/profiles/profile_12_512px.png',\n nickname: 'Hoonying',\n },\n createdAt: 2000000,\n };\n if (process && typeof process === 'function') {\n return process(message);\n }\n return message;\n};\n\nexport default {\n URL_REG,\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n generateMockMessage,\n};\n","import format from 'date-fns/format';\nimport MessageStatusType from '../MessageStatus/type';\n\nexport const createUrlTester = (regexp) => (text) => regexp.test(text);\n\nexport const getIsSentFromStatus = (status) => (\n status === MessageStatusType.SENT\n || status === MessageStatusType.DELIVERED\n || status === MessageStatusType.READ\n);\n\nexport const copyToClipboard = (text) => {\n try {\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path\n // to prevent textarea being shown while dialog is visible.\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSenderProfileUrl = (message) => message.sender && message.sender.profileUrl;\n\nexport const getSenderName = (message) => (\n message.sender && (\n message.sender.friendName\n || message.sender.nickname\n || message.sender.userId\n )\n);\n\nexport const getMessageCreatedAt = (message) => format(message.createdAt, 'p');\n\nexport const checkOGIsEnalbed = (message) => {\n const { ogMetaData } = message;\n if (!ogMetaData) {\n return false;\n }\n const { url } = ogMetaData;\n if (!url) {\n return false;\n }\n return true;\n};\n\nexport default {\n getSenderName,\n createUrlTester,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport './index.scss';\n\nconst LINK_LABEL = 'sendbird-link-label';\nconst http = /https?:\\/\\//;\n\nexport default function LinkLabel({\n className,\n src,\n type,\n color,\n children,\n}) {\n const injecingClassName = Array.isArray(className) ? className : [className];\n const url = (http.test(src)) ? src : `http://${src}`;\n\n return (\n \n \n \n );\n}\n\nLinkLabel.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n src: PropTypes.string.isRequired,\n type: PropTypes.oneOf(Object.keys(LabelTypography)).isRequired,\n color: PropTypes.oneOf(Object.keys(LabelColors)).isRequired,\n};\n\nLinkLabel.defaultProps = {\n className: '',\n};\n\nexport const LinkLabelTypography = LabelTypography;\nexport const LinkLabelColors = LabelColors;\n","import React, { useMemo, useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport LinkLabel from '../LinkLabel';\nimport uuidv4 from '../../utils/uuid';\nimport { createUrlTester } from './utils';\nimport { URL_REG } from './const';\n\nconst WORD_TYPOGRAPHY = LabelTypography.BODY_1;\nconst WORD_COLOR = LabelColors.ONBACKGROUND_1;\nconst EDITED_COLOR = LabelColors.ONBACKGROUND_2;\nconst isUrl = createUrlTester(URL_REG);\n\nexport default function useMemoizedMessageText({\n message,\n updatedAt,\n className,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n return useMemo(() => () => {\n const splitMessage = message.split(' ');\n const matchedMessage = splitMessage\n .map((word) => (\n isUrl(word)\n ? (\n \n {word}\n \n )\n : (\n \n {word}\n \n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n \n {stringSet.MESSAGE_EDITED}\n ,\n );\n }\n // return (<>{matchedMessage});\n return matchedMessage;\n }, [message, updatedAt, className]);\n}\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n OG_MESSAGE,\n OUTGOING_OG_MESSAGE,\n INCOMING_OG_MESSAGE,\n} from './const';\nimport {\n getSenderName,\n copyToClipboard,\n checkOGIsEnalbed,\n getMessageCreatedAt,\n getIsSentFromStatus,\n getSenderProfileUrl,\n} from './utils';\nimport { UserProfileContext } from '../../lib/UserProfileContext';\nimport useMemoizedMessageText from './memoizedMessageText';\nimport './index.scss';\n\nimport UserProfile from '../UserProfile';\nimport IconButton from '../IconButton';\nimport ImageRenderer from '../ImageRenderer';\nimport MessageStatus from '../MessageStatus';\nimport EmojiReactions from '../EmojiReactions';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport ContextMenu, { MenuItem, MenuItems } from '../ContextMenu';\nimport Avatar from '../Avatar/index';\n\nimport useMouseHover from '../../hooks/onMouseHover';\n\nconst GROUPING_PADDING = '1px';\nconst NORAML_PADDING = '8px';\n\nconst OGMessageSwitch = ({\n isByMe,\n userId,\n status,\n message,\n disabled,\n showEdit,\n chainTop,\n className,\n membersMap,\n showRemove,\n useReaction,\n emojiAllMap,\n chainBottom,\n resendMessage,\n toggleReaction,\n memoizedEmojiListItems,\n}) => {\n const { ogMetaData } = message;\n const injectingClassName = Array.isArray(className) ? className : [className];\n\n const memoizedMessageText = useMemoizedMessageText({\n message: message.message,\n updatedAt: message.updatedAt,\n className: 'sendbird-og-message-word',\n });\n const openLink = () => {\n if (checkOGIsEnalbed(message)) {\n const { url } = ogMetaData;\n window.open(url);\n }\n };\n\n return (\n
\n {\n isByMe\n ? (\n \n )\n : (\n \n )\n }\n
\n );\n};\n\nfunction OutgoingOGMessage(props) {\n const {\n status,\n userId,\n message,\n disabled,\n openLink,\n showEdit,\n chainTop,\n showRemove,\n membersMap,\n chainBottom,\n emojiAllMap,\n useReaction,\n resendMessage,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n const messageRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const isMessageSent = getIsSentFromStatus(status);\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n
\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n isMessageSent && (\n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n )\n }\n {\n isMessageSent && (\n {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n \n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n \n )\n }\n {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n \n \n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n
\n \n
\n )\n }\n
\n
\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n \n \n );\n}\n\nfunction IncomingOGMessage(props) {\n const {\n userId,\n message,\n openLink,\n chainTop,\n membersMap,\n chainBottom,\n useReaction,\n emojiAllMap,\n toggleReaction,\n memoizedMessageText,\n memoizedEmojiListItems,\n } = props;\n const {\n ogMetaData,\n } = message;\n const {\n defaultImage,\n } = ogMetaData;\n const MemoizedMessageText = memoizedMessageText;\n const MemoizedEmojiListItems = memoizedEmojiListItems;\n\n const messageRef = useRef(null);\n const avatarRef = useRef(null);\n const parentRefReactions = useRef(null);\n const parentRefMenus = useRef(null);\n const parentContainRef = useRef(null);\n\n const {\n disableUserProfile,\n renderUserProfile,\n } = React.useContext(UserProfileContext);\n\n const [mousehover, setMousehover] = useState(false);\n const [moreActive, setMoreActive] = useState(false);\n\n const showEmojiReactions = (useReaction && message.reactions && message.reactions.length > 0);\n const showReactionAddButton = useReaction && emojiAllMap && (emojiAllMap.size > 0);\n\n const handleMoreIconClick = () => {\n setMoreActive(true);\n };\n const handleMoreIconBlur = () => {\n setMoreActive(false);\n };\n\n useMouseHover({\n ref: messageRef,\n setHover: setMousehover,\n });\n\n return (\n \n
\n
\n {\n !chainBottom && (\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n className={`${INCOMING_OG_MESSAGE}__avatar`}\n src={getSenderProfileUrl(message)}\n width=\"28px\"\n height=\"28px\"\n alt=\"sender-profile-image\"\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n )\n }\n {\n !chainTop && (\n \n {getSenderName(message)}\n \n )\n }\n
\n \n
\n \n {\n defaultImage && (\n \n \n
\n )}\n />\n )\n }\n
\n \n {\n ogMetaData.title && (\n
\n\n \n
\n )\n }\n {\n ogMetaData.description && (\n
\n \n {ogMetaData.description}\n \n
\n )\n }\n {\n ogMetaData.url && (\n
\n \n {ogMetaData.url}\n \n
\n )\n }\n {\n showEmojiReactions\n && (\n event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n }\n \n \n
\n {\n !chainBottom && !(mousehover || moreActive) && (\n \n {getMessageCreatedAt(message)}\n \n )\n }\n
\n {\n showReactionAddButton\n && (\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n )}\n />\n )\n }\n (\n {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n \n \n )}\n menuItems={(closeDropdown) => (\n \n { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n \n \n )}\n />\n
\n
\n \n \n );\n}\n\nexport default OGMessageSwitch;\n\nconst noop = () => { };\n\nOGMessageSwitch.propTypes = {\n isByMe: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n useReaction: PropTypes.bool.isRequired,\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n status: PropTypes.string,\n disabled: PropTypes.bool,\n showEdit: PropTypes.func,\n showRemove: PropTypes.func,\n resendMessage: PropTypes.func,\n toggleReaction: PropTypes.func,\n membersMap: PropTypes.instanceOf(Map),\n emojiAllMap: PropTypes.instanceOf(Map),\n memoizedEmojiListItems: PropTypes.func,\n chainTop: PropTypes.bool,\n chainBottom: PropTypes.bool,\n};\n\nOGMessageSwitch.defaultProps = {\n className: '',\n status: '',\n disabled: false,\n showEdit: noop,\n showRemove: noop,\n resendMessage: noop,\n toggleReaction: noop,\n membersMap: new Map(),\n emojiAllMap: new Map(),\n memoizedEmojiListItems: noop,\n chainTop: false,\n chainBottom: false,\n};\n\nOutgoingOGMessage.propTypes = {\n status: PropTypes.string,\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n isResendable: PropTypes.func,\n errorCode: PropTypes.number,\n }).isRequired,\n disabled: PropTypes.bool.isRequired,\n openLink: PropTypes.func.isRequired,\n showEdit: PropTypes.func.isRequired,\n showRemove: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n resendMessage: PropTypes.func.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n\nOutgoingOGMessage.defaultProps = {\n status: '',\n};\n\nIncomingOGMessage.propTypes = {\n userId: PropTypes.string.isRequired,\n message: PropTypes.shape({\n message: PropTypes.string,\n sender: PropTypes.shape({}),\n ogMetaData: PropTypes.shape({\n title: PropTypes.string,\n description: PropTypes.string,\n url: PropTypes.string,\n defaultImage: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string,\n }),\n }),\n reactions: PropTypes.array,\n updatedAt: PropTypes.number,\n }).isRequired,\n openLink: PropTypes.func.isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n useReaction: PropTypes.bool.isRequired,\n toggleReaction: PropTypes.func.isRequired,\n memoizedMessageText: PropTypes.func.isRequired,\n memoizedEmojiListItems: PropTypes.func.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n};\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport format from 'date-fns/format';\n\nimport Message from '../../../ui/Message';\nimport AdminMessage from '../../../ui/AdminMessage';\nimport ThumbnailMessage from '../../../ui/ThumbnailMessage';\nimport FileMessage from '../../../ui/FileMessage';\nimport DateSeparator from '../../../ui/DateSeparator';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport MessageInput from '../../../ui/MessageInput';\nimport FileViewer from '../../../ui/FileViewer';\nimport RemoveMessageModal from './RemoveMessage';\nimport UnknownMessage from '../../../ui/UnknownMessage';\nimport OGMessage from '../../../ui/OGMessage';\n\nimport { MessageTypes, getMessageType } from '../types';\n\nexport default function MessageHoc({\n message,\n userId,\n disabled,\n editDisabled,\n hasSeperator,\n deleteMessage,\n updateMessage,\n status,\n resendMessage,\n useReaction,\n chainTop,\n chainBottom,\n emojiAllMap,\n membersMap,\n toggleReaction,\n memoizedEmojiListItems,\n}) {\n const { sender = {} } = message;\n const [showEdit, setShowEdit] = useState(false);\n const [showRemove, setShowRemove] = useState(false);\n const [showFileViewer, setShowFileViewer] = useState(false);\n const editMessageInputRef = useRef(null);\n\n const isByMe = (userId === sender.userId)\n || (message.requestState === 'pending')\n || (message.requestState === 'failed');\n\n if (showEdit) {\n return (\n { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n
\n {/* date-seperator */}\n {\n hasSeperator && (\n \n \n \n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: ,\n [MessageTypes.FILE]: (\n \n ),\n [MessageTypes.OG]: (\n \n ),\n [MessageTypes.THUMBNAIL]: (\n \n ),\n [MessageTypes.USER]: (\n \n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n setShowFileViewer(false)}\n message={message}\n onDelete={() => {\n deleteMessage(message, () => {\n setShowFileViewer(false);\n });\n }}\n isByMe={isByMe}\n />\n )\n }\n {\n !((message.isFileMessage && message.isFileMessage()) || message.messageType === 'file')\n && !(message.isAdminMessage && message.isAdminMessage())\n && !(((message.isUserMessage && message.isUserMessage()) || message.messageType === 'user'))\n && !(showFileViewer)\n && (\n \n )\n }\n
\n );\n}\n\nMessageHoc.propTypes = {\n userId: PropTypes.string,\n message: PropTypes.shape({\n isFileMessage: PropTypes.func,\n isAdminMessage: PropTypes.func,\n isUserMessage: PropTypes.func,\n isDateSeperator: PropTypes.func,\n // should be a number, but there's a bug in SDK shich returns string\n messageId: PropTypes.number,\n type: PropTypes.string,\n createdAt: PropTypes.number,\n message: PropTypes.string,\n requestState: PropTypes.string,\n messageType: PropTypes.string,\n sender: PropTypes.shape({ userId: PropTypes.string }),\n ogMetaData: PropTypes.shape({}),\n }),\n hasSeperator: PropTypes.bool,\n disabled: PropTypes.bool,\n editDisabled: PropTypes.bool,\n deleteMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n status: PropTypes.string,\n useReaction: PropTypes.bool.isRequired,\n chainTop: PropTypes.bool.isRequired,\n chainBottom: PropTypes.bool.isRequired,\n emojiAllMap: PropTypes.instanceOf(Map).isRequired,\n membersMap: PropTypes.instanceOf(Map).isRequired,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nMessageHoc.defaultProps = {\n userId: '',\n editDisabled: false,\n message: {},\n hasSeperator: false,\n disabled: false,\n status: '',\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport './conversation-scroll.scss';\nimport * as messageActionTypes from '../dux/actionTypes';\n\nimport MessageHOC from './MessageHOC';\nimport {\n getParsedStatus,\n compareMessagesForGrouping,\n} from '../utils';\n\nexport default class ConversationScroll extends Component {\n onScroll = (e) => {\n const {\n scrollRef,\n hasMore,\n messagesDispatcher,\n onScroll,\n currentGroupChannel,\n } = this.props;\n\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n if (scrollTop === 0) {\n if (!hasMore) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll('.sendbird-msg--scroll-ref');\n const first = nodes[0];\n onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n first.scrollIntoView();\n }\n });\n }\n\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n }\n\n render() {\n const {\n userId,\n disabled,\n scrollRef,\n readStatus,\n membersMap,\n initialized,\n allMessages,\n useReaction,\n emojiAllMap,\n editDisabled,\n deleteMessage,\n updateMessage,\n resendMessage,\n renderChatItem,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n } = this.props;\n return (\n
\n \n
\n {/*\n To do: Implement windowing\n Implement windowing if you are dealing with large number of messages/channels\n https://github.com/bvaughn/react-window -> recommendation\n We hesitate to bring one more dependency to our library,\n we are planning to implement it inside the library\n */}\n
\n {\n initialized\n && allMessages.map(\n (m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage && previousMessage.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeperator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n if (renderChatItem) {\n return (\n \n {\n renderChatItem({\n message: m,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n })\n }\n
\n );\n }\n\n return (\n \n );\n },\n )\n }\n
\n
\n \n );\n }\n}\n\nConversationScroll.propTypes = {\n // https://stackoverflow.com/a/52646941\n scrollRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}),\n ]),\n }).isRequired,\n hasMore: PropTypes.bool,\n messagesDispatcher: PropTypes.func.isRequired,\n onScroll: PropTypes.func,\n initialized: PropTypes.bool,\n editDisabled: PropTypes.bool,\n disabled: PropTypes.bool,\n userId: PropTypes.string,\n allMessages: PropTypes.arrayOf(PropTypes.shape({\n createdAt: PropTypes.number,\n })).isRequired,\n deleteMessage: PropTypes.func.isRequired,\n resendMessage: PropTypes.func.isRequired,\n updateMessage: PropTypes.func.isRequired,\n readStatus: PropTypes.shape({}).isRequired,\n currentGroupChannel: PropTypes.shape({\n markAsRead: PropTypes.func,\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n renderChatItem: PropTypes.element,\n useReaction: PropTypes.bool,\n emojiContainer: PropTypes.shape({}),\n emojiAllMap: PropTypes.instanceOf(Map),\n membersMap: PropTypes.instanceOf(Map),\n useMessageGrouping: PropTypes.bool,\n toggleReaction: PropTypes.func,\n memoizedEmojiListItems: PropTypes.func,\n};\n\nConversationScroll.defaultProps = {\n hasMore: false,\n editDisabled: false,\n disabled: false,\n initialized: false,\n userId: '',\n renderChatItem: null,\n onScroll: null,\n useReaction: true,\n emojiContainer: {},\n emojiAllMap: new Map(),\n membersMap: new Map(),\n useMessageGrouping: true,\n toggleReaction: () => { },\n memoizedEmojiListItems: () => '',\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './notification.scss';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../ui/Icon';\n\nexport default function Notification({\n count,\n time,\n onClick,\n}) {\n const { stringSet } = useContext(LocalizationContext);\n const timeArray = time.split(' ');\n timeArray.splice(-2, 0, stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__ON);\n return (\n // eslint-disable-next-line\n
\n \n \n
\n );\n}\n\nNotification.propTypes = {\n count: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n time: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n};\n\nNotification.defaultProps = {\n count: 0,\n time: '',\n};\n","import React, { useContext } from 'react';\n\nimport './notification.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelTypography } from '../../../ui/Label';\n\nconst FrozenNotification = (): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n \n {stringSet.CHANNEL_FROZEN}\n \n
\n );\n}\n\nexport default FrozenNotification;\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { uuidv4 } from '../../../utils/uuid';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\n\nconst TypingIndicatorText = ({ members }) => {\n const { stringSet } = useContext(LocalizationContext);\n if (!members || members.length === 0) {\n return '';\n }\n\n if (members && members.length === 1) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__IS_TYPING}`;\n }\n\n if (members && members.length === 2) {\n return `${members[0].nickname} ${stringSet.TYPING_INDICATOR__AND} ${members[1].nickname} ${stringSet.TYPING_INDICATOR__ARE_TYPING}`;\n }\n\n return stringSet.TYPING_INDICATOR__MULTIPLE_TYPING;\n};\n\nfunction TypingIndicator({ channelUrl, sb, logger }) {\n const [handlerId, setHandlerId] = useState(uuidv4());\n const [typingMembers, setTypingMembers] = useState([]);\n\n useEffect(() => {\n if (sb && sb.ChannelHandler) {\n sb.removeChannelHandler(handlerId);\n const newHandlerId = uuidv4();\n const handler = new sb.ChannelHandler();\n // there is a possible warning in here - setState called after unmount\n handler.onTypingStatusUpdated = (groupChannel) => {\n logger.info('Channel > Typing Indicator: onTypingStatusUpdated', groupChannel);\n const members = groupChannel.getTypingMembers();\n if (groupChannel.url === channelUrl) {\n setTypingMembers(members);\n }\n };\n sb.addChannelHandler(newHandlerId, handler);\n setHandlerId(newHandlerId);\n }\n\n return () => {\n setTypingMembers([]);\n if (sb && sb.removeChannelHandler) {\n sb.removeChannelHandler(handlerId);\n }\n };\n }, [channelUrl]);\n\n return (\n \n );\n}\n\nTypingIndicator.propTypes = {\n channelUrl: PropTypes.string.isRequired,\n sb: PropTypes.shape({\n ChannelHandler: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n addChannelHandler: PropTypes.func,\n }).isRequired,\n logger: PropTypes.shape({\n info: PropTypes.func,\n }).isRequired,\n};\n\nexport default TypingIndicator;\n","// Logic required to handle message input rendering\n\nimport React, { useContext } from 'react';\n\nimport { SendbirdTypes } from '../../../types';\nimport { RenderMessageInputProps } from '../../../index';\nimport * as utils from '../utils.js';\n\nimport MessageInput from '../../../ui/MessageInput';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\n\ninterface Props {\n channel: SendbirdTypes[\"GroupChannel\"];\n user: SendbirdTypes[\"User\"];\n isOnline: boolean;\n initialized: boolean;\n onSendMessage(): void;\n onFileUpload(): void;\n renderMessageInput(renderProps: RenderMessageInputProps): JSX.Element;\n}\n\nconst MessageInputWrapper = ({\n channel,\n user,\n onSendMessage,\n onFileUpload,\n renderMessageInput,\n isOnline,\n initialized,\n}: Props, ref: React.RefObject): JSX.Element => {\n const { stringSet } = useContext(LocalizationContext);\n const disabled = !initialized\n || utils.isDisabledBecauseFrozen(channel)\n || utils.isDisabledBecauseMuted(channel)\n || !isOnline;\n\n const isOperator = utils.isOperator(channel);\n const { isBroadcast } = channel;\n\n // custom message\n if (renderMessageInput) {\n return renderMessageInput({ channel, user, disabled });\n }\n\n // broadcast channel + not operator\n if (isBroadcast && !isOperator) {\n return null;\n }\n\n // other conditions\n return (\n {\n channel.startTyping();\n }}\n onSendMessage={onSendMessage}\n onFileUpload={onFileUpload}\n />\n );\n}\n\nexport default React.forwardRef(MessageInputWrapper);\n","import React, { useContext } from 'react';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\n\nimport './index.scss';\n\nfunction ConnectionStatus() {\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n \n \n \n );\n}\n\nexport default ConnectionStatus;\n","import formatDistanceToNowStrict from 'date-fns/formatDistanceToNowStrict';\nimport { LabelStringSet } from '../Label';\n\nexport const prettyDate = (date) => formatDistanceToNowStrict(date, { addSuffix: true });\n\nexport const getOthersLastSeenAt = (channel) => {\n if (!channel || !channel.getReadStatus || !channel.members || channel.members.length !== 2) {\n return '';\n }\n const lastSeenList = [...Object.values(channel.getReadStatus())];\n const lastSeenAt = lastSeenList.length > 0\n ? lastSeenList[0].last_seen_at\n : 0;\n if (lastSeenAt === 0) {\n return '';\n }\n return prettyDate(lastSeenAt);\n};\n\nexport const getChannelTitle = (channel = {}, currentUserId, stringSet = LabelStringSet) => {\n if (!channel || (!channel.name && !channel.members)) {\n return stringSet.NO_TITLE;\n }\n if (channel.name && channel.name !== 'Group Channel') {\n return channel.name;\n }\n\n if (channel.members.length === 1) {\n return stringSet.NO_MEMBERS;\n }\n\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => (nickname || stringSet.NO_NAME))\n .join(', ');\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default function AutoRefresh({\n repeatFunc,\n}) {\n const [label, setLabel] = useState(repeatFunc());\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (label !== repeatFunc()) {\n setLabel(repeatFunc());\n }\n }, 10000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (
{label}
);\n}\n\nAutoRefresh.propTypes = {\n repeatFunc: PropTypes.func.isRequired,\n};\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport IconButton from '../IconButton';\nimport AutoRefresh from '../AutoRefresh';\nimport ChannelAvatar from '../ChannelAvatar/index';\n\nexport default function ChatHeader(props) {\n const {\n currentGroupChannel,\n currentUser,\n title,\n subTitle,\n isActive,\n isMuted,\n onActionClick,\n theme,\n } = props;\n const { userId } = currentUser;\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n \n \n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n \n {\n (typeof isActive === 'string' && isActive === 'true') || (typeof isActive === 'boolean' && isActive)\n ?
\n : null\n }\n \n {\n subTitle\n || utils.getOthersLastSeenAt(currentGroupChannel)} />\n }\n \n
\n
\n {\n (typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted)\n ? \n : null\n }\n \n \n \n
\n
\n );\n}\n\nChatHeader.propTypes = {\n currentGroupChannel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n coverUrl: PropTypes.string,\n }),\n theme: PropTypes.string,\n currentUser: PropTypes.shape({\n userId: PropTypes.string,\n }),\n title: PropTypes.string,\n subTitle: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]),\n isActive: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n isMuted: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n onActionClick: PropTypes.func,\n};\n\nChatHeader.defaultProps = {\n currentGroupChannel: {},\n title: '',\n theme: 'light',\n subTitle: '',\n isActive: false,\n isMuted: false,\n currentUser: {},\n onActionClick: () => { },\n};\n","import React, {\n useEffect,\n useRef,\n useReducer,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport * as utils from './utils';\n\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport * as messageActionTypes from './dux/actionTypes';\nimport messagesInitialState from './dux/initialState';\nimport messagesReducer from './dux/reducers';\n\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useGetChannel from './hooks/useGetChannel';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useHandleReconnect from './hooks/useHandleReconnect';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useSendFileMessageCallback from './hooks/useSendFileMessageCallback';\nimport useSetReadStatus from './hooks/useSetReadStatus';\nimport useMemoizedEmojiListItems from './hooks/useMemoizedEmojiListItems';\nimport useToggleReactionCallback from './hooks/useToggleReactionCallback';\n\nimport ConversationScroll from './components/ConversationScroll';\nimport Notification from './components/Notification';\nimport FrozenNotification from './components/FrozenNotification';\nimport TypingIndicator from './components/TypingIndicator';\nimport MessageInputWrapper from './components/MessageInputWrapper';\nimport ConnectionStatus from '../../ui/ConnectionStatus';\nimport ChatHeader from '../../ui/ChatHeader';\nimport PlaceHolder from '../../ui/PlaceHolder';\nimport PlaceHolderTypes from '../../ui/PlaceHolder/type';\n\nconst noop = () => { };\n\nexport const ConversationPanel = (props) => {\n const {\n channelUrl,\n stores: { sdkStore, userStore },\n config: {\n userId,\n logger,\n pubSub,\n isOnline,\n theme,\n },\n dispatchers: {\n reconnect,\n },\n queries = {},\n useReaction,\n renderChatItem,\n renderChatHeader,\n renderMessageInput,\n useMessageGrouping,\n onChatHeaderActionClick,\n onBeforeSendUserMessage,\n onBeforeSendFileMessage,\n onBeforeUpdateUserMessage,\n } = props;\n const { sdk } = sdkStore;\n const { config } = props;\n const sdkError = sdkStore.error;\n const sdkInit = sdkStore.initialized;\n const { user } = userStore;\n\n if (queries.messageListQuery) {\n // eslint-disable-next-line no-console\n console.warn('messageListQuery will be deprecared in v1.3.0, please use messageListParams instead');\n }\n\n const userFilledMessageListQuery = queries.messageListParams || queries.messageListQuery;\n\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const scrollRef = useRef(null);\n\n const {\n allMessages,\n loading,\n hasMore,\n initialized,\n unreadCount,\n disableUserProfile,\n renderUserProfile,\n unreadSince,\n invalidChannel,\n currentGroupChannel = {},\n lastMessageTimeStamp,\n emojiContainer,\n readStatus,\n } = messagesStore;\n const { isFrozen, isBroadcast } = currentGroupChannel;\n const { appInfo = {} } = sdk;\n const usingReaction = (\n (appInfo.isUsingReaction && !isBroadcast) || useReaction || false\n );\n\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const emojiAllMap = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisMapFromEmojiContainer(emojiContainer)\n : new Map()\n ), [emojiContainer]);\n\n const emojiAllList = useMemo(() => (\n usingReaction\n ? utils.getAllEmojisFromEmojiContainer(emojiContainer)\n : []\n ), [emojiContainer]);\n\n const nicknamesMap = useMemo(() => (\n usingReaction\n ? utils.getNicknamesMapFromMembers(currentGroupChannel.members)\n : new Map()\n ), [currentGroupChannel.members]);\n\n const onScrollCallback = useScrollCallback({\n currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery,\n }, {\n hasMore,\n logger,\n messagesDispatcher,\n sdk,\n });\n\n const toggleReaction = useToggleReactionCallback({ currentGroupChannel }, { logger });\n\n const memoizedEmojiListItems = useMemoizedEmojiListItems({\n emojiContainer, toggleReaction,\n }, {\n useReaction: usingReaction,\n logger,\n userId,\n emojiAllList,\n });\n\n // to create message-datasource\n useGetChannel(\n { channelUrl, sdkInit },\n { messagesDispatcher, sdk, logger },\n );\n\n // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher\n useHandleChannelEvents(\n { currentGroupChannel, sdkInit, userId },\n { messagesDispatcher, sdk, logger },\n );\n\n useInitialMessagesFetch({ currentGroupChannel, userFilledMessageListQuery }, {\n sdk,\n logger,\n messagesDispatcher,\n });\n\n // handles API calls from withSendbird\n useEffect(() => {\n const subScriber = utils.pubSubHandler(channelUrl, pubSub, messagesDispatcher);\n return () => {\n utils.pubSubHandleRemover(subScriber);\n };\n }, [channelUrl, sdkInit]);\n\n // to create initial read status\n useSetReadStatus(\n { allMessages, currentGroupChannel },\n { messagesDispatcher, sdk, logger },\n );\n\n // handling connection breaks\n useHandleReconnect({ isOnline }, {\n logger,\n sdk,\n currentGroupChannel,\n messagesDispatcher,\n userFilledMessageListQuery,\n });\n\n const deleteMessage = useDeleteMessageCallback({ currentGroupChannel, messagesDispatcher },\n { logger });\n const updateMessage = useUpdateMessageCallback(\n { currentGroupChannel, messagesDispatcher, onBeforeUpdateUserMessage },\n { logger, sdk, pubSub },\n );\n const resendMessage = useResendMessageCallback(\n { currentGroupChannel, messagesDispatcher },\n { logger },\n );\n const [messageInputRef, onSendMessage] = useSendMessageCallback(\n { currentGroupChannel, onBeforeSendUserMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n const [onSendFileMessage] = useSendFileMessageCallback(\n { currentGroupChannel, onBeforeSendFileMessage },\n {\n sdk,\n logger,\n pubSub,\n messagesDispatcher,\n },\n );\n\n if (sdkError) {\n return (\n
\n {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n
\n );\n }\n if (!channelUrl) {\n return (
);\n }\n if (loading) {\n return (
);\n }\n if (invalidChannel) {\n return (
);\n }\n return (\n \n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n \n )\n }\n {\n isFrozen && (\n \n )\n }\n {\n unreadCount > 0 && (\n {\n utils.scrollIntoLast('.sendbird-msg--scroll-ref');\n // there is no scroll\n if (scrollRef.current.scrollTop === 0) {\n currentGroupChannel.markAsRead();\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n });\n }\n }}\n time={unreadSince}\n />\n )\n }\n \n
\n \n
\n \n
\n {\n !isOnline && (\n \n )\n }\n
\n \n );\n};\n\nConversationPanel.propTypes = {\n channelUrl: PropTypes.string,\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n initialized: PropTypes.bool,\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n removeChannelHandler: PropTypes.func,\n GroupChannel: PropTypes.any,\n ChannelHandler: PropTypes.any,\n addChannelHandler: PropTypes.func,\n UserMessageParams: PropTypes.any,\n FileMessageParams: PropTypes.any,\n getAllEmoji: PropTypes.func,\n appInfo: PropTypes.shape({}),\n }),\n error: PropTypes.bool,\n }),\n userStore: PropTypes.shape({\n user: PropTypes.shape({}),\n }),\n }).isRequired,\n dispatchers: PropTypes.shape({\n reconnect: PropTypes.func,\n }).isRequired,\n config: PropTypes.shape({\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n userId: PropTypes.string.isRequired,\n isOnline: PropTypes.bool.isRequired,\n theme: PropTypes.string,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n pubSub: PropTypes.shape({\n subscribe: PropTypes.func,\n publish: PropTypes.func,\n }),\n }).isRequired,\n queries: PropTypes.shape({\n messageListParams: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n // deprecate in v1.3\n messageListQuery: PropTypes.shape({\n includeMetaArray: PropTypes.bool,\n includeParentMessageText: PropTypes.bool,\n includeReaction: PropTypes.bool,\n includeReplies: PropTypes.bool,\n includeThreadInfo: PropTypes.bool,\n limit: PropTypes.number,\n reverse: PropTypes.bool,\n senderUserIdsFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n onBeforeSendUserMessage: PropTypes.func, // onBeforeSendUserMessage(text)\n onBeforeSendFileMessage: PropTypes.func, // onBeforeSendFileMessage(File)\n onBeforeUpdateUserMessage: PropTypes.func,\n renderChatItem: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderMessageInput: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n renderChatHeader: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n onChatHeaderActionClick: PropTypes.func,\n useReaction: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n useMessageGrouping: PropTypes.bool,\n};\n\nConversationPanel.defaultProps = {\n channelUrl: null,\n queries: {},\n onBeforeSendUserMessage: null,\n onBeforeSendFileMessage: null,\n onBeforeUpdateUserMessage: null,\n renderChatItem: null,\n renderMessageInput: null,\n renderChatHeader: null,\n useReaction: true,\n disableUserProfile: false,\n renderUserProfile: null,\n useMessageGrouping: true,\n onChatHeaderActionClick: noop,\n};\n\nexport const {\n getEmojiCategoriesFromEmojiContainer,\n getAllEmojisFromEmojiContainer,\n getEmojisFromEmojiContainer,\n} = utils;\n\nexport default withSendbirdContext(ConversationPanel);\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Modal from '../../../ui/Modal';\nimport Input, { InputLabel } from '../../../ui/Input';\nimport Avatar from '../../../ui/Avatar/index';\nimport { Type as ButtonType } from '../../../ui/Button/type';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport TextButton from '../../../ui/TextButton';\nimport ChannelAvatar from '../../../ui/ChannelAvatar/index';\n\nconst EditDetails = (props) => {\n const {\n onSubmit,\n onCancel,\n channel,\n userId,\n theme,\n } = props;\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const hiddenInputRef = useRef(null);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n const title = channel.name;\n return (\n {\n if (title !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n onSubmit(newFile, inputRef.current.value);\n onCancel();\n }}\n type={ButtonType.PRIMARY}\n >\n { e.preventDefault(); }}\n >\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE}\n \n
\n {\n currentImg\n ? (\n \n ) : (\n \n )\n }\n
\n {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n hiddenInputRef.current.click()}\n notUnderline\n >\n \n \n
\n
\n \n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME}\n \n \n
\n \n \n );\n};\n\nEditDetails.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n channel: PropTypes.shape({\n name: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n theme: PropTypes.string.isRequired,\n};\n\nexport default EditDetails;\n","import React, { useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './channel-profile.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport Label, { LabelColors, LabelTypography } from '../../../ui/Label';\nimport EditDetailsModal from './EditDetails';\nimport TextButton from '../../../ui/TextButton';\nimport ChannelAvatar from '../../../ui/ChannelAvatar/index';\n\nconst ChannelProfile = (props) => {\n const {\n disabled,\n channel,\n userId,\n theme,\n onChannelInfoChange,\n } = props;\n const title = channel.name;\n const [showModal, setShowModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n return (\n
\n
\n
\n \n
\n \n {title}\n \n {\n if (disabled) { return; }\n setShowModal(true);\n }}\n notUnderline\n >\n \n {stringSet.CHANNEL_SETTING__PROFILE__EDIT}\n \n \n {\n showModal && (\n setShowModal(false)}\n onSubmit={onChannelInfoChange}\n channel={channel}\n userId={userId}\n theme={theme}\n />\n )\n }\n
\n
\n );\n};\n\nChannelProfile.propTypes = {\n channel: PropTypes.shape({\n name: PropTypes.string,\n }).isRequired,\n userId: PropTypes.string.isRequired,\n theme: PropTypes.string,\n disabled: PropTypes.bool,\n onChannelInfoChange: PropTypes.func,\n};\n\nChannelProfile.defaultProps = {\n theme: 'light',\n disabled: false,\n onChannelInfoChange: () => { },\n};\n\nexport default ChannelProfile;\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n currentUser?: string;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function MembersModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const memberListQuery = channel.createMemberListQuery();\n memberListQuery.limit = 20;\n memberListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"All Members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n <>\n {channel.myRole === 'operator' && (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if ((member.role !== 'operator')) {\n channel.addOperators([member.userId], () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n role: 'operator',\n };\n }\n return m;\n }));\n closeDropdown();\n });\n } else {\n channel.removeOperators([member.userId], () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n role: '',\n };\n }\n return m;\n }));\n closeDropdown();\n });\n }\n }}\n >\n { member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'}\n \n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n {\n if (member.isMuted) {\n channel.unmuteUser(member, () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n isMuted: false,\n };\n }\n return m;\n }));\n closeDropdown();\n })\n } else {\n channel.muteUser(member, () => {\n setMembers(members.map(m => {\n if(m.userId === member.userId) {\n return {\n ...member,\n isMuted: true,\n };\n }\n return m;\n }));\n closeDropdown();\n });\n }\n }}\n >\n { member.isMuted ? 'Unmute' : 'Mute' }\n \n )\n }\n {\n channel.banUser(member, -1, '', () => {\n setMembers(members.filter(({ userId }) => {\n return userId !== member.userId;\n }));\n });\n }}\n >\n Ban\n \n \n )}\n />\n )}\n \n )}\n />\n ))}\n
\n \n
\n );\n}\n","import React, { useState, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './members-accordion.scss';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Button from '../../../ui/Button';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../ui/Button/type';\nimport Avatar from '../../../ui/Avatar/index';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport InviteMembers from '../../InviteMembers';\nimport MembersModal from './AdminPanel/MembersModal';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nconst SHOWN_MEMBER_MAX = 10;\n\nconst UserListItem = ({ member = {}, currentUser = '' }) => {\n const avatarRef = useRef(null);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n src={member.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user: member,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n
\n \n
\n );\n};\n\nUserListItem.propTypes = {\n member: PropTypes.shape({\n userId: PropTypes.string,\n profileUrl: PropTypes.string,\n nickname: PropTypes.string,\n }).isRequired,\n currentUser: PropTypes.string.isRequired,\n};\n\nconst MemebersAccordion = ({\n channel,\n disabled,\n currentUser,\n userQueryCreator,\n onInviteMemebers,\n swapParams,\n}) => {\n const members = channel.members || [];\n const [showMoreModal, setShowMoreModal] = useState(false);\n const [showAddUserModal, setShowAddUserModal] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n return (\n
\n
\n {\n members.slice(0, SHOWN_MEMBER_MAX).map((member) => (\n \n ))\n }\n
\n
\n {\n members.length >= SHOWN_MEMBER_MAX && (\n setShowMoreModal(true)}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS}\n \n )\n }\n {\n members.length >= SHOWN_MEMBER_MAX && showMoreModal && (\n {\n setShowMoreModal(false);\n }}\n channel={channel}\n />\n )\n }\n {\n if (disabled) { return; }\n setShowAddUserModal(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__INVITE_MEMBER}\n \n {\n showAddUserModal && (\n setShowAddUserModal(false)}\n idsToFilter={members.map((member) => (member.userId))}\n userQueryCreator={userQueryCreator}\n onSubmit={onInviteMemebers}\n />\n )\n }\n
\n
\n );\n};\n\nMemebersAccordion.propTypes = {\n swapParams: PropTypes.bool,\n disabled: PropTypes.bool,\n channel: PropTypes.shape({\n members: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n currentUser: PropTypes.string,\n userQueryCreator: PropTypes.func.isRequired,\n onInviteMemebers: PropTypes.func.isRequired,\n};\n\nMemebersAccordion.defaultProps = {\n swapParams: false,\n currentUser: '',\n disabled: false,\n channel: {},\n};\n\nexport default MemebersAccordion;\n","import React from 'react';\n\nimport { noop } from '../../utils/utils';\n\ninterface ContextValue {\n setOpened(accordion: string): void;\n opened: string;\n}\n\nconst Context = React.createContext({\n opened: '', // mock default value\n setOpened: noop,\n});\n\nexport const Consumer = Context.Consumer;\nexport const Provider = Context.Provider;\n","// Wraps all the accordions in an accordion set\n// keep one accordion open at a time\nimport React, { ReactElement, useState } from 'react';\n\nimport { Provider } from './context';\n\ninterface Props {\n children: ReactElement[];\n defaultOpened?: string;\n className?: string;\n}\n\nexport default function AccordionGroup({\n children,\n className = '',\n}: Props): ReactElement {\n const [opened, setOpened] = useState('');\n return (\n \n
{ children }
\n
\n )\n}\n","import './index.scss';\n\nimport React, { ReactElement, useState } from 'react';\n\nimport AccordionGroup_ from './AccordionGroup';\nimport { Consumer } from './context';\n\nimport Icon, {\n IconTypes,\n} from '../Icon';\n\ninterface Props {\n id: string;\n className?: string;\n renderTitle(): ReactElement;\n renderContent(): ReactElement;\n renderFooter?(): ReactElement;\n}\n\nexport default function Accordion({\n id,\n renderTitle,\n renderContent,\n renderFooter,\n className,\n}: Props): ReactElement {\n const [showAccordion, setShowAccordion] = useState(false);\n return (\n \n {\n (value) => {\n const { opened, setOpened } = value;\n if (id === opened) {\n setShowAccordion(true);\n } else {\n setShowAccordion(false);\n }\n const handleClick = () => {\n if (showAccordion) {\n setOpened('');\n } else {\n setOpened(id);\n }\n }\n return (\n <>\n \n { renderTitle() }\n \n \n {\n showAccordion && (\n
\n
\n { renderContent() }\n
\n {\n renderFooter && (\n
\n { renderFooter() }\n
\n )\n }\n
\n )\n }\n );\n }\n }\n
\n )\n}\n\nexport const AccordionGroup = AccordionGroup_;\n","// might move to reusable/UI\n\nimport React, { ReactElement, useRef, useContext } from 'react';\n\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { UserProfileContext } from '../../../lib/UserProfileContext';\nimport Avatar from '../../../ui/Avatar/index';\nimport MutedAvatarOverlay from '../../../ui/Avatar/MutedAvatarOverlay';\nimport Label, { LabelTypography, LabelColors } from '../../../ui/Label';\nimport UserProfile from '../../../ui/UserProfile';\nimport ContextMenu, { MenuItems } from '../../../ui/ContextMenu';\n\nimport './user-list-item.scss';\nimport { SendbirdTypes } from '../../../types';\n\nconst COMPONENT_NAME = 'sendbird-user-list-item--small';\n\ninterface ActionProps {\n actionRef: React.RefObject;\n parentRef: React.RefObject;\n}\n\ntype CustomUser = SendbirdTypes['User'] & {\n isMuted: boolean;\n role: string;\n};\n\ninterface Props {\n user: CustomUser;\n currentUser?: string;\n className?: string;\n action?(props: ActionProps): ReactElement;\n}\n\nconst UserListItem = ({\n user,\n className,\n currentUser,\n action,\n}: Props): ReactElement => {\n const actionRef = useRef(null);\n const parentRef = useRef(null);\n const avatarRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const {\n disableUserProfile,\n renderUserProfile,\n } = useContext(UserProfileContext);\n const injectingClassNames = Array.isArray(className) ? className : [className];\n return (\n \n {\n user.isMuted && (\n \n )\n }\n (\n {\n if (!disableUserProfile) {\n toggleDropdown();\n }\n }}\n ref={avatarRef}\n className={`${COMPONENT_NAME}__avatar`}\n src={user.profileUrl}\n width={24}\n height={24}\n />\n )}\n menuItems={(closeDropdown) => (\n \n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n \n )\n }\n \n )}\n />\n \n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n \" (You)\"\n )\n }\n \n { // if there is now nickname, display userId\n !user.nickname && (\n \n {user.userId}\n \n )\n }\n {\n user.role === 'operator' && (\n \n Operator\n \n )\n }\n {\n action && (\n
\n { action({ actionRef, parentRef }) }\n
\n )\n }\n \n );\n}\n\nexport default UserListItem;\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n currentUser?: string;\n}\n\nexport default function OperatorsModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [operators, setOperators] = useState([]);\n const [operatorQuery, setOperatorQuery] = useState(null);\n\n useEffect(() => {\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 20;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n });\n setOperatorQuery(operatorListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"All operators\"\n >\n {\n const { hasNext } = operatorQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n operatorQuery.next((o, error) => {\n if (error) {\n return;\n }\n setOperators([\n ...operators,\n ...o,\n ])\n });\n }\n }}\n >\n { operators.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.removeOperators([member.userId], (response, error) => {\n if (error) {\n return;\n }\n setOperators(operators.filter(({ userId }) => {\n return userId !== member.userId;\n }));\n });\n closeDropdown();\n }}\n >\n Dismiss operator\n \n \n )}\n />\n )}\n />\n ))}\n
\n \n \n )\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport Modal from '../../../../ui/Modal';\nimport Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport { Type as ButtonType } from '../../../../ui/Button/type';\nimport UserListItem from '../../../../ui/UserListItem';\n\ninterface Props {\n hideModal(): void;\n onSubmit(members: string[]): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function AddOperatorsModal({\n hideModal,\n channel,\n onSubmit,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [selectedMembers, setSelectedMembers] = useState({});\n const [memberQuery, setMemberQuery] = useState(null);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n const memberListQuery = channel.createMemberListQuery();\n memberListQuery.limit = 20;\n memberListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberListQuery);\n }, [])\n\n const selectedCount = Object.keys(selectedMembers).filter((m) => selectedMembers[m]).length;\n return (\n
\n hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n \n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n {\n const modifiedSelectedMembers = {\n ...selectedMembers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedMembers[event.target.id];\n }\n setSelectedMembers(modifiedSelectedMembers);\n }\n }\n user={member}\n key={member.userId}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n useContext,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport OperatorsModal from './OperatorsModal';\nimport AddOperatorsModal from './AddOperatorsModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const OperatorList = ({ sdk, channel }: Props): ReactElement => {\n const [operators, setOperators] = useState([]);\n const [showMore, setShowMore] = useState(false);\n const [showAdd, setShowAdd] = useState(false);\n const [hasNext, setHasNext] = useState(false);\n const { stringSet } = useContext(LocalizationContext);\n\n useEffect(() => {\n if (!channel) {\n setOperators([]);\n return;\n }\n\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 10;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n }, [channel]);\n\n const refershList = useCallback(\n () => {\n if (!channel) {\n setOperators([]);\n return;\n }\n const operatorListQuery = channel.createOperatorListQuery();\n operatorListQuery.limit = 10;\n operatorListQuery.next((operators, error) => {\n if (error) {\n return;\n }\n setOperators(operators);\n setHasNext(operatorListQuery.hasNext);\n });\n },\n [channel],\n );\n\n return (\n <>\n {\n operators.map((operator) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.removeOperators([operator.userId], (response, error) => {\n if (error) {\n return;\n }\n setOperators(operators.filter(({ userId }) => {\n return userId !== operator.userId;\n }))\n });\n closeDropdown();\n }}\n >\n Dismiss operator\n \n \n )}\n />\n );\n }}\n />\n ))\n }\n {\n hasNext && (\n \n {\n setShowMore(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ALL}\n \n {\n setShowAdd(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ADD}\n \n \n )\n }\n {\n showMore && (\n {\n setShowMore(false);\n refershList();\n }}\n channel={channel}\n />\n )\n }\n {\n showAdd && (\n setShowAdd(false)}\n channel={channel}\n onSubmit={(members) => {\n setShowAdd(false);\n channel.addOperators(members, () => {\n refershList();\n });\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(OperatorList, mapStoreToProps);\n","import React, { ReactElement, useEffect, useState } from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport { Type as ButtonType } from '../../../../ui/Button/type';\nimport UserListItem from '../../../../ui/UserListItem';\n\ninterface Props {\n hideModal(): void;\n onSubmit(members: string[]): void;\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport default function InviteMembers({\n hideModal,\n userQueryCreator,\n onSubmit,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [selectedMembers, setSelectedMembers] = useState({});\n const [userQuery, setUserQuery] = useState(null);\n\n useEffect(() => {\n const userListQuery = userQueryCreator();\n userListQuery.limit = 20;\n userListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setUserQuery(userListQuery);\n }, [])\n return (\n
\n hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n {\n const { hasNext } = userQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n userQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n {\n const modifiedSelectedMembers = {\n ...selectedMembers,\n [event.target.id]: event.target.checked,\n };\n if (!event.target.checked) {\n delete modifiedSelectedMembers[event.target.id];\n }\n setSelectedMembers(modifiedSelectedMembers);\n }\n }\n user={member}\n key={member.userId}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport MembersModal from './MembersModal';\nimport InviteMembers from './InviteMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes['SendBirdInstance'];\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport const MemberList = ({ sdk, channel, userQueryCreator }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showAllMembers, setShowAllMembers] = useState(false);\n const [showInviteMembers, setShowInviteMembers] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refershList = useCallback(\n () => {\n if (!channel) {\n setMembers([]);\n return;\n }\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n },\n [channel],\n );\n\n return (\n <>\n {\n members.map((member) => (\n {\n return ( (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n if ((member.role !== 'operator')) {\n channel.addOperators([member.userId], () => {\n refershList();\n closeDropdown();\n });\n } else {\n channel.removeOperators([member.userId], () => {\n refershList();\n closeDropdown();\n });\n }\n }}\n >\n { member.role !== 'operator' ? 'Promote to operator' : 'Demote operator'}\n \n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n {\n if (member.isMuted) {\n channel.unmuteUser(member, () => {\n refershList();\n closeDropdown();\n })\n } else {\n channel.muteUser(member, () => {\n refershList();\n closeDropdown();\n });\n }\n }}\n >\n { member.isMuted ? 'Unmute' : 'Mute' }\n \n )\n }\n {\n channel.banUser(member, -1, '', () => {\n refershList();\n closeDropdown();\n });\n }}\n >\n Ban\n \n \n )}\n />)}\n }\n />\n ))\n }\n \n {\n hasNext && (\n setShowAllMembers(true)}\n >\n All members\n \n )\n }\n setShowInviteMembers(true)}\n >\n Invite members\n \n \n {\n showAllMembers && (\n {\n setShowAllMembers(false);\n refershList();\n }}\n />\n )\n }\n {\n showInviteMembers && (\n {\n channel.inviteWithUserIds(selectedMemebers, () => {\n setShowInviteMembers(false);\n refershList();\n });\n }}\n channel={channel}\n hideModal={() => setShowInviteMembers(false)}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(MemberList, mapStoreToProps);\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport default function BannedMembersModal({\n hideModal,\n channel,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next((users, error) => {\n if (error) {\n return;\n }\n setMembers(users);\n });\n setMemberQuery(bannedUserListQuery);\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unbanUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unban\n \n \n )}\n />\n )\n }\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\n\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport BannedMembersModal from './BannedMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const BannedMemberList = ({ channel }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next((users, error) => {\n if (error) {\n return;\n }\n setMembers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const bannedUserListQuery = channel.createBannedUserListQuery();\n bannedUserListQuery.next(function(users, error) {\n if (error) {\n return;\n }\n setMembers(users);\n setHasNext(bannedUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n members.map((member) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unbanUser(member, () => {\n closeDropdown();\n refreshList();\n })\n }}\n >\n Unban\n \n \n )}\n />\n )\n }}\n />\n ))\n }\n {\n members && members.length === 0 && (\n \n No banned members yet\n \n )\n }\n {\n hasNext && (\n \n {\n setShowModal(true);\n }}\n >\n All banned members\n \n \n )\n }\n {\n showModal && (\n {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(BannedMemberList, mapStoreToProps);\n","import React, {\n ReactElement,\n useEffect,\n useState,\n} from 'react'\n\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport Modal from '../../../../ui/Modal';\nimport UserListItem from '../../../../ui/UserListItem';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport { noop } from '../../../../utils/utils';\n\ninterface Props {\n hideModal(): void;\n channel: SendbirdTypes[\"GroupChannel\"];\n currentUser?: string;\n}\n\nexport default function MutedMembersModal({\n hideModal,\n channel,\n currentUser,\n}: Props): ReactElement {\n const [members, setMembers] = useState([]);\n const [memberQuery, setMemberQuery] = useState(null);\n\n useEffect(() => {\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n });\n setMemberQuery(memberUserListQuery);\n }, []);\n return (\n
\n hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n {\n const { hasNext } = memberQuery;\n const target = e.target as HTMLTextAreaElement;\n const fetchMore = (\n target.clientHeight + target.scrollTop === target.scrollHeight\n );\n\n if (hasNext && fetchMore) {\n memberQuery.next((o, error) => {\n if (error) {\n return;\n }\n setMembers([\n ...members,\n ...o,\n ])\n });\n }\n }}\n >\n { members.map((member) => (\n (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unmuteUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unmute\n \n \n )}\n />\n )}\n />\n ))}\n
\n \n \n );\n}\n","import React, {\n ReactElement,\n useEffect,\n useState,\n useCallback,\n} from 'react';\n\nimport { SendbirdTypes } from '../../../../types';\n\nimport withSendbirdContext from '../../../../lib/SendbirdSdkContext';\nimport { getSdk } from '../../../../lib/selectors';\nimport Button from '../../../../ui/Button';\nimport IconButton from '../../../../ui/IconButton';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport ContextMenu, { MenuItem, MenuItems } from '../../../../ui/ContextMenu';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport {\n Type as ButtonTypes,\n Size as ButtonSizes,\n} from '../../../../ui/Button/type';\nimport UserListItem from '../UserListItem';\nimport MutedMembersModal from './MutedMembersModal';\n\ninterface Props {\n sdk: SendbirdTypes[\"SendBirdInstance\"];\n channel: SendbirdTypes[\"GroupChannel\"];\n}\n\nexport const MutedMemberList = ({ sdk, channel }: Props): ReactElement => {\n const [members, setMembers] = useState([]);\n const [hasNext, setHasNext] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n\n const refreshList = useCallback(() => {\n if (!channel) {\n setMembers([]);\n return;\n }\n\n const memberUserListQuery = channel.createMemberListQuery();\n memberUserListQuery.limit = 10;\n memberUserListQuery.mutedMemberFilter = 'muted';\n memberUserListQuery.next((members, error) => {\n if (error) {\n return;\n }\n setMembers(members);\n setHasNext(memberUserListQuery.hasNext);\n });\n }, [channel]);\n return (\n <>\n {\n members.map((member) => (\n {\n return (\n (\n \n \n \n )}\n menuItems={(closeDropdown) => (\n \n {\n channel.unmuteUser(member, () => {\n refreshList();\n closeDropdown();\n })\n }}\n >\n Unmute\n \n \n )}\n />\n );\n }\n }\n />\n ))\n }\n {\n members && members.length === 0 && (\n \n No muted members yet\n \n )\n }\n {\n hasNext && (\n \n {\n setShowModal(true);\n }}\n >\n All muted members\n \n \n )\n }\n {\n showModal && (\n {\n setShowModal(false);\n refreshList();\n }}\n />\n )\n }\n \n );\n}\n\nconst mapStoreToProps = (store) => ({\n sdk: getSdk(store),\n});\n\nexport default withSendbirdContext(MutedMemberList, mapStoreToProps);\n","import './index.scss';\nimport React, {\n ReactElement,\n useEffect,\n useState,\n useContext,\n} from 'react';\nimport { SendbirdTypes } from '../../../../types';\n\nimport Accordion, { AccordionGroup } from '../../../../ui/Accordion';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport\n Label, {\n LabelTypography,\n LabelColors,\n} from '../../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport Badge from '../../../../ui/Badge';\n\nimport OperatorList from './OperatorList';\nimport MemberList from './MemberList';\nimport BannedMemberList from './BannedMemberList';\nimport MutedMemberList from './MutedMemberList';\n\nconst kFormatter = (num: number): string|number => {\n return Math.abs(num) > 999\n ? `${(Math.abs(num)/1000).toFixed(1)}K`\n : num;\n}\n\ninterface Props {\n channel: SendbirdTypes['GroupChannel'];\n userQueryCreator(): SendbirdTypes['UserListQuery'];\n}\n\nexport default function index({\n userQueryCreator,\n channel,\n}: Props): ReactElement {\n const [frozen, setFrozen] = useState(false);\n\n // work around for\n // https://sendbird.slack.com/archives/G01290GCDCN/p1595922832000900\n // SDK bug - after frozen/unfrozen myRole becomes \"none\"\n useEffect(() => {\n setFrozen(channel.isFrozen);\n }, [channel]);\n const { stringSet } = useContext(LocalizationContext);\n return (\n \n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__MEMBERS__TITLE}\n \n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__MUTED_MEMBERS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n )\n }\n (\n <>\n \n \n {stringSet.CHANNEL_SETTING__BANNED_MEMBERS__TITLE}\n \n \n )}\n renderContent={() => (\n <>\n \n \n )}\n />\n {\n // cannot frozen broadcast channel\n !channel.isBroadcast && (\n
\n \n \n {stringSet.CHANNEL_SETTING__FREEZE_CHANNEL}\n \n
\n {\n frozen\n ? (\n {\n channel.unfreeze(() => {\n setFrozen(false);\n });\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n {\n channel.freeze(() => {\n setFrozen(true);\n });\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n
\n
\n )\n }\n
\n );\n}\n","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSendbirdContext from '../../lib/SendbirdSdkContext';\nimport { UserProfileProvider } from '../../lib/UserProfileContext';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\n\nimport './index.scss';\nimport Badge from '../../ui/Badge';\nimport Label, { LabelTypography, LabelColors } from '../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../ui/Icon';\nimport IconButton from '../../ui/IconButton';\n\nimport ChannelProfile from './components/ChannelProfile';\nimport MemebersAccordion from './components/MemebersAccordion';\nimport LeaveChannelModal from './components/LeaveChannel';\nimport AdminPanel from './components/AdminPanel';\nimport PlaceHolder from '../../ui/PlaceHolder';\nimport PlaceHolderTypes from '../../ui/PlaceHolder/type';\nimport { uuidv4 } from '../../utils/uuid';\nimport { createDefaultUserListQuery } from '../ChannelList/components/utils';\n\n\nconst kFormatter = (num) => (\n Math.abs(num) > 999\n ? `${(Math.abs(num) / 1000).toFixed(1)}K`\n : num\n);\n\nfunction ChannelSettings(props) {\n const {\n onCloseClick,\n channelUrl,\n disableUserProfile,\n renderUserProfile,\n onChannelModified,\n renderChannelProfile,\n onBeforeUpdateChannel,\n } = props;\n\n const {\n stores: { sdkStore },\n config: {\n userListQuery,\n theme,\n userId,\n logger,\n isOnline,\n },\n queries = {},\n } = props;\n\n const { config = {} } = props;\n const userDefinedDisableUserProfile = disableUserProfile || config.disableUserProfile;\n const userDefinedRenderProfile = renderUserProfile || config.renderUserProfile;\n\n const userFilledApplicationUserListQuery = queries.applicationUserListQuery;\n const { stringSet } = useContext(LocalizationContext);\n\n const { sdk, initialized } = sdkStore;\n\n // hack to kepp track of channel updates by triggering useEffect\n const [channelUpdateId, setChannelUpdateId] = useState(uuidv4());\n const [channel, setChannel] = useState(null);\n const [invalidChannel, setInvalidChannel] = useState(false);\n const [showAccordion, setShowAccordion] = useState(false);\n const [showLeaveChannelModal, setShowLeaveChannelModal] = useState(false);\n\n useEffect(() => {\n logger.info('ChannelSettings: Setting up');\n if (!channelUrl || !initialized || !sdk) {\n logger.warning('ChannelSettings: Setting up failed', 'No channelUrl or sdk uninitialized');\n setInvalidChannel(false);\n } else {\n if (!sdk || !sdk.GroupChannel) {\n logger.warning('ChannelSettings: No GroupChannel');\n return;\n }\n sdk.GroupChannel.getChannel(channelUrl, (groupChannel) => {\n if (!groupChannel) {\n logger.warning('ChannelSettings: Channel not found');\n setInvalidChannel(true);\n } else {\n logger.info('ChannelSettings: Fetched group channel', groupChannel);\n setInvalidChannel(false);\n setChannel(groupChannel);\n }\n });\n }\n }, [channelUrl, initialized, channelUpdateId]);\n\n if (!channel || invalidChannel) {\n return (\n
\n
\n \n {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n />\n
\n
\n \n
\n
\n );\n }\n\n return (\n \n
\n \n
\n {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n >\n \n \n
\n
\n
\n {\n renderChannelProfile\n ? renderChannelProfile({ channel })\n : (\n {\n logger.info('ChannelSettings: Channel information being updated');\n const swapParams = sdk.getErrorFirstCallback();\n if (onBeforeUpdateChannel) {\n const params = onBeforeUpdateChannel(currentTitle, currentImg, channel.data);\n // swapParams\n channel.updateChannel(params, (response, error) => {\n let groupChannel = response;\n if (swapParams) {\n groupChannel = error;\n }\n\n onChannelModified(groupChannel);\n setChannelUpdateId(uuidv4());\n });\n return;\n }\n channel.updateChannel(\n currentTitle,\n currentImg,\n channel.data,\n (response, error) => {\n let groupChannel = response;\n if (swapParams) {\n groupChannel = error;\n }\n logger.info('ChannelSettings: Channel information updated', groupChannel);\n onChannelModified(groupChannel);\n setChannelUpdateId(uuidv4());\n },\n );\n }}\n />\n )\n }\n {\n channel.myRole === 'operator'\n ? (\n {\n // setChannelUpdateId(uuidv4());\n onChannelModified(groupChannel);\n }}\n userQueryCreator={\n () => ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )\n }\n />\n )\n : (\n <>\n {/* Move to different file */}\n setShowAccordion(!showAccordion)}\n className={`\n sendbird-channel-settings__panel-item\n sendbird-channel-settings__members\n `}\n onClick={() => setShowAccordion(!showAccordion)}\n >\n \n \n {`${stringSet.CHANNEL_SETTING__MEMBERS__TITLE}`}\n \n \n \n
\n {\n showAccordion && (\n ((userListQuery && typeof userListQuery === 'function')\n ? userListQuery()\n : createDefaultUserListQuery({ sdk, userFilledApplicationUserListQuery })\n )\n }\n swapParams={\n sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback()\n }\n channel={channel}\n members={channel.members}\n onInviteMemebers={(selectedMemebers) => {\n logger.info('ChannelSettings: Inviting new users');\n channel.inviteWithUserIds(selectedMemebers)\n .then((res) => {\n onChannelModified(res);\n setChannelUpdateId(uuidv4());\n logger.info('ChannelSettings: Inviting new users success!', res);\n });\n }}\n />\n )\n }\n \n )\n }\n\n {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n onClick={() => {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n >\n \n \n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n \n \n {\n showLeaveChannelModal && (\n setShowLeaveChannelModal(false)}\n onLeaveChannel={() => {\n logger.info('ChannelSettings: Leaving channel', channel);\n channel.leave()\n .then(() => {\n logger.info('ChannelSettings: Leaving channel successful!', channel);\n onCloseClick();\n });\n }}\n />\n )\n }\n \n \n );\n}\n\nChannelSettings.propTypes = {\n onCloseClick: PropTypes.func,\n onChannelModified: PropTypes.func,\n onBeforeUpdateChannel: PropTypes.func,\n renderChannelProfile: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n ]),\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n channelUrl: PropTypes.string.isRequired,\n queries: PropTypes.shape({\n applicationUserListQuery: PropTypes.shape({\n limit: PropTypes.number,\n userIdsFilter: PropTypes.arrayOf(PropTypes.string),\n metaDataKeyFilter: PropTypes.string,\n metaDataValuesFilter: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n // from withSendbirdContext\n stores: PropTypes.shape({\n sdkStore: PropTypes.shape({\n sdk: PropTypes.shape({\n getErrorFirstCallback: PropTypes.func,\n GroupChannel: PropTypes.oneOfType([\n PropTypes.shape({\n getChannel: PropTypes.func,\n }),\n PropTypes.func,\n ]),\n createApplicationUserListQuery: PropTypes.any,\n }),\n initialized: PropTypes.bool,\n }),\n }).isRequired,\n config: PropTypes.shape({\n userId: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n isOnline: PropTypes.bool,\n logger: PropTypes.shape({\n info: PropTypes.func,\n error: PropTypes.func,\n warning: PropTypes.func,\n }),\n }).isRequired,\n};\n\nChannelSettings.defaultProps = {\n onBeforeUpdateChannel: null,\n queries: {},\n disableUserProfile: false,\n renderUserProfile: null,\n renderChannelProfile: null,\n onCloseClick: () => { },\n onChannelModified: () => { },\n};\n\nexport default withSendbirdContext(ChannelSettings);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Sendbird from '../../lib/Sendbird';\n\nimport ChannelList from '../ChannelList';\nimport Conversation from '../Conversation';\nimport ChannelSettings from '../ChannelSettings';\n\nimport './index.scss';\n\nexport default function App(props) {\n const {\n appId,\n userId,\n accessToken,\n theme,\n userListQuery,\n nickname,\n profileUrl,\n config = {},\n useReaction,\n useMessageGrouping,\n colorSet,\n stringSet,\n allowProfileEdit,\n disableUserProfile,\n renderUserProfile,\n onProfileEditSuccess,\n } = props;\n const [currentChannelUrl, setCurrentChannelUrl] = useState(null);\n const [showSettings, setShowSettings] = useState(false);\n return (\n \n
\n
\n {\n if (channel && channel.url) {\n setCurrentChannelUrl(channel.url);\n } else {\n setCurrentChannelUrl('');\n }\n }}\n />\n
\n \n {\n if (showSettings) {\n setShowSettings(false);\n } else {\n setShowSettings(true);\n }\n }}\n useReaction={useReaction}\n useMessageGrouping={useMessageGrouping}\n />\n
\n {showSettings && (\n
\n { setShowSettings(false); }}\n />\n
\n )}\n \n \n );\n}\n\nApp.propTypes = {\n appId: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n accessToken: PropTypes.string,\n theme: PropTypes.string,\n userListQuery: PropTypes.func,\n nickname: PropTypes.string,\n profileUrl: PropTypes.string,\n allowProfileEdit: PropTypes.bool,\n disableUserProfile: PropTypes.bool,\n renderUserProfile: PropTypes.func,\n onProfileEditSuccess: PropTypes.func,\n config: PropTypes.shape({\n // None Error Warning Info 'All/Debug'\n logLevel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n }),\n useReaction: PropTypes.bool,\n useMessageGrouping: PropTypes.bool,\n stringSet: PropTypes.objectOf(PropTypes.string),\n colorSet: PropTypes.objectOf(PropTypes.string),\n};\n\nApp.defaultProps = {\n accessToken: '',\n theme: 'light',\n nickname: '',\n profileUrl: '',\n userListQuery: null,\n allowProfileEdit: false,\n onProfileEditSuccess: null,\n disableUserProfile: false,\n renderUserProfile: null,\n config: {},\n useReaction: true,\n useMessageGrouping: true,\n stringSet: null,\n colorSet: null,\n};\n"],"names":["SendbirdSdkContext","React","createContext","withSendbirdContext","OriginalComponent","mapStoreToProps","ContextAwareComponent","props","context","console","warn","mergedProps","componentName","displayName","name","INIT_SDK","SET_SDK_LOADING","RESET_SDK","SDK_ERROR","INIT_USER","RESET_USER","UPDATE_USER_INFO","APP_VERSION_STRING","disconnectSdk","sdkDispatcher","userDispatcher","sdk","onDisconnect","type","payload","disconnect","then","finally","handleConnection","dispatchers","userId","appId","nickname","profileUrl","accessToken","logger","info","newSdk","Sb","addExtension","connectCbSucess","user","newNickName","newProfileUrl","updateCurrentUserInfo","namedUser","connectCbError","e","error","connect","res","catch","err","warning","isEmpty","obj","undefined","prop","hasOwnProperty","JSON","stringify","useTheme","overrides","useLayoutEffect","cssVars","variables","initialized","loading","reducer","state","action","sdkActions","initialState","actions","uuidv4","replace","c","r","Math","random","v","toString","useConnectionStatus","useState","isOnline","setIsOnline","useEffect","uniqueHandlerId","handler","ConnectionHandler","onReconnectStarted","onReconnectSucceeded","onReconnectFailed","reconnect","addConnectionHandler","removeConnectionHandler","tryReconnect","getConnectionState","window","addEventListener","removeEventListener","body","document","querySelector","classList","add","remove","LOG_LEVELS","DEBUG","WARNING","ERROR","INFO","ALL","colorLog","level","printLog","title","description","log","Date","toISOString","getDefaultLogger","LoggerFactory","lvl","customInterface","logInterface","lvlArray","Array","isArray","applyLog","lgLvl","reduce","accumulator","currentLvl","topics","hOP","__getTopics","subscribe","topic","listener","call","index","push","publish","forEach","item","useAppendDomNode","ids","rootSelector","root","id","elem","createElement","setAttribute","appendChild","target","getElementById","removeChild","getStringSet","lang","stringSet","en","TRYING_TO_CONNECT","USER_PROFILE__MESSAGE","USER_PROFILE__USER_ID","EDIT_PROFILE__TITLE","EDIT_PROFILE__IMAGE_LABEL","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","EDIT_PROFILE__THEME_LABEL","CHANNEL_LIST__TITLE","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED","CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED","CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE","CHANNEL__MESSAGE_LIST__NOTIFICATION__ON","CHANNEL_SETTING__HEADER__TITLE","CHANNEL_SETTING__PROFILE__EDIT","CHANNEL_SETTING__MEMBERS__TITLE","CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS","CHANNEL_SETTING__MEMBERS__INVITE_MEMBER","CHANNEL_SETTING__LEAVE_CHANNEL__TITLE","CHANNEL_SETTING__OPERATORS__TITLE","CHANNEL_SETTING__OPERATORS__TITLE_ALL","CHANNEL_SETTING__OPERATORS__TITLE_ADD","CHANNEL_SETTING__MUTED_MEMBERS__TITLE","CHANNEL_SETTING__MUTED_MEMBERS__TITLE_ALL","CHANNEL_SETTING__BANNED_MEMBERS__TITLE","CHANNEL_SETTING__BANNED_MEMBERS__TITLE_ALL","CHANNEL_SETTING__FREEZE_CHANNEL","BUTTON__CANCEL","BUTTON__DELETE","BUTTON__SAVE","BUTTON__CREATE","BUTTON__INVITE","BUTTON__CLOSE","BADGE__OVER","MODAL__DELETE_MESSAGE__TITLE","MODAL__CHANNEL_INFORMATION__TITLE","MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE","MODAL__CHANNEL_INFORMATION__UPLOAD","MODAL__CHANNEL_INFORMATION__CHANNEL_NAME","MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER","MODAL__INVITE_MEMBER__TITLE","MODAL__INVITE_MEMBER__SELECTEC","MODAL__CREATE_CHANNEL__TITLE","MODAL__CREATE_CHANNEL__SELECTED","MODAL__USER_LIST__TITLE","TYPING_INDICATOR__IS_TYPING","TYPING_INDICATOR__AND","TYPING_INDICATOR__ARE_TYPING","TYPING_INDICATOR__MULTIPLE_TYPING","MESSAGE_STATUS__SENDING_FAILED","MESSAGE_STATUS__TRY_AGAIN","MESSAGE_STATUS__OR","MESSAGE_STATUS__DELETE","PLACE_HOLDER__NO_CHANNEL","CHANNEL_FROZEN","MUTED_PL","PLACE_HOLDER__WRONG","PLACE_HOLDER__RETRY_TO_CONNECT","NO_TITLE","NO_NAME","NO_MEMBERS","TOOLTIP__AND_YOU","TOOLTIP__YOU","TOOLTIP__UNKOWN_USER","UNKNOWN__UNKNOWN_MESSAGE_TYPE","UNKNOWN__CANNOT_READ_MESSAGE","MESSAGE_EDITED","LocalizationContext","LocalizationProvider","children","Sendbird","disableUserProfile","renderUserProfile","allowProfileEdit","theme","userListQuery","config","colorSet","logLevel","setLogger","pubSub","setPubSub","useReducer","sdkReducers","sdkInitialState","sdkStore","userReducers","userInitialState","userStore","pubSubFactory","currenttheme","setCurrenttheme","useOnlineStatus","localeStringSet","useMemo","stores","propTypes","PropTypes","string","isRequired","oneOfType","element","arrayOf","any","bool","func","shape","objectOf","defaultProps","UserProfileContext","UserProfileProvider","className","RESET_CHANNEL_LIST","CREATE_CHANNEL","LEAVE_CHANNEL_SUCCESS","SET_CURRENT_CHANNEL","SHOW_CHANNEL_SETTINGS","HIDE_CHANNEL_SETTINGS","FETCH_CHANNELS_START","FETCH_CHANNELS_SUCCESS","FETCH_CHANNELS_FAILURE","INIT_CHANNELS_START","INIT_CHANNELS_SUCCESS","INIT_CHANNELS_FAILURE","ON_USER_JOINED","ON_CHANNEL_DELETED","ON_LAST_MESSAGE_UPDATED","ON_USER_LEFT","ON_CHANNEL_CHANGED","ON_CHANNEL_ARCHIVED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_READ_RECEIPT_UPDATED","ON_DELIVERY_RECEIPT_UPDATED","CHANNEL_REPLACED_TO_TOP","allChannels","currentChannel","showSettings","length","url","currentChannels","map","filteredChannels","filter","find","channel","channelUrl","leftCurrentChannel","newAllChannels","isMe","unreadMessageCount","lastMessage","currentUnReadCount","isFrozen","ImageRenderer","alt","width","height","defaultComponent","circle","injectingClassName","unshift","realElement","setRealElement","join","backgroundRepeat","backgroundPosition","backgroundSize","backgroundImage","borderRadius","number","ADD","ATTACH","ARROW_LEFT","AVATAR_DARK","AVATAR_LIGHT","BROADCAST_LARGE_DARK","BROADCAST_LARGE_LIGHT","BROADCAST_DARK","BROADCAST_LIGHT","BROADCAST","FROZEN_DARK","FROZEN_LIGHT","CAMERA","MORE","MUTE","NO_THUMBNAIL","CHECKBOX","CHECKBOX_OFF","CLOSE","COPY","CHAT","CREATE","DELETE","DISCONNECTED","DUMMY","EDIT","ERROR_FILLED","EMOJI_FAILED","EMOJI_REACTIONS_ADD","EMOJI_REACTIONS_ADD_GRAY","DELIVERED","DOCUMENT","DOWNLOAD","FILE_AUDIO","FILE_DOCUMENT","GIF","LEAVE","MEMBERS","NOTIFICATIONS","PHOTO","PLAY","PLUS","READ","REFRESH","SEND","SENT","SUPER_GROUP","SHEVRON","SHEVRON_DOWN","SPINNER","SPINNER_LARGE","USER","ICON_OPERATOR","ICON_BANNED","ICON_FREEZE","ICON_MUTED","ICON_MUTED_FG","TOGGLE_ON","TOGGLE_OFF","Colors","DEFAULT","PRIMARY","SECONDARY","CONTENT","CONTENT_INVERSE","WHITE","ON_BACKGROUND_3","changeColorToClassName","color","changeTypeToIconComponent","Type","IconAdd","IconArrowLeft","IconCamera","IconAttach","IconAvatarDark","IconAvatarLight","BroadcastLargeDark","BroadcastLargeLight","BroadcastDark","BroadcastLight","Broadcast","FrozenDark","FrozenLight","IconMore","IconMute","IconNoThumbnail","IconCheckbox","IconCheckboxOff","IconClose","IconCopy","IconChat","IconSupergroup","IconCreate","IconDelete","IconDisconnected","IconDummy","IconEdit","IconError","IconErrorFilled","IconEmojiFailed","IconEmojiReactionsAdd","IconEmojiReactionsAddGray","IconDelivered","IconDocument","IconDownload","IconFileAudio","IconFileDocument","IconGif","IconInfo","IconLeave","IconMembers","IconNotifications","IconPhoto","IconPlay","IconPlus","IconRead","IconRefresh","IconSend","IconSent","IconShevron","IconShevronDown","IconSpinner","IconSpinnerLarge","IconUser","IconOperator","IconBanned","IconMuted","IconMutedFg","IconFreeze","ToggleOn","ToggleOff","Icon","onClick","fillColor","iconStyle","oneOf","Object","keys","IconTypes","IconColors","imageRendererClassName","_a","AvatarInner","_b","src","_c","slice","i","Avatar","ref","_d","_e","_f","__spreadArrays","forwardRef","DEFAULT_URL_PREFIX","getChannelAvatarSource","currentUserId","coverUrl","RegExp","test","members","member","useDefaultAvatar","ChannelAvatar","isBroadcast","memoizedAvatar","utils","Typography","H_1","H_2","SUBTITLE_1","SUBTITLE_2","BODY_1","BODY_2","BUTTON_1","BUTTON_2","CAPTION_1","CAPTION_2","CAPTION_3","ONBACKGROUND_1","ONBACKGROUND_2","ONBACKGROUND_3","ONCONTENT_1","ONCONTENT_2","changeTypographyToClassName","CLASS_NAME","Label","LabelTypography","LabelColors","LabelStringSet","Badge","count","maxLevel","useContext","maximumNumber","parseInt","repeat","MessageStatusType","PENDING","FAILED","truncate","fullStr","strLen","separator","sepLen","charsToShow","frontChars","ceil","backChars","floor","substr","getIsSentFromStatus","status","getChannelTitle","getLastMessageCreatedAt","date","createdAt","isToday","format","isYesterday","getTotalMembers","memberCount","getPrettyLastMessage","message","MAXLEN","messageType","getLastMessage","getChannelUnreadMessageCount","ChannelPreview","isActive","ChannelAction","tabIndex","currentUser","IconButton","disabled","onBlur","pressed","setPressed","ChannelHeader","iconButton","onEdit","renderHeader","instanceOf","MODAL_ROOT","DANGER","DISABLED","Size","BIG","SMALL","changeTypeToClassName","changeSizeToClassName","size","Button","injectingClassNames","ModalHeader","titleText","ModalBody","ModalFooter","onSubmit","onCancel","submitText","ButtonTypes","Modal","hideFooter","createPortal","InputLabel","Input","value","placeHolder","required","inputValue","setInputValue","ONBACKGROUND_4","TextButton","notUnderline","noop","getMessageCreatedAt","getSenderName","sender","friendName","getSenderProfileUrl","EditUserProfile","onThemeChange","changeTheme","hiddenInputRef","useRef","inputRef","formRef","currentImg","setCurrentImg","newFile","setNewFile","current","reportValidity","ButtonType","preventDefault","display","URL","createObjectURL","files","click","store","ConnectedEditUserProfile","Types","LOADING","NO_CHANNELS","WRONG","MutedAvatarOverlay","Checkbox","checked","onChange","isChecked","setCheck","SEND_MESSAGE_START","SEND_USER_MESSAGE","SEND_FILE_MESSAGE","UPDATE_USER_MESSAGE","DELETE_MESSAGE","LEAVE_CHANNEL","getSdk","getPubSub","getConnect","Promise","resolve","reject","Error","getDisconnect","getUpdateUserInfo","nickName","getSendUserMessage","userMessageParams","pubsub","GroupChannel","getChannel","promisify","pendingMsg","pendingPromise","resolve_","reject_","sendUserMessage","swapParams","getErrorFirstCallback","get","getSendFileMessage","fileMessageParams","sendFileMessage","file","localUrl","fileUrl","requestState","getUpdateUserMessage","messageId","params","updateUserMessage","fromSelector","getDeleteMessage","deleteMessage","getResendUserMessage","failedMessage","resendUserMessage","getResendFileMessage","resendFileMessage","getCreateChannel","createChannel","getLeaveChannel","leave","getFreezeChannel","freeze","getUnFreezeChannel","unfreeze","UserProfile","onSuccess","GroupChannelParams","isDistinct","addUserIds","groupChannel","ConnectedUserProfile","MenuItems","parentContainRef","closeDropdown","menuRef","handleClickOutside","event","contains","setState","parentRef","openLeft","parentRect","getBoundingClientRect","x","left","y","top","menuStyle","innerWidth","innerHeight","rect","padding","Number","isNaN","createRef","setupEvents","getMenuPosition","showParent","cleanUpEvents","hideParent","style","position","round","Component","Element","componentClassName","SortByRow","maxItemCount","itemWidth","itemHeight","result","EmojiListItems","reactionRef","spaceFromTrigger","spaceFromTriggerX","spaceFromTriggerY","reactionStyle","maximumLeft","getBarPosition","ENTER","MenuItems_","EmojiListItems_","MenuItem","keyCode","ContextMenu","menuTrigger","menuItems","showMenu","setShowMenu","COMPONENT_NAME","UserListItem","checkBox","uniqueKey","actionRef","avatarRef","isMuted","toggleDropdown","paddingTop","paddingBottom","close","role","filterUser","idsToFilter","currentId","includes","InviteMembers","userQueryCreator","closeModal","users","setUsers","selectedUsers","setSelectedUsers","usersDataSource","setUsersDataSource","selectedCount","applicationUserListQuery","next","users_","selectedUserList","hasNext","fetchMore","clientHeight","scrollTop","scrollHeight","usersBatch","modifiedSelectedUsers","createDefaultUserListQuery","userFilledApplicationUserListQuery","createApplicationUserListQuery","key","getApplicationAttributes","appInfo","applicationAttributes","isBroadcastChannelEnabled","ALLOW_BROADCAST_CHANNEL","isSuperGroupChannelEnabled","ALLOW_SUPER_GROUP_CHANNEL","setChannelType","isSuper","onBeforeCreateChannel","response","operatorUserIds","AddChannel","channelListDispatcher","showModal","setShowModal","step","setStep","setType","isBroadcastAvailable","isSupergroupAvailable","LeaveChannel","onCloseModal","onLeaveChannel","ChannelPreviewAction","stopPropagation","LeaveChannelModal","Loader","PlaceHolder","retryToConnect","PlaceHolderTypes","ChannelsPlaceholder","Placeholder","createEventHandler","sdkChannelHandlerId","ChannelHandler","onChannelChanged","channelActions","onChannelDeleted","onUserJoined","onUserBanned","onUserLeft","leftUser","onReadStatus","onDeliveryReceiptUpdated","onMessageUpdated","isEqual","onChannelHidden","onChannelFrozen","onChannelUnfrozen","addChannelHandler","userFilledChannelListQuery","channelListQuery","createMyGroupChannelListQuery","includeEmpty","order","limit","setupChannelList","setChannelSource","onChannelSelect","sortChannelList","channelList","sorted","markAsDelivered","pubSubHandleRemover","subscriber","s","pubSubHandler","subScriber","Map","set","msg","updatedChannel","ChannelList","queries","renderChannelPreview","onProfileEditSuccess","enableEditProfile","userDefinedDisableUserProfile","userDefinedRenderProfile","sdkError","setUser","sdkIntialized","channelListReducers","channelListInitialState","channelListStore","channelSource","setSdkChannelHandlerId","showProfileEdit","setShowProfileEdit","removeChannelHandler","channelListActions","sortedChannels","before","after","newName","updateCurrentUserInfoWithProfileImage","updatedUser","userActions","PlaceholderTypes","idx","cb","channelNameContainsFilter","channelUrlsFilter","customTypesFilter","customTypeStartsWithFilter","hiddenChannelFilter","memberStateFilter","metadataOrderKeyFilter","nicknameContainsFilter","publicChannelFilter","superChannelFilter","unreadChannelFilter","userIdsExactFilter","userIdsIncludeFilter","userIdsIncludeFilterQueryType","userIdsFilter","metaDataKeyFilter","metaDataValuesFilter","RESET_MESSAGES","RESET_STATE","CLEAR_SENT_MESSAGES","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","SEND_MESSAGEGE_START","SEND_MESSAGEGE_SUCESS","SEND_MESSAGEGE_FAILURE","RESEND_MESSAGEGE_START","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","SET_CHANNEL_INVALID","MARK_AS_READ","ON_REACTION_UPDATED","SET_EMOJI_CONTAINER","SET_READ_STATUS","SUPPORTED_MIMES","IMAGE","VIDEO","isImage","isVideo","unSupported","MessageTypes","ADMIN","FILE","THUMBNAIL","OG","SendingMessageStatus","NONE","SUCCEEDED","getMessageType","isUserMessage","ogMetaData","isAdminMessage","isFileMessage","UNDEFINED","scrollIntoLast","selector","intialTry","MAX_TRIES","currentTry","nodes","querySelectorAll","last","scrollIntoView","setTimeout","dispatcher","getParsedStatus","currentGroupChannel","unreadCount","getReadReceipt","isDelivered","getDeliveryReceipt","isOperator","myRole","isDisabledBecauseFrozen","isDisabledBecauseMuted","myMutedState","getEmojiCategoriesFromEmojiContainer","emojiContainer","emojiCategories","getAllEmojisFromEmojiContainer","allEmojis","categoryIndex","emojis","emojiIndex","getEmojisFromEmojiContainer","emojiCategoryId","emojiCategory","getAllEmojisMapFromEmojiContainer","allEmojisMap","getNicknamesMapFromMembers","nicknamesMap","memberIndex","isSameGroup","comparingMessage","sendingStatus","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","passUnsuccessfullMessages","allMessages","newMessage","lastIndexOfSucceededMessage","lastIndexOf","messages","splice","hasMore","lastMessageTimeStamp","readStatus","unreadSince","isInvalid","val","a","b","aString","bString","actionTypes","m","recivedMessages","stateChannel","stateChannelUrl","actionChannelUrl","filteredAllMessages","compareIds","newMessages","reqId","sort","failed","currentGroupChannelUrl","indexOf","applyReactionEvent","useHandleChannelEvents","sdkInit","messagesDispatcher","messageReciverId","onMessageReceived","messageActions","_","onMessageDeleted","onReactionUpdated","reactionEvent","onUserMuted","onUserUnmuted","onOperatorUpdated","useSetChannel","messageActionTypes","markAsRead","getAllEmoji","emojiContainer_","useInitialMessagesFetch","userFilledMessageListQuery","MessageListParams","getMessagesByMessageId","messageListParams","prevResultSize","isInclusive","includeReplies","includeReaction","getMessagesByTimestamp","getTime","useHandleReconnect","wasOffline","useReaction","isUsingReaction","lastMessageTime","useScrollCallback","useCallback","hasMoreMessages","lastMessageTs","useDeleteMessageCallback","useUpdateMessageCallback","onBeforeUpdateUserMessage","text","createParamsDefault","txt","UserMessageParams","createCustomPrams","useResendMessageCallback","isResendable","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","sendMessage","trim","useSendFileMessageCallback","onBeforeSendFileMessage","file_","FileMessageParams","useSetReadStatus","setReadStatus","allReadStatus","handleMessageStatus","onReadReceiptUpdated","handlerId","ReactionButton","selected","useMemoizedEmojiListItems","toggleReaction","emojiAllList","emoji","reactedReaction","reactions","reaction","isReacted","userIds","useToggleReactionCallback","deleteReaction","addReaction","MessageStatus","label","icon","array","object","ReactionBadge","isAdd","Tooltip","SPACE_FROM_TRIGGER","TooltipWrapper","hoverTooltip","showHoverTooltip","setShowHoverTooltip","childrenRef","bottom","offsetWidth","EmojiReactions","emojiAllMap","membersMap","memoizedEmojiListItems","MemoizedEmojiListItems","imageWidth","imageHeight","emojiReactionAddRef","messageReactions","emojiUrl","reactedUserCount","reactedByMe","nicknames","stringSetForMe","copyToClipboard","clipboardData","setData","queryCommandSupported","textarea","textContent","select","execCommand","ex","WORD_TYPOGRAPHY","EDITED_COLOR","useMemoizedMessageText","updatedAt","splitMessage","split","matchedMessage","word","MOUSE_ENTER","MOUSE_LEAVE","useMouseHover","setHover","handleMouseOver","handleMouseOut","GROUPING_PADDING","NORMAL_PADDING","Message","isByMe","resendMessage","showEdit","showRemove","chainTop","chainBottom","memoizedMessageText","OutgoingUserMessage","MemoizedMessageText","messageRef","parentRefReactions","parentRefMenus","isMessageSent","mousehover","setMousehover","moreActive","setMoreActive","handleMoreIconClick","handleMoreIconBlur","IncomingUserMessage","showReactionAddButton","showEmojiReactions","AdminMessage","OUTGOING_THUMBNAIL_MESSAGE","INCOMING_THUMBNAIL_MESSAGE","ThumbnailMessage","OutgoingThumbnailMessage","reactionAddRef","IncomingThumbnailMessage","MAX_TRUNCATE_LENGTH","GROUPAING_PADDING","checkFileType","imageFile","audioFile","OutgoingFileMessage","openFileUrl","open","reactionAddButtonRef","IncomingFileMessage","MessageSwitch","DateSeparator","separatorColor","LINE_HEIGHT","KeyCode","SHIFT","handleUploadFile","callback","MessageInput","isEdit","placeholder","maxLength","onFileUpload","onSendMessage","onCancelEdit","onStartTyping","fileInputRef","isShiftPressed","setIsShiftPressed","setHeight","MAX_HEIGHT","offsetHeight","trimmedInputValue","FileViewerComponent","onClose","onDelete","FileViewer","RemoveMessage","onDeleteMessage","UnknownMessage","OutgoingUnknownMessage","IncomingUnknownMessage","URL_REG","OG_MESSAGE","OUTGOING_OG_MESSAGE","INCOMING_OG_MESSAGE","createUrlTester","regexp","checkOGIsEnalbed","LINK_LABEL","http","LinkLabel","injecingClassName","WORD_COLOR","isUrl","NORAML_PADDING","OGMessageSwitch","openLink","OutgoingOGMessage","defaultImage","IncomingOGMessage","errorCode","MessageHoc","editDisabled","hasSeperator","updateMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","editMessageInputRef","FileMessage","OGMessage","RemoveMessageModal","isDateSeperator","ConversationScroll","scrollRef","onScroll","first","renderChatItem","useMessageGrouping","previousMessage","previousMessageCreatedAt","currentCreatedAt","isSameDay","onUpdateMessage","onResendMessage","MessageHOC","Notification","time","timeArray","FrozenNotification","TypingIndicatorText","TypingIndicator","sb","setHandlerId","typingMembers","setTypingMembers","newHandlerId","onTypingStatusUpdated","getTypingMembers","MessageInputWrapper","renderMessageInput","startTyping","ConnectionStatus","prettyDate","formatDistanceToNowStrict","addSuffix","getOthersLastSeenAt","getReadStatus","lastSeenList","values","lastSeenAt","last_seen_at","AutoRefresh","repeatFunc","setLabel","interval","setInterval","clearInterval","ChatHeader","subTitle","onActionClick","ConversationPanel","renderChatHeader","onChatHeaderActionClick","messageListQuery","messagesReducer","messagesInitialState","messagesStore","invalidChannel","usingReaction","onScrollCallback","useGetChannel","onSendFileMessage","includeMetaArray","includeParentMessageText","includeThreadInfo","reverse","senderUserIdsFilter","EditDetails","ChannelProfile","onChannelInfoChange","EditDetailsModal","MembersModal","hideModal","setMembers","memberQuery","setMemberQuery","memberListQuery","createMemberListQuery","o","addOperators","removeOperators","unmuteUser","muteUser","banUser","SHOWN_MEMBER_MAX","MemebersAccordion","onInviteMemebers","showMoreModal","setShowMoreModal","showAddUserModal","setShowAddUserModal","ButtonSizes","Context","opened","setOpened","Consumer","Provider","AccordionGroup","Accordion","renderTitle","renderContent","renderFooter","showAccordion","setShowAccordion","handleClick","AccordionGroup_","OperatorsModal","operators","setOperators","operatorQuery","setOperatorQuery","operatorListQuery","createOperatorListQuery","AddOperatorsModal","selectedMembers","setSelectedMembers","modifiedSelectedMembers","OperatorList","showMore","setShowMore","showAdd","setShowAdd","setHasNext","refershList","operator","userQuery","setUserQuery","MemberList","showAllMembers","setShowAllMembers","showInviteMembers","setShowInviteMembers","memberUserListQuery","selectedMemebers","inviteWithUserIds","BannedMembersModal","bannedUserListQuery","createBannedUserListQuery","unbanUser","BannedMemberList","refreshList","MutedMembersModal","mutedMemberFilter","MutedMemberList","kFormatter","num","abs","toFixed","frozen","setFrozen","ChannelSettings","onCloseClick","onChannelModified","renderChannelProfile","onBeforeUpdateChannel","channelUpdateId","setChannelUpdateId","setChannel","setInvalidChannel","showLeaveChannelModal","setShowLeaveChannelModal","currentTitle","data","updateChannel","AdminPanel","App","currentChannelUrl","setCurrentChannelUrl","setShowSettings"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 517107d..f74458b 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,9 @@ "name": "sendbird-uikit", "version": "2.0.0-alpha.0", "description": "React based UI kit for sendbird", - "main": "dist/index.js", + "main": "dist/esm/index.js", "typings": "dist/index.d.js", "style": "dist/styles.css", - "module": "dist/index.es.js", - "jsnext:main": "dist/index.es.js", "scripts": { "test": "jest", "test-update-snapshot": "jest -u",