'use strict';

var React = require('react');
var PropTypes = require('prop-types');
var SendbirdProvider = require('./SendbirdProvider.js');
var MediaQueryContext = require('./MediaQueryContext-cfb37524.js');
var ChannelList = require('./ChannelList.js');
var Channel = require('./Channel.js');
var ChannelSettings = require('./ChannelSettings.js');
var MessageSearch = require('./MessageSearch.js');
var Thread = require('./Thread.js');
var groupChannel = require('@sendbird/chat/groupChannel');
var useSendbirdStateContext = require('./useSendbirdStateContext.js');
var uuid = require('./uuid-e879709a.js');
var consts = require('./consts-b08b4ca6.js');
require('./_rollupPluginBabelHelpers-3c8c757e.js');
require('./withSendbird.js');
require('@sendbird/chat');
require('@sendbird/chat/openChannel');
require('./actionTypes-30b8654a.js');
require('./index-482bbe89.js');
require('./tslib.es6-5163dacf.js');
require('./utils/message/getOutgoingMessageState.js');
require('css-vars-ponyfill');
require('./VoiceRecorder/context.js');
require('./lame.all.js');
require('./index-178229c9.js');
require('./LocalizationContext-53fd4ae9.js');
require('./stringSet-42fa6280.js');
require('./index-7c018421.js');
require('./ChannelListProvider-81b54cf3.js');
require('./topics-bc8e923e.js');
require('./utils-09e1cb5d.js');
require('./UserProfileContext-c7d6be85.js');
require('./ChannelList/components/ChannelListUI.js');
require('./ChannelList/components/ChannelListHeader.js');
require('./index-db48f031.js');
require('./ui/Avatar.js');
require('./ui/ImageRenderer.js');
require('./ui/Icon.js');
require('./ChannelList/components/AddChannel.js');
require('./ui/IconButton.js');
require('./CreateChannel.js');
require('./CreateChannel/components/CreateChannelUI.js');
require('./CreateChannelProvider-a7ea8fd0.js');
require('./sendbirdSelectors.js');
require('./CreateChannel/components/InviteUsers.js');
require('./ui/Modal.js');
require('react-dom');
require('./index-e49314a5.js');
require('./ui/Button.js');
require('./ui/UserListItem.js');
require('./ui/MutedAvatarOverlay.js');
require('./ui/Checkbox.js');
require('./ui/UserProfile.js');
require('./ui/ContextMenu.js');
require('./ui/SortByRow.js');
require('./CreateChannel/components/SelectChannelType.js');
require('./ChannelList/components/ChannelPreview.js');
require('./ui/ChannelAvatar.js');
require('./utils-ea9d80f3.js');
require('./ui/Badge.js');
require('./index-331d013f.js');
require('./index-a283267f.js');
require('./ui/Loader.js');
require('./index-160b94cd.js');
require('./index-5706b33b.js');
require('./ui/MentionUserLabel.js');
require('./ui/TextButton.js');
require('./color-578986d2.js');
require('./Channel/components/TypingIndicator.js');
require('./ChannelProvider-498847bc.js');
require('./compareIds-d78964c7.js');
require('./const-5e034408.js');
require('@sendbird/chat/message');
require('./ui/ReactionButton.js');
require('./useLongPress-591a6fa9.js');
require('./ChannelList/components/ChannelPreviewAction.js');
require('./EditUserProfile.js');
require('./index-ef4f97c8.js');
require('./ui/Input.js');
require('./index-7630682a.js');
require('./Channel/components/ChannelUI.js');
require('./ui/ConnectionStatus.js');
require('./Channel/components/ChannelHeader.js');
require('./utils-bafa76b3.js');
require('./Channel/components/MessageList.js');
require('./Channel/components/Message.js');
require('./Channel/components/SuggestedMentionList.js');
require('./const-6d262369.js');
require('./ThreadProvider-2dc43e25.js');
require('./Thread/context/types.js');
require('./ui/DateSeparator.js');
require('./ui/MessageInput.js');
require('react-dom/server');
require('./ui/MessageContent.js');
require('./ui/MessageItemMenu.js');
require('./types-c8782eaf.js');
require('./ui/MessageItemReactionMenu.js');
require('./ui/EmojiReactions.js');
require('./ui/Tooltip.js');
require('./ui/TooltipWrapper.js');
require('./ui/ReactionBadge.js');
require('./ui/AdminMessage.js');
require('./ui/TextMessageItemBody.js');
require('./ui/Word.js');
require('./ui/LinkLabel.js');
require('./ui/MentionLabel.js');
require('./ui/FileMessageItemBody.js');
require('./ui/ThumbnailMessageItemBody.js');
require('./ui/OGMessageItemBody.js');
require('./ui/UnknownMessageItemBody.js');
require('./ui/QuoteMessage.js');
require('./ui/BottomSheet.js');
require('./ui/ThreadReplies.js');
require('./ui/VoiceMessageItemBody.js');
require('./ui/ProgressBar.js');
require('./VoicePlayer/useVoicePlayer.js');
require('./ui/PlaybackTime.js');
require('./Channel/components/FileViewer.js');
require('./Channel/components/RemoveMessageModal.js');
require('./Channel/components/FrozenNotification.js');
require('./Channel/components/UnreadCount.js');
require('./Channel/components/MessageInput.js');
require('./ui/QuoteMessageInput.js');
require('./VoiceMessageInputWrapper-965de260.js');
require('./VoiceRecorder/useVoiceRecorder.js');
require('./index-e42edbd5.js');
require('./ChannelSettings/components/ChannelSettingsUI.js');
require('./ChannelSettings/context.js');
require('./ChannelSettings/components/ChannelProfile.js');
require('./ChannelSettings/components/EditDetailsModal.js');
require('./ChannelSettings/components/ModerationPanel.js');
require('./ui/Accordion.js');
require('./ui/AccordionGroup.js');
require('./context-43fa845b.js');
require('./ChannelSettings/components/UserListItem.js');
require('./MemberList-5d8110fb.js');
require('./ChannelSettings/components/LeaveChannel.js');
require('./ChannelSettings/components/UserPanel.js');
require('./MessageSearch/components/MessageSearchUI.js');
require('./MessageSearch/context.js');
require('./ui/MessageSearchItem.js');
require('./ui/MessageSearchFileItem.js');
require('./Thread/components/ThreadUI.js');
require('./Thread/components/ParentMessageInfo.js');
require('./RemoveMessageModal-29719052.js');
require('./Thread/components/ParentMessageInfoItem.js');
require('./ui/FileViewer.js');
require('./Thread/components/ThreadHeader.js');
require('./Thread/components/ThreadList.js');
require('./Thread/components/ThreadListItem.js');
require('date-fns');
require('./Thread/components/ThreadMessageInput.js');

