This repository was archived by the owner on Aug 30, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathindex.js.map
1 lines (1 loc) · 891 KB
/
index.js.map
1
{"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 <SendbirdSdkContext.Consumer>\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 <OriginalComponent {...mergedProps} />;\n }}\n </SendbirdSdkContext.Consumer>\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<string, string>): 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<string, string>;\n children: React.Component;\n}\n\nconst LocalizationProvider = (props: LocalizationProviderProps): React.ReactNode => {\n const { children } = props;\n return (\n <LocalizationContext.Provider value={props}>\n {children}\n </LocalizationContext.Provider>\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 <SendbirdSdkContext.Provider\n value={{\n stores: {\n sdkStore,\n userStore,\n },\n dispatchers: {\n sdkDispatcher,\n userDispatcher,\n reconnect: () => {\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 <LocalizationProvider stringSet={localeStringSet}>\n {children}\n </LocalizationProvider>\n </SendbirdSdkContext.Provider>\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 <UserProfileContext.Provider value={props}>\n <div className={className}>\n {children}\n </div>\n </UserProfileContext.Provider>\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 <img\n className=\"sendbird-image-renderer--hidden-placeholder\"\n src={url}\n alt={alt}\n onError={() => {\n setRealElement(typeof defaultComponent === 'function' ? defaultComponent() : defaultComponent);\n }}\n onLoad={() => {\n setRealElement((\n <div\n className={injectingClassName.join(' ')}\n style={{\n height,\n width,\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n backgroundImage: `url(${url})`,\n borderRadius: circle ? '50%' : null,\n }}\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 <IconAdd />;\n case Type.ARROW_LEFT: return <IconArrowLeft />;\n case Type.CAMERA: return <IconCamera />;\n case Type.ATTACH: return <IconAttach />;\n case Type.AVATAR_DARK: return <IconAvatarDark />;\n case Type.AVATAR_LIGHT: return <IconAvatarLight />;\n case Type.BROADCAST_LARGE_DARK: return <BroadcastLargeDark />;\n case Type.BROADCAST_LARGE_LIGHT: return <BroadcastLargeLight />;\n case Type.BROADCAST_DARK: return <BroadcastDark />;\n case Type.BROADCAST_LIGHT: return <BroadcastLight />;\n case Type.BROADCAST: return <Broadcast />;\n case Type.FROZEN_DARK: return <FrozenDark />;\n case Type.FROZEN_LIGHT: return <FrozenLight />;\n case Type.MORE: return <IconMore />;\n case Type.MUTE: return <IconMute />;\n case Type.NO_THUMBNAIL: return <IconNoThumbnail />;\n case Type.CHECKBOX: return <IconCheckbox />;\n case Type.CHECKBOX_OFF: return <IconCheckboxOff />;\n case Type.CLOSE: return <IconClose />;\n case Type.COPY: return <IconCopy />;\n case Type.CHAT: return <IconChat />;\n case Type.SUPER_GROUP: return <IconSupergroup />;\n case Type.CREATE: return <IconCreate />;\n case Type.DELETE: return <IconDelete />;\n case Type.DISCONNECTED: return <IconDisconnected />;\n case Type.DUMMY: return <IconDummy />;\n case Type.EDIT: return <IconEdit />;\n case Type.ERROR: return <IconError />;\n case Type.ERROR_FILLED: return <IconErrorFilled />;\n case Type.EMOJI_FAILED: return <IconEmojiFailed />;\n case Type.EMOJI_REACTIONS_ADD: return <IconEmojiReactionsAdd />;\n case Type.EMOJI_REACTIONS_ADD_GRAY: return <IconEmojiReactionsAddGray />;\n case Type.DELIVERED: return <IconDelivered />;\n case Type.DOCUMENT: return <IconDocument />;\n case Type.DOWNLOAD: return <IconDownload />;\n case Type.FILE_AUDIO: return <IconFileAudio />;\n case Type.FILE_DOCUMENT: return <IconFileDocument />;\n case Type.GIF: return <IconGif />;\n case Type.INFO: return <IconInfo />;\n case Type.LEAVE: return <IconLeave />;\n case Type.MEMBERS: return <IconMembers />;\n case Type.NOTIFICATIONS: return <IconNotifications />;\n case Type.PHOTO: return <IconPhoto />;\n case Type.PLAY: return <IconPlay />;\n case Type.PLUS: return <IconPlus />;\n case Type.READ: return <IconRead />;\n case Type.REFRESH: return <IconRefresh />;\n case Type.SEND: return <IconSend />;\n case Type.SENT: return <IconSent />;\n case Type.SHEVRON: return <IconShevron />;\n case Type.SHEVRON_DOWN: return <IconShevronDown />;\n case Type.SPINNER: return <IconSpinner />;\n case Type.SPINNER_LARGE: return <IconSpinnerLarge />;\n case Type.USER: return <IconUser />;\n case Type.ICON_OPERATOR: return <IconOperator />;\n case Type.ICON_BANNED: return <IconBanned />;\n case Type.ICON_MUTED: return <IconMuted />;\n case Type.ICON_MUTED_FG: return <IconMutedFg />;\n case Type.ICON_FREEZE: return <IconFreeze />;\n case Type.TOGGLE_ON: return <ToggleOn />;\n case Type.TOGGLE_OFF: return <ToggleOff />;\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 <div\n onClick={onClick}\n onKeyDown={onClick}\n role=\"button\"\n tabIndex=\"0\"\n className={[\n ...injectingClassName,\n 'sendbird-icon',\n changeColorToClassName(fillColor),\n ].join(' ')}\n style={iconStyle}\n >\n {\n children || changeTypeToIconComponent(type)\n }\n </div>\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 ? <Icon className={imageRendererClassName} type={IconTypes.AVATAR_DARK} width={width} height={height} />\n : <Icon className={imageRendererClassName} type={IconTypes.AVATAR_LIGHT} width={width} height={height} />\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 <ImageRenderer\n className={imageRendererClassName}\n url={src}\n height={height}\n width={width}\n alt={alt}\n defaultComponent={defaultComponent({ height, width })}\n />\n );\n }\n\n if (src && src.length) {\n if (src.length === 1) {\n return (\n <ImageRenderer\n className={imageRendererClassName}\n url={src[0]}\n height={height}\n width={width}\n alt={alt}\n defaultComponent={defaultComponent({ height, width })}\n />\n );\n }\n\n if (src.length === 2) {\n return (\n <div className=\"sendbird-avatar--inner__two-child\">\n <ImageRenderer\n className={imageRendererClassName}\n url={src[0]}\n height={height}\n width={width}\n alt={alt}\n defaultComponent={defaultComponent({ height, width })}\n />\n <ImageRenderer\n className={imageRendererClassName}\n url={src[1]}\n height={height}\n width={width}\n alt={alt}\n defaultComponent={defaultComponent({ height, width })}\n />\n </div>\n );\n }\n\n if (src.length === 3) {\n return (\n <>\n <div className=\"sendbird-avatar--inner__three-child--upper\">\n <ImageRenderer\n className={imageRendererClassName}\n url={src[0]}\n height={height}\n width={width}\n alt={alt}\n defaultComponent={defaultComponent({ height, width })}\n />\n </div>\n <div className=\"sendbird-avatar--inner__three-child--lower\">\n <ImageRenderer\n className={imageRendererClassName}\n url={src[1]}\n height={height}\n width={width}\n alt={alt}\n defaultComponent={defaultComponent({ height, width })}\n />\n <ImageRenderer\n className={imageRendererClassName}\n url={src[2]}\n height={height}\n width={width}\n alt={alt}\n defaultComponent={defaultComponent({ height, width })}\n />\n </div>\n </>\n );\n }\n\n return (\n <div className=\"sendbird-avatar--inner__four-child\">\n {\n src.slice(0, 4)\n .map((i) => (\n <ImageRenderer\n className={imageRendererClassName}\n url={i}\n height={height}\n width={width}\n alt={alt}\n key={uuidv4()}\n defaultComponent={defaultComponent({ height, width })}\n />\n ))\n }\n </div>\n );\n }\n // default img\n return (\n <ImageRenderer\n className={imageRendererClassName}\n url=\"\"\n height={height}\n width={width}\n alt={alt}\n defaultComponent={defaultComponent({ height, width })}\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<HTMLDivElement>,\n): ReactElement {\n const injectingClassName = (Array.isArray(className)) ? className : [className];\n return (\n <div\n className={\n [\n ...injectingClassName,\n 'sendbird-avatar',\n ].join(' ')\n }\n ref={ref}\n style={{ height, width }}\n onClick={onClick}\n role=\"button\"\n tabIndex={0}\n onKeyDown={onClick}\n >\n <AvatarInner src={src} height={height} width={width} alt={alt} />\n </div>\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 <Icon\n type={IconTypes.BROADCAST_LARGE_DARK}\n width={width}\n height={height}\n className=\"sendbird-chat-header__default--broadcast-channel-dark\"\n />\n )\n : (\n <Icon\n type={IconTypes.BROADCAST_LARGE_LIGHT}\n width={width}\n height={height}\n className=\"sendbird-chat-header__default--broadcast-channel-light\"\n />\n )\n )\n : (\n <Avatar\n className=\"sendbird-chat-header__avatar--broadcast-channel\"\n src={utils.getChannelAvatarSource(channel, userId)}\n width={width}\n height={height}\n alt={channel.name}\n />\n )\n )\n : (\n <Avatar\n className=\"sendbird-chat-header__avatar--group-channel\"\n src={utils.getChannelAvatarSource(channel, userId)}\n width={`${width}px`}\n height={`${height}px`}\n alt={channel.name}\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 <span\n className={injectingClassName.join(' ')}\n >\n {children}\n </span>\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 <div className={[...injectingClassName, 'sendbird-badge'].join(' ')}>\n <div className=\"sendbird-badge__text\">\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONCONTENT_1}>\n {\n (count > maximumNumber)\n ? `${maximumNumber}${stringSet.BADGE__OVER}`\n : count\n }\n </Label>\n </div>\n </div>\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 <div\n role=\"link\"\n tabIndex={tabIndex}\n onClick={onClick}\n onKeyPress={onClick}\n className={`\n sendbird-channel-preview\n ${isActive ? 'sendbird-channel-preview--active' : null}\n `}\n >\n <div\n className=\"sendbird-channel-preview__avatar\"\n >\n <ChannelAvatar\n channel={channel}\n userId={userId}\n theme={theme}\n />\n </div>\n <div\n className=\"sendbird-channel-preview__content\"\n >\n <div className=\"sendbird-channel-preview__content__upper\">\n <div className=\"sendbird-channel-preview__content__upper__header\">\n {\n isBroadcast\n && (\n <div className=\"sendbird-channel-preview__broadcast-icon\">\n <Icon\n type={\n theme === 'dark'\n ? IconTypes.BROADCAST_DARK\n : IconTypes.BROADCAST_LIGHT\n }\n height={12}\n width={12}\n />\n </div>\n )\n }\n <Label\n className=\"sendbird-channel-preview__content__upper__header__channel-name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {utils.getChannelTitle(channel, userId, stringSet)}\n </Label>\n <Label\n className=\"sendbird-channel-preview__content__upper__header__total-members\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {utils.getTotalMembers(channel)}\n </Label>\n {\n isFrozen\n && (\n <div title=\"Frozen\" className=\"sendbird-channel-preview__frozen-icon\">\n <Icon\n type={\n theme === 'dark'\n ? IconTypes.FROZEN_DARK\n : IconTypes.FROZEN_LIGHT\n }\n height={12}\n width={12}\n />\n </div>\n )\n }\n </div>\n <Label\n className=\"sendbird-channel-preview__content__upper__last-message-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {utils.getLastMessageCreatedAt(channel)}\n </Label>\n </div>\n\n <div className=\"sendbird-channel-preview__content__lower\">\n <Label\n className=\"sendbird-channel-preview__content__lower__last-message\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n {utils.getLastMessage(channel)}\n </Label>\n <div className=\"sendbird-channel-preview__content__lower__unread-message-count\">\n {\n utils.getChannelUnreadMessageCount(channel)\n ? <Badge count={utils.getChannelUnreadMessageCount(channel)} />\n : null\n }\n </div>\n </div>\n </div>\n <div\n className=\"sendbird-channel-preview__action\"\n >\n {ChannelAction}\n </div>\n </div>\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 <button\n className={`${injectingClassName.join(' ')} ${pressed}`}\n disabled={disabled}\n ref={ref}\n type={type}\n style={{ height, width }}\n onClick={(e) => {\n if (disabled) { return; }\n setPressed('sendbird-iconbutton--pressed');\n onClick(e);\n }}\n onBlur={(e) => {\n setPressed('');\n onBlur(e);\n }}\n >\n <span className=\"sendbird-iconbutton__inner\">\n {children}\n </span>\n </button>\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 <div\n className={`\n ${allowProfileEdit && 'sendbird-channel-header--allow-edit'}\n sendbird-channel-header\n `}\n >\n {\n renderHeader\n ? renderHeader()\n : (\n <div\n className=\"sendbird-channel-header__title\"\n role=\"button\"\n onKeyDown={onEdit}\n onClick={onEdit}\n tabIndex=\"0\"\n >\n <div className=\"sendbird-channel-header__title--left\">\n <Avatar\n height=\"32px\"\n width=\"32px\"\n src={user.profileUrl}\n alt={user.nickname}\n />\n </div>\n <div className=\"sendbird-channel-header__title--right\">\n <Label\n className=\"sendbird-channel-header__title--name\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {user.nickname || stringSet.NO_NAME}\n </Label>\n <Label\n className=\"sendbird-channel-header__title--user-id\"\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {user.userId}\n </Label>\n </div>\n </div>\n )\n }\n <div className=\"sendbird-channel-header__right-icon\">\n {iconButton}\n </div>\n </div>\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 <div id={MODAL_ROOT} />\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 <button type=\"button\" className={injectingClassNames} onClick={onClick} disabled={disabled}>\n <Label\n className=\"sendbird-button__text\"\n type={LabelTypography.BUTTON_1}\n color={LabelColors.ONCONTENT_1}\n >\n {children}\n </Label>\n </button>\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 <div className=\"sendbird-modal-header\">\n <Label type={LabelTypography.H_1} color={LabelColors.ONBACKGROUND_1}>\n {titleText}\n </Label>\n </div>\n);\nModalHeader.propTypes = {\n titleText: PropTypes.string.isRequired,\n};\n\nexport const ModalBody = ({ children }) => (\n <div className=\"sendbird-modal-body\">{children}</div>\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 <div className=\"sendbird-modal-footer\">\n <Button type={ButtonTypes.SECONDARY} onClick={onCancel}>\n <Label type={LabelTypography.BUTTON_1} color={LabelColors.ONBACKGROUND_1}>\n {stringSet.BUTTON__CANCEL}\n </Label>\n </Button>\n <Button type={type} disabled={disabled} onClick={onSubmit}>\n {submitText}\n </Button>\n </div>\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 <div className=\"sendbird-modal\">\n <div className=\"sendbird-modal-content\">\n <ModalHeader titleText={titleText} />\n <ModalBody>{children}</ModalBody>\n {\n !hideFooter && (\n <ModalFooter\n disabled={disabled}\n onCancel={onCancel}\n onSubmit={onSubmit}\n submitText={submitText}\n type={type}\n />\n )\n }\n <div className=\"sendbird-modal-close\">\n <IconButton\n width=\"32px\"\n height=\"32px\"\n onClick={onCancel}\n >\n <Icon\n type={IconTypes.CLOSE}\n fillColor={IconColors.SECONDARY}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n </div>\n </div>\n <div className=\"sendbird-modal-backdrop\" />\n </div>\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 <Label\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_1}\n className=\"sendbird-input-label\"\n >\n {children}\n </Label>\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 <div className=\"sendbird-input\">\n <input\n required={required}\n ref={ref}\n name={name}\n disabled={disabled}\n value={inputValue}\n className=\"sendbird-input--input\"\n onChange={(e) => {\n setInputValue(e.target.value);\n }}\n />\n {(placeHolder && !inputValue) && (\n <Label\n className=\"sendbird-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_3}\n >\n {placeHolder}\n </Label>\n )}\n </div>\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 <div\n role=\"button\"\n tabIndex={0}\n className={[\n ...injectingClassName,\n changeColorToClassName(color),\n (notUnderline ? 'sendbird-textbutton--not-underline' : 'sendbird-textbutton'),\n (disabled ? 'sendbird-textbutton--disabled' : ''),\n ].join(' ')}\n onClick={onClick}\n onKeyPress={onClick}\n >\n {children}\n </div>\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 <Modal\n titleText={stringSet.EDIT_PROFILE__TITLE}\n submitText={stringSet.BUTTON__SAVE}\n onCancel={onCancel}\n onSubmit={() => {\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 <form\n className=\"sendbird__edit-user-profile\"\n ref={formRef}\n onSubmit={(e) => { e.preventDefault(); }}\n >\n <section className=\"sendbird__edit-user-profile__img\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__IMAGE_LABEL}\n </InputLabel>\n <div className=\"sendbird__edit-user__avatar\">\n <Avatar\n height=\"80px\"\n width=\"80px\"\n src={currentImg || user.profileUrl}\n />\n </div>\n <input\n ref={hiddenInputRef}\n type=\"file\"\n accept=\"image/gif, image/jpeg, image/png\"\n style={{ display: 'none' }}\n onChange={(e) => {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n <TextButton\n className=\"sendbird__edit-user__avatar-button\"\n onClick={() => hiddenInputRef.current.click()}\n notUnderline\n >\n <Label type={LabelTypography.BUTTON_1} color={LabelColors.PRIMARY}>\n {stringSet.EDIT_PROFILE__IMAGE_UPLOAD}\n </Label>\n </TextButton>\n </section>\n <section className=\"sendbird__edit-user__name\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__NICKNAME_LABEL}\n </InputLabel>\n <Input\n required={user.nickname !== ''}\n name=\"sendbird__edit-user__name\"\n ref={inputRef}\n value={user.nickname}\n placeHolder={stringSet.EDIT_PROFILE__NICKNAME_PLACEHOLDER}\n />\n </section>\n <section className=\"sendbird__edit-user__userid\">\n <InputLabel>\n {/* userID */}\n {stringSet.EDIT_PROFILE__USERID_LABEL}\n </InputLabel>\n <Input\n disabled\n name=\"sendbird__edit-user__userid\"\n value={user.userId}\n />\n </section>\n <section className=\"sendbird__edit-user__theme\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__THEME_LABEL}\n </InputLabel>\n <div className=\"sendbird__edit-user__theme-icon\">\n {\n theme === 'dark'\n ? (\n <Icon\n onClick={() => {\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 <Icon\n onClick={() => {\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 </div>\n </section>\n </form>\n </Modal>\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 <div\n className=\"sendbird-muted-avatar\"\n style={{\n height: `${height}px`,\n width: `${width}px`,\n }}\n >\n <div className=\"sendbird-muted-avatar__icon\">\n <div\n className=\"sendbird-muted-avatar__bg\"\n style={{\n height: `${height}px`,\n width: `${width}px`,\n }}\n />\n <Icon\n fillColor={IconColors.WHITE}\n type={IconTypes.ICON_MUTED}\n width={`${height - 8}px`}\n height={`${width - 8}px`}\n />\n </div>\n </div>\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 <label className=\"sendbird-checkbox\" htmlFor={id}>\n <input\n id={id}\n type=\"checkbox\"\n checked={isChecked}\n onClick={() => setCheck(!isChecked)}\n onChange={onChange}\n />\n <span className=\"sendbird-checkbox--checkmark\" />\n </label>\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<SendbirdTypes['GroupChannel']>;\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 <div className=\"sendbird__user-profile\">\n <section className=\"sendbird__user-profile-avatar\">\n <Avatar\n height=\"80px\"\n width=\"80px\"\n src={user.profileUrl}\n />\n </section>\n <section className=\"sendbird__user-profile-name\">\n <Label type={LabelTypography.H_2} color={LabelColors.ONBACKGROUND_1}>\n {user.nickname || stringSet.NO_NAME}\n </Label>\n </section>\n {\n user.userId !== currentUserId && (\n <section className=\"sendbird__user-profile-message\">\n <Button\n type={ButtonTypes.SECONDARY}\n onClick={() => {\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 </Button>\n </section>\n )\n }\n <div className=\"sendbird__user-profile-seperator\" />\n <section className=\"sendbird__user-profile-userId\">\n <Label\n className=\"sendbird__user-profile-userId--label\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {stringSet.USER_PROFILE__USER_ID}\n </Label>\n <Label\n className=\"sendbird__user-profile-userId--value\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {user.userId}\n </Label>\n </section>\n </div>\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 <div className=\"sendbird-dropdown__menu-backdrop\" />\n <ul\n className=\"sendbird-dropdown__menu\"\n ref={this.menuRef}\n style={{\n display: 'inline-block',\n position: 'fixed',\n left: `${Math.round(menuStyle.left)}px`,\n top: `${Math.round(menuStyle.top)}px`,\n ...style,\n }}\n >\n {children}\n </ul>\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 <div\n className={injectingClassName.join(' ')}\n style={{ width: itemWidth * maxItemCount, height: itemHeight }}\n key={className + i}\n >\n {\n children.slice(i, i + maxItemCount)\n }\n </div>,\n );\n }\n\n return result;\n }\n return (\n <div\n className={injectingClassName.join(' ')}\n style={{ width: itemWidth * children.length, height: itemHeight }}\n >\n {children}\n </div>\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 <div className=\"sendbird-dropdown__menu-backdrop\" />\n <ul\n className=\"sendbird-dropdown__reaction-bar\"\n ref={this.reactionRef}\n style={{\n display: 'inline-block',\n position: 'fixed',\n left: `${Math.round(reactionStyle.left)}px`,\n top: `${Math.round(reactionStyle.top)}px`,\n }}\n >\n <SortByRow\n className=\"sendbird-dropdown__reaction-bar__row\"\n maxItemCount={8}\n itemWidth={44}\n itemHeight={40}\n >\n {children}\n </SortByRow>\n </ul>\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 <li\n tabIndex={0}\n className={[\n ...injectingClassName,\n 'sendbird-dropdown__menu-item',\n ].join(' ')}\n onClick={onClick}\n onKeyPress={(e) => {\n if (e.keyCode === ENTER) {\n onClick(e);\n }\n }}\n role=\"menuitem\"\n >\n <Label\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n className=\"sendbird-dropdown__menu-item__text\"\n >\n {children}\n </Label>\n </li>\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 <div id=\"sendbird-dropdown-portal\" />\n);\n\nexport const EmojiReactionListRoot = () => (\n <div id=\"sendbird-emoji-list-portal\" />\n);\n\nexport default function ContextMenu({ menuTrigger, menuItems }) {\n const [showMenu, setShowMenu] = useState(false);\n\n return (\n <div className=\"sendbird-context-menu\" style={{ display: 'inline' }}>\n {menuTrigger(() => setShowMenu(!showMenu))}\n {showMenu && menuItems(() => setShowMenu(false))}\n </div>\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 <div\n ref={parentRef}\n className={[COMPONENT_NAME, ...injectingClassNames].join(' ')}\n >\n {\n user.isMuted && (\n <MutedAvatarOverlay height={40} width={40} />\n )\n }\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n onClick={() => {\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 <MenuItems\n openLeft\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={user}\n currentUserId={currentUser}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n <Label\n className={`${COMPONENT_NAME}__title`}\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n ' (You)'\n )\n }\n </Label>\n { // if there is now nickname, display userId\n !user.nickname && (\n <Label\n className={`${COMPONENT_NAME}__subtitle`}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {user.userId}\n </Label>\n )\n }\n {\n checkBox && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label\n className={`${COMPONENT_NAME}__checkbox`}\n htmlFor={uniqueKey}\n >\n <Checkbox\n id={uniqueKey}\n checked={checked}\n onChange={(event) => onChange(event)}\n />\n </label>\n )\n }\n {\n user.role === 'operator' && (\n <Label\n className={`${COMPONENT_NAME}__operator`}\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n Operator\n </Label>\n )\n }\n {\n action && (\n <div ref={actionRef} className={`${COMPONENT_NAME}__action`}>\n { action({ actionRef, parentRef }) }\n </div>\n )\n }\n </div>\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 <Modal\n onCancel={closeModal}\n onSubmit={() => {\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 <div>\n <Label\n color={(selectedCount > 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n </Label>\n <div\n className=\"sendbird-create-channel--scroll\"\n onScroll={(e) => {\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 <UserListItem\n key={user.userId}\n user={user}\n checkBox\n checked={selectedUsers[user.userId]}\n onChange={\n (event) => {\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 </div>\n </div>\n </Modal>\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 <IconButton\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n setShowModal(true);\n }}\n disabled={disabled}\n >\n <Icon\n type={IconTypes.CREATE}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n {\n showModal && step === 0 && (\n <Modal\n titleText=\"New channel\"\n hideFooter\n onCancel={() => { setShowModal(false); }}\n onSubmit={() => {}}\n >\n <div className=\"sendbird-add-channel__rectangle-wrap\">\n <div\n className=\"sendbird-add-channel__rectangle\"\n onClick={() => {\n setType('group');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('group');\n setStep(1);\n }}\n >\n <Icon\n type={IconTypes.CHAT}\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n Group\n </Label>\n </div>\n {\n isSupergroupAvailable && (\n <div\n className=\"sendbird-add-channel__rectangle\"\n onClick={() => {\n setType('supergroup');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('supergroup');\n setStep(1);\n }}\n >\n <Icon\n type={IconTypes.SUPER_GROUP}\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n Super group\n </Label>\n </div>\n )\n }\n {\n isBroadcastAvailable && (\n <div\n className=\"sendbird-add-channel__rectangle\"\n onClick={() => {\n setType('broadcast');\n setStep(1);\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={() => {\n setType('broadcast');\n setStep(1);\n }}\n >\n <Icon\n type={IconTypes.BROADCAST}\n />\n <Label type={LabelTypography.SUBTITLE_1} color={LabelColors.ONBACKGROUND_1}>\n Broadcast\n </Label>\n </div>\n )\n }\n </div>\n </Modal>\n )\n }\n {\n showModal && step === 1 && (\n <InviteMembers\n swapParams={\n sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback()\n }\n titleText={stringSet.MODAL__CREATE_CHANNEL__TITLE}\n submitText={stringSet.BUTTON__CREATE}\n closeModal={() => {\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 <Modal\n onCancel={onCloseModal}\n onSubmit={onLeaveChannel}\n submitText=\"Leave\"\n titleText=\"Leave this channel?\"\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 <div\n role=\"button\"\n style={{ display: 'inline-block' }}\n onKeyDown={(e) => { e.stopPropagation(); }}\n tabIndex={0}\n onClick={(e) => { e.stopPropagation(); }}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRef}\n onClick={toggleDropdown}\n height=\"32px\"\n width=\"32px\"\n >\n <Icon\n type={IconTypes.MORE}\n fillColor={IconColors.PRIMARY}\n width=\"24px\"\n height=\"24px\"\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={parentRef}\n parentContainRef={parentRef}\n closeDropdown={closeDropdown}\n >\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n setShowModal(true);\n closeDropdown();\n }}\n >\n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n </MenuItem>\n </MenuItems>\n )}\n />\n {\n showModal && (\n <LeaveChannelModal\n onCloseModal={() => setShowModal(false)}\n onLeaveChannel={onLeaveChannel}\n />\n )\n }\n </div>\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 <div\n className={[...injectingClassName, 'sendbird-loader'].join(' ')}\n style={{\n width: typeof width === 'string' ? width : `${width}px`,\n height: typeof height === 'string' ? height : `${height}px`,\n }}\n >\n {children}\n </div>\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: <Icon\n type={IconTypes.SPINNER}\n width=\"26px\"\n height=\"26px\"\n />,\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 <div className={[...injectingClassName, 'sendbird-place-holder'].join(' ')}>\n {\n type === PlaceHolderTypes.LOADING\n ? (\n <Loader width=\"48px\" height=\"48px\">\n <Icon type={IconTypes.SPINNER_LARGE} width=\"48px\" height=\"48px\" />\n </Loader>\n )\n : null\n }\n {\n type === PlaceHolderTypes.NO_CHANNELS || type === PlaceHolderTypes.WRONG\n ? (\n <div className=\"sendbird-place-holder__body\">\n {\n type === PlaceHolderTypes.NO_CHANNELS && (\n <Icon\n className=\"sendbird-place-holder__body__icon\"\n type={IconTypes.CHAT}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"64px\"\n height=\"64px\"\n />\n )\n }\n {\n type === PlaceHolderTypes.WRONG && (\n <Icon\n className=\"sendbird-place-holder__body__icon\"\n type={IconTypes.ERROR}\n fillColor={IconColors.ON_BACKGROUND_3}\n width=\"64px\"\n height=\"64px\"\n />\n )\n }\n <Label className=\"sendbird-place-holder__body__text\" type={LabelTypography.BODY_1} color={LabelColors.ONBACKGROUND_2}>\n {\n type === PlaceHolderTypes.NO_CHANNELS\n ? stringSet.PLACE_HOLDER__NO_CHANNEL\n : stringSet.PLACE_HOLDER__WRONG\n }\n </Label>\n {\n retryToConnect\n ? (\n <div\n className=\"sendbird-place-holder__body__reconnect\"\n role=\"button\"\n tabIndex={0}\n onClick={retryToConnect}\n onKeyPress={retryToConnect}\n >\n <Icon\n className=\"sendbird-place-holder__body__reconnect__icon\"\n type={IconTypes.REFRESH}\n fillColor={IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n <Label className=\"sendbird-place-holder__body__reconnect__text\" type={LabelTypography.BUTTON_1} color={LabelColors.PRIMARY}>\n {stringSet.PLACE_HOLDER__RETRY_TO_CONNECT}\n </Label>\n </div>\n )\n : null\n }\n </div>\n )\n : null\n }\n </div>\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 <div className=\"sendbird-channel-list\">\n <Placeholder type={type} />\n </div>\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 <UserProfileProvider\n disableUserProfile={userDefinedDisableUserProfile}\n renderUserProfile={userDefinedRenderProfile}\n className=\"sendbird-channel-list\"\n >\n <div className=\"sendbird-channel-list__header\">\n <ChannelHeader\n renderHeader={renderHeader}\n user={user}\n onEdit={() => {\n if (enableEditProfile) {\n setShowProfileEdit(true);\n }\n }}\n allowProfileEdit={enableEditProfile}\n iconButton={(\n <AddChannel\n disabled={!isOnline}\n userListQuery={userListQuery}\n sdk={sdk}\n channelListDispatcher={channelListDispatcher}\n userId={userId}\n userFilledApplicationUserListQuery={userFilledApplicationUserListQuery}\n onBeforeCreateChannel={onBeforeCreateChannel}\n />\n )}\n />\n </div>\n {\n showProfileEdit && (\n <EditUserProfile\n onThemeChange={onThemeChange}\n user={user}\n onCancel={() => { 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 <div\n className=\"sendbird-channel-list__body\"\n onScroll={(e) => {\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 <PlaceHolder type={PlaceholderTypes.WRONG} />\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 <div>\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 <div key={channel.url} onClick={onClick}>\n {renderChannelPreview({ channel, onLeaveChannel })}\n </div>\n )\n : (\n <ChannelPreview\n key={channel.url}\n tabIndex={idx}\n onClick={onClick}\n channel={channel}\n currentUser={user}\n theme={theme}\n isActive={channel.url === currentChannel}\n // todo - potential performance hit refactor\n ChannelAction={(\n <ChannelPreviewAction\n disabled={!isOnline}\n onLeaveChannel={() => onLeaveChannel(channel)}\n />\n )}\n />\n )\n );\n })\n }\n </div>\n {\n (!sdkIntialized || loading) && (\n <PlaceHolder type={PlaceholderTypes.LOADING} />\n )\n }\n {\n // placeholder\n (!allChannels || allChannels.length === 0) && (\n <PlaceHolder type={PlaceholderTypes.NO_CHANNELS} />\n )\n }\n </div>\n </UserProfileProvider>\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 <div\n ref={ref}\n className={`sendbird-reaction-button${selected ? '--selected' : ''} ${injectingClassName.join(' ')}`}\n style={{\n width: typeof width === 'string' ? `${width.slice(0, -2) - 2}px` : `${width - 2}px`,\n height: typeof height === 'string' ? `${height.slice(0, -2) - 2}px` : `${height - 2}px`,\n }}\n onClick={(e) => onClick(e)}\n role=\"button\"\n onKeyDown={(e) => onClick(e)}\n tabIndex={0}\n >\n <div className=\"sendbird-reaction-button__inner\">\n {children}\n </div>\n </div>\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 <EmojiListItems\n parentRef={parentRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={spaceFromTrigger}\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 <ReactionButton\n key={emoji.key}\n width=\"36px\"\n height=\"36px\"\n selected={isReacted}\n onClick={() => {\n closeDropdown();\n toggleReaction(message, emoji.key, isReacted);\n }}\n >\n <ImageRenderer\n url={emoji.url}\n width=\"28px\"\n height=\"28px\"\n defaultComponent={\n <Icon width=\"28px\" height=\"28px\" type={IconTypes.EMOJI_FAILED} />\n }\n />\n </ReactionButton>\n );\n })\n }\n </EmojiListItems>\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 <Label\n className=\"sendbird-message-status__text\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n );\n }\n default: return null;\n }\n };\n\n const icon = {\n PENDING: (\n <Loader className=\"sendbird-message-status__icon\" width=\"16px\" height=\"16px\">\n <Icon type={IconTypes.SPINNER} width=\"16px\" height=\"16px\" />\n </Loader>\n ),\n SENT: <Icon className=\"sendbird-message-status__icon\" width=\"16px\" height=\"16px\" type={IconTypes.SENT} fillColor={IconColors.SENT} />,\n DELIVERED: <Icon className=\"sendbird-message-status__icon\" width=\"16px\" height=\"16px\" type={IconTypes.DELIVERED} fillColor={IconColors.SENT} />,\n READ: <Icon className=\"sendbird-message-status__icon\" width=\"16px\" height=\"16px\" type={IconTypes.READ} fillColor={IconColors.READ} />,\n FAILED: <Icon className=\"sendbird-message-status__icon\" width=\"16px\" height=\"16px\" type={IconTypes.ERROR} />,\n };\n\n return (\n <div className={[...injectingClassName, 'sendbird-message-status'].join(' ')}>\n {icon[status]}\n <br />\n {label(status)}\n </div>\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 <div\n ref={ref}\n tabIndex={0}\n role=\"button\"\n className={injectingClassName.join(' ')}\n onClick={onClick}\n onKeyDown={onClick}\n >\n <div className=\"sendbird-reaction-badge__inner\">\n <div className=\"sendbird-reaction-badge__inner__icon\">\n {children}\n </div>\n <Label className={children && count ? 'sendbird-reaction-badge__inner__count' : ''} type={LabelTypography.CAPTION_3} color={LabelColors.ONBACKGROUND_1}>\n {count}\n </Label>\n </div>\n </div>\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 <div className={injectingClassName.join(' ')}>\n <Label\n className={`${CLASS_NAME}__text`}\n >\n {children}\n </Label>\n </div>\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 <div\n className={injectingClassName.join(' ')}\n onMouseOver={() => { setShowHoverTooltip(true); }}\n onFocus={() => { setShowHoverTooltip(true); }}\n onMouseOut={() => { setShowHoverTooltip(false); }}\n onBlur={() => { setShowHoverTooltip(false); }}\n >\n <div\n className={`${CLASS_NAME}__children`}\n ref={childrenRef}\n >\n {children}\n </div>\n {\n showHoverTooltip && (\n <div\n className={`${CLASS_NAME}__hover-tooltip`}\n style={{\n bottom: `calc(100% + ${SPACE_FROM_TRIGGER}px)`,\n }}\n >\n <div\n className={`${CLASS_NAME}__hover-tooltip__inner`}\n >\n <div\n className={`${CLASS_NAME}__hover-tooltip__inner__tooltip-container`}\n style={{\n left: childrenRef.current && `calc(${childrenRef.current.offsetWidth / 2}px - 50%)`,\n }}\n >\n {hoverTooltip}\n </div>\n </div>\n </div>\n )\n }\n </div>\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 <div className={injectingClassName.join(' ')}>\n <div className=\"sendbird-emoji-reactions--inner\">\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 <TooltipWrapper\n className=\"sendbird-emoji-reactions__emoji-reaction\"\n key={reaction.key}\n hoverTooltip={\n userIds.length > 0 && (\n <Tooltip>\n <>\n {\n `${(\n nicknames.join(', ')\n )}${(\n reactedByMe\n ? stringSetForMe\n : ''\n )}`\n }\n </>\n </Tooltip>\n )\n }\n >\n <ReactionBadge\n count={reactedUserCount}\n selected={reactedByMe}\n onClick={() => toggleReaction(message, reaction.key, reactedByMe)}\n >\n <ImageRenderer\n circle\n url={emojiUrl}\n width={imageWidth}\n height={imageHeight}\n defaultComponent={(\n <Icon\n width={imageWidth}\n height={imageHeight}\n type={IconTypes.EMOJI_FAILED}\n />\n )}\n />\n </ReactionBadge>\n </TooltipWrapper>\n );\n })\n )\n }\n {\n (messageReactions.length < emojiAllMap.size)\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <ReactionBadge\n isAdd\n onClick={toggleDropdown}\n className=\"sendbird-emoji-reactions__emoji-reaction-add\"\n ref={emojiReactionAddRef}\n >\n <Icon\n width={imageWidth}\n height={imageHeight}\n fillColor={IconColors.ON_BACKGROUND_3}\n type={IconTypes.EMOJI_REACTIONS_ADD}\n />\n </ReactionBadge>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n message={message}\n parentRef={emojiReactionAddRef}\n parentContainRef={emojiReactionAddRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 4 }}\n />\n )}\n />\n )\n }\n </div>\n </div>\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 : <br />));\n if (updatedAt > 0) {\n matchedMessage.push(\n <Label\n key={uuidv4()}\n className={className}\n type={WORD_TYPOGRAPHY}\n color={EDITED_COLOR}\n >\n {` ${stringSet.MESSAGE_EDITED} `}\n </Label>,\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 <div className={[...injectingClassName, 'sendbird-message'].join(' ')}>\n {\n isByMe\n ? (\n <OutgoingUserMessage\n userId={userId}\n message={message}\n resendMessage={resendMessage}\n disabled={disabled}\n showEdit={showEdit}\n showRemove={showRemove}\n status={status}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedMessageText={memoizedMessageText}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n : (\n <IncomingUserMessage\n userId={userId}\n message={message}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedMessageText={memoizedMessageText}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n }\n </div>\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 <div\n className=\"sendbird-user-message--outgoing\"\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className=\"sendbird-user-message--inner\">\n <div\n className=\"sendbird-user-message__left-padding\"\n >\n <div className=\"sendbird-user-message__more\" ref={parentContainRef}>\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n ref={parentRefMenus}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={parentRefMenus}\n // for catching location(x, y) of MenuItems\n parentContainRef={parentContainRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n openLeft\n >\n {\n isMessageSent && (\n <MenuItem\n className=\"sendbird-user-message--copy\"\n onClick={() => { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n </MenuItem>\n )\n }\n {\n isMessageSent && (\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n </MenuItem>\n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n <MenuItem\n onClick={() => {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n </MenuItem>\n )\n }\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n </MenuItem>\n </MenuItems>\n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__add-reaction\"\n ref={parentRefReactions}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_REACTIONS_ADD}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n message={message}\n parentRef={parentRefReactions}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n </div>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <div className=\"sendbird-user-message__status\">\n <MessageStatus\n message={message}\n status={status}\n // onDelete={() => { showRemove(true); }}\n // onResend={() => resendMessage(message)}\n // duplicated and should replace to more\n />\n </div>\n )\n }\n </div>\n <div className=\"sendbird-user-message__text-balloon\">\n <div className=\"sendbird-user-message__text-balloon__inner\">\n <div className=\"sendbird-user-message__text-balloon__inner__text-place\">\n <Label\n className=\"sendbird-user-message__text-balloon__inner__text-place__text\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n <MemoizedMessageText />\n </Label>\n </div>\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n <EmojiReactions\n className=\"sendbird-user-message__text-balloon__inner__emoji-reactions\"\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n </div>\n </div>\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 <div\n ref={messageRef}\n className=\"sendbird-user-message--incoming\"\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n {\n // showProfile && (<UserProfile user={message.sender} />)\n }\n <div className=\"sendbird-user-message--inner\">\n <div className=\"sendbird-user-message--body\">\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n ref={avatarRef}\n onClick={() => {\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 <MenuItems\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n {\n !chainTop && (\n <Label\n className=\"sendbird-user-message__sender-name\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getSenderName(message)}\n </Label>\n )\n }\n <div className=\"sendbird-user-message__text-balloon\">\n <div className=\"sendbird-user-message__text-balloon__inner\">\n <div className=\"sendbird-user-message__text-balloon__inner__text-place\">\n <Label\n className=\"sendbird-user-message__text-balloon__inner__text-place__text\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n <MemoizedMessageText />\n </Label>\n </div>\n {\n showEmojiReactions && (\n <EmojiReactions\n className=\"sendbird-user-message__text-balloon__inner__emoji-reactions\"\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n </div>\n <div className=\"sendbird-user-message__right-padding\">\n <div className=\"sendbird-user-message__more\" ref={parentContainRef}>\n {\n showReactionAddButton\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRefReactions}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_REACTIONS_ADD}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n parentRef={parentRefReactions}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n message={message}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRefMenus}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={parentRefMenus}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n >\n <MenuItem\n className=\"sendbird-user-message--copy\"\n onClick={() => { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n </MenuItem>\n </MenuItems>\n )}\n />\n </div>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <Label\n className=\"sendbird-user-message__sent-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n )\n }\n </div>\n </div>\n </div>\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 <div className={[...injectingClassName, 'sendbird-admin-message'].join(' ')}>\n <Label className=\"sendbird-admin-message__text\" type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {message.message}\n </Label>\n </div>\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 <OutgoingThumbnailMessage\n userId={userId}\n status={status}\n message={message}\n onClick={onClick}\n disabled={disabled}\n chainTop={chainTop}\n showRemove={showRemove}\n membersMap={membersMap}\n chainBottom={chainBottom}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n : (\n <IncomingThumbnailMessage\n userId={userId}\n status={status}\n message={message}\n onClick={onClick}\n chainTop={chainTop}\n membersMap={membersMap}\n chainBottom={chainBottom}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\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 <div\n className={OUTGOING_THUMBNAIL_MESSAGE}\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}--inner`}>\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}__left-padding`}>\n <div\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-left-padding__more`}\n ref={parentContainRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={menuRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n color={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={menuRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n {\n (message && message.isResendable && message.isResendable()) && (\n <MenuItem\n onClick={() => {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n </MenuItem>\n )\n }\n <MenuItem onClick={() => {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n </MenuItem>\n </MenuItems>\n )}\n />\n {\n isMessageSent && showReactionAddButton\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={reactionAddRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_REACTIONS_ADD}\n color={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n message={message}\n parentRef={reactionAddRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n </div>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <MessageStatus\n message={message}\n status={status}\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-left-padding__status`}\n />\n )\n }\n </div>\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}__body`}>\n <div\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__wrap`}\n >\n <div\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__wrap--inner`}\n onClick={isMessageSent ? () => 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 <video\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__video`}\n >\n <source src={url || localUrl} type={type} />\n </video>\n <Icon\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__video-icon`}\n width=\"56px\"\n height=\"56px\"\n type={IconTypes.PLAY}\n />\n </>\n )\n }\n {\n isImage(type) && (\n <div\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__img`}\n style={{\n backgroundImage: `url(${url || localUrl})`,\n height: '280px',\n width: '404px',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n }}\n />\n )\n }\n {\n unSupported(type) && (\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__other`}>\n Unknown type\n </div>\n )\n }\n <div className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__wrap__overlay`} />\n </div>\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n <EmojiReactions\n className={`${OUTGOING_THUMBNAIL_MESSAGE}-body__wrap__emoji-reactions`}\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n </div>\n </div>\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 <div\n className={INCOMING_THUMBNAIL_MESSAGE}\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n {\n !chainTop && (\n <Label\n className={`${INCOMING_THUMBNAIL_MESSAGE}__sender-name`}\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getSenderName(message) || ''}\n </Label>\n )\n }\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}--inner`}>\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__body`}>\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}-body__wrap`}>\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n onClick={() => {\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 <MenuItems\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n <div\n className={`${INCOMING_THUMBNAIL_MESSAGE}-body__wrap--inner`}\n role=\"button\"\n tabIndex={0}\n onClick={isMessageSent ? () => onClick(true) : () => { }}\n onKeyDown={isMessageSent ? () => onClick(true) : () => { }}\n >\n {\n isVideo(type) && (\n <>\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n <video className={`${INCOMING_THUMBNAIL_MESSAGE}__video`}>\n <source src={url || localUrl} type={type} />\n </video>\n <Icon\n className={`${INCOMING_THUMBNAIL_MESSAGE}__video-icon`}\n width=\"56px\"\n height=\"56px\"\n type={IconTypes.PLAY}\n />\n </>\n )\n }\n {\n isImage(type) && (\n <div\n className={`${INCOMING_THUMBNAIL_MESSAGE}__img`}\n style={{\n backgroundImage: `url(${url || localUrl})`,\n height: '280px',\n width: '404px',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n }}\n />\n )\n }\n {\n unSupported(type) && (\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__other`}>\n Unknown type\n </div>\n )\n }\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}-body__wrap-overlay`} />\n </div>\n {\n (useReaction && message.reactions && message.reactions.length > 0)\n && (\n <EmojiReactions\n className={`${INCOMING_THUMBNAIL_MESSAGE}__wrap__emoji-reactions`}\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n <div className={`${INCOMING_THUMBNAIL_MESSAGE}__right-padding`}>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <Label\n className={`${INCOMING_THUMBNAIL_MESSAGE}__sent-at`}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n )\n }\n <div\n className={`${INCOMING_THUMBNAIL_MESSAGE}__more`}\n ref={parentContainRef}\n >\n {\n showReactionAddButton && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={reactionAddRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_REACTIONS_ADD}\n color={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n message={message}\n parentRef={reactionAddRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n </div>\n </div>\n </div>\n </div>\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 <div\n className=\"sendbird-file-message__outgoing\"\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className=\"sendbird-file-message--inner\">\n <div className=\"sendbird-file-message__left-padding\">\n <div\n className=\"sendbird-file-message__more\"\n ref={parentContainRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={menuRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon width=\"24px\" height=\"24px\" type={IconTypes.MORE} />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={menuRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n openLeft\n >\n {\n (message && message.isResendable && message.isResendable()) && (\n <MenuItem\n onClick={() => {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n </MenuItem>\n )\n }\n <MenuItem onClick={() => {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n </MenuItem>\n </MenuItems>\n )}\n />\n {\n showReactionAddButton && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={reactionAddButtonRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_REACTIONS_ADD}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n message={message}\n parentRef={reactionAddButtonRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n </div>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <div className=\"sendbird-file-message__status\">\n <MessageStatus\n message={message}\n status={status}\n />\n </div>\n )\n }\n </div>\n <div className=\"sendbird-file-message__tooltip\">\n <div className=\"sendbird-file-message__tooltip__inner\">\n {\n checkFileType(url)\n ? (\n <Icon\n className=\"sendbird-file-message__tooltip__icon\"\n width=\"28px\"\n height=\"28px\"\n type={checkFileType(url)}\n />\n )\n : null\n }\n <TextButton\n className=\"sendbird-file-message__tooltip__text\"\n onClick={openFileUrl}\n >\n <Label\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n </Label>\n </TextButton>\n </div>\n {\n showEmojiReactions && (\n <EmojiReactions\n className=\"sendbird-file-message__tooltip__emoji-reactions\"\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n </div>\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 <div\n className=\"sendbird-file-message__incoming\"\n ref={messageRef}\n style={{\n paddingTop: chainTop ? GROUPAING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPAING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className=\"sendbird-file-message--inner\">\n <div className=\"sendbird-file-message__body\">\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n ref={avatarRef}\n onClick={() => {\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 <MenuItems\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n {\n !chainTop && (\n <Label\n className=\"sendbird-file-message__sender-name\"\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getSenderName(message)}\n </Label>\n )\n }\n <div className=\"sendbird-file-message__tooltip\">\n <div className=\"sendbird-file-message__tooltip__inner\">\n {\n checkFileType(message.url)\n ? (\n <Icon\n className=\"sendbird-file-message__tooltip__icon\"\n width=\"28px\"\n height=\"28px\"\n type={checkFileType(message.url)}\n />\n )\n : null\n }\n <TextButton\n className=\"sendbird-file-message__tooltip__text\"\n onClick={openFileUrl}\n >\n <Label\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {truncate(message.url, MAX_TRUNCATE_LENGTH)}\n </Label>\n </TextButton>\n </div>\n {\n (useReaction && message.reactions && (message.reactions.length > 0)) && (\n <EmojiReactions\n className=\"sendbird-file-message__tooltip__emoji-reactions\"\n userId={userId}\n message={message}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\n </div>\n <div className=\"sendbird-file-message__right-padding\">\n <div\n className=\"sendbird-file-message__more\"\n ref={parentContainRef}\n >\n {\n showReactionAddButton && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={reactionAddButtonRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_REACTIONS_ADD}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n message={message}\n parentRef={reactionAddButtonRef}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n </div>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <Label\n className=\"sendbird-file-message__sent-at\"\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n )\n }\n </div>\n </div>\n </div>\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 <div className={`sendbird-file-message${isByMe ? '--outgoing' : '--incoming'}`}>\n {\n isByMe\n ? (\n <OutgoingFileMessage\n message={message}\n userId={userId}\n disabled={disabled}\n showRemove={showRemove}\n status={status}\n resendMessage={resendMessage}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n : (\n <IncomingFileMessage\n userId={userId}\n message={message}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n }\n </div>\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 <div\n className={[...injectingClassName, 'sendbird-separator'].join(' ')}\n >\n <div className={[`${changeColorToClassName(separatorColor)}--background-color`, 'sendbird-separator__left'].join(' ')} />\n <div className=\"sendbird-separator__text\">{children}</div>\n <div className={[`${changeColorToClassName(separatorColor)}--background-color`, 'sendbird-separator__right'].join(' ')} />\n </div>\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 <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n Date Separator\n </Label>\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 && 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 <form\n className={`\n ${isEdit ? 'sendbird-message-input__edit' : ''}\n ${disabled ? 'sendbird-message-input-form__disabled' : ''}\n `}\n >\n <div\n className={`\n sendbird-message-input\n ${disabled ? 'sendbird-message-input__disabled' : ''}\n `}\n >\n <textarea\n disabled={disabled}\n ref={ref}\n name={name}\n value={inputValue}\n className=\"sendbird-message-input--textarea\"\n maxLength={maxLength}\n onChange={(e) => {\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 <Label\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_3}\n className=\"sendbird-message-input--placeholder\"\n >\n {placeholder || stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* upload icon */}\n {\n (!isEdit && !inputValue) && (\n <IconButton\n className=\"sendbird-message-input--attach\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef.current.click();\n }}\n >\n <Icon type={IconTypes.ATTACH} width=\"20px\" height=\"20px\" />\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n className=\"sendbird-message-input--attach-input\"\n />\n </IconButton>\n )\n }\n {/* send icon */}\n {\n (!isEdit && inputValue) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={sendMessage}\n >\n <Icon type={IconTypes.SEND} fillColor={IconColors.PRIMARY} width=\"20px\" height=\"20px\" />\n </IconButton>\n )\n }\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={Type.SECONDARY}\n size={Size.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={Type.PRIMARY}\n size={Size.SMALL}\n onClick={() => {\n if (inputValue) {\n const trimmedInputValue = inputValue.trim();\n onSendMessage(name, trimmedInputValue, () => {\n onCancelEdit();\n });\n }\n }}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\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 <div className=\"sendbird-fileviewer\">\n <div className=\"sendbird-fileviewer__header\">\n <div className=\"sendbird-fileviewer__header-left\">\n <div className=\"sendbird-fileviewer__header-avatar\">\n <Avatar height=\"32px\" width=\"32px\" src={profileUrl} />\n </div>\n <Label\n className=\"sendbird-fileviewer__header-filename\"\n type={LabelTypography.H_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {name}\n </Label>\n <Label\n className=\"sendbird-fileviewer__header-sendername\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {nickname}\n </Label>\n </div>\n <div className=\"sendbird-fileviewer__header-right\">\n {\n !unSupported(type) && (\n <div className=\"sendbird-fileviewer__header-actions\">\n <a\n href={url}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n className=\"sendbird-fileviewer__header-download\"\n >\n <Icon\n type={IconTypes.DOWNLOAD}\n height=\"24px\"\n width=\"24px\"\n />\n </a>\n {\n onDelete && isByMe && (\n <div className=\"sendbird-fileviewer__header-delete\">\n <Icon\n type={IconTypes.DELETE}\n height=\"24px\"\n width=\"24px\"\n onClick={onDelete}\n />\n </div>\n )\n }\n </div>\n )\n }\n <div className=\"sendbird-fileviewer__header-close\">\n <Icon\n type={IconTypes.CLOSE}\n height=\"24px\"\n width=\"24px\"\n onClick={onClose}\n />\n </div>\n </div>\n </div>\n <div className=\"sendbird-fileviewer__content\">\n {isVideo(type) && (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n <video controls className=\"sendbird-fileviewer__video\">\n <source src={url} type={type} />\n </video>\n )}\n {\n isImage(type) && (\n <img\n src={url}\n alt={name}\n className=\"sendbird-fileviewer__img\"\n />\n )\n }\n {\n unSupported(type) && (\n <div className=\"sendbird-fileviewer__unsupported\">\n <Label type={LabelTypography.H_1} color={LabelColors.ONBACKGROUND_1}>\n Unsupoprted message\n </Label>\n </div>\n )\n }\n </div>\n </div>\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 <FileViewerComponent\n profileUrl={profileUrl}\n nickname={nickname}\n type={type}\n url={url}\n name={name}\n onClose={onClose}\n onDelete={onDelete}\n isByMe={isByMe}\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 <Modal\n onCancel={onCloseModal}\n onSubmit={onDeleteMessage}\n submitText=\"Delete\"\n titleText={stringSet.MODAL__DELETE_MESSAGE__TITLE}\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 <div className={injectingClassName.join(' ')}>\n {\n isByMe\n ? (\n <OutgoingUnknownMessage\n status={status}\n message={message}\n chainTop={chainTop}\n showRemove={showRemove}\n chainBottom={chainBottom}\n />\n )\n : (\n <IncomingUnknownMessage\n message={message}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n }\n </div>\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 <div\n ref={messageRef}\n className={className}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className={`${className}--inner`}>\n <div className={`${className}--left-padding`}>\n <div\n className={`${className}__more`}\n ref={parentContainRef}\n >\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className={`${className}__more__menu`}\n ref={menuRef}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={menuRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={parentContainRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => { showRemove(true); closeDropdown(); }}\n >\n Delete\n </MenuItem>\n </MenuItems>\n )}\n />\n </div>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <div className={`${className}__message-status`}>\n <MessageStatus\n message={message}\n status={status}\n />\n </div>\n )\n }\n </div>\n <div className={`${className}__body`}>\n <div className={`${className}__body__text-balloon`}>\n <Label\n className={`${className}__body__text-balloon__header`}\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n </Label>\n <Label\n className={`${className}__body__text-balloon__description`}\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n </Label>\n </div>\n </div>\n </div>\n </div>\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 <div\n className={className}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORMAL_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORMAL_PADDING,\n }}\n >\n <div className={`${className}--inner`}>\n <div className={`${className}__left`}>\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n ref={avatarRef}\n onClick={() => {\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 <MenuItems\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n </div>\n <div className={`${className}__body`}>\n {\n !chainTop && (\n <Label\n className={`${className}__body__sender-name`}\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {sender.nickname || stringSet.NO_NAME}\n </Label>\n )\n }\n <div className={`${className}__body__text-balloon`}>\n <Label\n className={`${className}__body__text-balloon__header`}\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.UNKNOWN__UNKNOWN_MESSAGE_TYPE}\n </Label>\n <Label\n className={`${className}__body__text-balloon__description`}\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {stringSet.UNKNOWN__CANNOT_READ_MESSAGE}\n </Label>\n </div>\n </div>\n <div className={`${className}--right-padding`}>\n {\n !chainBottom && (\n <Label\n className={`${className}__sent-at`}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {utils.getMessageCreatedAt(message)}\n </Label>\n )\n }\n </div>\n </div>\n </div>\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 <a\n className={`${LINK_LABEL} ${injecingClassName.join(' ')}`}\n href={url}\n >\n <Label type={type} color={color} className={`${LINK_LABEL}__label`}>\n {children}\n </Label>\n </a>\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 <LinkLabel\n key={uuidv4()}\n className={className}\n src={word}\n type={WORD_TYPOGRAPHY}\n color={WORD_COLOR}\n >\n {word}\n </LinkLabel>\n )\n : (\n <Label\n key={uuidv4()}\n className={className}\n type={WORD_TYPOGRAPHY}\n color={WORD_COLOR}\n >\n {word}\n </Label>\n )\n ));\n if (updatedAt > 0) {\n matchedMessage.push(\n <Label\n key={uuidv4()}\n className={className}\n type={WORD_TYPOGRAPHY}\n color={EDITED_COLOR}\n >\n {stringSet.MESSAGE_EDITED}\n </Label>,\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 <div className={`${OG_MESSAGE} ${OG_MESSAGE}${isByMe ? '--outgoing' : '--incoming'} ${injectingClassName.join(' ')}`}>\n {\n isByMe\n ? (\n <OutgoingOGMessage\n status={status}\n userId={userId}\n message={message}\n disabled={disabled}\n openLink={openLink}\n showEdit={showEdit}\n chainTop={chainTop}\n showRemove={showRemove}\n membersMap={membersMap}\n chainBottom={chainBottom}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n memoizedMessageText={memoizedMessageText}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n : (\n <IncomingOGMessage\n userId={userId}\n message={message}\n openLink={openLink}\n chainTop={chainTop}\n membersMap={membersMap}\n chainBottom={chainBottom}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n toggleReaction={toggleReaction}\n memoizedMessageText={memoizedMessageText}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n )\n }\n </div>\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 <div\n ref={messageRef}\n className={OUTGOING_OG_MESSAGE}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORAML_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORAML_PADDING,\n }}\n >\n <div className={`${OUTGOING_OG_MESSAGE}--inner`}>\n <div className={`${OUTGOING_OG_MESSAGE}--left-padding`}>\n <div className={`${OUTGOING_OG_MESSAGE}__more`} ref={parentContainRef}>\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className={`${OUTGOING_OG_MESSAGE}__more__menu`}\n ref={parentRefMenus}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={parentRefMenus}\n // for catching location(x, y) of MenuItems\n parentContainRef={parentContainRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n openLeft\n >\n {\n isMessageSent && (\n <MenuItem\n className={`${OUTGOING_OG_MESSAGE}__more__menu__copy`}\n onClick={() => { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n </MenuItem>\n )\n }\n {\n isMessageSent && (\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n showEdit(true);\n closeDropdown();\n }}\n >\n Edit\n </MenuItem>\n )\n }\n {\n (message && message.isResendable && message.isResendable()) && (\n <MenuItem\n onClick={() => {\n resendMessage(message);\n closeDropdown();\n }}\n >\n Resend\n </MenuItem>\n )\n }\n <MenuItem\n onClick={() => {\n if (disabled) { return; }\n showRemove(true);\n closeDropdown();\n }}\n >\n Delete\n </MenuItem>\n </MenuItems>\n )}\n />\n {\n (isMessageSent && useReaction && (emojiAllMap.size > 0))\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className={`${OUTGOING_OG_MESSAGE}__more__add-reaction`}\n ref={parentRefReactions}\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_REACTIONS_ADD}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n message={message}\n parentRef={parentRefReactions}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n </div>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <div className={`${OUTGOING_OG_MESSAGE}__message-status`}>\n <MessageStatus\n message={message}\n status={status}\n />\n </div>\n )\n }\n </div>\n <div className={`${OUTGOING_OG_MESSAGE}--body`}>\n <div className={`${OUTGOING_OG_MESSAGE}__text-balloon`}>\n <MemoizedMessageText />\n </div>\n <div\n className={`${OUTGOING_OG_MESSAGE}__thumbnail ${checkOGIsEnalbed(message) ? '' : `${OUTGOING_OG_MESSAGE}__thumbnail--disabled`}`}\n onClick={openLink}\n onKeyDown={openLink}\n role=\"button\"\n tabIndex={0}\n >\n {\n defaultImage && (\n <ImageRenderer\n url={defaultImage.url || ''}\n alt={defaultImage.alt}\n className={`${OUTGOING_OG_MESSAGE}__thumbnail__image`}\n width=\"320px\"\n height=\"180px\"\n defaultComponent={(\n <div className={`${OUTGOING_OG_MESSAGE}__thumbnail__image__placeholder`}>\n <Icon\n width=\"56px\"\n height=\"56px\"\n type={IconTypes.NO_THUMBNAIL}\n />\n </div>\n )}\n />\n )\n }\n </div>\n <div\n className={`${OUTGOING_OG_MESSAGE}__og-tag ${checkOGIsEnalbed(message) ? '' : `${OUTGOING_OG_MESSAGE}__og-tag--disabled`}`}\n onClick={openLink}\n onKeyDown={openLink}\n role=\"button\"\n tabIndex={0}\n >\n {\n ogMetaData.title && (\n <div className={`${OUTGOING_OG_MESSAGE}__og-tag__title`}>\n <Label type={LabelTypography.SUBTITLE_2} color={LabelColors.ONBACKGROUND_1}>\n {ogMetaData.title}\n </Label>\n </div>\n )\n }\n {\n ogMetaData.description && (\n <div className={`${OUTGOING_OG_MESSAGE}__og-tag__description`}>\n <Label\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n className={`${OUTGOING_OG_MESSAGE}__og-tag__description__label`}\n >\n {ogMetaData.description}\n </Label>\n </div>\n )\n }\n {\n ogMetaData.url && (\n <div className={`${OUTGOING_OG_MESSAGE}__og-tag__url`}>\n <Label\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n className={`${OUTGOING_OG_MESSAGE}__og-tag__url__label`}\n >\n {ogMetaData.url}\n </Label>\n </div>\n )\n }\n {\n showEmojiReactions\n && (\n <div\n className={`${OUTGOING_OG_MESSAGE}__og-tag__emoji-reactions--wrapper`}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n <EmojiReactions\n className={`${OUTGOING_OG_MESSAGE}__og-tag__emoji-reactions`}\n userId={userId}\n message={message}\n membersMap={membersMap}\n emojiAllMap={emojiAllMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n </div>\n )\n }\n </div>\n </div>\n </div>\n </div>\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 <div\n ref={messageRef}\n className={INCOMING_OG_MESSAGE}\n style={{\n paddingTop: chainTop ? GROUPING_PADDING : NORAML_PADDING,\n paddingBottom: chainBottom ? GROUPING_PADDING : NORAML_PADDING,\n }}\n >\n <div className={`${INCOMING_OG_MESSAGE}--inner`}>\n <div className={`${INCOMING_OG_MESSAGE}--body`}>\n {\n !chainBottom && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n ref={avatarRef}\n onClick={() => {\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 <MenuItems\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: message.sender,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={message.sender}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n )\n }\n {\n !chainTop && (\n <Label\n className={`${INCOMING_OG_MESSAGE}__sender-name`}\n type={LabelTypography.CAPTION_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getSenderName(message)}\n </Label>\n )\n }\n <div className={`${INCOMING_OG_MESSAGE}__text-balloon`}>\n <MemoizedMessageText />\n </div>\n <div\n className={`${INCOMING_OG_MESSAGE}__thumbnail ${checkOGIsEnalbed(message) ? '' : `${INCOMING_OG_MESSAGE}__thumbnail--disabled`}`}\n onClick={openLink}\n onKeyDown={openLink}\n role=\"button\"\n tabIndex={0}\n >\n {\n defaultImage && (\n <ImageRenderer\n url={defaultImage.url || ''}\n alt={defaultImage.alt || ''}\n className={`${INCOMING_OG_MESSAGE}__thumbnail__image`}\n width=\"320px\"\n height=\"180px\"\n defaultComponent={(\n <div className={`${INCOMING_OG_MESSAGE}__thumbnail__image__placeholder`}>\n <Icon\n width=\"56px\"\n height=\"56px\"\n type={IconTypes.NO_THUMBNAIL}\n />\n </div>\n )}\n />\n )\n }\n </div>\n <div\n className={`${INCOMING_OG_MESSAGE}__og-tag ${checkOGIsEnalbed(message) ? '' : `${INCOMING_OG_MESSAGE}__og-tag--disabled`}`}\n onClick={openLink}\n onKeyDown={openLink}\n role=\"button\"\n tabIndex={0}\n >\n {\n ogMetaData.title && (\n <div className={`${INCOMING_OG_MESSAGE}__og-tag__title`}>\n\n <Label type={LabelTypography.SUBTITLE_2} color={LabelColors.ONBACKGROUND_1}>\n {ogMetaData.title}\n </Label>\n </div>\n )\n }\n {\n ogMetaData.description && (\n <div className={`${INCOMING_OG_MESSAGE}__og-tag__description`}>\n <Label\n type={LabelTypography.BODY_2}\n color={LabelColors.ONBACKGROUND_1}\n className={`${INCOMING_OG_MESSAGE}__og-tag__description__label`}\n >\n {ogMetaData.description}\n </Label>\n </div>\n )\n }\n {\n ogMetaData.url && (\n <div className={`${INCOMING_OG_MESSAGE}__og-tag__url`}>\n <Label\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n className={`${INCOMING_OG_MESSAGE}__og-tag__url__label`}\n >\n {ogMetaData.url}\n </Label>\n </div>\n )\n }\n {\n showEmojiReactions\n && (\n <div\n className={`${INCOMING_OG_MESSAGE}__og-tag__emoji-reactions--wrapper`}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n role=\"button\"\n tabIndex={0}\n >\n <EmojiReactions\n className={`${INCOMING_OG_MESSAGE}__og-tag__emoji-reactions`}\n userId={userId}\n message={message}\n membersMap={membersMap}\n emojiAllMap={emojiAllMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n </div>\n )\n }\n </div>\n </div>\n <div className={`${INCOMING_OG_MESSAGE}--right-padding`}>\n {\n !chainBottom && !(mousehover || moreActive) && (\n <Label\n className={`${INCOMING_OG_MESSAGE}__sent-at`}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {getMessageCreatedAt(message)}\n </Label>\n )\n }\n <div className={`${INCOMING_OG_MESSAGE}__more`} ref={parentContainRef}>\n {\n showReactionAddButton\n && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRefReactions}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.EMOJI_REACTIONS_ADD}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MemoizedEmojiListItems\n parentRef={parentRefReactions}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n message={message}\n spaceFromTrigger={{ y: 2 }}\n />\n )}\n />\n )\n }\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n ref={parentRefMenus}\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n toggleDropdown();\n handleMoreIconClick();\n }}\n onBlur={() => {\n handleMoreIconBlur();\n }}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentRef={parentRefMenus}\n parentContainRef={parentContainRef}\n closeDropdown={closeDropdown}\n >\n <MenuItem\n className={`${INCOMING_OG_MESSAGE}__more__menu__copy`}\n onClick={() => { copyToClipboard(message.message); closeDropdown(); }}\n >\n Copy\n </MenuItem>\n </MenuItems>\n )}\n />\n </div>\n </div>\n </div>\n </div>\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 renderCustomMessage,\n currentGroupChannel,\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 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 <div className=\"sendbird-msg-hoc sendbird-msg--scroll-ref\">\n {/* date-seperator */}\n {\n hasSeperator && (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy')}\n </Label>\n </DateSeparator>\n )\n }\n <RenderedMessage message={message} />\n </div>\n );\n }\n\n if (showEdit) {\n return (\n <MessageInput\n isEdit\n disabled={editDisabled}\n ref={editMessageInputRef}\n name={message.messageId}\n onSendMessage={updateMessage}\n onCancelEdit={() => { setShowEdit(false); }}\n value={message.message}\n />\n );\n }\n\n return (\n <div className=\"sendbird-msg-hoc sendbird-msg--scroll-ref\">\n {/* date-seperator */}\n {\n hasSeperator && (\n <DateSeparator>\n <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n {format(message.createdAt, 'MMMM dd, yyyy')}\n </Label>\n </DateSeparator>\n )\n }\n {/* Message */}\n {\n {\n [MessageTypes.ADMIN]: <AdminMessage message={message} />,\n [MessageTypes.FILE]: (\n <FileMessage\n message={message}\n userId={userId}\n disabled={disabled}\n isByMe={isByMe}\n showRemove={setShowRemove}\n resendMessage={resendMessage}\n status={status}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n ),\n [MessageTypes.OG]: (\n <OGMessage\n message={message}\n status={status}\n isByMe={isByMe}\n userId={userId}\n showEdit={setShowEdit}\n disabled={disabled}\n showRemove={setShowRemove}\n resendMessage={resendMessage}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n ),\n [MessageTypes.THUMBNAIL]: (\n <ThumbnailMessage\n disabled={disabled}\n message={message}\n userId={userId}\n isByMe={isByMe}\n showRemove={setShowRemove}\n resendMessage={resendMessage}\n onClick={setShowFileViewer}\n status={status}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n ),\n [MessageTypes.USER]: (\n <Message\n message={message}\n disabled={disabled}\n isByMe={isByMe}\n userId={userId}\n showEdit={setShowEdit}\n showRemove={setShowRemove}\n resendMessage={resendMessage}\n status={status}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n membersMap={membersMap}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n ),\n }[getMessageType(message)]\n }\n {/* Modal */}\n {\n showRemove && (\n <RemoveMessageModal\n onCloseModal={() => setShowRemove(false)}\n onDeleteMessage={() => {\n deleteMessage(message);\n }}\n />\n )\n }\n {\n showFileViewer && (\n <FileViewer\n onClose={() => 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 <UnknownMessage\n message={message}\n status={status}\n isByMe={isByMe}\n showRemove={setShowRemove}\n chainTop={chainTop}\n chainBottom={chainBottom}\n />\n )\n }\n </div>\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 renderCustomMessage: PropTypes.func,\n currentGroupChannel: PropTypes.shape,\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 renderCustomMessage: null,\n currentGroupChannel: {},\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 onScroll(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n try {\n const first = nodes[0];\n first.scrollIntoView();\n } catch (error) {\n //\n }\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 renderCustomMessage,\n emojiContainer,\n toggleReaction,\n useMessageGrouping,\n currentGroupChannel,\n memoizedEmojiListItems,\n } = this.props;\n return (\n <div className=\"sendbird-conversation__messages\">\n <div\n ref={scrollRef}\n className=\"sendbird-conversation__scroll-container\"\n onScroll={this.onScroll}\n >\n <div className=\"sendbird-conversation__padding\" />\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 <div className=\"sendbird-conversation__messages-padding\">\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 <div\n key={m.messageId || m.reqId}\n className=\"sendbird-msg--scroll-ref\"\n >\n {\n renderChatItem({\n message: m,\n channel: currentGroupChannel,\n onDeleteMessage: deleteMessage,\n onUpdateMessage: updateMessage,\n onResendMessage: resendMessage,\n emojiContainer,\n })\n }\n </div>\n );\n }\n\n return (\n <MessageHOC\n key={m.messageId || m.reqId}\n userId={userId}\n status={readStatus[m.messageId] || getParsedStatus(m, currentGroupChannel)}\n // show status for pending/failed messages\n message={m}\n disabled={disabled}\n membersMap={membersMap}\n chainTop={chainTop}\n useReaction={useReaction}\n emojiAllMap={emojiAllMap}\n editDisabled={editDisabled}\n hasSeperator={hasSeperator}\n renderCustomMessage={renderCustomMessage}\n currentGroupChannel={currentGroupChannel}\n chainBottom={chainBottom}\n updateMessage={updateMessage}\n deleteMessage={deleteMessage}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n );\n },\n )\n }\n </div>\n </div>\n </div>\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 renderCustomMessage: PropTypes.func,\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 renderCustomMessage: 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 <div className=\"sendbird-notification\" onClick={onClick}>\n <Label className=\"sendbird-notification__text\" color={LabelColors.ONCONTENT_1} type={LabelTypography.CAPTION_2}>\n {`${count} `}\n {stringSet.CHANNEL__MESSAGE_LIST__NOTIFICATION__NEW_MESSAGE}\n {` ${timeArray.join(' ')}`}\n </Label>\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.SHEVRON_DOWN}\n fillColor={IconColors.CONTENT}\n />\n </div>\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 <div className=\"sendbird-notification sendbird-notification--frozen\">\n <Label\n className=\"sendbird-notification__text\"\n type={LabelTypography.CAPTION_2}\n >\n {stringSet.CHANNEL_FROZEN}\n </Label>\n </div>\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 <Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>\n <TypingIndicatorText members={typingMembers} />\n </Label>\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<HTMLInputElement>): 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 <MessageInput\n placeholder={(utils.isDisabledBecauseFrozen(channel)\n && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__DISABLED)\n || (utils.isDisabledBecauseMuted(channel)\n && stringSet.CHANNEL__MESSAGE_INPUT__PLACE_HOLDER__MUTED\n )\n }\n ref={ref}\n disabled={disabled}\n onStartTyping={() => {\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 <div\n className=\"sendbird-conversation__connection-status\"\n >\n <Label type={LabelTypography.BODY_2} color={LabelColors.ONBACKGROUND_2}>\n { stringSet.TRYING_TO_CONNECT }\n </Label>\n <Icon\n type={IconTypes.DISCONNECTED}\n fillColor={IconColors.SENT}\n height=\"14px\"\n width=\"14px\"\n />\n </div>\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 (<div className=\"sendbird-repeat-text\">{label}</div>);\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 <div className=\"sendbird-chat-header\">\n <div className=\"sendbird-chat-header__left\">\n <ChannelAvatar\n theme={theme}\n channel={currentGroupChannel}\n userId={userId}\n height={32}\n width={32}\n />\n <Label\n className=\"sendbird-chat-header__title\"\n type={LabelTypography.H_2}\n color={LabelColors.ONBACKGROUND_1}\n >\n {title || utils.getChannelTitle(currentGroupChannel, userId, stringSet)}\n </Label>\n {\n (typeof isActive === 'string' && isActive === 'true') || (typeof isActive === 'boolean' && isActive)\n ? <div className=\"sendbird-chat-header__active\" />\n : null\n }\n <Label\n className=\"sendbird-chat-header__subtitle\"\n type={LabelTypography.BODY_1}\n color={LabelColors.ONBACKGROUND_2}\n >\n {\n subTitle\n || <AutoRefresh repeatFunc={() => utils.getOthersLastSeenAt(currentGroupChannel)} />\n }\n </Label>\n </div>\n <div className=\"sendbird-chat-header__right\">\n {\n (typeof isMuted === 'string' && isMuted === 'true') || (typeof isMuted === 'boolean' && isMuted)\n ? <Icon className=\"sendbird-chat-header__mute\" type={IconTypes.MUTE} width=\"24px\" height=\"24px\" />\n : null\n }\n <IconButton\n className=\"sendbird-chat-header__info\"\n width=\"32px\"\n height=\"32px\"\n onClick={onActionClick}\n >\n <Icon type={IconTypes.INFO} fillColor={IconColors.PRIMARY} width=\"24px\" height=\"24px\" />\n </IconButton>\n </div>\n </div>\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 renderCustomMessage,\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 <div className=\"sendbird-conversation\">\n <PlaceHolder\n type={PlaceHolderTypes.WRONG}\n retryToConnect={() => {\n logger.info('Channel: reconnecting');\n reconnect();\n }}\n />\n </div>\n );\n }\n if (!channelUrl) {\n return (<div className=\"sendbird-conversation\"><PlaceHolder type={PlaceHolderTypes.NO_CHANNELS} /></div>);\n }\n if (loading) {\n return (<div className=\"sendbird-conversation\"><PlaceHolder type={PlaceHolderTypes.LOADING} /></div>);\n }\n if (invalidChannel) {\n return (<div className=\"sendbird-conversation\"><PlaceHolder type={PlaceHolderTypes.WRONG} /></div>);\n }\n return (\n <UserProfileProvider\n className=\"sendbird-conversation\"\n disableUserProfile={userDefinedDisableUserProfile}\n renderUserProfile={userDefinedRenderProfile}\n >\n {\n renderChatHeader\n ? renderChatHeader({ channel: currentGroupChannel, user })\n : (\n <ChatHeader\n theme={theme}\n currentGroupChannel={currentGroupChannel}\n currentUser={user}\n onActionClick={onChatHeaderActionClick}\n subTitle={currentGroupChannel.members && currentGroupChannel.members.length !== 2}\n isActive={false}\n isMuted={false}\n />\n )\n }\n {\n isFrozen && (\n <FrozenNotification />\n )\n }\n {\n unreadCount > 0 && (\n <Notification\n count={unreadCount}\n onClick={() => {\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 <ConversationScroll\n swapParams={\n sdk && sdk.getErrorFirstCallback && sdk.getErrorFirstCallback()\n }\n userId={userId}\n hasMore={hasMore}\n disabled={!isOnline}\n onScroll={onScrollCallback}\n scrollRef={scrollRef}\n readStatus={readStatus}\n initialized={initialized}\n useReaction={usingReaction}\n allMessages={allMessages}\n emojiAllMap={emojiAllMap}\n membersMap={nicknamesMap}\n renderCustomMessage={renderCustomMessage}\n editDisabled={utils.isDisabledBecauseFrozen(currentGroupChannel)}\n deleteMessage={deleteMessage}\n updateMessage={updateMessage}\n resendMessage={resendMessage}\n toggleReaction={toggleReaction}\n emojiContainer={emojiContainer}\n renderChatItem={renderChatItem}\n useMessageGrouping={useMessageGrouping}\n messagesDispatcher={messagesDispatcher}\n currentGroupChannel={currentGroupChannel}\n memoizedEmojiListItems={memoizedEmojiListItems}\n />\n <div className=\"sendbird-conversation__footer\">\n <MessageInputWrapper\n channel={currentGroupChannel}\n user={user}\n ref={messageInputRef}\n onSendMessage={onSendMessage}\n onFileUpload={onSendFileMessage}\n renderMessageInput={renderMessageInput}\n isOnline={isOnline}\n initialized={initialized}\n />\n <div className=\"sendbird-conversation__typing-indicator\">\n <TypingIndicator channelUrl={channelUrl} sb={sdk} logger={logger} />\n </div>\n {\n !isOnline && (\n <ConnectionStatus sdkInit={sdkInit} sb={sdk} logger={logger} />\n )\n }\n </div>\n </UserProfileProvider>\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 renderCustomMessage: PropTypes.func,\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 renderCustomMessage: 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 <Modal\n titleText={stringSet.MODAL__CHANNEL_INFORMATION__TITLE}\n submitText={stringSet.BUTTON__SAVE}\n onCancel={onCancel}\n onSubmit={() => {\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 <form\n className=\"channel-profile-form\"\n ref={formRef}\n onSubmit={(e) => { e.preventDefault(); }}\n >\n <div className=\"channel-profile-form__img-section\">\n <InputLabel>\n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_IMAGE}\n </InputLabel>\n <div className=\"channel-profile-form__avatar\">\n {\n currentImg\n ? (\n <Avatar\n height=\"80px\"\n width=\"80px\"\n src={currentImg}\n />\n ) : (\n <ChannelAvatar\n height={80}\n width={80}\n channel={channel}\n userId={userId}\n theme={theme}\n />\n )\n }\n </div>\n <input\n ref={hiddenInputRef}\n type=\"file\"\n accept=\"image/gif, image/jpeg, image/png\"\n style={{ display: 'none' }}\n onChange={(e) => {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n <TextButton\n className=\"channel-profile-form__avatar-button\"\n onClick={() => hiddenInputRef.current.click()}\n notUnderline\n >\n <Label type={LabelTypography.BUTTON_1} color={LabelColors.PRIMARY}>\n {stringSet.MODAL__CHANNEL_INFORMATION__UPLOAD}\n </Label>\n </TextButton>\n </div>\n <div className=\"channel-profile-form__name-section\">\n <InputLabel>\n {stringSet.MODAL__CHANNEL_INFORMATION__CHANNEL_NAME}\n </InputLabel>\n <Input\n required={title !== ''}\n name=\"channel-profile-form__name\"\n ref={inputRef}\n value={title}\n placeHolder={stringSet.MODAL__CHANNEL_INFORMATION__INPUT__PLACE_HOLDER}\n />\n </div>\n </form>\n </Modal>\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 <div className=\"sendbird-channel-profile\">\n <div className=\"sendbird-channel-profile--inner\">\n <div className=\"sendbird-channel-profile__avatar\">\n <ChannelAvatar\n channel={channel}\n userId={userId}\n theme={theme}\n />\n </div>\n <Label\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_1}\n className=\"sendbird-channel-profile__title\"\n >\n {title}\n </Label>\n <TextButton\n disabled={disabled}\n className=\"sendbird-channel-profile__edit\"\n onClick={() => {\n if (disabled) { return; }\n setShowModal(true);\n }}\n notUnderline\n >\n <Label\n type={LabelTypography.BUTTON_1}\n color={disabled ? LabelColors.ONBACKGROUND_2 : LabelColors.PRIMARY}\n >\n {stringSet.CHANNEL_SETTING__PROFILE__EDIT}\n </Label>\n </TextButton>\n {\n showModal && (\n <EditDetailsModal\n onCancel={() => setShowModal(false)}\n onSubmit={onChannelInfoChange}\n channel={channel}\n userId={userId}\n theme={theme}\n />\n )\n }\n </div>\n </div>\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 <div>\n <Modal\n hideFooter\n onCancel={() => hideModal()}\n onSubmit={noop}\n titleText=\"All Members\"\n >\n <div\n className=\"sendbird-more-members__popup-scroll\"\n onScroll={(e) => {\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 <UserListItem\n user={member}\n key={member.userId}\n currentUser={currentUser}\n action={({ parentRef, actionRef }) => (\n <>\n {channel.myRole === 'operator' && (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentContainRef={parentRef}\n parentRef={actionRef} // for catching location(x, y) of MenuItems\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\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 </MenuItem>\n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n <MenuItem\n onClick={() => {\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 </MenuItem>\n )\n }\n <MenuItem\n onClick={() => {\n channel.banUser(member, -1, '', () => {\n setMembers(members.filter(({ userId }) => {\n return userId !== member.userId;\n }));\n });\n }}\n >\n Ban\n </MenuItem>\n </MenuItems>\n )}\n />\n )}\n </>\n )}\n />\n ))}\n </div>\n </Modal>\n </div>\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 <div className=\"sendbird-members-accordion__member\">\n <div className=\"sendbird-members-accordion__member-avatar\">\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n onClick={() => {\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 <MenuItems\n openLeft\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user: member,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={member}\n currentUserId={currentUser}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n </div>\n <Label type={LabelTypography.SUBTITLE_2} color={LabelColors.ONBACKGROUND_1}>\n {member.nickname || stringSet.NO_NAME}\n {\n (currentUser === member.userId) && (\n ' (You)'\n )\n }\n </Label>\n </div>\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 <div className=\"sendbird-members-accordion\">\n <div className=\"sendbird-members-accordion__list\">\n {\n members.slice(0, SHOWN_MEMBER_MAX).map((member) => (\n <UserListItem\n member={member}\n currentUser={currentUser}\n key={member.userId}\n />\n ))\n }\n </div>\n <div className=\"sendbird-members-accordion__footer\">\n {\n members.length >= SHOWN_MEMBER_MAX && (\n <Button\n className=\"sendbird-members-accordion__footer__all-members\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => setShowMoreModal(true)}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__SEE_ALL_MEMBERS}\n </Button>\n )\n }\n {\n members.length >= SHOWN_MEMBER_MAX && showMoreModal && (\n <MembersModal\n currentUser={currentUser}\n hideModal={() => {\n setShowMoreModal(false);\n }}\n channel={channel}\n />\n )\n }\n <Button\n className=\"sendbird-members-accordion__footer__invite-users\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n disabled={disabled}\n onClick={() => {\n if (disabled) { return; }\n setShowAddUserModal(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__INVITE_MEMBER}\n </Button>\n {\n showAddUserModal && (\n <InviteMembers\n swapParams={swapParams}\n titleText={stringSet.MODAL__INVITE_MEMBER__TITLE}\n submitText={stringSet.BUTTON__INVITE}\n closeModal={() => setShowAddUserModal(false)}\n idsToFilter={members.map((member) => (member.userId))}\n userQueryCreator={userQueryCreator}\n onSubmit={onInviteMemebers}\n />\n )\n }\n </div>\n </div>\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<ContextValue>({\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 <Provider value={{ opened, setOpened }}>\n <div className={className}>{ children }</div>\n </Provider>\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 <Consumer>\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 <div\n id={id}\n role=\"switch\"\n aria-checked={false}\n tabIndex={0}\n onKeyDown={handleClick}\n className={`sendbird-accordion__panel-heder ${className}`}\n onClick={handleClick}\n >\n { renderTitle() }\n <Icon\n type={IconTypes.SHEVRON}\n className={[\n 'sendbird-accordion__panel-icon-right',\n 'sendbird-accordion__panel-icon--chevron',\n (showAccordion ? 'sendbird-accordion__panel-icon--open' : ''),\n ].join(' ')}\n height=\"24px\"\n width=\"24px\"\n />\n </div>\n {\n showAccordion && (\n <div className=\"sendbird-accordion\">\n <div className=\"sendbird-accordion__list\">\n { renderContent() }\n </div>\n {\n renderFooter && (\n <div className=\"sendbird-accordion__footer\">\n { renderFooter() }\n </div>\n )\n }\n </div>\n )\n }\n </>);\n }\n }\n </Consumer>\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<HTMLInputElement>;\n parentRef: React.RefObject<HTMLInputElement>;\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 <div\n ref={parentRef}\n className={[\n COMPONENT_NAME, ...injectingClassNames,\n ].join(' ')}\n >\n {\n user.isMuted && (\n <MutedAvatarOverlay />\n )\n }\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <Avatar\n onClick={() => {\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 <MenuItems\n openLeft\n parentRef={avatarRef}\n // for catching location(x, y) of MenuItems\n parentContainRef={avatarRef}\n // for toggling more options(menus & reactions)\n closeDropdown={closeDropdown}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n >\n {\n renderUserProfile\n ? renderUserProfile({\n user,\n currentUserId: currentUser,\n close: closeDropdown,\n })\n : (\n <UserProfile\n user={user}\n currentUserId={currentUser}\n onSuccess={closeDropdown}\n />\n )\n }\n </MenuItems>\n )}\n />\n <Label\n className={`${COMPONENT_NAME}__title`}\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {user.nickname || stringSet.NO_NAME}\n {\n (currentUser === user.userId) && (\n \" (You)\"\n )\n }\n </Label>\n { // if there is now nickname, display userId\n !user.nickname && (\n <Label\n className={`${COMPONENT_NAME}__subtitle`}\n type={LabelTypography.CAPTION_3}\n color={LabelColors.ONBACKGROUND_2}\n >\n {user.userId}\n </Label>\n )\n }\n {\n user.role === 'operator' && (\n <Label\n className={`${COMPONENT_NAME}__operator`}\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n Operator\n </Label>\n )\n }\n {\n action && (\n <div ref={actionRef} className={`${COMPONENT_NAME}__action`}>\n { action({ actionRef, parentRef }) }\n </div>\n )\n }\n </div>\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 <div>\n <Modal\n hideFooter\n onCancel={() => hideModal()}\n onSubmit={noop}\n titleText=\"All operators\"\n >\n <div\n className=\"sendbird-more-members__popup-scroll\"\n onScroll={(e) => {\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 <UserListItem\n currentUser={currentUser}\n user={member}\n key={member.userId}\n action={({ parentRef, actionRef }) => (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentContainRef={parentRef}\n parentRef={actionRef} // for catching location(x, y) of MenuItems\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\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 </MenuItem>\n </MenuItems>\n )}\n />\n )}\n />\n ))}\n </div>\n </Modal>\n </div>\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 <div>\n <Modal\n type={ButtonType.PRIMARY}\n submitText=\"Add\"\n onCancel={() => hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n <Label\n color={(selectedCount > 0) ? LabelColors.PRIMARY : LabelColors.ONBACKGROUND_3}\n type={LabelTypography.CAPTION_1}\n >\n {`${selectedCount} ${stringSet.MODAL__INVITE_MEMBER__SELECTEC}`}\n </Label>\n <div\n className=\"sendbird-more-members__popup-scroll\"\n onScroll={(e) => {\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 <UserListItem\n checkBox\n checked={selectedMembers[member.userId]}\n onChange={\n (event) => {\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 </div>\n </Modal>\n </div>\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 <UserListItem\n key={operator.userId}\n user={operator}\n currentUser={sdk.currentUser.userId}\n action={({ actionRef, parentRef }) => {\n return (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentContainRef={parentRef}\n parentRef={actionRef} // for catching location(x, y) of MenuItems\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\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 </MenuItem>\n </MenuItems>\n )}\n />\n );\n }}\n />\n ))\n }\n {\n hasNext && (\n <div\n className=\"sendbird-channel-settings-accordion__footer\"\n >\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => {\n setShowMore(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ALL}\n </Button>\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => {\n setShowAdd(true);\n }}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE_ADD}\n </Button>\n </div>\n )\n }\n {\n showMore && (\n <OperatorsModal\n currentUser={sdk.currentUser.userId}\n hideModal={() => {\n setShowMore(false);\n refershList();\n }}\n channel={channel}\n />\n )\n }\n {\n showAdd && (\n <AddOperatorsModal\n hideModal={() => 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 <div>\n <Modal\n disabled={Object.keys(selectedMembers).length === 0}\n submitText=\"Invite\"\n type={ButtonType.PRIMARY}\n onCancel={() => hideModal()}\n onSubmit={() => {\n const members = Object.keys(selectedMembers).filter((m) => selectedMembers[m]);\n onSubmit(members);\n }}\n titleText=\"Select members\"\n >\n <div\n className=\"sendbird-more-members__popup-scroll\"\n onScroll={(e) => {\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 <UserListItem\n checkBox\n checked={selectedMembers[member.userId]}\n onChange={\n (event) => {\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 </div>\n </Modal>\n </div>\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 <UserListItem\n key={member.userId}\n user={member}\n currentUser={sdk.currentUser.userId}\n action={({ actionRef, parentRef }) => {\n return (<ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentContainRef={parentRef}\n parentRef={actionRef} // for catching location(x, y) of MenuItems\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\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 </MenuItem>\n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n <MenuItem\n onClick={() => {\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 </MenuItem>\n )\n }\n <MenuItem\n onClick={() => {\n channel.banUser(member, -1, '', () => {\n refershList();\n closeDropdown();\n });\n }}\n >\n Ban\n </MenuItem>\n </MenuItems>\n )}\n />)}\n }\n />\n ))\n }\n <div\n className=\"sendbird-channel-settings-accordion__footer\"\n >\n {\n hasNext && (\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => setShowAllMembers(true)}\n >\n All members\n </Button>\n )\n }\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => setShowInviteMembers(true)}\n >\n Invite members\n </Button>\n </div>\n {\n showAllMembers && (\n <MembersModal\n currentUser={sdk.currentUser.userId}\n channel={channel}\n hideModal={() => {\n setShowAllMembers(false);\n refershList();\n }}\n />\n )\n }\n {\n showInviteMembers && (\n <InviteMembers\n userQueryCreator={userQueryCreator}\n onSubmit={(selectedMemebers: string[]) => {\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 <div>\n <Modal\n hideFooter\n onCancel={() => hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n <div\n className=\"sendbird-more-members__popup-scroll\"\n onScroll={(e) => {\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 <UserListItem\n user={member}\n key={member.userId}\n action={({ parentRef, actionRef }) => (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentContainRef={parentRef}\n parentRef={actionRef} // for catching location(x, y) of MenuItems\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\n channel.unbanUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unban\n </MenuItem>\n </MenuItems>\n )}\n />\n )\n }\n />\n ))}\n </div>\n </Modal>\n </div>\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 <UserListItem\n key={member.userId}\n user={member}\n action={({ actionRef, parentRef }) => {\n return (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentContainRef={parentRef}\n parentRef={actionRef} // for catching location(x, y) of MenuItems\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\n channel.unbanUser(member, () => {\n closeDropdown();\n refreshList();\n })\n }}\n >\n Unban\n </MenuItem>\n </MenuItems>\n )}\n />\n )\n }}\n />\n ))\n }\n {\n members && members.length === 0 && (\n <Label\n className=\"sendbird-channel-settings__empty-list\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n No banned members yet\n </Label>\n )\n }\n {\n hasNext && (\n <div\n className=\"sendbird-channel-settings-accordion__footer\"\n >\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => {\n setShowModal(true);\n }}\n >\n All banned members\n </Button>\n </div>\n )\n }\n {\n showModal && (\n <BannedMembersModal\n channel={channel}\n hideModal={() => {\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 <div>\n <Modal\n hideFooter\n onCancel={() => hideModal()}\n onSubmit={noop}\n titleText=\"Muted members\"\n >\n <div\n className=\"sendbird-more-members__popup-scroll\"\n onScroll={(e) => {\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 <UserListItem\n currentUser={currentUser}\n user={member}\n key={member.userId}\n action={({ actionRef, parentRef }) => (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n parentContainRef={parentRef}\n parentRef={actionRef} // for catching location(x, y) of MenuItems\n closeDropdown={closeDropdown}\n openLeft\n >\n <MenuItem\n onClick={() => {\n channel.unmuteUser(member, () => {\n closeDropdown();\n setMembers(members.filter(m => {\n return (m.userId !== member.userId);\n }));\n })\n }}\n >\n Unmute\n </MenuItem>\n </MenuItems>\n )}\n />\n )}\n />\n ))}\n </div>\n </Modal>\n </div>\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 <UserListItem\n key={member.userId}\n user={member}\n currentUser={sdk.currentUser.userId}\n action={({ actionRef, parentRef }) => {\n return (\n <ContextMenu\n menuTrigger={(toggleDropdown) => (\n <IconButton\n className=\"sendbird-user-message__more__menu\"\n width=\"32px\"\n height=\"32px\"\n onClick={toggleDropdown}\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.MORE}\n fillColor={IconColors.CONTENT_INVERSE}\n />\n </IconButton>\n )}\n menuItems={(closeDropdown) => (\n <MenuItems\n closeDropdown={closeDropdown}\n openLeft\n parentContainRef={parentRef}\n parentRef={actionRef} // for catching location(x, y) of MenuItems\n >\n <MenuItem\n onClick={() => {\n channel.unmuteUser(member, () => {\n refreshList();\n closeDropdown();\n })\n }}\n >\n Unmute\n </MenuItem>\n </MenuItems>\n )}\n />\n );\n }\n }\n />\n ))\n }\n {\n members && members.length === 0 && (\n <Label\n className=\"sendbird-channel-settings__empty-list\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_3}\n >\n No muted members yet\n </Label>\n )\n }\n {\n hasNext && (\n <div\n className=\"sendbird-channel-settings-accordion__footer\"\n >\n <Button\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={() => {\n setShowModal(true);\n }}\n >\n All muted members\n </Button>\n </div>\n )\n }\n {\n showModal && (\n <MutedMembersModal\n currentUser={sdk.currentUser.userId}\n channel={channel}\n hideModal={() => {\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 <AccordionGroup className=\"sendbird-channel-settings__operator\">\n <Accordion\n className=\"sendbird-channel-settings__operators-list\"\n id=\"operators\"\n renderTitle={() => (\n <>\n <Icon\n type={IconTypes.ICON_OPERATOR}\n fillColor={IconColors.PRIMARY}\n width={24}\n height={24}\n className=\"sendbird-channel-settings__accordion-icon\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.CHANNEL_SETTING__OPERATORS__TITLE}\n </Label>\n </>\n )}\n renderContent={() => (\n <>\n <OperatorList channel={channel} />\n </>\n )}\n />\n <Accordion\n className=\"sendbird-channel-settings__members-list\"\n id=\"members\"\n renderTitle={() => (\n <>\n <Icon\n type={IconTypes.MEMBERS}\n fillColor={IconColors.PRIMARY}\n width={24}\n height={24}\n className=\"sendbird-channel-settings__accordion-icon\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.CHANNEL_SETTING__MEMBERS__TITLE}\n </Label>\n <Badge count={kFormatter(channel.memberCount)} />\n </>\n )}\n renderContent={() => (\n <>\n <MemberList userQueryCreator={userQueryCreator} channel={channel} />\n </>\n )}\n />\n {\n // No muted members in broadcast channel\n !channel.isBroadcast && (\n <Accordion\n id=\"mutedMembers\"\n className=\"sendbird-channel-settings__muted-members-list\"\n renderTitle={() => (\n <>\n <Icon\n type={IconTypes.ICON_MUTED}\n fillColor={IconColors.PRIMARY}\n width={24}\n height={24}\n className=\"sendbird-channel-settings__accordion-icon\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.CHANNEL_SETTING__MUTED_MEMBERS__TITLE}\n </Label>\n </>\n )}\n renderContent={() => (\n <>\n <MutedMemberList channel={channel} />\n </>\n )}\n />\n )\n }\n <Accordion\n className=\"sendbird-channel-settings__banned-members-list\"\n id=\"bannedMembers\"\n renderTitle={() => (\n <>\n <Icon\n type={IconTypes.ICON_BANNED}\n fillColor={IconColors.PRIMARY}\n width={24}\n height={24}\n className=\"sendbird-channel-settings__accordion-icon\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.CHANNEL_SETTING__BANNED_MEMBERS__TITLE}\n </Label>\n </>\n )}\n renderContent={() => (\n <>\n <BannedMemberList channel={channel} />\n </>\n )}\n />\n {\n // cannot frozen broadcast channel\n !channel.isBroadcast && (\n <div className=\"sendbird-channel-settings__freeze\">\n <Icon\n type={IconTypes.FROZEN_LIGHT}\n fillColor={IconColors.PRIMARY}\n width={24}\n height={24}\n className=\"sendbird-channel-settings__accordion-icon\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.CHANNEL_SETTING__FREEZE_CHANNEL}\n </Label>\n <div className=\"sendbird-channel-settings__frozen-icon\">\n {\n frozen\n ? (\n <Icon\n onClick={() => {\n channel.unfreeze(() => {\n setFrozen(false);\n });\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n <Icon\n onClick={() => {\n channel.freeze(() => {\n setFrozen(true);\n });\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n </div>\n </div>\n )\n }\n </AccordionGroup>\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 <div className=\"sendbird-channel-settings\">\n <div className=\"sendbird-channel-settings__header\">\n <Label type={LabelTypography.H_2} color={LabelColors.ONBACKGROUND_1}>\n {stringSet.CHANNEL_SETTING__HEADER__TITLE}\n </Label>\n <Icon\n type={IconTypes.CLOSE}\n className=\"sendbird-channel-settings__close-icon\"\n height=\"24px\"\n width=\"24px\"\n onClick={() => {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n />\n </div>\n <div>\n <PlaceHolder type={PlaceHolderTypes.WRONG} />\n </div>\n </div>\n );\n }\n\n return (\n <UserProfileProvider\n disableUserProfile={userDefinedDisableUserProfile}\n renderUserProfile={userDefinedRenderProfile}\n className=\"sendbird-channel-settings\"\n >\n <div className=\"sendbird-channel-settings__header\">\n <Label type={LabelTypography.H_2} color={LabelColors.ONBACKGROUND_1}>\n {stringSet.CHANNEL_SETTING__HEADER__TITLE}\n </Label>\n <div className=\"sendbird-channel-settings__header-icon\">\n <IconButton\n width=\"32px\"\n height=\"32px\"\n onClick={() => {\n logger.info('ChannelSettings: Click close');\n onCloseClick();\n }}\n >\n <Icon\n type={IconTypes.CLOSE}\n className=\"sendbird-channel-settings__close-icon\"\n height=\"24px\"\n width=\"24px\"\n />\n </IconButton>\n </div>\n </div>\n <div className=\"sendbird-channel-settings__scroll-area\">\n {\n renderChannelProfile\n ? renderChannelProfile({ channel })\n : (\n <ChannelProfile\n disabled={!isOnline}\n channel={channel}\n userId={userId}\n theme={theme}\n onChannelInfoChange={(currentImg, currentTitle) => {\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 <AdminPanel\n channel={channel}\n onChannelModified={(groupChannel) => {\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 <div\n role=\"switch\"\n aria-checked={showAccordion}\n tabIndex={0}\n onKeyDown={() => setShowAccordion(!showAccordion)}\n className={`\n sendbird-channel-settings__panel-item\n sendbird-channel-settings__members\n `}\n onClick={() => setShowAccordion(!showAccordion)}\n >\n <Icon\n type={IconTypes.MEMBERS}\n className=\"sendbird-channel-settings__panel-icon-left\"\n height=\"24px\"\n width=\"24px\"\n fillColor={IconColors.PRIMARY}\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {`${stringSet.CHANNEL_SETTING__MEMBERS__TITLE}`}\n <Badge count={kFormatter(channel.memberCount)} />\n </Label>\n <Icon\n type={IconTypes.SHEVRON}\n className={[\n 'sendbird-channel-settings__panel-icon-right',\n 'sendbird-channel-settings__panel-icon--chevron',\n (showAccordion ? 'sendbird-channel-settings__panel-icon--open' : ''),\n ].join(' ')}\n height=\"24px\"\n width=\"24px\"\n />\n </div>\n {\n showAccordion && (\n <MemebersAccordion\n currentUser={userId}\n disabled={!isOnline}\n // eslint-disable-next-line\n userQueryCreator={\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 <div\n className={\n `sendbird-channel-settings__panel-item\n sendbird-channel-settings__leave-channel\n ${!isOnline ? 'sendbird-channel-settings__panel-item__disabled' : ''}`\n }\n role=\"button\"\n tabIndex={0}\n disabled\n onKeyDown={() => {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n onClick={() => {\n if (!isOnline) { return; }\n setShowLeaveChannelModal(true);\n }}\n >\n <Icon\n type={IconTypes.LEAVE}\n className={[\n 'sendbird-channel-settings__panel-icon-left',\n 'sendbird-channel-settings__panel-icon__leave',\n ].join(' ')}\n height=\"24px\"\n width=\"24px\"\n />\n <Label\n type={LabelTypography.SUBTITLE_1}\n color={LabelColors.ONBACKGROUND_1}\n >\n {stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE}\n </Label>\n </div>\n {\n showLeaveChannelModal && (\n <LeaveChannelModal\n onCloseModal={() => 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 </div>\n </UserProfileProvider>\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 <Sendbird\n stringSet={stringSet}\n appId={appId}\n userId={userId}\n accessToken={accessToken}\n theme={theme}\n nickname={nickname}\n profileUrl={profileUrl}\n userListQuery={userListQuery}\n config={config}\n colorSet={colorSet}\n disableUserProfile={disableUserProfile}\n renderUserProfile={renderUserProfile}\n >\n <div className=\"sendbird-app__wrap\">\n <div className=\"sendbird-app__channellist-wrap\">\n <ChannelList\n allowProfileEdit={allowProfileEdit}\n onProfileEditSuccess={onProfileEditSuccess}\n onChannelSelect={(channel) => {\n if (channel && channel.url) {\n setCurrentChannelUrl(channel.url);\n } else {\n setCurrentChannelUrl('');\n }\n }}\n />\n </div>\n <div\n className={`\n ${showSettings ? 'sendbird-app__conversation--settings-open' : ''}\n sendbird-app__conversation-wrap\n `}\n >\n <Conversation\n channelUrl={currentChannelUrl}\n onChatHeaderActionClick={() => {\n if (showSettings) {\n setShowSettings(false);\n } else {\n setShowSettings(true);\n }\n }}\n useReaction={useReaction}\n useMessageGrouping={useMessageGrouping}\n />\n </div>\n {showSettings && (\n <div className=\"sendbird-app__settingspanel-wrap\">\n <ChannelSettings\n channelUrl={currentChannelUrl}\n onCloseClick={() => { setShowSettings(false); }}\n />\n </div>\n )}\n </div>\n </Sendbird>\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","renderCustomMessage","setShowEdit","setShowRemove","showFileViewer","setShowFileViewer","editMessageInputRef","RenderedMessage","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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"}