function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);

var DesktopLayout = function (props) {
  var isReactionEnabled = props.isReactionEnabled,
      replyType = props.replyType,
      isMessageGroupingEnabled = props.isMessageGroupingEnabled,
      allowProfileEdit = props.allowProfileEdit,
      showSearchIcon = props.showSearchIcon,
      onProfileEditSuccess = props.onProfileEditSuccess,
      disableAutoSelect = props.disableAutoSelect,
      currentChannel = props.currentChannel,
      setCurrentChannel = props.setCurrentChannel,
      showSettings = props.showSettings,
      setShowSettings = props.setShowSettings,
      showSearch = props.showSearch,
      setShowSearch = props.setShowSearch,
      highlightedMessage = props.highlightedMessage,
      setHighlightedMessage = props.setHighlightedMessage,
      startingPoint = props.startingPoint,
      setStartingPoint = props.setStartingPoint,
      showThread = props.showThread,
      setShowThread = props.setShowThread,
      threadTargetMessage = props.threadTargetMessage,
      setThreadTargetMessage = props.setThreadTargetMessage;

  var _a = React.useState(null),
      animatedMessageId = _a[0],
      setAnimatedMessageId = _a[1];

  return /*#__PURE__*/React__default["default"].createElement("div", {
    className: "sendbird-app__wrap"
  }, /*#__PURE__*/React__default["default"].createElement("div", {
    className: "sendbird-app__channellist-wrap"
  }, /*#__PURE__*/React__default["default"].createElement(ChannelList, {
    allowProfileEdit: allowProfileEdit,
    onProfileEditSuccess: onProfileEditSuccess,
    disableAutoSelect: disableAutoSelect,
    onChannelSelect: function (channel) {
      setStartingPoint(null);
      setHighlightedMessage(null);

      if (channel) {
        setCurrentChannel(channel);
      } else {
        setCurrentChannel(null);
      }
    }
  })), /*#__PURE__*/React__default["default"].createElement("div", {
    className: "\n          ".concat(showSettings ? 'sendbird-app__conversation--settings-open' : '', "\n          ").concat(showSearch ? 'sendbird-app__conversation--search-open' : '', "\n          sendbird-app__conversation-wrap\n        ")
  }, /*#__PURE__*/React__default["default"].createElement(Channel, {
    channelUrl: (currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) || '',
    onChatHeaderActionClick: function () {
      setShowSearch(false);
      setShowThread(false);
      setShowSettings(!showSettings);
    },
    onSearchClick: function () {
      setShowSettings(false);
      setShowThread(false);
      setShowSearch(!showSearch);
    },
    onReplyInThread: function (_a) {
      var message = _a.message;
      setShowSettings(false);
      setShowSearch(false);

      if (replyType === 'THREAD') {
        setThreadTargetMessage({
          parentMessage: message,
          parentMessageId: message === null || message === void 0 ? void 0 : message.messageId
        });
        setShowThread(true);
      }
    },
    onQuoteMessageClick: function (_a) {
      var message = _a.message;
      setShowSettings(false);
      setShowSearch(false);

      if (replyType === 'THREAD') {
        setThreadTargetMessage(message);
        setShowThread(true);
      }
    },
    onMessageAnimated: function () {
      setAnimatedMessageId(null);
    },
    onMessageHighlighted: function () {
      setHighlightedMessage(null);
    },
    showSearchIcon: showSearchIcon,
    startingPoint: startingPoint,
    animatedMessage: animatedMessageId,
    highlightedMessage: highlightedMessage,
    isReactionEnabled: isReactionEnabled,
    replyType: replyType,
    isMessageGroupingEnabled: isMessageGroupingEnabled
  })), showSettings && /*#__PURE__*/React__default["default"].createElement("div", {
    className: "sendbird-app__settingspanel-wrap"
  }, /*#__PURE__*/React__default["default"].createElement(ChannelSettings, {
    className: "sendbird-channel-settings",
    channelUrl: (currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) || '',
    onCloseClick: function () {
      setShowSettings(false);
    }
  })), showSearch && /*#__PURE__*/React__default["default"].createElement("div", {
    className: "sendbird-app__searchpanel-wrap"
  }, /*#__PURE__*/React__default["default"].createElement(MessageSearch, {
    channelUrl: (currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) || '',
    onResultClick: function (message) {
      if (message.messageId === highlightedMessage) {
        setHighlightedMessage(null);
        setTimeout(function () {
          setHighlightedMessage(message.messageId);
        });
      } else {
        setStartingPoint(message.createdAt);
        setHighlightedMessage(message.messageId);
      }
    },
    onCloseClick: function () {
      setShowSearch(false);
    }
  })), showThread && /*#__PURE__*/React__default["default"].createElement(Thread, {
    className: "sendbird-app__thread",
    channelUrl: (currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) || '',
    message: threadTargetMessage,
    onHeaderActionClick: function () {
      setShowThread(false);
    },
    onMoveToParentMessage: function (_a) {
      var message = _a.message,
          channel = _a.channel;

      if ((channel === null || channel === void 0 ? void 0 : channel.url) !== (currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url)) {
        setCurrentChannel(channel);
      }

      if ((message === null || message === void 0 ? void 0 : message.messageId) !== animatedMessageId) {
        setStartingPoint(message === null || message === void 0 ? void 0 : message.createdAt);
      }

      setTimeout(function () {
        setAnimatedMessageId(message === null || message === void 0 ? void 0 : message.messageId);
      }, 500);
    }
  }));
};

var PANELS;

(function (PANELS) {
  PANELS["CHANNEL_LIST"] = "CHANNEL_LIST";
  PANELS["CHANNEL"] = "CHANNEL";
  PANELS["CHANNEL_SETTINGS"] = "CHANNEL_SETTINGS";
  PANELS["MESSAGE_SEARCH"] = "MESSAGE_SEARCH";
})(PANELS || (PANELS = {}));

var MobileLayout = function (props) {
  var _a, _b, _c;

  var replyType = props.replyType,
      isMessageGroupingEnabled = props.isMessageGroupingEnabled,
      allowProfileEdit = props.allowProfileEdit,
      isReactionEnabled = props.isReactionEnabled,
      showSearchIcon = props.showSearchIcon,
      onProfileEditSuccess = props.onProfileEditSuccess,
      currentChannel = props.currentChannel,
      setCurrentChannel = props.setCurrentChannel,
      highlightedMessage = props.highlightedMessage,
      setHighlightedMessage = props.setHighlightedMessage,
      startingPoint = props.startingPoint,
      setStartingPoint = props.setStartingPoint;

  var _d = React.useState(PANELS === null || PANELS === void 0 ? void 0 : PANELS.CHANNEL_LIST),
      panel = _d[0],
      setPanel = _d[1];

  var store = useSendbirdStateContext();
  var sdk = (_b = (_a = store === null || store === void 0 ? void 0 : store.stores) === null || _a === void 0 ? void 0 : _a.sdkStore) === null || _b === void 0 ? void 0 : _b.sdk;
  var userId = (_c = store === null || store === void 0 ? void 0 : store.config) === null || _c === void 0 ? void 0 : _c.userId;

  var goToMessage = function (message) {
    setStartingPoint(message === null || message === void 0 ? void 0 : message.createdAt);
    setTimeout(function () {
      setHighlightedMessage(message === null || message === void 0 ? void 0 : message.messageId);
    });
  };

  React.useEffect(function () {
    if (panel !== (PANELS === null || PANELS === void 0 ? void 0 : PANELS.CHANNEL)) {
      goToMessage();
    }
  }, [panel]);
  React.useEffect(function () {
    var _a, _b;

    var handlerId = uuid.uuidv4();

    if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.addGroupChannelHandler) {
      var handler = new groupChannel.GroupChannelHandler({
        onUserBanned: function (groupChannel, user) {
          if (groupChannel.url === (currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) && (user === null || user === void 0 ? void 0 : user.userId) === userId) {
            setPanel(PANELS.CHANNEL_LIST);
          }
        },
        onChannelDeleted: function (channelUrl) {
          if (channelUrl === (currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url)) {
            setPanel(PANELS.CHANNEL_LIST);
          }
        },
        onUserLeft: function (groupChannel, user) {
          if (groupChannel.url === (currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url) && (user === null || user === void 0 ? void 0 : user.userId) === userId) {
            setPanel(PANELS.CHANNEL_LIST);
          }
        }
      });
      (_b = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _b === void 0 ? void 0 : _b.addGroupChannelHandler(handlerId, handler);
    }

    return function () {
      var _a, _b;

      (_b = (_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) === null || _b === void 0 ? void 0 : _b.call(_a, handlerId);
    };
  }, [sdk]);
  return /*#__PURE__*/React__default["default"].createElement("div", null, panel === (PANELS === null || PANELS === void 0 ? void 0 : PANELS.CHANNEL_LIST) && /*#__PURE__*/React__default["default"].createElement("div", {
    className: "sb_mobile__panelwrap"
  }, /*#__PURE__*/React__default["default"].createElement(ChannelList, {
    onProfileEditSuccess: onProfileEditSuccess,
    onChannelSelect: function (channel) {
      setCurrentChannel(channel);
      setPanel(PANELS.CHANNEL);
    },
    allowProfileEdit: allowProfileEdit // this condition must be true for mobile
    ,
    disableAutoSelect: true
  })), panel === (PANELS === null || PANELS === void 0 ? void 0 : PANELS.CHANNEL) && /*#__PURE__*/React__default["default"].createElement("div", {
    className: "sb_mobile__panelwrap"
  }, /*#__PURE__*/React__default["default"].createElement(Channel, {
    replyType: replyType,
    channelUrl: currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url,
    onSearchClick: function () {
      setPanel(PANELS.MESSAGE_SEARCH);
    },
    onBackClick: function () {
      setPanel(PANELS.CHANNEL_LIST);
    },
    isReactionEnabled: isReactionEnabled,
    showSearchIcon: showSearchIcon,
    isMessageGroupingEnabled: isMessageGroupingEnabled,
    startingPoint: startingPoint,
    highlightedMessage: highlightedMessage,
    onChatHeaderActionClick: function () {
      setPanel(PANELS.CHANNEL_SETTINGS);
    }
  })), panel === (PANELS === null || PANELS === void 0 ? void 0 : PANELS.CHANNEL_SETTINGS) && /*#__PURE__*/React__default["default"].createElement("div", {
    className: "sb_mobile__panelwrap"
  }, /*#__PURE__*/React__default["default"].createElement(ChannelSettings, {
    channelUrl: currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url,
    onCloseClick: function () {
      setPanel(PANELS.CHANNEL);
    },
    onLeaveChannel: function () {
      setPanel(PANELS.CHANNEL_LIST);
    }
  })), panel === (PANELS === null || PANELS === void 0 ? void 0 : PANELS.MESSAGE_SEARCH) && /*#__PURE__*/React__default["default"].createElement("div", {
    className: "sb_mobile__panelwrap"
  }, /*#__PURE__*/React__default["default"].createElement(MessageSearch, {
    channelUrl: currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.url,
    onCloseClick: function () {
      setPanel(PANELS.CHANNEL);
    },
    onResultClick: function (message) {
      setPanel(PANELS.CHANNEL);
      goToMessage(message);
    }
  })));
};

var AppLayout = function (props) {
  var isReactionEnabled = props.isReactionEnabled,
      replyType = props.replyType,
      isMessageGroupingEnabled = props.isMessageGroupingEnabled,
      allowProfileEdit = props.allowProfileEdit,
      showSearchIcon = props.showSearchIcon,
      onProfileEditSuccess = props.onProfileEditSuccess,
      disableAutoSelect = props.disableAutoSelect,
      currentChannel = props.currentChannel,
      setCurrentChannel = props.setCurrentChannel;

  var _a = React.useState(false),
      showThread = _a[0],
      setShowThread = _a[1];

  var _b = React.useState(null),
      threadTargetMessage = _b[0],
      setThreadTargetMessage = _b[1];

  var _c = React.useState(false),
      showSettings = _c[0],
      setShowSettings = _c[1];

  var _d = React.useState(false),
      showSearch = _d[0],
      setShowSearch = _d[1];

  var _e = React.useState(null),
      highlightedMessage = _e[0],
      setHighlightedMessage = _e[1];

  var _f = React.useState(null),
      startingPoint = _f[0],
      setStartingPoint = _f[1];

  var isMobile = MediaQueryContext.useMediaQueryContext().isMobile;
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isMobile ? /*#__PURE__*/React__default["default"].createElement(MobileLayout, {
    replyType: replyType,
    isMessageGroupingEnabled: isMessageGroupingEnabled,
    allowProfileEdit: allowProfileEdit,
    isReactionEnabled: isReactionEnabled,
    showSearchIcon: showSearchIcon,
    onProfileEditSuccess: onProfileEditSuccess,
    currentChannel: currentChannel,
    setCurrentChannel: setCurrentChannel,
    highlightedMessage: highlightedMessage,
    setHighlightedMessage: setHighlightedMessage,
    startingPoint: startingPoint,
    setStartingPoint: setStartingPoint
  }) : /*#__PURE__*/React__default["default"].createElement(DesktopLayout, {
    isReactionEnabled: isReactionEnabled,
    replyType: replyType,
    isMessageGroupingEnabled: isMessageGroupingEnabled,
    allowProfileEdit: allowProfileEdit,
    showSearchIcon: showSearchIcon,
    onProfileEditSuccess: onProfileEditSuccess,
    disableAutoSelect: disableAutoSelect,
    currentChannel: currentChannel,
    setCurrentChannel: setCurrentChannel,
    showThread: showThread,
    setShowThread: setShowThread,
    threadTargetMessage: threadTargetMessage,
    setThreadTargetMessage: setThreadTargetMessage,
    showSettings: showSettings,
    setShowSettings: setShowSettings,
    showSearch: showSearch,
    setShowSearch: setShowSearch,
    highlightedMessage: highlightedMessage,
    setHighlightedMessage: setHighlightedMessage,
    startingPoint: startingPoint,
    setStartingPoint: setStartingPoint
  }));
};

/**
 * This is a drop in Chat solution
 * Can also be used as an example for creating
 * default chat apps
 */
function App(props) {
  const {
    appId,
    userId,
    accessToken,
    customApiHost,
    customWebSocketHost,
    mediaQueryBreakPoint,
    theme,
    userListQuery,
    nickname,
    profileUrl,
    dateLocale,
    config = {},
    isReactionEnabled,
    isMentionEnabled,
    isVoiceMessageEnabled,
    voiceRecord,
    replyType,
    isMessageGroupingEnabled,
    colorSet,
    stringSet,
    allowProfileEdit,
    disableUserProfile,
    disableMarkAsDelivered,
    renderUserProfile,
    showSearchIcon,
    onProfileEditSuccess,
    imageCompression,
    disableAutoSelect,
    isTypingIndicatorEnabledOnChannelList,
    isMessageReceiptStatusEnabledOnChannelList
  } = props;
  const [currentChannel, setCurrentChannel] = React.useState(null);
  return /*#__PURE__*/React__default["default"].createElement(SendbirdProvider, {
    stringSet: stringSet,
    appId: appId,
    userId: userId,
    accessToken: accessToken,
    customApiHost: customApiHost,
    customWebSocketHost: customWebSocketHost,
    mediaQueryBreakPoint: mediaQueryBreakPoint,
    theme: theme,
    nickname: nickname,
    profileUrl: profileUrl,
    dateLocale: dateLocale,
    userListQuery: userListQuery,
    config: config,
    colorSet: colorSet,
    disableUserProfile: disableUserProfile,
    disableMarkAsDelivered: disableMarkAsDelivered,
    renderUserProfile: renderUserProfile,
    imageCompression: imageCompression,
    isReactionEnabled: isReactionEnabled,
    isMentionEnabled: isMentionEnabled,
    isVoiceMessageEnabled: isVoiceMessageEnabled,
    voiceRecord: voiceRecord,
    onUserProfileMessage: channel => {
      setCurrentChannel(channel);
    },
    isTypingIndicatorEnabledOnChannelList: isTypingIndicatorEnabledOnChannelList,
    isMessageReceiptStatusEnabledOnChannelList: isMessageReceiptStatusEnabledOnChannelList,
    replyType: replyType
  }, /*#__PURE__*/React__default["default"].createElement(AppLayout, {
    currentChannel: currentChannel,
    setCurrentChannel: setCurrentChannel,
    isReactionEnabled: isReactionEnabled,
    replyType: replyType,
    isMessageGroupingEnabled: isMessageGroupingEnabled,
    allowProfileEdit: allowProfileEdit,
    showSearchIcon: showSearchIcon,
    onProfileEditSuccess: onProfileEditSuccess,
    disableAutoSelect: disableAutoSelect
  }));
}
App.propTypes = {
  appId: PropTypes__default["default"].string.isRequired,
  userId: PropTypes__default["default"].string.isRequired,
  accessToken: PropTypes__default["default"].string,
  customApiHost: PropTypes__default["default"].string,
  customWebSocketHost: PropTypes__default["default"].string,
  theme: PropTypes__default["default"].string,
  userListQuery: PropTypes__default["default"].func,
  nickname: PropTypes__default["default"].string,
  profileUrl: PropTypes__default["default"].string,
  mediaQueryBreakPoint: PropTypes__default["default"].string,
  allowProfileEdit: PropTypes__default["default"].bool,
  disableUserProfile: PropTypes__default["default"].bool,
  disableMarkAsDelivered: PropTypes__default["default"].bool,
  renderUserProfile: PropTypes__default["default"].func,
  onProfileEditSuccess: PropTypes__default["default"].func,
  dateLocale: PropTypes__default["default"].shape({}),
  config: PropTypes__default["default"].shape({
    // None Error Warning Info 'All/Debug'
    logLevel: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)]),
    isREMUnitEnabled: PropTypes__default["default"].bool
  }),
  isReactionEnabled: PropTypes__default["default"].bool,
  replyType: PropTypes__default["default"].oneOf(['NONE', 'QUOTE_REPLY', 'THREAD']),
  showSearchIcon: PropTypes__default["default"].bool,
  isMessageGroupingEnabled: PropTypes__default["default"].bool,
  stringSet: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
  colorSet: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
  imageCompression: PropTypes__default["default"].shape({
    compressionRate: PropTypes__default["default"].number,
    resizingWidth: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]),
    resizingHeight: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string])
  }),
  disableAutoSelect: PropTypes__default["default"].bool,
  isMentionEnabled: PropTypes__default["default"].bool,
  isVoiceMessageEnabled: PropTypes__default["default"].bool,
  voiceRecord: PropTypes__default["default"].shape({
    maxRecordingTime: PropTypes__default["default"].number,
    minRecordingTime: PropTypes__default["default"].number
  }),
  isTypingIndicatorEnabledOnChannelList: PropTypes__default["default"].bool,
  isMessageReceiptStatusEnabledOnChannelList: PropTypes__default["default"].bool
};
App.defaultProps = {
  accessToken: '',
  customApiHost: '',
  customWebSocketHost: '',
  theme: 'light',
  nickname: '',
  profileUrl: '',
  userListQuery: null,
  mediaQueryBreakPoint: null,
  dateLocale: null,
  allowProfileEdit: false,
  onProfileEditSuccess: null,
  disableUserProfile: false,
  disableMarkAsDelivered: false,
  showSearchIcon: false,
  renderUserProfile: null,
  config: {},
  isReactionEnabled: true,
  isMentionEnabled: false,
  isVoiceMessageEnabled: true,
  voiceRecord: {
    maxRecordingTime: consts.VOICE_RECORDER_DEFAULT_MAX,
    minRecordingTime: consts.VOICE_RECORDER_DEFAULT_MIN
  },
  replyType: 'NONE',
  isMessageGroupingEnabled: true,
  stringSet: null,
  colorSet: null,
  imageCompression: {},
  disableAutoSelect: false,
  isTypingIndicatorEnabledOnChannelList: false,
  isMessageReceiptStatusEnabledOnChannelList: false
};

module.exports = App;
//# sourceMappingURL=App.js.map
