stream-chat-react 6.12.2 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/browser.full-bundle.js +1857 -18857
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +5 -5
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Attachment/Attachment.d.ts +8 -8
- package/dist/components/Attachment/Attachment.d.ts.map +1 -1
- package/dist/components/Attachment/AttachmentActions.d.ts +3 -3
- package/dist/components/Attachment/AttachmentActions.d.ts.map +1 -1
- package/dist/components/Attachment/Audio.d.ts +4 -4
- package/dist/components/Attachment/Audio.d.ts.map +1 -1
- package/dist/components/Attachment/Audio.js +2 -2
- package/dist/components/Attachment/Card.d.ts +2 -0
- package/dist/components/Attachment/Card.d.ts.map +1 -1
- package/dist/components/Attachment/Card.js +22 -2
- package/dist/components/Attachment/FileAttachment.d.ts +4 -4
- package/dist/components/Attachment/FileAttachment.d.ts.map +1 -1
- package/dist/components/Attachment/utils.d.ts +22 -22
- package/dist/components/Attachment/utils.d.ts.map +1 -1
- package/dist/components/Attachment/utils.js +3 -1
- package/dist/components/AutoCompleteTextarea/Item.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Item.js +1 -1
- package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/List.js +0 -1
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts +7 -6
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.js +9 -23
- package/dist/components/Avatar/Avatar.d.ts +4 -4
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Channel/Channel.d.ts +47 -45
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +12 -4
- package/dist/components/Channel/channelState.d.ts +15 -15
- package/dist/components/Channel/channelState.d.ts.map +1 -1
- package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts +3 -3
- package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -1
- package/dist/components/Channel/hooks/useCreateChannelStateContext.js +2 -1
- package/dist/components/Channel/hooks/useCreateTypingContext.d.ts +2 -2
- package/dist/components/Channel/hooks/useCreateTypingContext.d.ts.map +1 -1
- package/dist/components/Channel/hooks/useEditMessageHandler.d.ts +3 -3
- package/dist/components/Channel/hooks/useEditMessageHandler.d.ts.map +1 -1
- package/dist/components/Channel/hooks/useMentionsHandlers.d.ts +3 -3
- package/dist/components/Channel/hooks/useMentionsHandlers.d.ts.map +1 -1
- package/dist/components/ChannelHeader/ChannelHeader.d.ts +4 -2
- package/dist/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
- package/dist/components/ChannelHeader/ChannelHeader.js +6 -7
- package/dist/components/ChannelHeader/icons.d.ts +5 -0
- package/dist/components/ChannelHeader/icons.d.ts.map +1 -0
- package/dist/components/ChannelHeader/icons.js +9 -0
- package/dist/components/ChannelList/ChannelList.d.ts +18 -18
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelListMessenger.d.ts +5 -5
- package/dist/components/ChannelList/ChannelListMessenger.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelListMessenger.js +1 -1
- package/dist/components/ChannelList/hooks/useChannelDeletedListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useChannelDeletedListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useChannelHiddenListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useChannelHiddenListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.js +13 -1
- package/dist/components/ChannelList/hooks/useChannelVisibleListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useChannelVisibleListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useMessageNewListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useMessageNewListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +4 -4
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.d.ts +2 -2
- package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.d.ts.map +1 -1
- package/dist/components/ChannelList/utils.d.ts +6 -6
- package/dist/components/ChannelList/utils.d.ts.map +1 -1
- package/dist/components/ChannelPreview/ChannelPreview.d.ts +9 -9
- package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts +2 -2
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts.map +1 -1
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
- package/dist/components/ChannelPreview/hooks/useIsChannelMuted.d.ts +2 -2
- package/dist/components/ChannelPreview/hooks/useIsChannelMuted.d.ts.map +1 -1
- package/dist/components/ChannelPreview/utils.d.ts +4 -4
- package/dist/components/ChannelPreview/utils.d.ts.map +1 -1
- package/dist/components/ChannelSearch/ChannelSearch.d.ts +16 -14
- package/dist/components/ChannelSearch/ChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/ChannelSearch.js +3 -3
- package/dist/components/ChannelSearch/SearchInput.d.ts +9 -7
- package/dist/components/ChannelSearch/SearchInput.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchInput.js +2 -2
- package/dist/components/ChannelSearch/SearchResults.d.ts +14 -14
- package/dist/components/ChannelSearch/SearchResults.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchResults.js +6 -6
- package/dist/components/ChannelSearch/utils.d.ts +3 -3
- package/dist/components/ChannelSearch/utils.d.ts.map +1 -1
- package/dist/components/ChannelSearch/utils.js +1 -3
- package/dist/components/Chat/Chat.d.ts +4 -4
- package/dist/components/Chat/Chat.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useChat.d.ts +8 -8
- package/dist/components/Chat/hooks/useChat.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useChat.js +2 -2
- package/dist/components/Chat/hooks/useCreateChatContext.d.ts +2 -2
- package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +18 -14
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +1 -1
- package/dist/components/ChatAutoComplete/ChatAutoComplete.js +16 -14
- package/dist/components/ChatDown/ChatDown.d.ts.map +1 -1
- package/dist/components/ChatDown/ChatDown.js +2 -2
- package/dist/components/EmptyStateIndicator/EmptyStateIndicator.js +1 -1
- package/dist/components/EventComponent/EventComponent.d.ts +4 -4
- package/dist/components/EventComponent/EventComponent.d.ts.map +1 -1
- package/dist/components/Gallery/Gallery.d.ts +4 -4
- package/dist/components/Gallery/Gallery.d.ts.map +1 -1
- package/dist/components/Gallery/Gallery.js +5 -3
- package/dist/components/Gallery/Image.d.ts.map +1 -1
- package/dist/components/Gallery/Image.js +4 -2
- package/dist/components/Gallery/ModalWrapper.d.ts +3 -6
- package/dist/components/Gallery/ModalWrapper.d.ts.map +1 -1
- package/dist/components/Gallery/ModalWrapper.js +4 -7
- package/dist/components/Gallery/index.d.ts +0 -1
- package/dist/components/Gallery/index.d.ts.map +1 -1
- package/dist/components/Gallery/index.js +0 -1
- package/dist/components/LoadMore/LoadMoreButton.d.ts.map +1 -1
- package/dist/components/LoadMore/LoadMoreButton.js +1 -1
- package/dist/components/Message/FixedHeightMessage.d.ts +4 -4
- package/dist/components/Message/FixedHeightMessage.d.ts.map +1 -1
- package/dist/components/Message/Message.d.ts +2 -2
- package/dist/components/Message/Message.d.ts.map +1 -1
- package/dist/components/Message/MessageCommerce.d.ts +2 -2
- package/dist/components/Message/MessageCommerce.d.ts.map +1 -1
- package/dist/components/Message/MessageDeleted.d.ts +4 -4
- package/dist/components/Message/MessageDeleted.d.ts.map +1 -1
- package/dist/components/Message/MessageLivestream.d.ts +2 -2
- package/dist/components/Message/MessageLivestream.d.ts.map +1 -1
- package/dist/components/Message/MessageOptions.d.ts +3 -3
- package/dist/components/Message/MessageOptions.d.ts.map +1 -1
- package/dist/components/Message/MessageOptions.js +5 -5
- package/dist/components/Message/MessageSimple.d.ts +2 -2
- package/dist/components/Message/MessageSimple.d.ts.map +1 -1
- package/dist/components/Message/MessageSimple.js +5 -4
- package/dist/components/Message/MessageStatus.d.ts +2 -2
- package/dist/components/Message/MessageStatus.d.ts.map +1 -1
- package/dist/components/Message/MessageTeam.d.ts +2 -2
- package/dist/components/Message/MessageTeam.d.ts.map +1 -1
- package/dist/components/Message/MessageText.d.ts +4 -4
- package/dist/components/Message/MessageText.d.ts.map +1 -1
- package/dist/components/Message/MessageTimestamp.d.ts +4 -4
- package/dist/components/Message/MessageTimestamp.d.ts.map +1 -1
- package/dist/components/Message/QuotedMessage.d.ts +2 -2
- package/dist/components/Message/QuotedMessage.d.ts.map +1 -1
- package/dist/components/Message/hooks/useActionHandler.d.ts +2 -2
- package/dist/components/Message/hooks/useActionHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useDeleteHandler.d.ts +4 -4
- package/dist/components/Message/hooks/useDeleteHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useFlagHandler.d.ts +5 -5
- package/dist/components/Message/hooks/useFlagHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useMentionsHandler.d.ts +6 -6
- package/dist/components/Message/hooks/useMentionsHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useMuteHandler.d.ts +5 -5
- package/dist/components/Message/hooks/useMuteHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useOpenThreadHandler.d.ts +2 -2
- package/dist/components/Message/hooks/useOpenThreadHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/usePinHandler.d.ts +4 -4
- package/dist/components/Message/hooks/usePinHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useReactionHandler.d.ts +3 -3
- package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useRetryHandler.d.ts +2 -2
- package/dist/components/Message/hooks/useRetryHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useUserHandler.d.ts +5 -5
- package/dist/components/Message/hooks/useUserHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useUserRole.d.ts +2 -2
- package/dist/components/Message/hooks/useUserRole.d.ts.map +1 -1
- package/dist/components/Message/hooks/useUserRole.js +1 -1
- package/dist/components/Message/icons.d.ts +2 -2
- package/dist/components/Message/icons.d.ts.map +1 -1
- package/dist/components/Message/types.d.ts +23 -23
- package/dist/components/Message/types.d.ts.map +1 -1
- package/dist/components/Message/utils.d.ts +14 -14
- package/dist/components/Message/utils.d.ts.map +1 -1
- package/dist/components/Message/utils.js +6 -1
- package/dist/components/MessageActions/MessageActions.d.ts +3 -3
- package/dist/components/MessageActions/MessageActions.d.ts.map +1 -1
- package/dist/components/MessageActions/MessageActions.js +16 -9
- package/dist/components/MessageActions/MessageActionsBox.d.ts +7 -7
- package/dist/components/MessageActions/MessageActionsBox.d.ts.map +1 -1
- package/dist/components/MessageActions/MessageActionsBox.js +12 -19
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +7 -7
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
- package/dist/components/MessageInput/DropzoneProvider.d.ts +2 -2
- package/dist/components/MessageInput/DropzoneProvider.d.ts.map +1 -1
- package/dist/components/MessageInput/EditMessageForm.d.ts +2 -2
- package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
- package/dist/components/MessageInput/EditMessageForm.js +2 -2
- package/dist/components/MessageInput/EmojiPicker.d.ts +2 -2
- package/dist/components/MessageInput/EmojiPicker.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInput.d.ts +11 -11
- package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.d.ts +2 -2
- package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.js +5 -5
- package/dist/components/MessageInput/MessageInputSmall.d.ts +2 -2
- package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputSmall.js +7 -5
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts +4 -4
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +1 -1
- package/dist/components/MessageInput/QuotedMessagePreview.js +4 -3
- package/dist/components/MessageInput/UploadsPreview.d.ts +2 -2
- package/dist/components/MessageInput/UploadsPreview.d.ts.map +1 -1
- package/dist/components/MessageInput/UploadsPreview.js +4 -17
- package/dist/components/MessageInput/hooks/useAttachments.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCommandTrigger.js +3 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.js +2 -1
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts +4 -4
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useEmojiPicker.js +2 -0
- package/dist/components/MessageInput/hooks/useFileUploads.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useFileUploads.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useImageUploads.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useImageUploads.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +11 -11
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputState.js +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputText.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useMessageInputText.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts +3 -3
- package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useUserTrigger.d.ts +5 -5
- package/dist/components/MessageInput/hooks/useUserTrigger.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/utils.d.ts +8 -8
- package/dist/components/MessageInput/hooks/utils.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/utils.js +1 -1
- package/dist/components/MessageInput/icons.d.ts +4 -4
- package/dist/components/MessageInput/icons.d.ts.map +1 -1
- package/dist/components/MessageInput/icons.js +1 -1
- package/dist/components/MessageInput/index.d.ts +1 -0
- package/dist/components/MessageInput/index.d.ts.map +1 -1
- package/dist/components/MessageInput/index.js +1 -0
- package/dist/components/MessageList/ConnectionStatus.d.ts.map +1 -1
- package/dist/components/MessageList/CustomNotification.d.ts.map +1 -1
- package/dist/components/MessageList/CustomNotification.js +1 -1
- package/dist/components/MessageList/GiphyPreviewMessage.d.ts +4 -4
- package/dist/components/MessageList/GiphyPreviewMessage.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.d.ts +5 -5
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageNotification.d.ts.map +1 -1
- package/dist/components/MessageList/MessageNotification.js +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +7 -7
- package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.js +39 -10
- package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts +6 -6
- package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useGiphyPreview.d.ts +4 -4
- package/dist/components/MessageList/hooks/useGiphyPreview.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useLastReadData.d.ts +5 -5
- package/dist/components/MessageList/hooks/useLastReadData.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMessageListElements.d.ts +6 -6
- package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts +4 -4
- package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts +2 -2
- package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts +2 -2
- package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts +4 -4
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useShouldForceScrollToBottom.d.ts +2 -2
- package/dist/components/MessageList/hooks/useShouldForceScrollToBottom.d.ts.map +1 -1
- package/dist/components/MessageList/utils.d.ts +11 -11
- package/dist/components/MessageList/utils.d.ts.map +1 -1
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.js +8 -4
- package/dist/components/Reactions/ReactionSelector.d.ts +4 -4
- package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionSelector.js +7 -6
- package/dist/components/Reactions/ReactionsList.d.ts +4 -4
- package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionsList.js +5 -4
- package/dist/components/Reactions/SimpleReactionsList.d.ts +4 -4
- package/dist/components/Reactions/SimpleReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/SimpleReactionsList.js +1 -1
- package/dist/components/SafeAnchor/SafeAnchor.d.ts.map +1 -1
- package/dist/components/SafeAnchor/SafeAnchor.js +1 -1
- package/dist/components/Thread/Thread.d.ts +10 -10
- package/dist/components/Thread/Thread.d.ts.map +1 -1
- package/dist/components/Thread/Thread.js +1 -1
- package/dist/components/TypingIndicator/TypingIndicator.d.ts +4 -4
- package/dist/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
- package/dist/components/Window/Window.d.ts +4 -4
- package/dist/components/Window/Window.d.ts.map +1 -1
- package/dist/components/Window/Window.js +1 -4
- package/dist/context/ChannelActionContext.d.ts +23 -26
- package/dist/context/ChannelActionContext.d.ts.map +1 -1
- package/dist/context/ChannelStateContext.d.ts +22 -21
- package/dist/context/ChannelStateContext.d.ts.map +1 -1
- package/dist/context/ChatContext.d.ts +12 -12
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/context/ComponentContext.d.ts +27 -27
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/MessageContext.d.ts +16 -16
- package/dist/context/MessageContext.d.ts.map +1 -1
- package/dist/context/MessageInputContext.d.ts +7 -7
- package/dist/context/MessageInputContext.d.ts.map +1 -1
- package/dist/context/TypingContext.d.ts +8 -8
- package/dist/context/TypingContext.d.ts.map +1 -1
- package/dist/css/index.css +1 -1
- package/dist/i18n/Streami18n.d.ts +1 -0
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/de.json +1 -0
- package/dist/i18n/en.json +1 -0
- package/dist/i18n/es.json +1 -0
- package/dist/i18n/fr.json +1 -0
- package/dist/i18n/hi.json +1 -0
- package/dist/i18n/it.json +1 -0
- package/dist/i18n/ja.json +1 -0
- package/dist/i18n/ko.json +1 -0
- package/dist/i18n/nl.json +1 -0
- package/dist/i18n/pt.json +1 -0
- package/dist/i18n/ru.json +1 -0
- package/dist/i18n/tr.json +1 -0
- package/dist/index.cjs.js +353 -301
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/ChannelSearch.scss +3 -0
- package/dist/scss/Gallery.scss +6 -0
- package/dist/scss/LoadMoreButton.scss +1 -0
- package/dist/scss/Message.scss +19 -0
- package/dist/scss/MessageActions.scss +9 -0
- package/dist/scss/MessageInput.scss +11 -0
- package/dist/scss/MessageInputFlat.scss +15 -0
- package/dist/scss/MessageTeam.scss +8 -0
- package/dist/scss/Modal.scss +4 -0
- package/dist/scss/ReactionList.scss +7 -0
- package/dist/scss/ReactionSelector.scss +7 -0
- package/dist/scss/SendButton.scss +5 -0
- package/dist/scss/SmallMessageInput.scss +12 -0
- package/dist/scss/Thread.scss +24 -0
- package/dist/scss/_base.scss +4 -12
- package/dist/scss/_variables.scss +4 -1
- package/dist/scss/index.scss +1 -1
- package/dist/scss/vendor/react-file-utils.scss +2 -0
- package/dist/scss/vendor/react-image-gallery.scss +224 -0
- package/dist/types/types.d.ts +15 -9
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils.d.ts +5 -5
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +24 -3
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +12 -9
- package/dist/components/Gallery/ModalImage.d.ts +0 -9
- package/dist/components/Gallery/ModalImage.d.ts.map +0 -1
- package/dist/components/Gallery/ModalImage.js +0 -6
- package/dist/scss/ModalImage.scss +0 -11
package/dist/index.cjs.js
CHANGED
|
@@ -10,7 +10,7 @@ var calendar = require('dayjs/plugin/calendar');
|
|
|
10
10
|
var localizedFormat = require('dayjs/plugin/localizedFormat');
|
|
11
11
|
var prettybytes = require('pretty-bytes');
|
|
12
12
|
var reactFileUtils = require('react-file-utils');
|
|
13
|
-
var
|
|
13
|
+
var ImageGallery = require('react-image-gallery');
|
|
14
14
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
15
15
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
16
16
|
var emojiRegex = require('emoji-regex');
|
|
@@ -30,7 +30,6 @@ var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
|
|
|
30
30
|
var PropTypes = require('prop-types');
|
|
31
31
|
var Textarea = require('react-textarea-autosize');
|
|
32
32
|
var getCaretCoordinates = require('textarea-caret');
|
|
33
|
-
var CustomEvent = require('custom-event');
|
|
34
33
|
var reactIs = require('react-is');
|
|
35
34
|
var debounce = require('lodash.debounce');
|
|
36
35
|
var throttle = require('lodash.throttle');
|
|
@@ -84,7 +83,7 @@ var Dayjs__default = /*#__PURE__*/_interopDefaultLegacy(Dayjs);
|
|
|
84
83
|
var calendar__default = /*#__PURE__*/_interopDefaultLegacy(calendar);
|
|
85
84
|
var localizedFormat__default = /*#__PURE__*/_interopDefaultLegacy(localizedFormat);
|
|
86
85
|
var prettybytes__default = /*#__PURE__*/_interopDefaultLegacy(prettybytes);
|
|
87
|
-
var
|
|
86
|
+
var ImageGallery__default = /*#__PURE__*/_interopDefaultLegacy(ImageGallery);
|
|
88
87
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
89
88
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
90
89
|
var emojiRegex__default = /*#__PURE__*/_interopDefaultLegacy(emojiRegex);
|
|
@@ -104,7 +103,6 @@ var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeO
|
|
|
104
103
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
105
104
|
var Textarea__default = /*#__PURE__*/_interopDefaultLegacy(Textarea);
|
|
106
105
|
var getCaretCoordinates__default = /*#__PURE__*/_interopDefaultLegacy(getCaretCoordinates);
|
|
107
|
-
var CustomEvent__default = /*#__PURE__*/_interopDefaultLegacy(CustomEvent);
|
|
108
106
|
var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
109
107
|
var throttle__default = /*#__PURE__*/_interopDefaultLegacy(throttle);
|
|
110
108
|
var deepequal__default = /*#__PURE__*/_interopDefaultLegacy(deepequal);
|
|
@@ -251,9 +249,9 @@ var UnMemoizedAudio = function (props) {
|
|
|
251
249
|
React__default['default'].createElement("audio", { ref: audioRef },
|
|
252
250
|
React__default['default'].createElement("source", { "data-testid": 'audio-source', src: asset_url, type: 'audio/mp3' })),
|
|
253
251
|
React__default['default'].createElement("div", { className: 'str-chat__audio__image' },
|
|
254
|
-
React__default['default'].createElement("div", { className: 'str-chat__audio__image--overlay' }, !isPlaying ? (React__default['default'].createElement("
|
|
252
|
+
React__default['default'].createElement("div", { className: 'str-chat__audio__image--overlay' }, !isPlaying ? (React__default['default'].createElement("button", { className: 'str-chat__audio__image--button', "data-testid": 'play-audio', onClick: function () { return setIsPlaying(true); } },
|
|
255
253
|
React__default['default'].createElement("svg", { height: '40', viewBox: '0 0 64 64', width: '40', xmlns: 'http://www.w3.org/2000/svg' },
|
|
256
|
-
React__default['default'].createElement("path", { d: 'M32 58c14.36 0 26-11.64 26-26S46.36 6 32 6 6 17.64 6 32s11.64 26 26 26zm0 6C14.327 64 0 49.673 0 32 0 14.327 14.327 0 32 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32zm13.237-28.412L26.135 45.625a3.27 3.27 0 0 1-4.426-1.4 3.319 3.319 0 0 1-.372-1.47L21 23.36c-.032-1.823 1.41-3.327 3.222-3.358a3.263 3.263 0 0 1 1.473.322l19.438 9.36a3.311 3.311 0 0 1 .103 5.905z', fillRule: 'nonzero' })))) : (React__default['default'].createElement("
|
|
254
|
+
React__default['default'].createElement("path", { d: 'M32 58c14.36 0 26-11.64 26-26S46.36 6 32 6 6 17.64 6 32s11.64 26 26 26zm0 6C14.327 64 0 49.673 0 32 0 14.327 14.327 0 32 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32zm13.237-28.412L26.135 45.625a3.27 3.27 0 0 1-4.426-1.4 3.319 3.319 0 0 1-.372-1.47L21 23.36c-.032-1.823 1.41-3.327 3.222-3.358a3.263 3.263 0 0 1 1.473.322l19.438 9.36a3.311 3.311 0 0 1 .103 5.905z', fillRule: 'nonzero' })))) : (React__default['default'].createElement("button", { className: 'str-chat__audio__image--button', "data-testid": 'pause-audio', onClick: function () { return setIsPlaying(false); } },
|
|
257
255
|
React__default['default'].createElement("svg", { height: '40', viewBox: '0 0 64 64', width: '40', xmlns: 'http://www.w3.org/2000/svg' },
|
|
258
256
|
React__default['default'].createElement("path", { d: 'M32 58.215c14.478 0 26.215-11.737 26.215-26.215S46.478 5.785 32 5.785 5.785 17.522 5.785 32 17.522 58.215 32 58.215zM32 64C14.327 64 0 49.673 0 32 0 14.327 14.327 0 32 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32zm-7.412-45.56h2.892a2.17 2.17 0 0 1 2.17 2.17v23.865a2.17 2.17 0 0 1-2.17 2.17h-2.892a2.17 2.17 0 0 1-2.17-2.17V20.61a2.17 2.17 0 0 1 2.17-2.17zm12.293 0h2.893a2.17 2.17 0 0 1 2.17 2.17v23.865a2.17 2.17 0 0 1-2.17 2.17h-2.893a2.17 2.17 0 0 1-2.17-2.17V20.61a2.17 2.17 0 0 1 2.17-2.17z', fillRule: 'nonzero' }))))),
|
|
259
257
|
image_url && React__default['default'].createElement("img", { alt: "" + description, src: image_url })),
|
|
@@ -274,7 +272,7 @@ var UnMemoizedSafeAnchor = function (props) {
|
|
|
274
272
|
if (!href)
|
|
275
273
|
return null;
|
|
276
274
|
var sanitized = sanitizeUrl.sanitizeUrl(href);
|
|
277
|
-
return (React__default['default'].createElement("a", { className: className, download: download, href: sanitized, rel: rel, target: target }, children));
|
|
275
|
+
return (React__default['default'].createElement("a", { "aria-label": 'Attachment', className: className, download: download, href: sanitized, rel: rel, target: target }, children));
|
|
278
276
|
};
|
|
279
277
|
var SafeAnchor = React__default['default'].memo(UnMemoizedSafeAnchor);
|
|
280
278
|
|
|
@@ -323,10 +321,47 @@ var withTranslationContext = function (Component) {
|
|
|
323
321
|
return WithTranslationContextComponent;
|
|
324
322
|
};
|
|
325
323
|
|
|
324
|
+
var ChannelStateContext = React__default['default'].createContext(undefined);
|
|
325
|
+
var ChannelStateProvider = function (_a) {
|
|
326
|
+
var children = _a.children, value = _a.value;
|
|
327
|
+
return (React__default['default'].createElement(ChannelStateContext.Provider, { value: value }, children));
|
|
328
|
+
};
|
|
329
|
+
var useChannelStateContext = function (componentName) {
|
|
330
|
+
var contextValue = React.useContext(ChannelStateContext);
|
|
331
|
+
if (!contextValue) {
|
|
332
|
+
console.warn("The useChannelStateContext hook was called outside of the ChannelStateContext provider. Make sure this hook is called within a child of the Channel component. The errored call is located in the " + componentName + " component.");
|
|
333
|
+
return {};
|
|
334
|
+
}
|
|
335
|
+
return contextValue;
|
|
336
|
+
};
|
|
337
|
+
/**
|
|
338
|
+
* Typescript currently does not support partial inference, so if ChannelStateContext
|
|
339
|
+
* typing is desired while using the HOC withChannelStateContext, the Props for the
|
|
340
|
+
* wrapped component must be provided as the first generic.
|
|
341
|
+
*/
|
|
342
|
+
var withChannelStateContext = function (Component) {
|
|
343
|
+
var WithChannelStateContextComponent = function (props) {
|
|
344
|
+
var channelStateContext = useChannelStateContext();
|
|
345
|
+
return React__default['default'].createElement(Component, __assign({}, props, channelStateContext));
|
|
346
|
+
};
|
|
347
|
+
WithChannelStateContextComponent.displayName = (Component.displayName ||
|
|
348
|
+
Component.name ||
|
|
349
|
+
'Component').replace('Base', '');
|
|
350
|
+
return WithChannelStateContextComponent;
|
|
351
|
+
};
|
|
352
|
+
|
|
326
353
|
var UnMemoizedCard = function (props) {
|
|
327
|
-
var image_url = props.image_url, og_scrape_url = props.og_scrape_url, text = props.text, thumb_url = props.thumb_url, title = props.title, title_link = props.title_link, type = props.type;
|
|
354
|
+
var giphy = props.giphy, image_url = props.image_url, og_scrape_url = props.og_scrape_url, text = props.text, thumb_url = props.thumb_url, title = props.title, title_link = props.title_link, type = props.type;
|
|
328
355
|
var t = useTranslationContext('Card').t;
|
|
356
|
+
var giphyVersionName = useChannelStateContext('Card').giphyVersion;
|
|
329
357
|
var image = thumb_url || image_url;
|
|
358
|
+
var dimensions = {};
|
|
359
|
+
if (type === 'giphy' && typeof giphy !== 'undefined') {
|
|
360
|
+
var giphyVersion = giphy[giphyVersionName];
|
|
361
|
+
image = giphyVersion.url;
|
|
362
|
+
dimensions.height = giphyVersion.height;
|
|
363
|
+
dimensions.width = giphyVersion.width;
|
|
364
|
+
}
|
|
330
365
|
var trimUrl = function (url) {
|
|
331
366
|
if (url !== undefined && url !== null) {
|
|
332
367
|
var trimmedUrl = url.replace(/^(?:https?:\/\/)?(?:www\.)?/i, '').split('/')[0];
|
|
@@ -344,7 +379,7 @@ var UnMemoizedCard = function (props) {
|
|
|
344
379
|
}
|
|
345
380
|
return (React__default['default'].createElement("div", { className: "str-chat__message-attachment-card str-chat__message-attachment-card--" + type },
|
|
346
381
|
image && (React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--header' },
|
|
347
|
-
React__default['default'].createElement("img", { alt: image, src: image }))),
|
|
382
|
+
React__default['default'].createElement("img", __assign({ alt: image, src: image }, dimensions)))),
|
|
348
383
|
React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--content' },
|
|
349
384
|
React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--flex' },
|
|
350
385
|
title && React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--title' }, title),
|
|
@@ -366,19 +401,46 @@ var UnMemoizedFileAttachment = function (props) {
|
|
|
366
401
|
};
|
|
367
402
|
var FileAttachment = React__default['default'].memo(UnMemoizedFileAttachment);
|
|
368
403
|
|
|
369
|
-
var
|
|
370
|
-
var
|
|
371
|
-
|
|
372
|
-
|
|
404
|
+
var Modal = function (props) {
|
|
405
|
+
var children = props.children, onClose = props.onClose, open = props.open;
|
|
406
|
+
var t = useTranslationContext('Modal').t;
|
|
407
|
+
var innerRef = React.useRef(null);
|
|
408
|
+
var closeRef = React.useRef(null);
|
|
409
|
+
var handleClick = function (event) {
|
|
410
|
+
var _a, _b;
|
|
411
|
+
if ((event.target instanceof HTMLDivElement &&
|
|
412
|
+
!((_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)) &&
|
|
413
|
+
onClose) ||
|
|
414
|
+
(event.target instanceof HTMLButtonElement &&
|
|
415
|
+
((_b = closeRef.current) === null || _b === void 0 ? void 0 : _b.contains(event.target)) &&
|
|
416
|
+
onClose)) {
|
|
417
|
+
onClose();
|
|
418
|
+
}
|
|
419
|
+
};
|
|
420
|
+
React.useEffect(function () {
|
|
421
|
+
if (!open)
|
|
422
|
+
return function () { return null; };
|
|
423
|
+
var handleEscKey = function (event) {
|
|
424
|
+
if (event instanceof KeyboardEvent && event.key === 'Escape' && onClose) {
|
|
425
|
+
onClose();
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
document.addEventListener('keypress', handleEscKey);
|
|
429
|
+
return function () { return document.removeEventListener('keypress', handleEscKey); };
|
|
430
|
+
}, [onClose, open]);
|
|
431
|
+
var openClasses = open ? 'str-chat__modal--open' : 'str-chat__modal--closed';
|
|
432
|
+
return (React__default['default'].createElement("div", { className: "str-chat__modal " + openClasses, onClick: handleClick },
|
|
433
|
+
React__default['default'].createElement("button", { className: 'str-chat__modal__close-button', ref: closeRef, title: 'Close' },
|
|
434
|
+
t('Close'),
|
|
435
|
+
React__default['default'].createElement("svg", { height: '10', width: '10', xmlns: 'http://www.w3.org/2000/svg' },
|
|
436
|
+
React__default['default'].createElement("path", { d: 'M9.916 1.027L8.973.084 5 4.058 1.027.084l-.943.943L4.058 5 .084 8.973l.943.943L5 5.942l3.973 3.974.943-.943L5.942 5z', fillRule: 'evenodd' }))),
|
|
437
|
+
React__default['default'].createElement("div", { className: 'str-chat__modal__inner', ref: innerRef }, children)));
|
|
373
438
|
};
|
|
374
439
|
|
|
375
440
|
var ModalComponent = function (props) {
|
|
376
441
|
var images = props.images, index = props.index, modalIsOpen = props.modalIsOpen, toggleModal = props.toggleModal;
|
|
377
|
-
return (React__default['default'].createElement(
|
|
378
|
-
React__default['default'].createElement(
|
|
379
|
-
// @ts-expect-error
|
|
380
|
-
View: ModalImage,
|
|
381
|
-
}, currentIndex: index, views: images }))) : null));
|
|
442
|
+
return (React__default['default'].createElement(Modal, { onClose: toggleModal, open: modalIsOpen },
|
|
443
|
+
React__default['default'].createElement(ImageGallery__default['default'], { items: images, showIndex: true, showPlayButton: false, showThumbnails: false, startIndex: index })));
|
|
382
444
|
};
|
|
383
445
|
|
|
384
446
|
var UnMemoizedGallery = function (props) {
|
|
@@ -397,14 +459,16 @@ var UnMemoizedGallery = function (props) {
|
|
|
397
459
|
};
|
|
398
460
|
var formattedArray = React.useMemo(function () {
|
|
399
461
|
return images.map(function (image) { return ({
|
|
462
|
+
original: image.image_url || image.thumb_url || '',
|
|
463
|
+
originalAlt: 'User uploaded content',
|
|
400
464
|
source: image.image_url || image.thumb_url || '',
|
|
401
465
|
}); });
|
|
402
466
|
}, [images]);
|
|
403
|
-
var renderImages = images.slice(0, 3).map(function (image, i) { return (React__default['default'].createElement("
|
|
404
|
-
React__default['default'].createElement("img", { src: image.image_url || image.thumb_url }))); });
|
|
467
|
+
var renderImages = images.slice(0, 3).map(function (image, i) { return (React__default['default'].createElement("button", { className: 'str-chat__gallery-image', "data-testid": 'gallery-image', key: "gallery-image-" + i, onClick: function () { return toggleModal(i); } },
|
|
468
|
+
React__default['default'].createElement("img", { alt: 'User uploaded content', src: image.image_url || image.thumb_url }))); });
|
|
405
469
|
return (React__default['default'].createElement("div", { className: "str-chat__gallery " + (images.length > 3 ? 'str-chat__gallery--square' : '') },
|
|
406
470
|
renderImages,
|
|
407
|
-
images.length > 3 && (React__default['default'].createElement("
|
|
471
|
+
images.length > 3 && (React__default['default'].createElement("button", { className: 'str-chat__gallery-placeholder', onClick: function () { return toggleModal(3); }, style: {
|
|
408
472
|
backgroundImage: "url(" + images[3].image_url + ")",
|
|
409
473
|
} },
|
|
410
474
|
React__default['default'].createElement("p", null, t('{{ imageCount }} more', {
|
|
@@ -424,15 +488,19 @@ var ImageComponent = function (props) {
|
|
|
424
488
|
var _a = React.useState(false), modalIsOpen = _a[0], setModalIsOpen = _a[1];
|
|
425
489
|
var fallback = props.fallback, image_url = props.image_url, thumb_url = props.thumb_url;
|
|
426
490
|
var imageSrc = sanitizeUrl.sanitizeUrl(image_url || thumb_url);
|
|
427
|
-
var formattedArray = [
|
|
491
|
+
var formattedArray = [
|
|
492
|
+
{ original: imageSrc, originalAlt: 'User uploaded content', source: imageSrc },
|
|
493
|
+
];
|
|
428
494
|
var toggleModal = function () { return setModalIsOpen(!modalIsOpen); };
|
|
429
495
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
430
|
-
React__default['default'].createElement("img", { alt: fallback, className: 'str-chat__message-attachment--img', "data-testid": 'image-test', onClick: toggleModal, src: imageSrc }),
|
|
496
|
+
React__default['default'].createElement("img", { alt: fallback, className: 'str-chat__message-attachment--img', "data-testid": 'image-test', onClick: toggleModal, onKeyPress: toggleModal, src: imageSrc, tabIndex: 0 }),
|
|
431
497
|
React__default['default'].createElement(ModalComponent, { images: formattedArray, index: 0, modalIsOpen: modalIsOpen, toggleModal: toggleModal })));
|
|
432
498
|
};
|
|
433
499
|
|
|
434
500
|
var SUPPORTED_VIDEO_FORMATS = ['video/mp4', 'video/ogg', 'video/webm', 'video/quicktime'];
|
|
435
|
-
var isGalleryAttachmentType = function (output) {
|
|
501
|
+
var isGalleryAttachmentType = function (output) {
|
|
502
|
+
return output.images != null;
|
|
503
|
+
};
|
|
436
504
|
var isAudioAttachment = function (attachment) { return attachment.type === 'audio'; };
|
|
437
505
|
var isFileAttachment = function (attachment) {
|
|
438
506
|
return attachment.type === 'file' ||
|
|
@@ -600,14 +668,12 @@ var Item = /*#__PURE__*/React__default['default'].forwardRef(function Item(props
|
|
|
600
668
|
return /*#__PURE__*/React__default['default'].createElement("li", {
|
|
601
669
|
className: "rta__item ".concat(className || ''),
|
|
602
670
|
style: style
|
|
603
|
-
}, /*#__PURE__*/React__default['default'].createElement("
|
|
671
|
+
}, /*#__PURE__*/React__default['default'].createElement("button", {
|
|
604
672
|
className: "rta__entity ".concat(selected ? 'rta__entity--selected' : ''),
|
|
605
673
|
onClick: onClickHandler,
|
|
606
674
|
onFocus: selectItem,
|
|
607
675
|
onMouseEnter: selectItem,
|
|
608
|
-
ref: innerRef
|
|
609
|
-
role: "button",
|
|
610
|
-
tabIndex: 0
|
|
676
|
+
ref: innerRef
|
|
611
677
|
}, /*#__PURE__*/React__default['default'].createElement(Component, {
|
|
612
678
|
entity: item,
|
|
613
679
|
selected: selected
|
|
@@ -684,6 +750,23 @@ var messageCodeBlocks = function (message) {
|
|
|
684
750
|
var matches = message.match(codeRegex);
|
|
685
751
|
return matches || [];
|
|
686
752
|
};
|
|
753
|
+
var detectHttp = /(http(s?):\/\/)?(www\.)?/;
|
|
754
|
+
function formatUrlForDisplay(url) {
|
|
755
|
+
try {
|
|
756
|
+
return decodeURIComponent(url).replace(detectHttp, '');
|
|
757
|
+
}
|
|
758
|
+
catch (e) {
|
|
759
|
+
return url;
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
function encodeDecode(url) {
|
|
763
|
+
try {
|
|
764
|
+
return encodeURI(decodeURIComponent(url));
|
|
765
|
+
}
|
|
766
|
+
catch (error) {
|
|
767
|
+
return url;
|
|
768
|
+
}
|
|
769
|
+
}
|
|
687
770
|
var markDownRenderers = {
|
|
688
771
|
// eslint-disable-next-line react/display-name
|
|
689
772
|
link: function (props) {
|
|
@@ -748,7 +831,6 @@ var renderText = function (text, mentioned_users, options) {
|
|
|
748
831
|
var newText = text;
|
|
749
832
|
var markdownLinks = matchMarkdownLinks(newText);
|
|
750
833
|
var codeBlocks = messageCodeBlocks(newText);
|
|
751
|
-
var detectHttp = /(http(s?):\/\/)?(www\.)?/;
|
|
752
834
|
// extract all valid links/emails within text and replace it with proper markup
|
|
753
835
|
uniqBy__default['default'](linkify__namespace.find(newText), 'value').forEach(function (_a) {
|
|
754
836
|
var href = _a.href, type = _a.type, value = _a.value;
|
|
@@ -764,8 +846,12 @@ var renderText = function (text, mentioned_users, options) {
|
|
|
764
846
|
});
|
|
765
847
|
if (noParsingNeeded.length > 0 || linkIsInBlock)
|
|
766
848
|
return;
|
|
767
|
-
|
|
768
|
-
|
|
849
|
+
try {
|
|
850
|
+
var displayLink = type === 'email' ? value : formatUrlForDisplay(href);
|
|
851
|
+
newText = newText.replace(new RegExp(escapeRegExp(value), 'g'), "[" + displayLink + "](" + encodeDecode(href) + ")");
|
|
852
|
+
}
|
|
853
|
+
catch (e) {
|
|
854
|
+
}
|
|
769
855
|
});
|
|
770
856
|
var plugins = [emojiMarkdownPlugin];
|
|
771
857
|
if (mentioned_users === null || mentioned_users === void 0 ? void 0 : mentioned_users.length) {
|
|
@@ -1025,7 +1111,6 @@ var List = function List(props) {
|
|
|
1025
1111
|
|
|
1026
1112
|
if ((event.which === KEY_CODES.ENTER || event.which === KEY_CODES.TAB) && selectedItem !== undefined) {
|
|
1027
1113
|
handleClick(event);
|
|
1028
|
-
return setSelectedItem(undefined);
|
|
1029
1114
|
}
|
|
1030
1115
|
|
|
1031
1116
|
return null;
|
|
@@ -1324,7 +1409,7 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1324
1409
|
value: newText
|
|
1325
1410
|
}, function () {
|
|
1326
1411
|
// fire onChange event after successful selection
|
|
1327
|
-
var e = new
|
|
1412
|
+
var e = new CustomEvent('change', {
|
|
1328
1413
|
bubbles: true
|
|
1329
1414
|
});
|
|
1330
1415
|
|
|
@@ -1379,7 +1464,7 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1379
1464
|
value: valueToReplace
|
|
1380
1465
|
}, function () {
|
|
1381
1466
|
// fire onChange event after successful selection
|
|
1382
|
-
var e = new
|
|
1467
|
+
var e = new CustomEvent('change', {
|
|
1383
1468
|
bubbles: true
|
|
1384
1469
|
});
|
|
1385
1470
|
|
|
@@ -1534,13 +1619,6 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1534
1619
|
return data;
|
|
1535
1620
|
});
|
|
1536
1621
|
|
|
1537
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_createRegExp", function () {
|
|
1538
|
-
var trigger = _this.props.trigger; // negative lookahead to match only the trigger + the actual token = "bladhwd:adawd:word test" => ":word"
|
|
1539
|
-
// https://stackoverflow.com/a/8057827/2719917
|
|
1540
|
-
|
|
1541
|
-
_this.tokenRegExp = new RegExp("([".concat(Object.keys(trigger).join(''), "])(?:(?!\\1)[^\\s])*$"));
|
|
1542
|
-
});
|
|
1543
|
-
|
|
1544
1622
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_closeAutocomplete", function () {
|
|
1545
1623
|
_this.setState({
|
|
1546
1624
|
currentTrigger: null,
|
|
@@ -1759,8 +1837,6 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1759
1837
|
_value = _this$props6.value; // TODO: it would be better to have the parent control state...
|
|
1760
1838
|
// if (value) this.state.value = value;
|
|
1761
1839
|
|
|
1762
|
-
_this._createRegExp();
|
|
1763
|
-
|
|
1764
1840
|
if (!loadingComponent) {
|
|
1765
1841
|
throw new Error('RTA: loadingComponent is not defined');
|
|
1766
1842
|
}
|
|
@@ -1815,40 +1891,12 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1815
1891
|
});
|
|
1816
1892
|
Listeners.startListen();
|
|
1817
1893
|
}
|
|
1818
|
-
}, {
|
|
1819
|
-
key: "UNSAFE_componentWillReceiveProps",
|
|
1820
|
-
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
1821
|
-
this._update(nextProps);
|
|
1822
|
-
}
|
|
1823
1894
|
}, {
|
|
1824
1895
|
key: "componentWillUnmount",
|
|
1825
1896
|
value: function componentWillUnmount() {
|
|
1826
1897
|
Listeners.stopListen();
|
|
1827
1898
|
Listeners.remove(this.state.listenerIndex);
|
|
1828
1899
|
}
|
|
1829
|
-
}, {
|
|
1830
|
-
key: "_update",
|
|
1831
|
-
value: // TODO: This is an anti pattern in react, should come up with a better way
|
|
1832
|
-
function _update(_ref) {
|
|
1833
|
-
var trigger = _ref.trigger,
|
|
1834
|
-
value = _ref.value;
|
|
1835
|
-
var oldValue = this.state.value;
|
|
1836
|
-
var oldTrigger = this.props.trigger;
|
|
1837
|
-
if (value !== oldValue || !oldValue) this.setState({
|
|
1838
|
-
value: value
|
|
1839
|
-
});
|
|
1840
|
-
/**
|
|
1841
|
-
* check if trigger chars are changed, if so, change the regexp accordingly
|
|
1842
|
-
*/
|
|
1843
|
-
|
|
1844
|
-
if (Object.keys(trigger).join('') !== Object.keys(oldTrigger).join('')) {
|
|
1845
|
-
this._createRegExp();
|
|
1846
|
-
}
|
|
1847
|
-
}
|
|
1848
|
-
/**
|
|
1849
|
-
* Close autocomplete, also clean up trigger (to avoid slow promises)
|
|
1850
|
-
*/
|
|
1851
|
-
|
|
1852
1900
|
}, {
|
|
1853
1901
|
key: "renderSuggestionListContainer",
|
|
1854
1902
|
value: function renderSuggestionListContainer() {
|
|
@@ -1869,8 +1917,8 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1869
1917
|
if (triggerProps.values && triggerProps.currentTrigger && !(disableMentions && triggerProps.currentTrigger === '@')) {
|
|
1870
1918
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1871
1919
|
className: "rta__autocomplete ".concat(dropdownClassName || ''),
|
|
1872
|
-
ref: function ref(
|
|
1873
|
-
_this3.dropdownRef =
|
|
1920
|
+
ref: function ref(_ref) {
|
|
1921
|
+
_this3.dropdownRef = _ref;
|
|
1874
1922
|
},
|
|
1875
1923
|
style: dropdownStyle
|
|
1876
1924
|
}, /*#__PURE__*/React__default['default'].createElement(SuggestionList, _extends__default['default']({
|
|
@@ -1912,14 +1960,34 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1912
1960
|
onFocus: this.props.onFocus,
|
|
1913
1961
|
onScroll: this._onScrollHandler,
|
|
1914
1962
|
onSelect: this._selectHandler,
|
|
1915
|
-
ref: function ref(
|
|
1916
|
-
if (_this4.props.innerRef) _this4.props.innerRef(
|
|
1917
|
-
_this4.textareaRef =
|
|
1963
|
+
ref: function ref(_ref2) {
|
|
1964
|
+
if (_this4.props.innerRef) _this4.props.innerRef(_ref2);
|
|
1965
|
+
_this4.textareaRef = _ref2;
|
|
1918
1966
|
},
|
|
1919
1967
|
style: style,
|
|
1920
1968
|
value: value
|
|
1921
1969
|
}, this.props.additionalTextareaProps)));
|
|
1922
1970
|
}
|
|
1971
|
+
}], [{
|
|
1972
|
+
key: "getDerivedStateFromProps",
|
|
1973
|
+
value:
|
|
1974
|
+
/**
|
|
1975
|
+
* setup to emulate the UNSAFE_componentWillReceiveProps
|
|
1976
|
+
*/
|
|
1977
|
+
function getDerivedStateFromProps(props, state) {
|
|
1978
|
+
if (props.value !== state.propsValue || !state.value) {
|
|
1979
|
+
return {
|
|
1980
|
+
propsValue: props.value,
|
|
1981
|
+
value: props.value
|
|
1982
|
+
};
|
|
1983
|
+
} else {
|
|
1984
|
+
return null;
|
|
1985
|
+
}
|
|
1986
|
+
}
|
|
1987
|
+
/**
|
|
1988
|
+
* Close autocomplete, also clean up trigger (to avoid slow promises)
|
|
1989
|
+
*/
|
|
1990
|
+
|
|
1923
1991
|
}]);
|
|
1924
1992
|
|
|
1925
1993
|
return ReactTextareaAutocomplete;
|
|
@@ -2065,7 +2133,7 @@ var getStrippedEmojiData = function (data) { return (__assign(__assign({}, data)
|
|
|
2065
2133
|
|
|
2066
2134
|
var useCreateChannelStateContext = function (value) {
|
|
2067
2135
|
var _a;
|
|
2068
|
-
var acceptedFiles = value.acceptedFiles, channel = value.channel, _b = value.channelCapabilitiesArray, channelCapabilitiesArray = _b === void 0 ? [] : _b, channelConfig = value.channelConfig, dragAndDropWindow = value.dragAndDropWindow, error = value.error, hasMore = value.hasMore, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _c = value.messages, messages = _c === void 0 ? [] : _c, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _d = value.read, read = _d === void 0 ? {} : _d, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _e = value.threadMessages, threadMessages = _e === void 0 ? [] : _e, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
|
|
2136
|
+
var acceptedFiles = value.acceptedFiles, channel = value.channel, _b = value.channelCapabilitiesArray, channelCapabilitiesArray = _b === void 0 ? [] : _b, channelConfig = value.channelConfig, dragAndDropWindow = value.dragAndDropWindow, giphyVersion = value.giphyVersion, error = value.error, hasMore = value.hasMore, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _c = value.messages, messages = _c === void 0 ? [] : _c, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _d = value.read, read = _d === void 0 ? {} : _d, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _e = value.threadMessages, threadMessages = _e === void 0 ? [] : _e, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
|
|
2069
2137
|
var channelId = channel.cid;
|
|
2070
2138
|
var lastRead = channel.initialized && ((_a = channel.lastRead()) === null || _a === void 0 ? void 0 : _a.getTime());
|
|
2071
2139
|
var membersLength = Object.keys(members || []).length;
|
|
@@ -2112,6 +2180,7 @@ var useCreateChannelStateContext = function (value) {
|
|
|
2112
2180
|
channelConfig: channelConfig,
|
|
2113
2181
|
dragAndDropWindow: dragAndDropWindow,
|
|
2114
2182
|
error: error,
|
|
2183
|
+
giphyVersion: giphyVersion,
|
|
2115
2184
|
hasMore: hasMore,
|
|
2116
2185
|
loading: loading,
|
|
2117
2186
|
loadingMore: loadingMore,
|
|
@@ -2277,35 +2346,6 @@ var LoadingIndicator = React__default['default'].memo(UnMemoizedLoadingIndicator
|
|
|
2277
2346
|
return prevProps.color === nextProps.color && prevProps.size === nextProps.size;
|
|
2278
2347
|
});
|
|
2279
2348
|
|
|
2280
|
-
var ChannelStateContext = React__default['default'].createContext(undefined);
|
|
2281
|
-
var ChannelStateProvider = function (_a) {
|
|
2282
|
-
var children = _a.children, value = _a.value;
|
|
2283
|
-
return (React__default['default'].createElement(ChannelStateContext.Provider, { value: value }, children));
|
|
2284
|
-
};
|
|
2285
|
-
var useChannelStateContext = function (componentName) {
|
|
2286
|
-
var contextValue = React.useContext(ChannelStateContext);
|
|
2287
|
-
if (!contextValue) {
|
|
2288
|
-
console.warn("The useChannelStateContext hook was called outside of the ChannelStateContext provider. Make sure this hook is called within a child of the Channel component. The errored call is located in the " + componentName + " component.");
|
|
2289
|
-
return {};
|
|
2290
|
-
}
|
|
2291
|
-
return contextValue;
|
|
2292
|
-
};
|
|
2293
|
-
/**
|
|
2294
|
-
* Typescript currently does not support partial inference, so if ChannelStateContext
|
|
2295
|
-
* typing is desired while using the HOC withChannelStateContext, the Props for the
|
|
2296
|
-
* wrapped component must be provided as the first generic.
|
|
2297
|
-
*/
|
|
2298
|
-
var withChannelStateContext = function (Component) {
|
|
2299
|
-
var WithChannelStateContextComponent = function (props) {
|
|
2300
|
-
var channelStateContext = useChannelStateContext();
|
|
2301
|
-
return React__default['default'].createElement(Component, __assign({}, props, channelStateContext));
|
|
2302
|
-
};
|
|
2303
|
-
WithChannelStateContextComponent.displayName = (Component.displayName ||
|
|
2304
|
-
Component.name ||
|
|
2305
|
-
'Component').replace('Base', '');
|
|
2306
|
-
return WithChannelStateContextComponent;
|
|
2307
|
-
};
|
|
2308
|
-
|
|
2309
2349
|
var useUserRole = function (message, onlySenderCanEdit, disableQuotedMessages) {
|
|
2310
2350
|
var _a, _b, _c;
|
|
2311
2351
|
var _d = useChannelStateContext('useUserRole'), channel = _d.channel, _e = _d.channelCapabilities, channelCapabilities = _e === void 0 ? {} : _e, channelConfig = _d.channelConfig;
|
|
@@ -2322,7 +2362,7 @@ var useUserRole = function (message, onlySenderCanEdit, disableQuotedMessages) {
|
|
|
2322
2362
|
(isMyMessage && channelCapabilities['delete-own-message']);
|
|
2323
2363
|
var canFlag = !isMyMessage;
|
|
2324
2364
|
var canMute = !isMyMessage && (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.mutes);
|
|
2325
|
-
var canQuote = !disableQuotedMessages;
|
|
2365
|
+
var canQuote = !disableQuotedMessages && channelCapabilities['quote-message'];
|
|
2326
2366
|
var canReact = (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.reactions) !== false && channelCapabilities['send-reaction'];
|
|
2327
2367
|
var canReply = (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.replies) !== false && channelCapabilities['send-reply'];
|
|
2328
2368
|
return {
|
|
@@ -2519,10 +2559,15 @@ var getMessageActions = function (actions, _a) {
|
|
|
2519
2559
|
}
|
|
2520
2560
|
return messageActionsAfterPermission;
|
|
2521
2561
|
};
|
|
2522
|
-
var
|
|
2562
|
+
var ACTIONS_NOT_WORKING_IN_THREAD = ['pin', 'react', 'reply'];
|
|
2563
|
+
var showMessageActionsBox = function (actions, inThread) {
|
|
2523
2564
|
if (actions.length === 0) {
|
|
2524
2565
|
return false;
|
|
2525
2566
|
}
|
|
2567
|
+
if (inThread &&
|
|
2568
|
+
actions.filter(function (action) { return !ACTIONS_NOT_WORKING_IN_THREAD.includes(action); }).length === 0) {
|
|
2569
|
+
return false;
|
|
2570
|
+
}
|
|
2526
2571
|
if (actions.length === 1 && (actions.includes('react') || actions.includes('reply'))) {
|
|
2527
2572
|
return false;
|
|
2528
2573
|
}
|
|
@@ -2718,8 +2763,7 @@ var CustomMessageActionsList = function (props) {
|
|
|
2718
2763
|
var customActionsArray = Object.keys(customMessageActions);
|
|
2719
2764
|
return (React__default['default'].createElement(React__default['default'].Fragment, null, customActionsArray.map(function (customAction) {
|
|
2720
2765
|
var customHandler = customMessageActions[customAction];
|
|
2721
|
-
return (React__default['default'].createElement("button", { key: customAction, onClick: function (event) { return customHandler(message, event); } },
|
|
2722
|
-
React__default['default'].createElement("li", { className: 'str-chat__message-actions-list-item' }, customAction)));
|
|
2766
|
+
return (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', key: customAction, onClick: function (event) { return customHandler(message, event); }, role: 'option' }, customAction));
|
|
2723
2767
|
})));
|
|
2724
2768
|
};
|
|
2725
2769
|
var UnMemoizedMessageActionsBox = function (props) {
|
|
@@ -2746,32 +2790,26 @@ var UnMemoizedMessageActionsBox = function (props) {
|
|
|
2746
2790
|
}, [messageListRect, mine, open]);
|
|
2747
2791
|
var handleQuote = function () {
|
|
2748
2792
|
setQuotedMessage(message);
|
|
2749
|
-
var elements =
|
|
2793
|
+
var elements = message.parent_id
|
|
2794
|
+
? document.querySelectorAll('.str-chat__thread .str-chat__textarea__textarea')
|
|
2795
|
+
: document.getElementsByClassName('str-chat__textarea__textarea');
|
|
2750
2796
|
var textarea = elements.item(0);
|
|
2751
2797
|
if (textarea instanceof HTMLTextAreaElement) {
|
|
2752
2798
|
textarea.focus();
|
|
2753
2799
|
}
|
|
2754
2800
|
};
|
|
2755
2801
|
return (React__default['default'].createElement("div", { className: "str-chat__message-actions-box\n " + (open ? 'str-chat__message-actions-box--open' : '') + "\n " + (mine ? 'str-chat__message-actions-box--mine' : '') + "\n " + (reverse ? 'str-chat__message-actions-box--reverse' : '') + "\n ", "data-testid": 'message-actions-box', ref: checkIfReverse },
|
|
2756
|
-
React__default['default'].createElement("
|
|
2802
|
+
React__default['default'].createElement("div", { "aria-label": 'Message Options', className: 'str-chat__message-actions-list', role: 'listbox' },
|
|
2757
2803
|
customMessageActions && (React__default['default'].createElement(CustomMessageActionsList, { customMessageActions: customMessageActions, message: message })),
|
|
2758
|
-
messageActions.indexOf(MESSAGE_ACTIONS.quote) > -1 &&
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
messageActions.indexOf(MESSAGE_ACTIONS.
|
|
2763
|
-
|
|
2764
|
-
messageActions.indexOf(MESSAGE_ACTIONS.flag) > -1 && (React__default['default'].createElement("button", { onClick: handleFlag },
|
|
2765
|
-
React__default['default'].createElement("li", { className: 'str-chat__message-actions-list-item' }, t('Flag')))),
|
|
2766
|
-
messageActions.indexOf(MESSAGE_ACTIONS.mute) > -1 && (React__default['default'].createElement("button", { onClick: handleMute },
|
|
2767
|
-
React__default['default'].createElement("li", { className: 'str-chat__message-actions-list-item' }, isUserMuted() ? t('Unmute') : t('Mute')))),
|
|
2768
|
-
messageActions.indexOf(MESSAGE_ACTIONS.edit) > -1 && (React__default['default'].createElement("button", { onClick: handleEdit },
|
|
2769
|
-
React__default['default'].createElement("li", { className: 'str-chat__message-actions-list-item' }, t('Edit Message')))),
|
|
2770
|
-
messageActions.indexOf(MESSAGE_ACTIONS.delete) > -1 && (React__default['default'].createElement("button", { onClick: handleDelete },
|
|
2771
|
-
React__default['default'].createElement("li", { className: 'str-chat__message-actions-list-item' }, t('Delete')))))));
|
|
2804
|
+
messageActions.indexOf(MESSAGE_ACTIONS.quote) > -1 && !message.quoted_message && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleQuote, role: 'option' }, t('Reply'))),
|
|
2805
|
+
messageActions.indexOf(MESSAGE_ACTIONS.pin) > -1 && !message.parent_id && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handlePin, role: 'option' }, !message.pinned ? t('Pin') : t('Unpin'))),
|
|
2806
|
+
messageActions.indexOf(MESSAGE_ACTIONS.flag) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleFlag, role: 'option' }, t('Flag'))),
|
|
2807
|
+
messageActions.indexOf(MESSAGE_ACTIONS.mute) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleMute, role: 'option' }, isUserMuted() ? t('Unmute') : t('Mute'))),
|
|
2808
|
+
messageActions.indexOf(MESSAGE_ACTIONS.edit) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleEdit, role: 'option' }, t('Edit Message'))),
|
|
2809
|
+
messageActions.indexOf(MESSAGE_ACTIONS.delete) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleDelete, role: 'option' }, t('Delete'))))));
|
|
2772
2810
|
};
|
|
2773
2811
|
/**
|
|
2774
|
-
* A popup box that displays the available actions on a message, such edit, delete, pin, etc.
|
|
2812
|
+
* A popup box that displays the available actions on a message, such as edit, delete, pin, etc.
|
|
2775
2813
|
*/
|
|
2776
2814
|
var MessageActionsBox = React__default['default'].memo(UnMemoizedMessageActionsBox);
|
|
2777
2815
|
|
|
@@ -2787,7 +2825,12 @@ var MessageActions = function (props) {
|
|
|
2787
2825
|
var message = propMessage || contextMessage;
|
|
2788
2826
|
var _d = React.useState(false), actionsBoxOpen = _d[0], setActionsBoxOpen = _d[1];
|
|
2789
2827
|
var isMuted = React.useCallback(function () { return isUserMuted(message, mutes); }, [message, mutes]);
|
|
2790
|
-
var hideOptions = React.useCallback(function () {
|
|
2828
|
+
var hideOptions = React.useCallback(function (event) {
|
|
2829
|
+
if (event instanceof KeyboardEvent && event.key !== 'Escape') {
|
|
2830
|
+
return;
|
|
2831
|
+
}
|
|
2832
|
+
setActionsBoxOpen(false);
|
|
2833
|
+
}, []);
|
|
2791
2834
|
var messageActions = getMessageActions();
|
|
2792
2835
|
var messageDeletedAt = !!(message === null || message === void 0 ? void 0 : message.deleted_at);
|
|
2793
2836
|
React.useEffect(function () {
|
|
@@ -2801,19 +2844,21 @@ var MessageActions = function (props) {
|
|
|
2801
2844
|
}
|
|
2802
2845
|
}, [hideOptions, messageDeletedAt]);
|
|
2803
2846
|
React.useEffect(function () {
|
|
2804
|
-
if (actionsBoxOpen)
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2847
|
+
if (!actionsBoxOpen)
|
|
2848
|
+
return;
|
|
2849
|
+
document.addEventListener('click', hideOptions);
|
|
2850
|
+
document.addEventListener('keyup', hideOptions);
|
|
2851
|
+
return function () {
|
|
2808
2852
|
document.removeEventListener('click', hideOptions);
|
|
2809
|
-
|
|
2810
|
-
|
|
2853
|
+
document.removeEventListener('keyup', hideOptions);
|
|
2854
|
+
};
|
|
2811
2855
|
}, [actionsBoxOpen, hideOptions]);
|
|
2812
2856
|
if (!messageActions.length && !customMessageActions)
|
|
2813
2857
|
return null;
|
|
2814
2858
|
return (React__default['default'].createElement(MessageActionsWrapper, { customWrapperClass: customWrapperClass, inline: inline, setActionsBoxOpen: setActionsBoxOpen },
|
|
2815
2859
|
React__default['default'].createElement(MessageActionsBox, { getMessageActions: getMessageActions, handleDelete: handleDelete, handleEdit: setEditingState, handleFlag: handleFlag, handleMute: handleMute, handlePin: handlePin, isUserMuted: isMuted, mine: mine ? mine() : isMyMessage(), open: actionsBoxOpen }),
|
|
2816
|
-
React__default['default'].createElement(
|
|
2860
|
+
React__default['default'].createElement("button", { "aria-expanded": actionsBoxOpen, "aria-haspopup": 'true', "aria-label": 'Open Message Actions Menu' },
|
|
2861
|
+
React__default['default'].createElement(ActionsIcon$1, null))));
|
|
2817
2862
|
};
|
|
2818
2863
|
var MessageActionsWrapper = function (props) {
|
|
2819
2864
|
var children = props.children, customWrapperClass = props.customWrapperClass, inline = props.inline, setActionsBoxOpen = props.setActionsBoxOpen;
|
|
@@ -2821,7 +2866,7 @@ var MessageActionsWrapper = function (props) {
|
|
|
2821
2866
|
var wrapperClass = customWrapperClass || defaultWrapperClass;
|
|
2822
2867
|
var onClickOptionsAction = function (event) {
|
|
2823
2868
|
event.stopPropagation();
|
|
2824
|
-
setActionsBoxOpen(
|
|
2869
|
+
setActionsBoxOpen(function (prev) { return !prev; });
|
|
2825
2870
|
};
|
|
2826
2871
|
var wrapperProps = {
|
|
2827
2872
|
className: wrapperClass,
|
|
@@ -2838,7 +2883,7 @@ var UnMemoizedMessageOptions = function (props) {
|
|
|
2838
2883
|
var _g = useMessageContext('MessageOptions'), customMessageActions = _g.customMessageActions, getMessageActions = _g.getMessageActions, contextHandleOpenThread = _g.handleOpenThread, initialMessage = _g.initialMessage, isMyMessage = _g.isMyMessage, message = _g.message, onReactionListClick = _g.onReactionListClick, threadList = _g.threadList;
|
|
2839
2884
|
var handleOpenThread = propHandleOpenThread || contextHandleOpenThread;
|
|
2840
2885
|
var messageActions = getMessageActions();
|
|
2841
|
-
var showActionsBox = showMessageActionsBox(messageActions) || !!customMessageActions;
|
|
2886
|
+
var showActionsBox = showMessageActionsBox(messageActions, threadList) || !!customMessageActions;
|
|
2842
2887
|
var shouldShowReactions = messageActions.indexOf(MESSAGE_ACTIONS.react) > -1;
|
|
2843
2888
|
var shouldShowReplies = messageActions.indexOf(MESSAGE_ACTIONS.reply) > -1 && displayReplies && !threadList;
|
|
2844
2889
|
if (!message.type ||
|
|
@@ -2853,15 +2898,15 @@ var UnMemoizedMessageOptions = function (props) {
|
|
|
2853
2898
|
if (isMyMessage() && displayLeft) {
|
|
2854
2899
|
return (React__default['default'].createElement("div", { className: "str-chat__message-" + theme + "__actions", "data-testid": 'message-options-left' },
|
|
2855
2900
|
showActionsBox && (React__default['default'].createElement(MessageActions, { ActionsIcon: ActionsIcon$1, messageWrapperRef: messageWrapperRef })),
|
|
2856
|
-
shouldShowReplies && (React__default['default'].createElement("
|
|
2901
|
+
shouldShowReplies && (React__default['default'].createElement("button", { "aria-label": 'Open Thread', className: "str-chat__message-" + theme + "__actions__action str-chat__message-" + theme + "__actions__action--thread", "data-testid": 'thread-action', onClick: handleOpenThread },
|
|
2857
2902
|
React__default['default'].createElement(ThreadIcon$1, null))),
|
|
2858
|
-
shouldShowReactions && (React__default['default'].createElement("
|
|
2903
|
+
shouldShowReactions && (React__default['default'].createElement("button", { "aria-label": 'Open Reaction Selector', className: "str-chat__message-" + theme + "__actions__action str-chat__message-" + theme + "__actions__action--reactions", "data-testid": 'message-reaction-action', onClick: onReactionListClick },
|
|
2859
2904
|
React__default['default'].createElement(ReactionIcon$1, null)))));
|
|
2860
2905
|
}
|
|
2861
2906
|
return (React__default['default'].createElement("div", { className: "str-chat__message-" + theme + "__actions", "data-testid": 'message-options' },
|
|
2862
|
-
shouldShowReactions && (React__default['default'].createElement("
|
|
2907
|
+
shouldShowReactions && (React__default['default'].createElement("button", { "aria-label": 'Open Reaction Selector', className: "str-chat__message-" + theme + "__actions__action str-chat__message-" + theme + "__actions__action--reactions", "data-testid": 'message-reaction-action', onClick: onReactionListClick },
|
|
2863
2908
|
React__default['default'].createElement(ReactionIcon$1, null))),
|
|
2864
|
-
shouldShowReplies && (React__default['default'].createElement("
|
|
2909
|
+
shouldShowReplies && (React__default['default'].createElement("button", { "aria-label": 'Open Thread', className: "str-chat__message-" + theme + "__actions__action str-chat__message-" + theme + "__actions__action--thread", "data-testid": 'thread-action', onClick: handleOpenThread },
|
|
2865
2910
|
React__default['default'].createElement(ThreadIcon$1, null))),
|
|
2866
2911
|
showActionsBox && (React__default['default'].createElement(MessageActions, { ActionsIcon: ActionsIcon$1, messageWrapperRef: messageWrapperRef }))));
|
|
2867
2912
|
};
|
|
@@ -3634,7 +3679,9 @@ var useCommandTrigger = function () {
|
|
|
3634
3679
|
});
|
|
3635
3680
|
var result = selectedCommands.slice(0, 10);
|
|
3636
3681
|
if (onReady)
|
|
3637
|
-
onReady(result.filter(function (result) {
|
|
3682
|
+
onReady(result.filter(function (result) {
|
|
3683
|
+
return result.name !== undefined;
|
|
3684
|
+
}), query);
|
|
3638
3685
|
return result;
|
|
3639
3686
|
},
|
|
3640
3687
|
output: function (entity) { return ({
|
|
@@ -3740,7 +3787,7 @@ var searchLocalUsers = function (params) {
|
|
|
3740
3787
|
var transliterate;
|
|
3741
3788
|
return __generator(this, function (_a) {
|
|
3742
3789
|
switch (_a.label) {
|
|
3743
|
-
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@
|
|
3790
|
+
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@stream-io/transliterate')); })];
|
|
3744
3791
|
case 1:
|
|
3745
3792
|
transliterate = (_a.sent()).default;
|
|
3746
3793
|
updatedName = transliterate(user.name || '').toLowerCase();
|
|
@@ -4103,7 +4150,7 @@ var FileUploadIconFlat = function () {
|
|
|
4103
4150
|
var SendButton = function (_a) {
|
|
4104
4151
|
var sendMessage = _a.sendMessage;
|
|
4105
4152
|
var t = useTranslationContext('SendButton').t;
|
|
4106
|
-
return (React__default['default'].createElement("button", { className: 'str-chat__send-button', onClick: sendMessage },
|
|
4153
|
+
return (React__default['default'].createElement("button", { "aria-label": 'Send', className: 'str-chat__send-button', onClick: sendMessage },
|
|
4107
4154
|
React__default['default'].createElement("svg", { height: '17', viewBox: '0 0 18 17', width: '18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
4108
4155
|
React__default['default'].createElement("title", null, t('Send')),
|
|
4109
4156
|
React__default['default'].createElement("path", { d: 'M0 17.015l17.333-8.508L0 0v6.617l12.417 1.89L0 10.397z', fill: '#006cff', fillRule: 'evenodd' }))));
|
|
@@ -4112,24 +4159,12 @@ var SendButton = function (_a) {
|
|
|
4112
4159
|
var UploadsPreview = function () {
|
|
4113
4160
|
var _a = useChannelStateContext('UploadsPreview'), maxNumberOfFiles = _a.maxNumberOfFiles, multipleUploads = _a.multipleUploads;
|
|
4114
4161
|
var messageInput = useMessageInputContext('UploadsPreview');
|
|
4115
|
-
var fileOrder = messageInput.fileOrder, fileUploads = messageInput.fileUploads, imageOrder = messageInput.imageOrder, imageUploads = messageInput.imageUploads, numberOfUploads = messageInput.numberOfUploads, removeFile = messageInput.removeFile, removeImage = messageInput.removeImage,
|
|
4162
|
+
var fileOrder = messageInput.fileOrder, fileUploads = messageInput.fileUploads, imageOrder = messageInput.imageOrder, imageUploads = messageInput.imageUploads, numberOfUploads = messageInput.numberOfUploads, removeFile = messageInput.removeFile, removeImage = messageInput.removeImage, uploadFile = messageInput.uploadFile, uploadImage = messageInput.uploadImage, uploadNewFiles = messageInput.uploadNewFiles;
|
|
4116
4163
|
var imagesToPreview = imageOrder.map(function (id) { return imageUploads[id]; });
|
|
4117
4164
|
var filesToPreview = fileOrder.map(function (id) { return fileUploads[id]; });
|
|
4118
|
-
var device = useBreakpoint().device;
|
|
4119
|
-
React.useEffect(function () {
|
|
4120
|
-
var elements = document.getElementsByClassName('str-chat__send-button');
|
|
4121
|
-
var sendButton = elements.item(0);
|
|
4122
|
-
if (sendButton instanceof HTMLButtonElement) {
|
|
4123
|
-
if ((numberOfUploads && !text) || device !== 'full') {
|
|
4124
|
-
sendButton.style.display = 'block';
|
|
4125
|
-
}
|
|
4126
|
-
else {
|
|
4127
|
-
sendButton.style.display = 'none';
|
|
4128
|
-
}
|
|
4129
|
-
}
|
|
4130
|
-
}, [device, numberOfUploads, text]);
|
|
4131
4165
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
4132
|
-
imageOrder.length > 0 && (React__default['default'].createElement(reactFileUtils.ImagePreviewer, { disabled:
|
|
4166
|
+
imageOrder.length > 0 && (React__default['default'].createElement(reactFileUtils.ImagePreviewer, { disabled: !multipleUploads ||
|
|
4167
|
+
(maxNumberOfFiles !== undefined && numberOfUploads >= maxNumberOfFiles), handleFiles: uploadNewFiles, handleRemove: removeImage, handleRetry: uploadImage, imageUploads: imagesToPreview, multiple: multipleUploads })),
|
|
4133
4168
|
fileOrder.length > 0 && (React__default['default'].createElement(reactFileUtils.FilePreviewer, { handleFiles: uploadNewFiles, handleRemove: removeFile, handleRetry: uploadFile, uploads: filesToPreview }))));
|
|
4134
4169
|
};
|
|
4135
4170
|
|
|
@@ -4139,32 +4174,34 @@ var UnMemoizedChatAutoComplete = function (props) {
|
|
|
4139
4174
|
var messageInput = useMessageInputContext('ChatAutoComplete');
|
|
4140
4175
|
var cooldownRemaining = messageInput.cooldownRemaining, disabled = messageInput.disabled, emojiIndex = messageInput.emojiIndex, innerRef = messageInput.textareaRef;
|
|
4141
4176
|
var placeholder = props.placeholder || t('Type your message');
|
|
4142
|
-
var emojiReplace =
|
|
4143
|
-
var
|
|
4144
|
-
|
|
4145
|
-
.
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4177
|
+
var emojiReplace = props.wordReplace
|
|
4178
|
+
? function (word) { var _a; return (_a = props.wordReplace) === null || _a === void 0 ? void 0 : _a.call(props, word, emojiIndex); }
|
|
4179
|
+
: function (word) {
|
|
4180
|
+
var found = (emojiIndex === null || emojiIndex === void 0 ? void 0 : emojiIndex.search(word)) || [];
|
|
4181
|
+
var emoji = found
|
|
4182
|
+
.filter(Boolean)
|
|
4183
|
+
.slice(0, 10)
|
|
4184
|
+
.find(function (_a) {
|
|
4185
|
+
var emoticons = _a.emoticons;
|
|
4186
|
+
return !!(emoticons === null || emoticons === void 0 ? void 0 : emoticons.includes(word));
|
|
4187
|
+
});
|
|
4188
|
+
if (!emoji || !('native' in emoji))
|
|
4189
|
+
return null;
|
|
4190
|
+
return emoji.native;
|
|
4191
|
+
};
|
|
4155
4192
|
var updateInnerRef = React.useCallback(function (ref) {
|
|
4156
4193
|
if (innerRef) {
|
|
4157
4194
|
innerRef.current = ref;
|
|
4158
4195
|
}
|
|
4159
4196
|
}, [innerRef]);
|
|
4160
|
-
return (React__default['default'].createElement(ReactTextareaAutocomplete, { additionalTextareaProps: messageInput.additionalTextareaProps, className: 'str-chat__textarea__textarea', closeCommandsList: messageInput.closeCommandsList, closeMentionsList: messageInput.closeMentionsList, containerClassName: 'str-chat__textarea', disabled: disabled || !!cooldownRemaining, disableMentions: messageInput.disableMentions, dropdownClassName: 'str-chat__emojisearch', grow: messageInput.grow, handleSubmit: props.handleSubmit || messageInput.handleSubmit, innerRef: updateInnerRef, itemClassName: 'str-chat__emojisearch__item', keycodeSubmitKeys: messageInput.keycodeSubmitKeys, listClassName: 'str-chat__emojisearch__list', loadingComponent: LoadingIndicator, maxRows: messageInput.maxRows, minChar: 0, onChange: props.onChange || messageInput.handleChange, onFocus: props.onFocus, onPaste: props.onPaste || messageInput.onPaste, placeholder: cooldownRemaining ? t('Slow Mode ON') : placeholder, replaceWord: emojiReplace, rows: props.rows || 1, showCommandsList: messageInput.showCommandsList, showMentionsList: messageInput.showMentionsList, SuggestionItem: SuggestionItem, SuggestionList: SuggestionList, trigger: messageInput.autocompleteTriggers || {}, value: props.value || messageInput.text }));
|
|
4197
|
+
return (React__default['default'].createElement(ReactTextareaAutocomplete, { additionalTextareaProps: messageInput.additionalTextareaProps, "aria-label": cooldownRemaining ? t('Slow Mode ON') : placeholder, className: 'str-chat__textarea__textarea', closeCommandsList: messageInput.closeCommandsList, closeMentionsList: messageInput.closeMentionsList, containerClassName: 'str-chat__textarea', disabled: disabled || !!cooldownRemaining, disableMentions: messageInput.disableMentions, dropdownClassName: 'str-chat__emojisearch', grow: messageInput.grow, handleSubmit: props.handleSubmit || messageInput.handleSubmit, innerRef: updateInnerRef, itemClassName: 'str-chat__emojisearch__item', keycodeSubmitKeys: messageInput.keycodeSubmitKeys, listClassName: 'str-chat__emojisearch__list', loadingComponent: LoadingIndicator, maxRows: messageInput.maxRows, minChar: 0, onBlur: props.onBlur, onChange: props.onChange || messageInput.handleChange, onFocus: props.onFocus, onPaste: props.onPaste || messageInput.onPaste, placeholder: cooldownRemaining ? t('Slow Mode ON') : placeholder, replaceWord: emojiReplace, rows: props.rows || 1, showCommandsList: messageInput.showCommandsList, showMentionsList: messageInput.showMentionsList, SuggestionItem: SuggestionItem, SuggestionList: SuggestionList, trigger: messageInput.autocompleteTriggers || {}, value: props.value || messageInput.text }));
|
|
4161
4198
|
};
|
|
4162
4199
|
var ChatAutoComplete = React__default['default'].memo(UnMemoizedChatAutoComplete);
|
|
4163
4200
|
|
|
4164
4201
|
var EditMessageForm = function () {
|
|
4165
4202
|
var _a = useChannelStateContext('EditMessageForm'), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads;
|
|
4166
4203
|
var t = useTranslationContext('EditMessageForm').t;
|
|
4167
|
-
var _b = useMessageInputContext('EditMessageForm'), clearEditingState = _b.clearEditingState, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, openEmojiPicker = _b.openEmojiPicker, uploadNewFiles = _b.uploadNewFiles;
|
|
4204
|
+
var _b = useMessageInputContext('EditMessageForm'), clearEditingState = _b.clearEditingState, closeEmojiPicker = _b.closeEmojiPicker, emojiPickerIsOpen = _b.emojiPickerIsOpen, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, openEmojiPicker = _b.openEmojiPicker, uploadNewFiles = _b.uploadNewFiles;
|
|
4168
4205
|
var _c = useComponentContext('EditMessageForm'), _d = _c.EmojiIcon, EmojiIcon = _d === void 0 ? EmojiIconSmall : _d, _e = _c.FileUploadIcon, FileUploadIcon$1 = _e === void 0 ? FileUploadIcon : _e;
|
|
4169
4206
|
React.useEffect(function () {
|
|
4170
4207
|
var onKeyDown = function (event) {
|
|
@@ -4182,7 +4219,7 @@ var EditMessageForm = function () {
|
|
|
4182
4219
|
React__default['default'].createElement(ChatAutoComplete, null),
|
|
4183
4220
|
React__default['default'].createElement("div", { className: 'str-chat__message-team-form-footer' },
|
|
4184
4221
|
React__default['default'].createElement("div", { className: 'str-chat__edit-message-form-options' },
|
|
4185
|
-
React__default['default'].createElement("
|
|
4222
|
+
React__default['default'].createElement("button", { "aria-label": 'Open Emoji Picker', className: 'str-chat__input-emojiselect', onClick: emojiPickerIsOpen ? closeEmojiPicker : openEmojiPicker },
|
|
4186
4223
|
React__default['default'].createElement(EmojiIcon, null)),
|
|
4187
4224
|
isUploadEnabled && (React__default['default'].createElement("div", { className: 'str-chat__fileupload-wrapper', "data-testid": 'fileinput' },
|
|
4188
4225
|
React__default['default'].createElement(Tooltip, null, maxFilesLeft
|
|
@@ -4230,7 +4267,8 @@ var useCooldownTimer = function () {
|
|
|
4230
4267
|
var _a, _b;
|
|
4231
4268
|
var client = useChatContext('useCooldownTimer').client;
|
|
4232
4269
|
var channel = useChannelStateContext('useCooldownTimer').channel;
|
|
4233
|
-
var cooldownInterval = (channel.data ||
|
|
4270
|
+
var cooldownInterval = (channel.data ||
|
|
4271
|
+
{}).cooldown;
|
|
4234
4272
|
var _c = React.useState(), cooldownRemaining = _c[0], setCooldownRemaining = _c[1];
|
|
4235
4273
|
var globalRole = ((_a = client.user) === null || _a === void 0 ? void 0 : _a.role) || '';
|
|
4236
4274
|
var channelRole = ((_b = channel.state.members[client.userID || '']) === null || _b === void 0 ? void 0 : _b.role) || '';
|
|
@@ -4590,6 +4628,7 @@ var useMessageInputText = function (props, state, dispatch) {
|
|
|
4590
4628
|
var useEmojiPicker = function (state, dispatch, insertText, textareaRef, closeEmojiPickerOnClick) {
|
|
4591
4629
|
var emojiPickerRef = React.useRef(null);
|
|
4592
4630
|
var closeEmojiPicker = React.useCallback(function (event) {
|
|
4631
|
+
event.preventDefault();
|
|
4593
4632
|
if (emojiPickerRef.current && !emojiPickerRef.current.contains(event.target)) {
|
|
4594
4633
|
dispatch({
|
|
4595
4634
|
type: 'setEmojiPickerIsOpen',
|
|
@@ -4598,6 +4637,7 @@ var useEmojiPicker = function (state, dispatch, insertText, textareaRef, closeEm
|
|
|
4598
4637
|
}
|
|
4599
4638
|
}, [emojiPickerRef]);
|
|
4600
4639
|
var openEmojiPicker = React.useCallback(function (event) {
|
|
4640
|
+
event.preventDefault();
|
|
4601
4641
|
dispatch({
|
|
4602
4642
|
type: 'setEmojiPickerIsOpen',
|
|
4603
4643
|
value: true,
|
|
@@ -4981,7 +5021,7 @@ var useMessageInputState = function (props) {
|
|
|
4981
5021
|
var closeCommandsList = function () { return setShowCommandsList(false); };
|
|
4982
5022
|
var openMentionsList = function () {
|
|
4983
5023
|
dispatch({
|
|
4984
|
-
getNewText: function () { return '@'; },
|
|
5024
|
+
getNewText: function (currentText) { return currentText + '@'; },
|
|
4985
5025
|
type: 'setText',
|
|
4986
5026
|
});
|
|
4987
5027
|
setShowMentionsList(true);
|
|
@@ -5011,15 +5051,16 @@ var QuotedMessagePreviewHeader = function () {
|
|
|
5011
5051
|
var t = useTranslationContext('QuotedMessagePreview').t;
|
|
5012
5052
|
return (React__default['default'].createElement("div", { className: 'quoted-message-preview-header' },
|
|
5013
5053
|
React__default['default'].createElement("div", null, t('Reply to Message')),
|
|
5014
|
-
React__default['default'].createElement("button", { className: 'str-chat__square-button', onClick: function () { return setQuotedMessage(undefined); } },
|
|
5054
|
+
React__default['default'].createElement("button", { "aria-label": 'Cancel Reply', className: 'str-chat__square-button', onClick: function () { return setQuotedMessage(undefined); } },
|
|
5015
5055
|
React__default['default'].createElement("svg", { height: '10', width: '10', xmlns: 'http://www.w3.org/2000/svg' },
|
|
5016
5056
|
React__default['default'].createElement("path", { d: 'M9.916 1.027L8.973.084 5 4.058 1.027.084l-.943.943L4.058 5 .084 8.973l.943.943L5 5.942l3.973 3.974.943-.943L5.942 5z', fillRule: 'evenodd' })))));
|
|
5017
5057
|
};
|
|
5018
5058
|
var QuotedMessagePreview = function (props) {
|
|
5019
5059
|
var _a;
|
|
5020
5060
|
var quotedMessage = props.quotedMessage;
|
|
5021
|
-
var
|
|
5061
|
+
var _b = useComponentContext('QuotedMessagePreview'), Attachment = _b.Attachment, ContextAvatar = _b.Avatar;
|
|
5022
5062
|
var userLanguage = useTranslationContext('QuotedMessagePreview').userLanguage;
|
|
5063
|
+
var Avatar$1 = ContextAvatar || Avatar;
|
|
5023
5064
|
var quotedMessageText = ((_a = quotedMessage.i18n) === null || _a === void 0 ? void 0 : _a[userLanguage + "_text"]) ||
|
|
5024
5065
|
quotedMessage.text;
|
|
5025
5066
|
// @ts-expect-error
|
|
@@ -5032,7 +5073,7 @@ var QuotedMessagePreview = function (props) {
|
|
|
5032
5073
|
return (React__default['default'].createElement("div", { className: 'quoted-message-preview' },
|
|
5033
5074
|
React__default['default'].createElement(QuotedMessagePreviewHeader, null),
|
|
5034
5075
|
React__default['default'].createElement("div", { className: 'quoted-message-preview-content' },
|
|
5035
|
-
quotedMessage.user && (React__default['default'].createElement(Avatar, { image: quotedMessage.user.image, name: quotedMessage.user.name || quotedMessage.user.id, size: 20, user: quotedMessage.user })),
|
|
5076
|
+
quotedMessage.user && (React__default['default'].createElement(Avatar$1, { image: quotedMessage.user.image, name: quotedMessage.user.name || quotedMessage.user.id, size: 20, user: quotedMessage.user })),
|
|
5036
5077
|
React__default['default'].createElement("div", { className: 'quoted-message-preview-content-inner' },
|
|
5037
5078
|
quotedMessageAttachment && React__default['default'].createElement(Attachment, { attachments: [quotedMessageAttachment] }),
|
|
5038
5079
|
React__default['default'].createElement("div", null, quotedMessageText)))));
|
|
@@ -5041,17 +5082,17 @@ var QuotedMessagePreview = function (props) {
|
|
|
5041
5082
|
var MessageInputFlat = function () {
|
|
5042
5083
|
var _a = useChannelStateContext('MessageInputFlat'), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads, quotedMessage = _a.quotedMessage;
|
|
5043
5084
|
var t = useTranslationContext('MessageInputFlat').t;
|
|
5044
|
-
var _b = useMessageInputContext('MessageInputFlat'), closeEmojiPicker = _b.closeEmojiPicker, cooldownInterval = _b.cooldownInterval, cooldownRemaining = _b.cooldownRemaining, emojiPickerIsOpen = _b.emojiPickerIsOpen,
|
|
5085
|
+
var _b = useMessageInputContext('MessageInputFlat'), closeEmojiPicker = _b.closeEmojiPicker, cooldownInterval = _b.cooldownInterval, cooldownRemaining = _b.cooldownRemaining, emojiPickerIsOpen = _b.emojiPickerIsOpen, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, numberOfUploads = _b.numberOfUploads, openEmojiPicker = _b.openEmojiPicker, setCooldownRemaining = _b.setCooldownRemaining, uploadNewFiles = _b.uploadNewFiles;
|
|
5045
5086
|
var _c = useComponentContext('MessageInputFlat'), _d = _c.CooldownTimer, CooldownTimer$1 = _d === void 0 ? CooldownTimer : _d, _e = _c.EmojiIcon, EmojiIcon = _e === void 0 ? EmojiIconLarge : _e, _f = _c.FileUploadIcon, FileUploadIcon = _f === void 0 ? FileUploadIconFlat : _f, _g = _c.QuotedMessagePreview, QuotedMessagePreview$1 = _g === void 0 ? QuotedMessagePreview : _g, _h = _c.SendButton, SendButton$1 = _h === void 0 ? SendButton : _h;
|
|
5046
|
-
return (React__default['default'].createElement("div", { className: "str-chat__input-flat " + (SendButton$1 ? 'str-chat__input-flat--send-button-active' :
|
|
5087
|
+
return (React__default['default'].createElement("div", { className: "str-chat__input-flat " + (SendButton$1 ? 'str-chat__input-flat--send-button-active' : '') + " " + (quotedMessage && !quotedMessage.parent_id ? 'str-chat__input-flat-quoted' : '') + "\n " + (numberOfUploads ? 'str-chat__input-flat-has-attachments' : '') + "\n " },
|
|
5047
5088
|
React__default['default'].createElement(reactFileUtils.ImageDropzone, { accept: acceptedFiles, disabled: !isUploadEnabled || maxFilesLeft === 0 || !!cooldownRemaining, handleFiles: uploadNewFiles, maxNumberOfFiles: maxFilesLeft, multiple: multipleUploads },
|
|
5048
|
-
quotedMessage && React__default['default'].createElement(QuotedMessagePreview$1, { quotedMessage: quotedMessage }),
|
|
5089
|
+
quotedMessage && !quotedMessage.parent_id && (React__default['default'].createElement(QuotedMessagePreview$1, { quotedMessage: quotedMessage })),
|
|
5049
5090
|
React__default['default'].createElement("div", { className: 'str-chat__input-flat-wrapper' },
|
|
5091
|
+
isUploadEnabled && React__default['default'].createElement(UploadsPreview, null),
|
|
5050
5092
|
React__default['default'].createElement("div", { className: 'str-chat__input-flat--textarea-wrapper' },
|
|
5051
|
-
isUploadEnabled && React__default['default'].createElement(UploadsPreview, null),
|
|
5052
5093
|
React__default['default'].createElement("div", { className: 'str-chat__emojiselect-wrapper' },
|
|
5053
5094
|
React__default['default'].createElement(Tooltip, null, emojiPickerIsOpen ? t('Close emoji picker') : t('Open emoji picker')),
|
|
5054
|
-
React__default['default'].createElement("
|
|
5095
|
+
React__default['default'].createElement("button", { "aria-label": 'Emoji picker', className: 'str-chat__input-flat-emojiselect', onClick: emojiPickerIsOpen ? closeEmojiPicker : openEmojiPicker }, cooldownRemaining ? (React__default['default'].createElement("div", { className: 'str-chat__input-flat-cooldown' },
|
|
5055
5096
|
React__default['default'].createElement(CooldownTimer$1, { cooldownInterval: cooldownInterval, setCooldownRemaining: setCooldownRemaining }))) : (React__default['default'].createElement(EmojiIcon, null)))),
|
|
5056
5097
|
React__default['default'].createElement(EmojiPicker, null),
|
|
5057
5098
|
React__default['default'].createElement(ChatAutoComplete, null),
|
|
@@ -5187,13 +5228,14 @@ var UnMemoizedMessageInput = function (props) {
|
|
|
5187
5228
|
var MessageInput = React__default['default'].memo(UnMemoizedMessageInput);
|
|
5188
5229
|
|
|
5189
5230
|
var MessageInputSmall = function () {
|
|
5190
|
-
var _a = useChannelStateContext('MessageInputSmall'), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads;
|
|
5231
|
+
var _a = useChannelStateContext('MessageInputSmall'), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads, quotedMessage = _a.quotedMessage;
|
|
5191
5232
|
var t = useTranslationContext('MessageInputSmall').t;
|
|
5192
|
-
var _b = useMessageInputContext('MessageInputSmall'), closeEmojiPicker = _b.closeEmojiPicker, cooldownInterval = _b.cooldownInterval, cooldownRemaining = _b.cooldownRemaining, emojiPickerIsOpen = _b.emojiPickerIsOpen,
|
|
5193
|
-
var _c = useComponentContext('MessageInputSmall'), _d = _c.CooldownTimer, CooldownTimer$1 = _d === void 0 ? CooldownTimer : _d, _e = _c.EmojiIcon, EmojiIcon = _e === void 0 ? EmojiIconSmall : _e, _f = _c.FileUploadIcon, FileUploadIcon = _f === void 0 ? FileUploadIconFlat : _f, _g = _c.SendButton, SendButton$1 = _g === void 0 ? SendButton : _g;
|
|
5233
|
+
var _b = useMessageInputContext('MessageInputSmall'), closeEmojiPicker = _b.closeEmojiPicker, cooldownInterval = _b.cooldownInterval, cooldownRemaining = _b.cooldownRemaining, emojiPickerIsOpen = _b.emojiPickerIsOpen, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, numberOfUploads = _b.numberOfUploads, openEmojiPicker = _b.openEmojiPicker, setCooldownRemaining = _b.setCooldownRemaining, uploadNewFiles = _b.uploadNewFiles;
|
|
5234
|
+
var _c = useComponentContext('MessageInputSmall'), _d = _c.CooldownTimer, CooldownTimer$1 = _d === void 0 ? CooldownTimer : _d, _e = _c.EmojiIcon, EmojiIcon = _e === void 0 ? EmojiIconSmall : _e, _f = _c.FileUploadIcon, FileUploadIcon = _f === void 0 ? FileUploadIconFlat : _f, _g = _c.SendButton, SendButton$1 = _g === void 0 ? SendButton : _g, _h = _c.QuotedMessagePreview, QuotedMessagePreview$1 = _h === void 0 ? QuotedMessagePreview : _h;
|
|
5194
5235
|
return (React__default['default'].createElement("div", { className: 'str-chat__small-message-input__wrapper' },
|
|
5195
5236
|
React__default['default'].createElement(reactFileUtils.ImageDropzone, { accept: acceptedFiles, disabled: !isUploadEnabled || maxFilesLeft === 0 || !!cooldownRemaining, handleFiles: uploadNewFiles, maxNumberOfFiles: maxFilesLeft, multiple: multipleUploads },
|
|
5196
|
-
React__default['default'].createElement("div", { className: "str-chat__small-message-input " + (SendButton$1 ? 'str-chat__small-message-input--send-button-active' :
|
|
5237
|
+
React__default['default'].createElement("div", { className: "str-chat__small-message-input " + (SendButton$1 ? 'str-chat__small-message-input--send-button-active' : '') + " " + (quotedMessage && quotedMessage.parent_id ? 'str-chat__input-flat-quoted' : '') + " " + (numberOfUploads ? 'str-chat__small-message-input-has-attachments' : '') + " " },
|
|
5238
|
+
quotedMessage && quotedMessage.parent_id && (React__default['default'].createElement(QuotedMessagePreview$1, { quotedMessage: quotedMessage })),
|
|
5197
5239
|
React__default['default'].createElement("div", { className: 'str-chat__small-message-input--textarea-wrapper' },
|
|
5198
5240
|
isUploadEnabled && React__default['default'].createElement(UploadsPreview, null),
|
|
5199
5241
|
React__default['default'].createElement(ChatAutoComplete, null),
|
|
@@ -5208,7 +5250,7 @@ var MessageInputSmall = function () {
|
|
|
5208
5250
|
React__default['default'].createElement(FileUploadIcon, null))))),
|
|
5209
5251
|
React__default['default'].createElement("div", { className: 'str-chat__emojiselect-wrapper' },
|
|
5210
5252
|
React__default['default'].createElement(Tooltip, null, emojiPickerIsOpen ? t('Close emoji picker') : t('Open emoji picker')),
|
|
5211
|
-
React__default['default'].createElement("
|
|
5253
|
+
React__default['default'].createElement("button", { "aria-label": 'Emoji picker', className: 'str-chat__small-message-input-emojiselect', onClick: emojiPickerIsOpen ? closeEmojiPicker : openEmojiPicker },
|
|
5212
5254
|
React__default['default'].createElement(EmojiIcon, null))))),
|
|
5213
5255
|
React__default['default'].createElement(EmojiPicker, { small: true })),
|
|
5214
5256
|
!cooldownRemaining && React__default['default'].createElement(SendButton$1, { sendMessage: handleSubmit })))));
|
|
@@ -5235,38 +5277,6 @@ var MML = function (props) {
|
|
|
5235
5277
|
React__default['default'].createElement(MMLReact, { className: "mml-align-" + align, Loading: null, onSubmit: actionHandler, source: source, Success: null, theme: (theme || '').replace(' ', '-') })));
|
|
5236
5278
|
};
|
|
5237
5279
|
|
|
5238
|
-
var Modal = function (props) {
|
|
5239
|
-
var children = props.children, onClose = props.onClose, open = props.open;
|
|
5240
|
-
var t = useTranslationContext('Modal').t;
|
|
5241
|
-
var innerRef = React.useRef(null);
|
|
5242
|
-
var handleClick = function (event) {
|
|
5243
|
-
var _a;
|
|
5244
|
-
if (event.target instanceof HTMLDivElement &&
|
|
5245
|
-
!((_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)) &&
|
|
5246
|
-
onClose) {
|
|
5247
|
-
onClose();
|
|
5248
|
-
}
|
|
5249
|
-
};
|
|
5250
|
-
React.useEffect(function () {
|
|
5251
|
-
if (!open)
|
|
5252
|
-
return function () { return null; };
|
|
5253
|
-
var handleEscKey = function (event) {
|
|
5254
|
-
if (event instanceof KeyboardEvent && event.key === 'Escape' && onClose) {
|
|
5255
|
-
onClose();
|
|
5256
|
-
}
|
|
5257
|
-
};
|
|
5258
|
-
document.addEventListener('keypress', handleEscKey);
|
|
5259
|
-
return function () { return document.removeEventListener('keypress', handleEscKey); };
|
|
5260
|
-
}, [onClose, open]);
|
|
5261
|
-
var openClasses = open ? 'str-chat__modal--open' : 'str-chat__modal--closed';
|
|
5262
|
-
return (React__default['default'].createElement("div", { className: "str-chat__modal " + openClasses, onClick: handleClick },
|
|
5263
|
-
React__default['default'].createElement("div", { className: 'str-chat__modal__close-button' },
|
|
5264
|
-
t('Close'),
|
|
5265
|
-
React__default['default'].createElement("svg", { height: '10', width: '10', xmlns: 'http://www.w3.org/2000/svg' },
|
|
5266
|
-
React__default['default'].createElement("path", { d: 'M9.916 1.027L8.973.084 5 4.058 1.027.084l-.943.943L4.058 5 .084 8.973l.943.943L5 5.942l3.973 3.974.943-.943L5.942 5z', fillRule: 'evenodd' }))),
|
|
5267
|
-
React__default['default'].createElement("div", { className: 'str-chat__modal__inner', ref: innerRef }, children)));
|
|
5268
|
-
};
|
|
5269
|
-
|
|
5270
5280
|
var isMutableRef = function (ref) {
|
|
5271
5281
|
if (ref) {
|
|
5272
5282
|
return ref.current !== undefined;
|
|
@@ -5344,12 +5354,13 @@ var UnMemoizedReactionSelector = React__default['default'].forwardRef(function (
|
|
|
5344
5354
|
React__default['default'].createElement("ul", { className: 'str-chat__message-reactions-list' }, reactionOptions.map(function (reactionOption) {
|
|
5345
5355
|
var latestUser = getLatestUserForReactionType(reactionOption.id);
|
|
5346
5356
|
var count = reactionCounts && reactionCounts[reactionOption.id];
|
|
5347
|
-
return (React__default['default'].createElement("li", {
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
React__default['default'].createElement(
|
|
5352
|
-
|
|
5357
|
+
return (React__default['default'].createElement("li", { key: "item-" + reactionOption.id },
|
|
5358
|
+
React__default['default'].createElement("button", { "aria-label": "Select Reaction: " + reactionOption.name, className: 'str-chat__message-reactions-list-item', "data-text": reactionOption.id, onClick: function (event) { return handleReaction(reactionOption.id, event); } },
|
|
5359
|
+
!!count && detailedView && (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
5360
|
+
React__default['default'].createElement("div", { className: 'latest-user', onClick: hideTooltip, onMouseEnter: function (e) { return showTooltip(e, reactionOption.id); }, onMouseLeave: hideTooltip }, latestUser ? (React__default['default'].createElement(Avatar$1, { image: latestUser.image, name: latestUser.name, size: 20, user: latestUser })) : (React__default['default'].createElement("div", { className: 'latest-user-not-found' }))))),
|
|
5361
|
+
React__default['default'].createElement(React.Suspense, { fallback: null },
|
|
5362
|
+
React__default['default'].createElement(Emoji, __assign({ data: emojiData, emoji: reactionOption, size: 20 }, (reactionsAreCustom ? additionalEmojiProps : emojiSetDef)))),
|
|
5363
|
+
Boolean(count) && detailedView && (React__default['default'].createElement("span", { className: 'str-chat__message-reactions-list-item__count' }, count || '')))));
|
|
5353
5364
|
}))));
|
|
5354
5365
|
});
|
|
5355
5366
|
/**
|
|
@@ -5399,14 +5410,15 @@ var UnMemoizedReactionsList = function (props) {
|
|
|
5399
5410
|
var supportedReactionsArePresent = messageReactionTypes.some(function (type) { return supportedReactionMap[type]; });
|
|
5400
5411
|
if (!supportedReactionsArePresent)
|
|
5401
5412
|
return null;
|
|
5402
|
-
return (React__default['default'].createElement("div", { className: "str-chat__reaction-list " + (reverse ? 'str-chat__reaction-list--reverse' : ''), "data-testid": 'reaction-list', onClick: onClick || onReactionListClick },
|
|
5413
|
+
return (React__default['default'].createElement("div", { "aria-label": 'Reaction list', className: "str-chat__reaction-list " + (reverse ? 'str-chat__reaction-list--reverse' : ''), "data-testid": 'reaction-list', onClick: onClick || onReactionListClick, onKeyPress: onClick || onReactionListClick, role: 'figure' },
|
|
5403
5414
|
React__default['default'].createElement("ul", null,
|
|
5404
5415
|
messageReactionTypes.map(function (reactionType) {
|
|
5405
5416
|
var emojiObject = getEmojiByReactionType(reactionType);
|
|
5406
5417
|
return emojiObject ? (React__default['default'].createElement("li", { key: emojiObject.id },
|
|
5407
|
-
React__default['default'].createElement(
|
|
5408
|
-
React__default['default'].createElement(
|
|
5409
|
-
|
|
5418
|
+
React__default['default'].createElement("button", { "aria-label": "Reactions: " + reactionType },
|
|
5419
|
+
React__default['default'].createElement(React.Suspense, { fallback: null },
|
|
5420
|
+
React__default['default'].createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 16 }, (reactionsAreCustom ? additionalEmojiProps : emojiSetDef)))),
|
|
5421
|
+
"\u00A0"))) : null;
|
|
5410
5422
|
}),
|
|
5411
5423
|
React__default['default'].createElement("li", null,
|
|
5412
5424
|
React__default['default'].createElement("span", { className: 'str-chat__reaction-list--counter' }, getTotalReactionCount())))));
|
|
@@ -5475,7 +5487,7 @@ var UnMemoizedSimpleReactionsList = function (props) {
|
|
|
5475
5487
|
messageReactionTypes.map(function (reactionType, i) {
|
|
5476
5488
|
var _a;
|
|
5477
5489
|
var emojiObject = getEmojiByReactionType(reactionType);
|
|
5478
|
-
return emojiObject ? (React__default['default'].createElement("li", { className: 'str-chat__simple-reactions-list-item', key: emojiObject.id + "-" + i, onClick: function (event) { return handleReaction(reactionType, event); } },
|
|
5490
|
+
return emojiObject ? (React__default['default'].createElement("li", { className: 'str-chat__simple-reactions-list-item', key: emojiObject.id + "-" + i, onClick: function (event) { return handleReaction(reactionType, event); }, onKeyPress: function (event) { return handleReaction(reactionType, event); } },
|
|
5479
5491
|
React__default['default'].createElement("span", { onMouseEnter: function () { return setTooltipReactionType(reactionType); } },
|
|
5480
5492
|
React__default['default'].createElement(React.Suspense, { fallback: null },
|
|
5481
5493
|
React__default['default'].createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 13 }, (reactionsAreCustom ? additionalEmojiProps : emojiSetDef)))),
|
|
@@ -5492,7 +5504,6 @@ var MessageSimpleWithContext = function (props) {
|
|
|
5492
5504
|
var _a;
|
|
5493
5505
|
var additionalMessageInputProps = props.additionalMessageInputProps, clearEditingState = props.clearEditingState, editing = props.editing, endOfGroup = props.endOfGroup, firstOfGroup = props.firstOfGroup, groupedByUser = props.groupedByUser, handleAction = props.handleAction, handleOpenThread = props.handleOpenThread, handleRetry = props.handleRetry, isMyMessage = props.isMyMessage, isReactionEnabled = props.isReactionEnabled, message = props.message, onUserClick = props.onUserClick, onUserHover = props.onUserHover, reactionSelectorRef = props.reactionSelectorRef, showDetailedReactions = props.showDetailedReactions, threadList = props.threadList;
|
|
5494
5506
|
var _b = useComponentContext('MessageSimple'), Attachment = _b.Attachment, _c = _b.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, _d = _b.EditMessageInput, EditMessageInput = _d === void 0 ? EditMessageForm : _d, _e = _b.MessageDeleted, MessageDeleted$1 = _e === void 0 ? MessageDeleted : _e, _f = _b.MessageOptions, MessageOptions$1 = _f === void 0 ? MessageOptions : _f, _g = _b.MessageRepliesCountButton, MessageRepliesCountButton$1 = _g === void 0 ? MessageRepliesCountButton : _g, _h = _b.MessageStatus, MessageStatus$1 = _h === void 0 ? MessageStatus : _h, _j = _b.MessageTimestamp, MessageTimestamp$1 = _j === void 0 ? MessageTimestamp : _j, _k = _b.ReactionSelector, ReactionSelector$1 = _k === void 0 ? ReactionSelector : _k, _l = _b.ReactionsList, ReactionsList$1 = _l === void 0 ? ReactionsList : _l;
|
|
5495
|
-
var messageWrapperRef = React.useRef(null);
|
|
5496
5507
|
var hasAttachment = messageHasAttachments(message);
|
|
5497
5508
|
var hasReactions = messageHasReactions(message);
|
|
5498
5509
|
var messageClasses = isMyMessage()
|
|
@@ -5507,14 +5518,16 @@ var MessageSimpleWithContext = function (props) {
|
|
|
5507
5518
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
5508
5519
|
editing && (React__default['default'].createElement(Modal, { onClose: clearEditingState, open: editing },
|
|
5509
5520
|
React__default['default'].createElement(MessageInput, __assign({ clearEditingState: clearEditingState, Input: EditMessageInput, message: message }, additionalMessageInputProps)))),
|
|
5510
|
-
React__default['default'].createElement("div", { className: ("\n\t\t\t\t\t\t" + messageClasses + "\n\t\t\t\t\t\tstr-chat__message--" + message.type + "\n\t\t\t\t\t\tstr-chat__message--" + message.status + "\n\t\t\t\t\t\t" + (message.text ? 'str-chat__message--has-text' : 'has-no-text') + "\n\t\t\t\t\t\t" + (hasAttachment ? 'str-chat__message--has-attachment' : '') + "\n " + (hasReactions && isReactionEnabled ? 'str-chat__message--with-reactions' : '') + "\n " + (message.pinned ? 'pinned-message' : '') + "\n " + (groupedByUser ? 'str-chat__virtual-message__wrapper--group' : '') + "\n " + (firstOfGroup ? 'str-chat__virtual-message__wrapper--first' : '') + "\n " + (endOfGroup ? 'str-chat__virtual-message__wrapper--end' : '') + "\n\t\t\t\t\t").trim(), key: message.id
|
|
5521
|
+
React__default['default'].createElement("div", { className: ("\n\t\t\t\t\t\t" + messageClasses + "\n\t\t\t\t\t\tstr-chat__message--" + message.type + "\n\t\t\t\t\t\tstr-chat__message--" + message.status + "\n\t\t\t\t\t\t" + (message.text ? 'str-chat__message--has-text' : 'has-no-text') + "\n\t\t\t\t\t\t" + (hasAttachment ? 'str-chat__message--has-attachment' : '') + "\n " + (hasReactions && isReactionEnabled ? 'str-chat__message--with-reactions' : '') + "\n " + (message.pinned ? 'pinned-message' : '') + "\n " + (groupedByUser ? 'str-chat__virtual-message__wrapper--group' : '') + "\n " + (firstOfGroup ? 'str-chat__virtual-message__wrapper--first' : '') + "\n " + (endOfGroup ? 'str-chat__virtual-message__wrapper--end' : '') + "\n\t\t\t\t\t").trim(), key: message.id },
|
|
5511
5522
|
React__default['default'].createElement(MessageStatus$1, null),
|
|
5512
5523
|
message.user && (React__default['default'].createElement(Avatar$1, { image: message.user.image, name: message.user.name || message.user.id, onClick: onUserClick, onMouseOver: onUserHover, user: message.user })),
|
|
5513
5524
|
React__default['default'].createElement("div", { className: 'str-chat__message-inner', "data-testid": 'message-inner', onClick: message.status === 'failed' && message.errorStatusCode !== 403
|
|
5525
|
+
? function () { return handleRetry(message); }
|
|
5526
|
+
: undefined, onKeyPress: message.status === 'failed' && message.errorStatusCode !== 403
|
|
5514
5527
|
? function () { return handleRetry(message); }
|
|
5515
5528
|
: undefined },
|
|
5516
5529
|
React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
5517
|
-
React__default['default'].createElement(MessageOptions$1,
|
|
5530
|
+
React__default['default'].createElement(MessageOptions$1, null),
|
|
5518
5531
|
hasReactions && !showDetailedReactions && isReactionEnabled && (React__default['default'].createElement(ReactionsList$1, { reverse: true })),
|
|
5519
5532
|
showDetailedReactions && isReactionEnabled && (React__default['default'].createElement(ReactionSelector$1, { ref: reactionSelectorRef }))),
|
|
5520
5533
|
((_a = message.attachments) === null || _a === void 0 ? void 0 : _a.length) && !message.quoted_message ? (React__default['default'].createElement(Attachment, { actionHandler: handleAction, attachments: message.attachments })) : null,
|
|
@@ -5729,7 +5742,7 @@ var ChannelInner = function (props) {
|
|
|
5729
5742
|
client.off('user.deleted', handleEvent);
|
|
5730
5743
|
notificationTimeouts.forEach(clearTimeout);
|
|
5731
5744
|
};
|
|
5732
|
-
}, [channel.cid]);
|
|
5745
|
+
}, [channel.cid, doMarkReadRequest]);
|
|
5733
5746
|
React.useEffect(function () {
|
|
5734
5747
|
var _a;
|
|
5735
5748
|
if (state.thread && ((_a = state.messages) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
@@ -5830,7 +5843,7 @@ var ChannelInner = function (props) {
|
|
|
5830
5843
|
return id;
|
|
5831
5844
|
})
|
|
5832
5845
|
: mentioned_users;
|
|
5833
|
-
messageData = __assign({ attachments: attachments, id: id, mentioned_users: mentions, parent_id: parent_id, quoted_message_id: quotedMessage === null || quotedMessage === void 0 ? void 0 : quotedMessage.id, text: text }, customMessageData);
|
|
5846
|
+
messageData = __assign({ attachments: attachments, id: id, mentioned_users: mentions, parent_id: parent_id, quoted_message_id: parent_id === (quotedMessage === null || quotedMessage === void 0 ? void 0 : quotedMessage.parent_id) ? quotedMessage === null || quotedMessage === void 0 ? void 0 : quotedMessage.id : undefined, text: text }, customMessageData);
|
|
5834
5847
|
_b.label = 1;
|
|
5835
5848
|
case 1:
|
|
5836
5849
|
_b.trys.push([1, 6, , 7]);
|
|
@@ -5849,7 +5862,7 @@ var ChannelInner = function (props) {
|
|
|
5849
5862
|
if (messageResponse === null || messageResponse === void 0 ? void 0 : messageResponse.message) {
|
|
5850
5863
|
updateMessage(__assign(__assign({}, messageResponse.message), { status: 'received' }));
|
|
5851
5864
|
}
|
|
5852
|
-
if (quotedMessage)
|
|
5865
|
+
if (quotedMessage && parent_id === (quotedMessage === null || quotedMessage === void 0 ? void 0 : quotedMessage.parent_id))
|
|
5853
5866
|
setQuotedMessage(undefined);
|
|
5854
5867
|
return [3 /*break*/, 7];
|
|
5855
5868
|
case 6:
|
|
@@ -5907,6 +5920,14 @@ var ChannelInner = function (props) {
|
|
|
5907
5920
|
/** THREAD */
|
|
5908
5921
|
var openThread = function (message, event) {
|
|
5909
5922
|
event.preventDefault();
|
|
5923
|
+
setQuotedMessage(function (current) {
|
|
5924
|
+
if ((current === null || current === void 0 ? void 0 : current.parent_id) !== (message === null || message === void 0 ? void 0 : message.parent_id)) {
|
|
5925
|
+
return undefined;
|
|
5926
|
+
}
|
|
5927
|
+
else {
|
|
5928
|
+
return current;
|
|
5929
|
+
}
|
|
5930
|
+
});
|
|
5910
5931
|
dispatch({ channel: channel, message: message, type: 'openThread' });
|
|
5911
5932
|
};
|
|
5912
5933
|
var closeThread = function (event) {
|
|
@@ -5961,7 +5982,7 @@ var ChannelInner = function (props) {
|
|
|
5961
5982
|
var onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);
|
|
5962
5983
|
var editMessage = useEditMessageHandler(doUpdateMessageRequest);
|
|
5963
5984
|
var typing = state.typing, restState = __rest(state, ["typing"]);
|
|
5964
|
-
var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, channelConfig: channelConfig, dragAndDropWindow: dragAndDropWindow, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, quotedMessage: quotedMessage, watcher_count: state.watcherCount }));
|
|
5985
|
+
var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, channelConfig: channelConfig, dragAndDropWindow: dragAndDropWindow, giphyVersion: props.giphyVersion || 'fixed_height', maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, quotedMessage: quotedMessage, watcher_count: state.watcherCount }));
|
|
5965
5986
|
var channelActionContextValue = React.useMemo(function () { return ({
|
|
5966
5987
|
addNotification: addNotification,
|
|
5967
5988
|
closeThread: closeThread,
|
|
@@ -6068,18 +6089,24 @@ var ChannelInner = function (props) {
|
|
|
6068
6089
|
*/
|
|
6069
6090
|
var Channel = React__default['default'].memo(UnMemoizedChannel);
|
|
6070
6091
|
|
|
6092
|
+
var MenuIcon = function (_a) {
|
|
6093
|
+
var title = _a.title;
|
|
6094
|
+
var t = useTranslationContext('MenuIcon').t;
|
|
6095
|
+
return (React__default['default'].createElement("svg", { "data-testid": 'menu-icon', viewBox: '0 0 448 512', xmlns: 'http://www.w3.org/2000/svg' },
|
|
6096
|
+
React__default['default'].createElement("title", null, title || t('Menu')),
|
|
6097
|
+
React__default['default'].createElement("path", { d: 'M0 88C0 74.75 10.75 64 24 64H424C437.3 64 448 74.75 448 88C448 101.3 437.3 112 424 112H24C10.75 112 0 101.3 0 88zM0 248C0 234.7 10.75 224 24 224H424C437.3 224 448 234.7 448 248C448 261.3 437.3 272 424 272H24C10.75 272 0 261.3 0 248zM424 432H24C10.75 432 0 421.3 0 408C0 394.7 10.75 384 24 384H424C437.3 384 448 394.7 448 408C448 421.3 437.3 432 424 432z', fill: 'currentColor' })));
|
|
6098
|
+
};
|
|
6099
|
+
|
|
6071
6100
|
var UnMemoizedChannelHeader = function (props) {
|
|
6072
|
-
var _a = props.Avatar, Avatar$1 = _a === void 0 ? Avatar : _a, propImage = props.image, live = props.live, title = props.title;
|
|
6073
|
-
var
|
|
6101
|
+
var _a = props.Avatar, Avatar$1 = _a === void 0 ? Avatar : _a, _b = props.MenuIcon, MenuIcon$1 = _b === void 0 ? MenuIcon : _b, propImage = props.image, live = props.live, title = props.title;
|
|
6102
|
+
var _c = useChannelStateContext('ChannelHeader'), channel = _c.channel, watcher_count = _c.watcher_count;
|
|
6074
6103
|
var openMobileNav = useChatContext('ChannelHeader').openMobileNav;
|
|
6075
6104
|
var t = useTranslationContext('ChannelHeader').t;
|
|
6076
|
-
var
|
|
6105
|
+
var _d = (channel === null || channel === void 0 ? void 0 : channel.data) || {}, channelImage = _d.image, member_count = _d.member_count, name = _d.name, subtitle = _d.subtitle;
|
|
6077
6106
|
var image = propImage || channelImage;
|
|
6078
6107
|
return (React__default['default'].createElement("div", { className: 'str-chat__header-livestream' },
|
|
6079
|
-
React__default['default'].createElement("
|
|
6080
|
-
React__default['default'].createElement(
|
|
6081
|
-
React__default['default'].createElement("span", { className: 'str-chat__header-hamburger--line' }),
|
|
6082
|
-
React__default['default'].createElement("span", { className: 'str-chat__header-hamburger--line' })),
|
|
6108
|
+
React__default['default'].createElement("button", { "aria-label": 'Menu', className: 'str-chat__header-hamburger', onClick: openMobileNav },
|
|
6109
|
+
React__default['default'].createElement(MenuIcon$1, null)),
|
|
6083
6110
|
image && (React__default['default'].createElement(Avatar$1, { image: image, shape: 'rounded', size: (channel === null || channel === void 0 ? void 0 : channel.type) === 'commerce' ? 60 : 40 })),
|
|
6084
6111
|
React__default['default'].createElement("div", { className: 'str-chat__header-livestream-left' },
|
|
6085
6112
|
React__default['default'].createElement("p", { className: 'str-chat__header-livestream-left--title' },
|
|
@@ -6109,9 +6136,9 @@ var UnMemoizedChatDown = function (props) {
|
|
|
6109
6136
|
return (React__default['default'].createElement("div", { className: 'str-chat__down' },
|
|
6110
6137
|
React__default['default'].createElement(LoadingChannels, null),
|
|
6111
6138
|
React__default['default'].createElement("div", { className: 'str-chat__down-main' },
|
|
6112
|
-
React__default['default'].createElement("img", { "data-testid": 'chatdown-img', src: image || img }),
|
|
6139
|
+
React__default['default'].createElement("img", { alt: 'Connection error', "data-testid": 'chatdown-img', src: image || img }),
|
|
6113
6140
|
React__default['default'].createElement("h1", null, type),
|
|
6114
|
-
React__default['default'].createElement("h3",
|
|
6141
|
+
React__default['default'].createElement("h3", { "aria-live": 'assertive' }, text || t('Error connecting to chat, refresh the page to try again.')))));
|
|
6115
6142
|
};
|
|
6116
6143
|
/**
|
|
6117
6144
|
* A simple indicator that chat functionality isn't available, triggered when the Chat API is unavailable or your network isn't working.
|
|
@@ -6130,7 +6157,7 @@ var ChannelListMessenger = function (props) {
|
|
|
6130
6157
|
return React__default['default'].createElement(LoadingIndicator, null);
|
|
6131
6158
|
}
|
|
6132
6159
|
return (React__default['default'].createElement("div", { className: 'str-chat__channel-list-messenger' },
|
|
6133
|
-
React__default['default'].createElement("div", { className: 'str-chat__channel-list-messenger__main' }, children)));
|
|
6160
|
+
React__default['default'].createElement("div", { "aria-label": 'Channel list', className: 'str-chat__channel-list-messenger__main', role: 'listbox' }, children)));
|
|
6134
6161
|
};
|
|
6135
6162
|
|
|
6136
6163
|
var useChannelDeletedListener = function (setChannels, customHandler) {
|
|
@@ -6207,10 +6234,11 @@ var useChannelUpdatedListener = function (setChannels, customHandler, forceUpdat
|
|
|
6207
6234
|
React.useEffect(function () {
|
|
6208
6235
|
var handleEvent = function (event) {
|
|
6209
6236
|
setChannels(function (channels) {
|
|
6237
|
+
var _a, _b, _c, _d, _e, _f;
|
|
6210
6238
|
var channelIndex = channels.findIndex(function (channel) { var _a; return channel.cid === ((_a = event.channel) === null || _a === void 0 ? void 0 : _a.cid); });
|
|
6211
6239
|
if (channelIndex > -1 && event.channel) {
|
|
6212
6240
|
var newChannels = channels;
|
|
6213
|
-
newChannels[channelIndex].data = event.channel;
|
|
6241
|
+
newChannels[channelIndex].data = __assign(__assign({}, event.channel), { hidden: (_b = (_a = event.channel) === null || _a === void 0 ? void 0 : _a.hidden) !== null && _b !== void 0 ? _b : (_c = newChannels[channelIndex].data) === null || _c === void 0 ? void 0 : _c.hidden, own_capabilities: (_e = (_d = event.channel) === null || _d === void 0 ? void 0 : _d.own_capabilities) !== null && _e !== void 0 ? _e : (_f = newChannels[channelIndex].data) === null || _f === void 0 ? void 0 : _f.own_capabilities });
|
|
6214
6242
|
return __spreadArray([], newChannels);
|
|
6215
6243
|
}
|
|
6216
6244
|
return channels;
|
|
@@ -6525,7 +6553,7 @@ var UnMemoizedChannelPreviewMessenger = function (props) {
|
|
|
6525
6553
|
channelPreviewButton.current.blur();
|
|
6526
6554
|
}
|
|
6527
6555
|
};
|
|
6528
|
-
return (React__default['default'].createElement("button", { className: "str-chat__channel-preview-messenger " + unreadClass + " " + activeClass, "data-testid": 'channel-preview-button', onClick: onSelectChannel, ref: channelPreviewButton },
|
|
6556
|
+
return (React__default['default'].createElement("button", { "aria-label": "Select Channel: " + (displayTitle || ''), "aria-selected": active, className: "str-chat__channel-preview-messenger " + unreadClass + " " + activeClass, "data-testid": 'channel-preview-button', onClick: onSelectChannel, ref: channelPreviewButton, role: 'option' },
|
|
6529
6557
|
React__default['default'].createElement("div", { className: 'str-chat__channel-preview-messenger--left' },
|
|
6530
6558
|
React__default['default'].createElement(Avatar$1, { image: displayImage, name: avatarName, size: 40 })),
|
|
6531
6559
|
React__default['default'].createElement("div", { className: 'str-chat__channel-preview-messenger--right' },
|
|
@@ -6655,33 +6683,31 @@ var ChannelPreview = function (props) {
|
|
|
6655
6683
|
};
|
|
6656
6684
|
|
|
6657
6685
|
var SearchInput = function (props) {
|
|
6658
|
-
var channelSearchParams = props.channelSearchParams, inputRef = props.inputRef, onSearch = props.onSearch, query = props.query, searchFunction = props.searchFunction;
|
|
6686
|
+
var channelSearchParams = props.channelSearchParams, inputRef = props.inputRef, onSearch = props.onSearch, placeholder = props.placeholder, query = props.query, searchFunction = props.searchFunction;
|
|
6659
6687
|
var t = useTranslationContext('SearchInput').t;
|
|
6660
6688
|
return (React__default['default'].createElement("input", { className: 'str-chat__channel-search-input', onChange: function (event) {
|
|
6661
6689
|
return searchFunction ? searchFunction(channelSearchParams, event) : onSearch(event);
|
|
6662
|
-
}, placeholder: t('Search'), ref: inputRef, type: 'text', value: query }));
|
|
6690
|
+
}, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : t('Search'), ref: inputRef, type: 'text', value: query }));
|
|
6663
6691
|
};
|
|
6664
6692
|
|
|
6665
|
-
var isChannel = function (output) {
|
|
6666
|
-
return output.cid != null;
|
|
6667
|
-
};
|
|
6693
|
+
var isChannel = function (output) { return output.cid != null; };
|
|
6668
6694
|
|
|
6669
6695
|
var DefaultDropdownContainer = function (props) {
|
|
6670
6696
|
var focusedUser = props.focusedUser, results = props.results, _a = props.SearchResultItem, SearchResultItem = _a === void 0 ? DefaultSearchResultItem : _a, selectResult = props.selectResult;
|
|
6671
|
-
return (React__default['default'].createElement(
|
|
6697
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null, results.map(function (result, index) { return (React__default['default'].createElement(SearchResultItem, { focusedUser: focusedUser, index: index, key: index, result: result, selectResult: selectResult })); })));
|
|
6672
6698
|
};
|
|
6673
6699
|
var DefaultSearchResultItem = function (props) {
|
|
6674
|
-
var _a;
|
|
6700
|
+
var _a, _b;
|
|
6675
6701
|
var focusedUser = props.focusedUser, index = props.index, result = props.result, selectResult = props.selectResult;
|
|
6676
6702
|
var focused = focusedUser === index;
|
|
6677
6703
|
if (isChannel(result)) {
|
|
6678
6704
|
var channel_1 = result;
|
|
6679
|
-
return (React__default['default'].createElement("
|
|
6705
|
+
return (React__default['default'].createElement("button", { "aria-label": "Select Channel: " + (((_a = channel_1.data) === null || _a === void 0 ? void 0 : _a.name) || ''), className: "str-chat__channel-search-result " + (focused ? 'focused' : ''), onClick: function () { return selectResult(channel_1); } },
|
|
6680
6706
|
React__default['default'].createElement("div", { className: 'result-hashtag' }, "#"),
|
|
6681
|
-
React__default['default'].createElement("p", { className: 'channel-search__result-text' }, (
|
|
6707
|
+
React__default['default'].createElement("p", { className: 'channel-search__result-text' }, (_b = channel_1.data) === null || _b === void 0 ? void 0 : _b.name)));
|
|
6682
6708
|
}
|
|
6683
6709
|
else {
|
|
6684
|
-
return (React__default['default'].createElement("
|
|
6710
|
+
return (React__default['default'].createElement("button", { "aria-label": "Select User Channel: " + (result.name || ''), className: "str-chat__channel-search-result " + (focused ? 'focused' : ''), onClick: function () { return selectResult(result); } },
|
|
6685
6711
|
React__default['default'].createElement(Avatar, { image: result.image, user: result }),
|
|
6686
6712
|
result.name || result.id));
|
|
6687
6713
|
}
|
|
@@ -6727,7 +6753,7 @@ var SearchResults = function (props) {
|
|
|
6727
6753
|
return (React__default['default'].createElement(ResultsContainer, null, SearchLoading ? (React__default['default'].createElement(SearchLoading, null)) : (React__default['default'].createElement("div", { className: 'str-chat__channel-search-container-searching' }, t('Searching...')))));
|
|
6728
6754
|
}
|
|
6729
6755
|
if (!results.length) {
|
|
6730
|
-
return (React__default['default'].createElement(ResultsContainer, null, SearchEmpty ? (React__default['default'].createElement(SearchEmpty, null)) : (React__default['default'].createElement("div", { className: 'str-chat__channel-search-container-empty' }, t('No results found')))));
|
|
6756
|
+
return (React__default['default'].createElement(ResultsContainer, null, SearchEmpty ? (React__default['default'].createElement(SearchEmpty, null)) : (React__default['default'].createElement("div", { "aria-live": 'polite', className: 'str-chat__channel-search-container-empty' }, t('No results found')))));
|
|
6731
6757
|
}
|
|
6732
6758
|
return (React__default['default'].createElement(ResultsContainer, null,
|
|
6733
6759
|
SearchResultsHeader && React__default['default'].createElement(SearchResultsHeader, null),
|
|
@@ -6735,7 +6761,7 @@ var SearchResults = function (props) {
|
|
|
6735
6761
|
};
|
|
6736
6762
|
|
|
6737
6763
|
var UnMemoizedChannelSearch = function (props) {
|
|
6738
|
-
var _a = props.channelType, channelType = _a === void 0 ? 'messaging' : _a, DropdownContainer = props.DropdownContainer, onSelectResult = props.onSelectResult, _b = props.popupResults, popupResults = _b === void 0 ? false : _b, SearchEmpty = props.SearchEmpty, _c = props.searchForChannels, searchForChannels = _c === void 0 ? false : _c, searchFunction = props.searchFunction, _d = props.SearchInput, SearchInput$1 = _d === void 0 ? SearchInput : _d, SearchLoading = props.SearchLoading, searchQueryParams = props.searchQueryParams, SearchResultItem = props.SearchResultItem, SearchResultsHeader = props.SearchResultsHeader;
|
|
6764
|
+
var _a = props.channelType, channelType = _a === void 0 ? 'messaging' : _a, DropdownContainer = props.DropdownContainer, onSelectResult = props.onSelectResult, placeholder = props.placeholder, _b = props.popupResults, popupResults = _b === void 0 ? false : _b, SearchEmpty = props.SearchEmpty, _c = props.searchForChannels, searchForChannels = _c === void 0 ? false : _c, searchFunction = props.searchFunction, _d = props.SearchInput, SearchInput$1 = _d === void 0 ? SearchInput : _d, SearchLoading = props.SearchLoading, searchQueryParams = props.searchQueryParams, SearchResultItem = props.SearchResultItem, SearchResultsHeader = props.SearchResultsHeader;
|
|
6739
6765
|
var _e = useChatContext('ChannelSearch'), client = _e.client, setActiveChannel = _e.setActiveChannel;
|
|
6740
6766
|
var _f = React.useState(''), query = _f[0], setQuery = _f[1];
|
|
6741
6767
|
var _g = React.useState([]), results = _g[0], setResults = _g[1];
|
|
@@ -6837,8 +6863,8 @@ var UnMemoizedChannelSearch = function (props) {
|
|
|
6837
6863
|
setResultsOpen: setResultsOpen,
|
|
6838
6864
|
setSearching: setSearching,
|
|
6839
6865
|
};
|
|
6840
|
-
return (React__default['default'].createElement("div", { className: 'str-chat__channel-search' },
|
|
6841
|
-
React__default['default'].createElement(SearchInput$1, { channelSearchParams: channelSearchParams, inputRef: inputRef, onSearch: onSearch, query: query, searchFunction: searchFunction }),
|
|
6866
|
+
return (React__default['default'].createElement("div", { className: 'str-chat__channel-search', "data-testid": 'channel-search' },
|
|
6867
|
+
React__default['default'].createElement(SearchInput$1, { channelSearchParams: channelSearchParams, inputRef: inputRef, onSearch: onSearch, placeholder: placeholder, query: query, searchFunction: searchFunction }),
|
|
6842
6868
|
query && (React__default['default'].createElement(SearchResults, { DropdownContainer: DropdownContainer, popupResults: popupResults, results: results, SearchEmpty: SearchEmpty, searching: searching, SearchLoading: SearchLoading, SearchResultItem: SearchResultItem, SearchResultsHeader: SearchResultsHeader, selectResult: onSelectResult || selectResult }))));
|
|
6843
6869
|
};
|
|
6844
6870
|
/**
|
|
@@ -6852,7 +6878,7 @@ var UnMemoizedEmptyStateIndicator = function (props) {
|
|
|
6852
6878
|
var listType = props.listType;
|
|
6853
6879
|
var t = useTranslationContext('EmptyStateIndicator').t;
|
|
6854
6880
|
if (listType === 'channel')
|
|
6855
|
-
return React__default['default'].createElement("p",
|
|
6881
|
+
return React__default['default'].createElement("p", { role: 'listitem' }, t('You have no channels currently'));
|
|
6856
6882
|
if (listType === 'message')
|
|
6857
6883
|
return null;
|
|
6858
6884
|
return React__default['default'].createElement("p", null, "No items exist");
|
|
@@ -6862,7 +6888,7 @@ var EmptyStateIndicator = React__default['default'].memo(UnMemoizedEmptyStateInd
|
|
|
6862
6888
|
var UnMemoizedLoadMoreButton = function (props) {
|
|
6863
6889
|
var _a = props.children, children = _a === void 0 ? 'Load more' : _a, onClick = props.onClick, refreshing = props.refreshing;
|
|
6864
6890
|
return (React__default['default'].createElement("div", { className: 'str-chat__load-more-button' },
|
|
6865
|
-
React__default['default'].createElement("button", { className: 'str-chat__load-more-button__button', "data-testid": 'load-more-button', disabled: refreshing, onClick: onClick }, refreshing ? React__default['default'].createElement(reactFileUtils.LoadingIndicator, null) : children)));
|
|
6891
|
+
React__default['default'].createElement("button", { "aria-label": 'Load More Channels', className: 'str-chat__load-more-button__button', "data-testid": 'load-more-button', disabled: refreshing, onClick: onClick }, refreshing ? React__default['default'].createElement(reactFileUtils.LoadingIndicator, null) : children)));
|
|
6866
6892
|
};
|
|
6867
6893
|
var LoadMoreButton = React__default['default'].memo(UnMemoizedLoadMoreButton);
|
|
6868
6894
|
|
|
@@ -6983,29 +7009,29 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6983
7009
|
*/
|
|
6984
7010
|
var ChannelList = React__default['default'].memo(UnMemoizedChannelList);
|
|
6985
7011
|
|
|
6986
|
-
var Cancel$b="Stornieren";var Close$b="Schließen";var Delete$b="Löschen";var Delivered$b="Geliefert";var Flag$b="Flagge";var Mute$b="Stumm";var New$b="Neu";var Pin$b="Stift";var Reply$b="Antworten";var Search$b="Suche";var Send$b="Senden";var Thread$c="Thread";var Unmute$b="Stummschaltung aufheben";var Unpin$b="Lösen Sie den Stift";var live$b="live";var deTranslations = {"1 reply":"1 Antwort","Attach files":"Dateien anhängen",Cancel:Cancel$b,"Channel Missing":"Kanal fehlt",Close:Close$b,"Close emoji picker":"Emoji-Picker schließen","Commands matching":"Übereinstimmende Befehle","Connection failure, reconnecting now...":"Verbindungsfehler, jetzt wieder verbinden...",Delete:Delete$b,Delivered:Delivered$b,"Edit Message":"Nachricht bearbeiten","Edit message request failed":"Anfrage zum Bearbeiten der Nachricht fehlgeschlagen","Emoji matching":"Emoji passend","Empty message...":"Leere Nachricht...","Error adding flag":"Fehler beim Hinzufügen des Flags","Error connecting to chat, refresh the page to try again.":"Fehler beim Herstellen einer Verbindung zum Chat. Aktualisieren Sie die Seite, um es erneut zu versuchen.","Error deleting message":"Fehler beim Löschen der Nachricht","Error muting a user ...":"Fehler beim Stummschalten eines Benutzers...","Error pinning message":"Fehler beim Fixieren der Nachricht","Error removing message pin":"Fehler beim Entfernen des Nachrichten-Pins","Error unmuting a user ...":"Fehler beim Stummschalten eines Benutzers...","Error uploading file":"Fehler beim Hochladen der Datei","Error uploading image":"Fehler beim hochladen des Bildes","Error · Unsent":"Fehler nicht gesendet","Error: {{ errorMessage }}":"Fehler: {{ errorMessage }}",Flag:Flag$b,"Message Failed · Click to try again":"Nachricht fehlgeschlagen · Klicken Sie hier, um es erneut zu versuchen","Message Failed · Unauthorized":"Nachricht fehlgeschlagen · Nicht autorisiert","Message deleted":"Nachricht gelöscht","Message has been successfully flagged":"Nachricht wurde erfolgreich markiert","Message pinned":"Nachricht angeheftet",Mute:Mute$b,New:New$b,"New Messages!":"Neue Nachrichten!","No results found":"keine Ergebnisse gefunden","Nothing yet...":"Noch nichts...","Only visible to you":"Nur für Sie sichtbar","Open emoji picker":"Öffnen Sie den Emoji-Picker","People matching":"Passende Personen","Pick your emoji":"Wähle dein Emoji",Pin:Pin$b,"Pinned by":"Gepinnt von",Reply:Reply$b,"Reply to Message":"Auf Nachricht antworten",Search:Search$b,"Searching...":"Suchen...",Send:Send$b,"Send message request failed":"Nachrichtenanfrage senden fehlgeschlagen","Sending...":"Senden...","Slow Mode ON":"Langsamer Modus EIN","Start of a new thread":"Start eines neuen Threads","This message was deleted...":"Diese Nachricht wurde gelöscht...",Thread:Thread$c,"Type your message":"Geben Sie Ihre Nachricht ein",Unmute:Unmute$b,Unpin:Unpin$b,"Upload type: \"{{ type }}\" is not allowed":"Upload-Typ: \"{{ type }}\" ist nicht erlaubt","Wait until all attachments have uploaded":"Warten Sie, bis alle Anhänge hochgeladen wurden","You have no channels currently":"Sie haben derzeit keine Kanäle","You've reached the maximum number of files":"Sie haben die maximale Anzahl von Dateien erreicht",live:live$b,"this content could not be displayed":"Dieser Inhalt konnte nicht angezeigt werden","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} und {{moreCount}} Mehr","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} und {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} und {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} Mehr","{{ memberCount }} members":"{{ memberCount }} Mitglieder","{{ replyCount }} replies":"{{ replyCount }} antworten","{{ user }} has been muted":"{{ user }} wurde stummgeschaltet","{{ user }} has been unmuted":"{{ user }} wurde nicht stummgeschaltet","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anhang..."};
|
|
7012
|
+
var Cancel$b="Stornieren";var Close$b="Schließen";var Delete$b="Löschen";var Delivered$b="Geliefert";var Flag$b="Flagge";var Menu$b="Speisekarte";var Mute$b="Stumm";var New$b="Neu";var Pin$b="Stift";var Reply$b="Antworten";var Search$b="Suche";var Send$b="Senden";var Thread$c="Thread";var Unmute$b="Stummschaltung aufheben";var Unpin$b="Lösen Sie den Stift";var live$b="live";var deTranslations = {"1 reply":"1 Antwort","Attach files":"Dateien anhängen",Cancel:Cancel$b,"Channel Missing":"Kanal fehlt",Close:Close$b,"Close emoji picker":"Emoji-Picker schließen","Commands matching":"Übereinstimmende Befehle","Connection failure, reconnecting now...":"Verbindungsfehler, jetzt wieder verbinden...",Delete:Delete$b,Delivered:Delivered$b,"Edit Message":"Nachricht bearbeiten","Edit message request failed":"Anfrage zum Bearbeiten der Nachricht fehlgeschlagen","Emoji matching":"Emoji passend","Empty message...":"Leere Nachricht...","Error adding flag":"Fehler beim Hinzufügen des Flags","Error connecting to chat, refresh the page to try again.":"Fehler beim Herstellen einer Verbindung zum Chat. Aktualisieren Sie die Seite, um es erneut zu versuchen.","Error deleting message":"Fehler beim Löschen der Nachricht","Error muting a user ...":"Fehler beim Stummschalten eines Benutzers...","Error pinning message":"Fehler beim Fixieren der Nachricht","Error removing message pin":"Fehler beim Entfernen des Nachrichten-Pins","Error unmuting a user ...":"Fehler beim Stummschalten eines Benutzers...","Error uploading file":"Fehler beim Hochladen der Datei","Error uploading image":"Fehler beim hochladen des Bildes","Error · Unsent":"Fehler nicht gesendet","Error: {{ errorMessage }}":"Fehler: {{ errorMessage }}",Flag:Flag$b,Menu:Menu$b,"Message Failed · Click to try again":"Nachricht fehlgeschlagen · Klicken Sie hier, um es erneut zu versuchen","Message Failed · Unauthorized":"Nachricht fehlgeschlagen · Nicht autorisiert","Message deleted":"Nachricht gelöscht","Message has been successfully flagged":"Nachricht wurde erfolgreich markiert","Message pinned":"Nachricht angeheftet",Mute:Mute$b,New:New$b,"New Messages!":"Neue Nachrichten!","No results found":"keine Ergebnisse gefunden","Nothing yet...":"Noch nichts...","Only visible to you":"Nur für Sie sichtbar","Open emoji picker":"Öffnen Sie den Emoji-Picker","People matching":"Passende Personen","Pick your emoji":"Wähle dein Emoji",Pin:Pin$b,"Pinned by":"Gepinnt von",Reply:Reply$b,"Reply to Message":"Auf Nachricht antworten",Search:Search$b,"Searching...":"Suchen...",Send:Send$b,"Send message request failed":"Nachrichtenanfrage senden fehlgeschlagen","Sending...":"Senden...","Slow Mode ON":"Langsamer Modus EIN","Start of a new thread":"Start eines neuen Threads","This message was deleted...":"Diese Nachricht wurde gelöscht...",Thread:Thread$c,"Type your message":"Geben Sie Ihre Nachricht ein",Unmute:Unmute$b,Unpin:Unpin$b,"Upload type: \"{{ type }}\" is not allowed":"Upload-Typ: \"{{ type }}\" ist nicht erlaubt","Wait until all attachments have uploaded":"Warten Sie, bis alle Anhänge hochgeladen wurden","You have no channels currently":"Sie haben derzeit keine Kanäle","You've reached the maximum number of files":"Sie haben die maximale Anzahl von Dateien erreicht",live:live$b,"this content could not be displayed":"Dieser Inhalt konnte nicht angezeigt werden","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} und {{moreCount}} Mehr","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} und {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} und {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} Mehr","{{ memberCount }} members":"{{ memberCount }} Mitglieder","{{ replyCount }} replies":"{{ replyCount }} antworten","{{ user }} has been muted":"{{ user }} wurde stummgeschaltet","{{ user }} has been unmuted":"{{ user }} wurde nicht stummgeschaltet","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anhang..."};
|
|
6987
7013
|
|
|
6988
|
-
var Cancel$a="Cancel";var Close$a="Close";var Delete$a="Delete";var Delivered$a="Delivered";var Flag$a="Flag";var Mute$a="Mute";var New$a="New";var Pin$a="Pin";var Reply$a="Reply";var Search$a="Search";var Send$a="Send";var Thread$b="Thread";var Unmute$a="Unmute";var Unpin$a="Unpin";var live$a="live";var enTranslations = {"1 reply":"1 reply","Attach files":"Attach files",Cancel:Cancel$a,"Channel Missing":"Channel Missing",Close:Close$a,"Close emoji picker":"Close emoji picker","Commands matching":"Commands matching","Connection failure, reconnecting now...":"Connection failure, reconnecting now...",Delete:Delete$a,Delivered:Delivered$a,"Edit Message":"Edit Message","Edit message request failed":"Edit message request failed","Emoji matching":"Emoji matching","Empty message...":"Empty message...","Error adding flag":"Error adding flag","Error connecting to chat, refresh the page to try again.":"Error connecting to chat, refresh the page to try again.","Error deleting message":"Error deleting message","Error muting a user ...":"Error muting a user ...","Error pinning message":"Error pinning message","Error removing message pin":"Error removing message pin","Error unmuting a user ...":"Error unmuting a user ...","Error uploading file":"Error uploading file","Error uploading image":"Error uploading image","Error · Unsent":"Error · Unsent","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$a,"Message Failed · Click to try again":"Message Failed · Click to try again","Message Failed · Unauthorized":"Message Failed · Unauthorized","Message deleted":"Message deleted","Message has been successfully flagged":"Message has been successfully flagged","Message pinned":"Message pinned",Mute:Mute$a,New:New$a,"New Messages!":"New Messages!","No results found":"No results found","Nothing yet...":"Nothing yet...","Only visible to you":"Only visible to you","Open emoji picker":"Open emoji picker","People matching":"People matching","Pick your emoji":"Pick your emoji",Pin:Pin$a,"Pinned by":"Pinned by",Reply:Reply$a,"Reply to Message":"Reply to Message",Search:Search$a,"Searching...":"Searching...",Send:Send$a,"Send message request failed":"Send message request failed","Sending...":"Sending...","Slow Mode ON":"Slow Mode ON","Start of a new thread":"Start of a new thread","This message was deleted...":"This message was deleted...",Thread:Thread$b,"Type your message":"Type your message",Unmute:Unmute$a,Unpin:Unpin$a,"Upload type: \"{{ type }}\" is not allowed":"Upload type: \"{{ type }}\" is not allowed","Wait until all attachments have uploaded":"Wait until all attachments have uploaded","You have no channels currently":"You have no channels currently","You've reached the maximum number of files":"You've reached the maximum number of files",live:live$a,"this content could not be displayed":"this content could not be displayed","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} and {{ moreCount }} more","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, and {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} and {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} more","{{ memberCount }} members":"{{ memberCount }} members","{{ replyCount }} replies":"{{ replyCount }} replies","{{ user }} has been muted":"{{ user }} has been muted","{{ user }} has been unmuted":"{{ user }} has been unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Attachment..."};
|
|
7014
|
+
var Cancel$a="Cancel";var Close$a="Close";var Delete$a="Delete";var Delivered$a="Delivered";var Flag$a="Flag";var Menu$a="Menu";var Mute$a="Mute";var New$a="New";var Pin$a="Pin";var Reply$a="Reply";var Search$a="Search";var Send$a="Send";var Thread$b="Thread";var Unmute$a="Unmute";var Unpin$a="Unpin";var live$a="live";var enTranslations = {"1 reply":"1 reply","Attach files":"Attach files",Cancel:Cancel$a,"Channel Missing":"Channel Missing",Close:Close$a,"Close emoji picker":"Close emoji picker","Commands matching":"Commands matching","Connection failure, reconnecting now...":"Connection failure, reconnecting now...",Delete:Delete$a,Delivered:Delivered$a,"Edit Message":"Edit Message","Edit message request failed":"Edit message request failed","Emoji matching":"Emoji matching","Empty message...":"Empty message...","Error adding flag":"Error adding flag","Error connecting to chat, refresh the page to try again.":"Error connecting to chat, refresh the page to try again.","Error deleting message":"Error deleting message","Error muting a user ...":"Error muting a user ...","Error pinning message":"Error pinning message","Error removing message pin":"Error removing message pin","Error unmuting a user ...":"Error unmuting a user ...","Error uploading file":"Error uploading file","Error uploading image":"Error uploading image","Error · Unsent":"Error · Unsent","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$a,Menu:Menu$a,"Message Failed · Click to try again":"Message Failed · Click to try again","Message Failed · Unauthorized":"Message Failed · Unauthorized","Message deleted":"Message deleted","Message has been successfully flagged":"Message has been successfully flagged","Message pinned":"Message pinned",Mute:Mute$a,New:New$a,"New Messages!":"New Messages!","No results found":"No results found","Nothing yet...":"Nothing yet...","Only visible to you":"Only visible to you","Open emoji picker":"Open emoji picker","People matching":"People matching","Pick your emoji":"Pick your emoji",Pin:Pin$a,"Pinned by":"Pinned by",Reply:Reply$a,"Reply to Message":"Reply to Message",Search:Search$a,"Searching...":"Searching...",Send:Send$a,"Send message request failed":"Send message request failed","Sending...":"Sending...","Slow Mode ON":"Slow Mode ON","Start of a new thread":"Start of a new thread","This message was deleted...":"This message was deleted...",Thread:Thread$b,"Type your message":"Type your message",Unmute:Unmute$a,Unpin:Unpin$a,"Upload type: \"{{ type }}\" is not allowed":"Upload type: \"{{ type }}\" is not allowed","Wait until all attachments have uploaded":"Wait until all attachments have uploaded","You have no channels currently":"You have no channels currently","You've reached the maximum number of files":"You've reached the maximum number of files",live:live$a,"this content could not be displayed":"this content could not be displayed","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} and {{ moreCount }} more","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, and {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} and {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} more","{{ memberCount }} members":"{{ memberCount }} members","{{ replyCount }} replies":"{{ replyCount }} replies","{{ user }} has been muted":"{{ user }} has been muted","{{ user }} has been unmuted":"{{ user }} has been unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Attachment..."};
|
|
6989
7015
|
|
|
6990
|
-
var Cancel$9="Cancelar";var Close$9="Cerca";var Delete$9="Borrar";var Delivered$9="Entregado";var Flag$9="Bandera";var Mute$9="Mudo";var New$9="Nuevo";var Pin$9="Alfiler";var Reply$9="Respuesta";var Search$9="Buscar";var Send$9="Enviar";var Thread$a="Hilo";var Unmute$9="Activar sonido";var Unpin$9="Desprender";var live$9="En Vivo";var esTranslations = {"1 reply":"1 respuesta","Attach files":"Adjuntar archivos",Cancel:Cancel$9,"Channel Missing":"Falta canal",Close:Close$9,"Close emoji picker":"Cerrar el selector de emojis","Commands matching":"Coincidencia de comandos","Connection failure, reconnecting now...":"Fallo de conexión, reconectando ahora ...",Delete:Delete$9,Delivered:Delivered$9,"Edit Message":"Editar mensaje","Edit message request failed":"Error al editar la solicitud de mensaje","Emoji matching":"Coincidencia de emoji","Empty message...":"Mensaje vacío ...","Error adding flag":"Error al agregar la bandera","Error connecting to chat, refresh the page to try again.":"Error al conectarse al chat, actualice la página para volver a intentarlo.","Error deleting message":"Error al eliminar el mensaje","Error muting a user ...":"Error al silenciar a un usuario ...","Error pinning message":"Mensaje de error al fijar","Error removing message pin":"Error al quitar el pin del mensaje","Error unmuting a user ...":"Error al activar el silencio de un usuario ...","Error uploading file":"Error al cargar el archivo","Error uploading image":"Error subiendo imagen","Error · Unsent":"Error · No enviado","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$9,"Message Failed · Click to try again":"Mensaje fallido · Haga clic para volver a intentarlo","Message Failed · Unauthorized":"Mensaje fallido · No autorizado","Message deleted":"Mensaje borrado","Message has been successfully flagged":"El mensaje se marcó correctamente","Message pinned":"Mensaje fijado",Mute:Mute$9,New:New$9,"New Messages!":"¡Nuevos mensajes!","No results found":"No se han encontrado resultados","Nothing yet...":"Nada aún...","Only visible to you":"Solo visible para ti","Open emoji picker":"Selector de emoji abierto","People matching":"Personas que coinciden","Pick your emoji":"Elige tu emoji",Pin:Pin$9,"Pinned by":"Fijado por",Reply:Reply$9,"Reply to Message":"Responder al mensaje",Search:Search$9,"Searching...":"Buscando...",Send:Send$9,"Send message request failed":"Error al enviar la solicitud de mensaje","Sending...":"Enviando...","Slow Mode ON":"Modo lento activado","Start of a new thread":"Inicio de un nuevo hilo","This message was deleted...":"Este mensaje fue eliminado ...",Thread:Thread$a,"Type your message":"Escribe tu mensaje",Unmute:Unmute$9,Unpin:Unpin$9,"Upload type: \"{{ type }}\" is not allowed":"Tipo de carga: \"{{ type }}\" no está permitido","Wait until all attachments have uploaded":"Espere hasta que se hayan cargado todos los archivos adjuntos","You have no channels currently":"Actualmente no tienes canales","You've reached the maximum number of files":"Has alcanzado el número máximo de archivos",live:live$9,"this content could not be displayed":"este contenido no se pudo mostrar","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} y {{ moreCount }} más","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} y {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} y {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} más","{{ memberCount }} members":"{{ memberCount }} miembros","{{ replyCount }} replies":"{{ replyCount }} respuestas","{{ user }} has been muted":"{{ user }} ha sido silenciado","{{ user }} has been unmuted":"{{ user }} se ha desactivado","{{ watcherCount }} online":"{{ watcherCount }} en línea","🏙 Attachment...":"🏙 Adjunto..."};
|
|
7016
|
+
var Cancel$9="Cancelar";var Close$9="Cerca";var Delete$9="Borrar";var Delivered$9="Entregado";var Flag$9="Bandera";var Menu$9="Menú";var Mute$9="Mudo";var New$9="Nuevo";var Pin$9="Alfiler";var Reply$9="Respuesta";var Search$9="Buscar";var Send$9="Enviar";var Thread$a="Hilo";var Unmute$9="Activar sonido";var Unpin$9="Desprender";var live$9="En Vivo";var esTranslations = {"1 reply":"1 respuesta","Attach files":"Adjuntar archivos",Cancel:Cancel$9,"Channel Missing":"Falta canal",Close:Close$9,"Close emoji picker":"Cerrar el selector de emojis","Commands matching":"Coincidencia de comandos","Connection failure, reconnecting now...":"Fallo de conexión, reconectando ahora ...",Delete:Delete$9,Delivered:Delivered$9,"Edit Message":"Editar mensaje","Edit message request failed":"Error al editar la solicitud de mensaje","Emoji matching":"Coincidencia de emoji","Empty message...":"Mensaje vacío ...","Error adding flag":"Error al agregar la bandera","Error connecting to chat, refresh the page to try again.":"Error al conectarse al chat, actualice la página para volver a intentarlo.","Error deleting message":"Error al eliminar el mensaje","Error muting a user ...":"Error al silenciar a un usuario ...","Error pinning message":"Mensaje de error al fijar","Error removing message pin":"Error al quitar el pin del mensaje","Error unmuting a user ...":"Error al activar el silencio de un usuario ...","Error uploading file":"Error al cargar el archivo","Error uploading image":"Error subiendo imagen","Error · Unsent":"Error · No enviado","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$9,Menu:Menu$9,"Message Failed · Click to try again":"Mensaje fallido · Haga clic para volver a intentarlo","Message Failed · Unauthorized":"Mensaje fallido · No autorizado","Message deleted":"Mensaje borrado","Message has been successfully flagged":"El mensaje se marcó correctamente","Message pinned":"Mensaje fijado",Mute:Mute$9,New:New$9,"New Messages!":"¡Nuevos mensajes!","No results found":"No se han encontrado resultados","Nothing yet...":"Nada aún...","Only visible to you":"Solo visible para ti","Open emoji picker":"Selector de emoji abierto","People matching":"Personas que coinciden","Pick your emoji":"Elige tu emoji",Pin:Pin$9,"Pinned by":"Fijado por",Reply:Reply$9,"Reply to Message":"Responder al mensaje",Search:Search$9,"Searching...":"Buscando...",Send:Send$9,"Send message request failed":"Error al enviar la solicitud de mensaje","Sending...":"Enviando...","Slow Mode ON":"Modo lento activado","Start of a new thread":"Inicio de un nuevo hilo","This message was deleted...":"Este mensaje fue eliminado ...",Thread:Thread$a,"Type your message":"Escribe tu mensaje",Unmute:Unmute$9,Unpin:Unpin$9,"Upload type: \"{{ type }}\" is not allowed":"Tipo de carga: \"{{ type }}\" no está permitido","Wait until all attachments have uploaded":"Espere hasta que se hayan cargado todos los archivos adjuntos","You have no channels currently":"Actualmente no tienes canales","You've reached the maximum number of files":"Has alcanzado el número máximo de archivos",live:live$9,"this content could not be displayed":"este contenido no se pudo mostrar","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} y {{ moreCount }} más","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} y {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} y {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} más","{{ memberCount }} members":"{{ memberCount }} miembros","{{ replyCount }} replies":"{{ replyCount }} respuestas","{{ user }} has been muted":"{{ user }} ha sido silenciado","{{ user }} has been unmuted":"{{ user }} se ha desactivado","{{ watcherCount }} online":"{{ watcherCount }} en línea","🏙 Attachment...":"🏙 Adjunto..."};
|
|
6991
7017
|
|
|
6992
|
-
var Cancel$8="Annuler";var Close$8="Fermer";var Delete$8="Supprimer";var Delivered$8="Publié";var Flag$8="Signaler";var Mute$8="Muet";var New$8="Nouveaux";var Pin$8="Épingle";var Reply$8="Réponse";var Search$8="Rechercher";var Send$8="Envoyer";var Thread$9="Fil de discussion";var Unmute$8="Désactiver muet";var Unpin$8="Détacher";var live$8="en direct";var frTranslations = {"1 reply":"1 réponse","Attach files":"Pièces jointes",Cancel:Cancel$8,"Channel Missing":"Canal Manquant",Close:Close$8,"Close emoji picker":"Fermer le sélecteur d'emojis","Commands matching":"Correspondance des commandes","Connection failure, reconnecting now...":"Échec de la connexion, reconnexion en cours...",Delete:Delete$8,Delivered:Delivered$8,"Edit Message":"Éditer un message","Edit message request failed":"Échec de la demande de modification du message","Emoji matching":"Correspondance emoji","Empty message...":"Message vide...","Error adding flag":"Erreur lors de l'ajout du drapeau","Error connecting to chat, refresh the page to try again.":"Erreur de connexion au chat, rafraîchissez la page pour réessayer.","Error deleting message":"Erreur lors de la suppression du message","Error muting a user ...":"Erreur de mise en sourdine d'un utilisateur ...","Error pinning message":"Erreur d'épinglage du message","Error removing message pin":"Erreur lors de la suppression du code PIN du message","Error unmuting a user ...":"Erreur de désactivation de la fonction sourdine pour un utilisateur ...","Error uploading file":"Erreur lors du téléchargement du fichier","Error uploading image":"Erreur lors de l'envoi de l'image","Error · Unsent":"Erreur - Non envoyé","Error: {{ errorMessage }}":"Erreur : {{ errorMessage }}",Flag:Flag$8,"Message Failed · Click to try again":"Échec de l'envoi du message - Cliquez pour réessayer","Message Failed · Unauthorized":"Échec de l'envoi du message - Non autorisé","Message deleted":"Message supprimé","Message has been successfully flagged":"Le message a été signalé avec succès","Message pinned":"Message épinglé",Mute:Mute$8,New:New$8,"New Messages!":"Nouveaux Messages!","No results found":"Aucun résultat trouvé","Nothing yet...":"Aucun message...","Only visible to you":"Visible uniquement pour vous","Open emoji picker":"Ouvrez le sélecteur d'emoji","People matching":"Correspondance de personnes","Pick your emoji":"Choisissez votre emoji",Pin:Pin$8,"Pinned by":"Épinglé par",Reply:Reply$8,"Reply to Message":"Répondre au message",Search:Search$8,"Searching...":"Recherche...",Send:Send$8,"Send message request failed":"Échec de la demande d'envoi de message","Sending...":"Envoi en cours...","Slow Mode ON":"Mode lent activé","Start of a new thread":"Début d'un nouveau fil de discussion","This message was deleted...":"Ce message a été supprimé...",Thread:Thread$9,"Type your message":"Saisissez votre message",Unmute:Unmute$8,Unpin:Unpin$8,"Upload type: \"{{ type }}\" is not allowed":"Le type de téléchargement: \"{{ type }}\" n'est pas autorisé","Wait until all attachments have uploaded":"Attendez que toutes les pièces jointes soient téléchargées","You have no channels currently":"Vous n'avez actuellement aucun canal","You've reached the maximum number of files":"Vous avez atteint le nombre maximum de fichiers",live:live$8,"this content could not be displayed":"ce contenu n'a pu être affiché","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} et {{ moreCount }} autres","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} et {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} et {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} supplémentaires","{{ memberCount }} members":"{{ memberCount }} membres","{{ replyCount }} replies":"{{ replyCount }} réponses","{{ user }} has been muted":"{{ user }} a été mis en sourdine","{{ user }} has been unmuted":"{{ user }} n'est plus en sourdine","{{ watcherCount }} online":"{{ watcherCount }} en ligne","🏙 Attachment...":"🏙 Pièce jointe..."};
|
|
7018
|
+
var Cancel$8="Annuler";var Close$8="Fermer";var Delete$8="Supprimer";var Delivered$8="Publié";var Flag$8="Signaler";var Menu$8="Menu";var Mute$8="Muet";var New$8="Nouveaux";var Pin$8="Épingle";var Reply$8="Réponse";var Search$8="Rechercher";var Send$8="Envoyer";var Thread$9="Fil de discussion";var Unmute$8="Désactiver muet";var Unpin$8="Détacher";var live$8="en direct";var frTranslations = {"1 reply":"1 réponse","Attach files":"Pièces jointes",Cancel:Cancel$8,"Channel Missing":"Canal Manquant",Close:Close$8,"Close emoji picker":"Fermer le sélecteur d'emojis","Commands matching":"Correspondance des commandes","Connection failure, reconnecting now...":"Échec de la connexion, reconnexion en cours...",Delete:Delete$8,Delivered:Delivered$8,"Edit Message":"Éditer un message","Edit message request failed":"Échec de la demande de modification du message","Emoji matching":"Correspondance emoji","Empty message...":"Message vide...","Error adding flag":"Erreur lors de l'ajout du drapeau","Error connecting to chat, refresh the page to try again.":"Erreur de connexion au chat, rafraîchissez la page pour réessayer.","Error deleting message":"Erreur lors de la suppression du message","Error muting a user ...":"Erreur de mise en sourdine d'un utilisateur ...","Error pinning message":"Erreur d'épinglage du message","Error removing message pin":"Erreur lors de la suppression du code PIN du message","Error unmuting a user ...":"Erreur de désactivation de la fonction sourdine pour un utilisateur ...","Error uploading file":"Erreur lors du téléchargement du fichier","Error uploading image":"Erreur lors de l'envoi de l'image","Error · Unsent":"Erreur - Non envoyé","Error: {{ errorMessage }}":"Erreur : {{ errorMessage }}",Flag:Flag$8,Menu:Menu$8,"Message Failed · Click to try again":"Échec de l'envoi du message - Cliquez pour réessayer","Message Failed · Unauthorized":"Échec de l'envoi du message - Non autorisé","Message deleted":"Message supprimé","Message has been successfully flagged":"Le message a été signalé avec succès","Message pinned":"Message épinglé",Mute:Mute$8,New:New$8,"New Messages!":"Nouveaux Messages!","No results found":"Aucun résultat trouvé","Nothing yet...":"Aucun message...","Only visible to you":"Visible uniquement pour vous","Open emoji picker":"Ouvrez le sélecteur d'emoji","People matching":"Correspondance de personnes","Pick your emoji":"Choisissez votre emoji",Pin:Pin$8,"Pinned by":"Épinglé par",Reply:Reply$8,"Reply to Message":"Répondre au message",Search:Search$8,"Searching...":"Recherche...",Send:Send$8,"Send message request failed":"Échec de la demande d'envoi de message","Sending...":"Envoi en cours...","Slow Mode ON":"Mode lent activé","Start of a new thread":"Début d'un nouveau fil de discussion","This message was deleted...":"Ce message a été supprimé...",Thread:Thread$9,"Type your message":"Saisissez votre message",Unmute:Unmute$8,Unpin:Unpin$8,"Upload type: \"{{ type }}\" is not allowed":"Le type de téléchargement: \"{{ type }}\" n'est pas autorisé","Wait until all attachments have uploaded":"Attendez que toutes les pièces jointes soient téléchargées","You have no channels currently":"Vous n'avez actuellement aucun canal","You've reached the maximum number of files":"Vous avez atteint le nombre maximum de fichiers",live:live$8,"this content could not be displayed":"ce contenu n'a pu être affiché","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} et {{ moreCount }} autres","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} et {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} et {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} supplémentaires","{{ memberCount }} members":"{{ memberCount }} membres","{{ replyCount }} replies":"{{ replyCount }} réponses","{{ user }} has been muted":"{{ user }} a été mis en sourdine","{{ user }} has been unmuted":"{{ user }} n'est plus en sourdine","{{ watcherCount }} online":"{{ watcherCount }} en ligne","🏙 Attachment...":"🏙 Pièce jointe..."};
|
|
6993
7019
|
|
|
6994
|
-
var Cancel$7="रद्द करें";var Close$7="बंद करे";var Delete$7="डिलीट";var Delivered$7="पहुंच गया";var Flag$7="फ्लैग करे";var Mute$7="म्यूट करे";var New$7="नए";var Pin$7="पिन";var Reply$7="जवाब दे दो";var Search$7="खोज";var Send$7="भेजे";var Thread$8="रिप्लाई थ्रेड";var Unmute$7="अनम्यूट";var Unpin$7="अनपिन";var live$7="लाइव";var hiTranslations = {"1 reply":"1 रिप्लाई","Attach files":"फाइल्स अटैच करे",Cancel:Cancel$7,"Channel Missing":"चैनल उपलब्ध नहीं है",Close:Close$7,"Close emoji picker":"इमोजी पिकर बंद करें","Commands matching":"मेल खाती है","Connection failure, reconnecting now...":"कनेक्शन विफल रहा, अब पुनः कनेक्ट हो रहा है ...",Delete:Delete$7,Delivered:Delivered$7,"Edit Message":"मैसेज में बदलाव करे","Edit message request failed":"संदेश संपादित करने का अनुरोध विफल रहा","Emoji matching":"इमोजी मिलान","Empty message...":"खाली संदेश ...","Error adding flag":"ध्वज जोड़ने में त्रुटि","Error connecting to chat, refresh the page to try again.":"चैट से कनेक्ट करने में त्रुटि, पेज को रिफ्रेश करें","Error deleting message":"संदेश हटाने में त्रुटि","Error muting a user ...":"यूजर को म्यूट करने का प्रयास फेल हुआ","Error pinning message":"संदेश को पिन करने में त्रुटि","Error removing message pin":"संदेश पिन निकालने में त्रुटि","Error unmuting a user ...":"यूजर को अनम्यूट करने का प्रयास फेल हुआ","Error uploading file":"फ़ाइल अपलोड करने में त्रुटि","Error uploading image":"छवि अपलोड करने में त्रुटि","Error · Unsent":"फेल","Error: {{ errorMessage }}":"फेल: {{ errorMessage }}",Flag:Flag$7,"Message Failed · Click to try again":"मैसेज फ़ैल - पुनः कोशिश करें","Message Failed · Unauthorized":"मैसेज फ़ैल - अनधिकृत","Message deleted":"मैसेज हटा दिया गया","Message has been successfully flagged":"मैसेज को फ्लैग कर दिया गया है","Message pinned":"संदेश पिन किया गया",Mute:Mute$7,New:New$7,"New Messages!":"नए मैसेज!","No results found":"कोई परिणाम नहीं मिला","Nothing yet...":"कोई मैसेज नहीं है","Only visible to you":"सिर्फ आपको दिखाई दे रहा है","Open emoji picker":"इमोजी पिकर खोलिये","People matching":"मेल खाते लोग","Pick your emoji":"इमोजी चूस करे",Pin:Pin$7,"Pinned by":"द्वारा पिन किया गया",Reply:Reply$7,"Reply to Message":"संदेश का जवाब दें",Search:Search$7,"Searching...":"खोज कर...",Send:Send$7,"Send message request failed":"संदेश भेजने का अनुरोध विफल रहा","Sending...":"भेजा जा रहा है","Slow Mode ON":"स्लो मोड ऑन","Start of a new thread":"एक नए थ्रेड की शुरुआत","This message was deleted...":"मैसेज हटा दिया गया",Thread:Thread$8,"Type your message":"अपना मैसेज लिखे",Unmute:Unmute$7,Unpin:Unpin$7,"Upload type: \"{{ type }}\" is not allowed":"अपलोड प्रकार: \"{{ type }}\" की अनुमति नहीं है","Wait until all attachments have uploaded":"सभी अटैचमेंट अपलोड होने तक प्रतीक्षा करें","You have no channels currently":"आपके पास कोई चैनल नहीं है","You've reached the maximum number of files":"आप अधिकतम फ़ाइलों तक पहुँच गए हैं",live:live$7,"this content could not be displayed":"यह कॉन्टेंट लोड नहीं हो पाया","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} और {{ moreCount }} और","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} और {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} और {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} और","{{ memberCount }} members":"{{ memberCount }} मेंबर्स","{{ replyCount }} replies":"{{ replyCount }} रिप्लाई","{{ user }} has been muted":"{{ user }} को म्यूट कर दिया गया है","{{ user }} has been unmuted":"{{ user }} को अनम्यूट कर दिया गया है","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 अटैचमेंट"};
|
|
7020
|
+
var Cancel$7="रद्द करें";var Close$7="बंद करे";var Delete$7="डिलीट";var Delivered$7="पहुंच गया";var Flag$7="फ्लैग करे";var Menu$7="मेन्यू";var Mute$7="म्यूट करे";var New$7="नए";var Pin$7="पिन";var Reply$7="जवाब दे दो";var Search$7="खोज";var Send$7="भेजे";var Thread$8="रिप्लाई थ्रेड";var Unmute$7="अनम्यूट";var Unpin$7="अनपिन";var live$7="लाइव";var hiTranslations = {"1 reply":"1 रिप्लाई","Attach files":"फाइल्स अटैच करे",Cancel:Cancel$7,"Channel Missing":"चैनल उपलब्ध नहीं है",Close:Close$7,"Close emoji picker":"इमोजी पिकर बंद करें","Commands matching":"मेल खाती है","Connection failure, reconnecting now...":"कनेक्शन विफल रहा, अब पुनः कनेक्ट हो रहा है ...",Delete:Delete$7,Delivered:Delivered$7,"Edit Message":"मैसेज में बदलाव करे","Edit message request failed":"संदेश संपादित करने का अनुरोध विफल रहा","Emoji matching":"इमोजी मिलान","Empty message...":"खाली संदेश ...","Error adding flag":"ध्वज जोड़ने में त्रुटि","Error connecting to chat, refresh the page to try again.":"चैट से कनेक्ट करने में त्रुटि, पेज को रिफ्रेश करें","Error deleting message":"संदेश हटाने में त्रुटि","Error muting a user ...":"यूजर को म्यूट करने का प्रयास फेल हुआ","Error pinning message":"संदेश को पिन करने में त्रुटि","Error removing message pin":"संदेश पिन निकालने में त्रुटि","Error unmuting a user ...":"यूजर को अनम्यूट करने का प्रयास फेल हुआ","Error uploading file":"फ़ाइल अपलोड करने में त्रुटि","Error uploading image":"छवि अपलोड करने में त्रुटि","Error · Unsent":"फेल","Error: {{ errorMessage }}":"फेल: {{ errorMessage }}",Flag:Flag$7,Menu:Menu$7,"Message Failed · Click to try again":"मैसेज फ़ैल - पुनः कोशिश करें","Message Failed · Unauthorized":"मैसेज फ़ैल - अनधिकृत","Message deleted":"मैसेज हटा दिया गया","Message has been successfully flagged":"मैसेज को फ्लैग कर दिया गया है","Message pinned":"संदेश पिन किया गया",Mute:Mute$7,New:New$7,"New Messages!":"नए मैसेज!","No results found":"कोई परिणाम नहीं मिला","Nothing yet...":"कोई मैसेज नहीं है","Only visible to you":"सिर्फ आपको दिखाई दे रहा है","Open emoji picker":"इमोजी पिकर खोलिये","People matching":"मेल खाते लोग","Pick your emoji":"इमोजी चूस करे",Pin:Pin$7,"Pinned by":"द्वारा पिन किया गया",Reply:Reply$7,"Reply to Message":"संदेश का जवाब दें",Search:Search$7,"Searching...":"खोज कर...",Send:Send$7,"Send message request failed":"संदेश भेजने का अनुरोध विफल रहा","Sending...":"भेजा जा रहा है","Slow Mode ON":"स्लो मोड ऑन","Start of a new thread":"एक नए थ्रेड की शुरुआत","This message was deleted...":"मैसेज हटा दिया गया",Thread:Thread$8,"Type your message":"अपना मैसेज लिखे",Unmute:Unmute$7,Unpin:Unpin$7,"Upload type: \"{{ type }}\" is not allowed":"अपलोड प्रकार: \"{{ type }}\" की अनुमति नहीं है","Wait until all attachments have uploaded":"सभी अटैचमेंट अपलोड होने तक प्रतीक्षा करें","You have no channels currently":"आपके पास कोई चैनल नहीं है","You've reached the maximum number of files":"आप अधिकतम फ़ाइलों तक पहुँच गए हैं",live:live$7,"this content could not be displayed":"यह कॉन्टेंट लोड नहीं हो पाया","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} और {{ moreCount }} और","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} और {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} और {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} और","{{ memberCount }} members":"{{ memberCount }} मेंबर्स","{{ replyCount }} replies":"{{ replyCount }} रिप्लाई","{{ user }} has been muted":"{{ user }} को म्यूट कर दिया गया है","{{ user }} has been unmuted":"{{ user }} को अनम्यूट कर दिया गया है","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 अटैचमेंट"};
|
|
6995
7021
|
|
|
6996
|
-
var Cancel$6="Annulla";var Close$6="Chiudi";var Delete$6="Cancella";var Delivered$6="Consegnato";var Flag$6="Segnala";var Mute$6="Silenzia";var New$6="Nuovo";var Pin$6="Pin";var Reply$6="Rispondere";var Search$6="Ricerca";var Send$6="Invia";var Thread$7="Thread";var Unmute$6="Riattiva le notifiche";var Unpin$6="Sblocca";var live$6="live";var itTranslations = {"1 reply":"Una risposta","Attach files":"Allega file",Cancel:Cancel$6,"Channel Missing":"Il canale non esiste",Close:Close$6,"Close emoji picker":"Chiudi il selettore di emoji","Commands matching":"Comandi corrispondenti","Connection failure, reconnecting now...":"Connessione fallitta, riconnessione in corso...",Delete:Delete$6,Delivered:Delivered$6,"Edit Message":"Modifica messaggio","Edit message request failed":"Richiesta di modifica del messaggio non riuscita","Emoji matching":"Abbinamento emoji","Empty message...":"Message vuoto...","Error adding flag":"Errore durante l'aggiunta del flag","Error connecting to chat, refresh the page to try again.":"Errore di connessione alla chat, aggiorna la pagina per riprovare","Error deleting message":"Errore durante l'eliminazione del messaggio","Error muting a user ...":"Errore silenziando un utente ...","Error pinning message":"Errore durante il blocco del messaggio","Error removing message pin":"Errore durante la rimozione del PIN del messaggio","Error unmuting a user ...":"Errore riattivando le notifiche per l'utente ...","Error uploading file":"Errore durante il caricamento del file","Error uploading image":"Errore durante il caricamento dell'immagine","Error · Unsent":"Errore · Non inviato","Error: {{ errorMessage }}":"Errore: {{ errorMessage }}",Flag:Flag$6,"Message Failed · Click to try again":"Invio messaggio fallito · Clicca per riprovare","Message Failed · Unauthorized":"Invio messaggio fallito · Non autorizzato","Message deleted":"Messaggio cancellato","Message has been successfully flagged":"Il messaggio é stato segnalato con successo","Message pinned":"Messaggio bloccato",Mute:Mute$6,New:New$6,"New Messages!":"Nuovo messaggio!","No results found":"Nessun risultato trovato","Nothing yet...":"Ancora niente...","Only visible to you":"Visibile soltanto da te","Open emoji picker":"Apri il selettore dellle emoji","People matching":"Persone che corrispondono","Pick your emoji":"Scegli la tua emoji",Pin:Pin$6,"Pinned by":"Appuntato da",Reply:Reply$6,"Reply to Message":"Rispondi al messaggio",Search:Search$6,"Searching...":"Ricerca in corso ...",Send:Send$6,"Send message request failed":"Invia messaggio di richiesta non riuscito","Sending...":"Invio in corso...","Slow Mode ON":"Modalità lenta attivata","Start of a new thread":"Inizia un nuovo thread","This message was deleted...":"Questo messaggio é stato cancellato",Thread:Thread$7,"Type your message":"Scrivi il tuo messaggio",Unmute:Unmute$6,Unpin:Unpin$6,"Upload type: \"{{ type }}\" is not allowed":"Tipo di caricamento: \"{{ type }}\" non è consentito","Wait until all attachments have uploaded":"Attendi il caricamento di tutti gli allegati","You have no channels currently":"Al momento non sono presenti canali","You've reached the maximum number of files":"Hai raggiunto il numero massimo di file",live:live$6,"this content could not be displayed":"questo contenuto non puó essere mostrato","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e altri {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"+ {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} membri","{{ replyCount }} replies":"{{ replyCount }} risposte","{{ user }} has been muted":"{{ user }} é stato silenziato","{{ user }} has been unmuted":"Notifiche riattivate per {{ user }}","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Allegato..."};
|
|
7022
|
+
var Cancel$6="Annulla";var Close$6="Chiudi";var Delete$6="Cancella";var Delivered$6="Consegnato";var Flag$6="Segnala";var Menu$6="Menù";var Mute$6="Silenzia";var New$6="Nuovo";var Pin$6="Pin";var Reply$6="Rispondere";var Search$6="Ricerca";var Send$6="Invia";var Thread$7="Thread";var Unmute$6="Riattiva le notifiche";var Unpin$6="Sblocca";var live$6="live";var itTranslations = {"1 reply":"Una risposta","Attach files":"Allega file",Cancel:Cancel$6,"Channel Missing":"Il canale non esiste",Close:Close$6,"Close emoji picker":"Chiudi il selettore di emoji","Commands matching":"Comandi corrispondenti","Connection failure, reconnecting now...":"Connessione fallitta, riconnessione in corso...",Delete:Delete$6,Delivered:Delivered$6,"Edit Message":"Modifica messaggio","Edit message request failed":"Richiesta di modifica del messaggio non riuscita","Emoji matching":"Abbinamento emoji","Empty message...":"Message vuoto...","Error adding flag":"Errore durante l'aggiunta del flag","Error connecting to chat, refresh the page to try again.":"Errore di connessione alla chat, aggiorna la pagina per riprovare","Error deleting message":"Errore durante l'eliminazione del messaggio","Error muting a user ...":"Errore silenziando un utente ...","Error pinning message":"Errore durante il blocco del messaggio","Error removing message pin":"Errore durante la rimozione del PIN del messaggio","Error unmuting a user ...":"Errore riattivando le notifiche per l'utente ...","Error uploading file":"Errore durante il caricamento del file","Error uploading image":"Errore durante il caricamento dell'immagine","Error · Unsent":"Errore · Non inviato","Error: {{ errorMessage }}":"Errore: {{ errorMessage }}",Flag:Flag$6,Menu:Menu$6,"Message Failed · Click to try again":"Invio messaggio fallito · Clicca per riprovare","Message Failed · Unauthorized":"Invio messaggio fallito · Non autorizzato","Message deleted":"Messaggio cancellato","Message has been successfully flagged":"Il messaggio é stato segnalato con successo","Message pinned":"Messaggio bloccato",Mute:Mute$6,New:New$6,"New Messages!":"Nuovo messaggio!","No results found":"Nessun risultato trovato","Nothing yet...":"Ancora niente...","Only visible to you":"Visibile soltanto da te","Open emoji picker":"Apri il selettore dellle emoji","People matching":"Persone che corrispondono","Pick your emoji":"Scegli la tua emoji",Pin:Pin$6,"Pinned by":"Appuntato da",Reply:Reply$6,"Reply to Message":"Rispondi al messaggio",Search:Search$6,"Searching...":"Ricerca in corso ...",Send:Send$6,"Send message request failed":"Invia messaggio di richiesta non riuscito","Sending...":"Invio in corso...","Slow Mode ON":"Modalità lenta attivata","Start of a new thread":"Inizia un nuovo thread","This message was deleted...":"Questo messaggio é stato cancellato",Thread:Thread$7,"Type your message":"Scrivi il tuo messaggio",Unmute:Unmute$6,Unpin:Unpin$6,"Upload type: \"{{ type }}\" is not allowed":"Tipo di caricamento: \"{{ type }}\" non è consentito","Wait until all attachments have uploaded":"Attendi il caricamento di tutti gli allegati","You have no channels currently":"Al momento non sono presenti canali","You've reached the maximum number of files":"Hai raggiunto il numero massimo di file",live:live$6,"this content could not be displayed":"questo contenuto non puó essere mostrato","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e altri {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"+ {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} membri","{{ replyCount }} replies":"{{ replyCount }} risposte","{{ user }} has been muted":"{{ user }} é stato silenziato","{{ user }} has been unmuted":"Notifiche riattivate per {{ user }}","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Allegato..."};
|
|
6997
7023
|
|
|
6998
|
-
var Cancel$5="キャンセル";var Close$5="閉める";var Delete$5="消去";var Delivered$5="配信しました";var Flag$5="フラグ";var Mute$5="無音";var New$5="新しい";var Pin$5="ピン";var Reply$5="返事";var Search$5="探す";var Send$5="送信";var Thread$6="スレッド";var Unmute$5="無音を解除する";var Unpin$5="ピンを解除する";var live$5="ライブ";var jaTranslations = {"1 reply":"1件の返信","Attach files":"ファイルを添付する",Cancel:Cancel$5,"Channel Missing":"チャネルがありません",Close:Close$5,"Close emoji picker":"絵文字ピッカーを閉める","Commands matching":"一致するコマンド","Connection failure, reconnecting now...":"接続が失敗しました。再接続中...",Delete:Delete$5,Delivered:Delivered$5,"Edit Message":"メッセージを編集","Edit message request failed":"メッセージの編集要求が失敗しました","Emoji matching":"絵文字マッチング","Empty message...":"空のメッセージ...","Error adding flag":"フラグを追加のエラーが発生しました","Error connecting to chat, refresh the page to try again.":"チャットへの接続ができませんでした。ページを更新してください。","Error deleting message":"メッセージを削除するエラーが発生しました","Error muting a user ...":"ユーザーを無音するエラーが発生しました...","Error pinning message":"メッセージをピンのエラーが発生しました","Error removing message pin":"メッセージのピンを削除のエラーが発生しました","Error unmuting a user ...":"ユーザーの無音解除のエラーが発生しました...","Error uploading file":"ファイルをアップロードのエラーが発生しました","Error uploading image":"画像をアップロードのエラーが発生しました","Error · Unsent":"エラー・未送信","Error: {{ errorMessage }}":"エラー: {{ errorMessage }}",Flag:Flag$5,"Message Failed · Click to try again":"メッセージが失敗しました · クリックして再試行してください","Message Failed · Unauthorized":"メッセージが失敗しました · 許可されていません","Message deleted":"メッセージが削除されました","Message has been successfully flagged":"メッセージに正常にフラグが付けられました","Message pinned":"メッセージにピンが付けられました",Mute:Mute$5,New:New$5,"New Messages!":"新しいメッセージ!","No results found":"結果が見つかりません","Nothing yet...":"まだ何もありません...","Only visible to you":"あなただけに見える","Open emoji picker":"絵文字ピッカーを開く","People matching":"一致する人","Pick your emoji":"絵文字を選んでください",Pin:Pin$5,"Pinned by":"ピンした方",Reply:Reply$5,"Reply to Message":"メッセージに返信",Search:Search$5,"Searching...":"検索中...",Send:Send$5,"Send message request failed":"メッセージ送信リクエストが失敗しました","Sending...":"送信中...","Slow Mode ON":"スローモードオン","Start of a new thread":"新しいスレッドの開始","This message was deleted...":"このメッセージは削除されました...",Thread:Thread$6,"Type your message":"メッセージを入力してください",Unmute:Unmute$5,Unpin:Unpin$5,"Upload type: \"{{ type }}\" is not allowed":"アップロードタイプ:\"{{ type }}\"は許可されていません","Wait until all attachments have uploaded":"すべての添付ファイルがアップロードされるまでお待ちください","You have no channels currently":"現在チャンネルはありません","You've reached the maximum number of files":"ファイルの最大数に達しました",live:live$5,"this content could not be displayed":"このコンテンツは表示できませんでした","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} と {{ moreCount }} 他人","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} と {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} と {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} イメージ","{{ memberCount }} members":"{{ memberCount }} メンバー","{{ replyCount }} replies":"{{ replyCount }} 返信","{{ user }} has been muted":"{{ user }} 無音されています","{{ user }} has been unmuted":"{{ user }} 無音されていません","{{ watcherCount }} online":"{{ watcherCount }} オンライン","🏙 Attachment...":"🏙 アタッチメント..."};
|
|
7024
|
+
var Cancel$5="キャンセル";var Close$5="閉める";var Delete$5="消去";var Delivered$5="配信しました";var Flag$5="フラグ";var Menu$5="メニュー";var Mute$5="無音";var New$5="新しい";var Pin$5="ピン";var Reply$5="返事";var Search$5="探す";var Send$5="送信";var Thread$6="スレッド";var Unmute$5="無音を解除する";var Unpin$5="ピンを解除する";var live$5="ライブ";var jaTranslations = {"1 reply":"1件の返信","Attach files":"ファイルを添付する",Cancel:Cancel$5,"Channel Missing":"チャネルがありません",Close:Close$5,"Close emoji picker":"絵文字ピッカーを閉める","Commands matching":"一致するコマンド","Connection failure, reconnecting now...":"接続が失敗しました。再接続中...",Delete:Delete$5,Delivered:Delivered$5,"Edit Message":"メッセージを編集","Edit message request failed":"メッセージの編集要求が失敗しました","Emoji matching":"絵文字マッチング","Empty message...":"空のメッセージ...","Error adding flag":"フラグを追加のエラーが発生しました","Error connecting to chat, refresh the page to try again.":"チャットへの接続ができませんでした。ページを更新してください。","Error deleting message":"メッセージを削除するエラーが発生しました","Error muting a user ...":"ユーザーを無音するエラーが発生しました...","Error pinning message":"メッセージをピンのエラーが発生しました","Error removing message pin":"メッセージのピンを削除のエラーが発生しました","Error unmuting a user ...":"ユーザーの無音解除のエラーが発生しました...","Error uploading file":"ファイルをアップロードのエラーが発生しました","Error uploading image":"画像をアップロードのエラーが発生しました","Error · Unsent":"エラー・未送信","Error: {{ errorMessage }}":"エラー: {{ errorMessage }}",Flag:Flag$5,Menu:Menu$5,"Message Failed · Click to try again":"メッセージが失敗しました · クリックして再試行してください","Message Failed · Unauthorized":"メッセージが失敗しました · 許可されていません","Message deleted":"メッセージが削除されました","Message has been successfully flagged":"メッセージに正常にフラグが付けられました","Message pinned":"メッセージにピンが付けられました",Mute:Mute$5,New:New$5,"New Messages!":"新しいメッセージ!","No results found":"結果が見つかりません","Nothing yet...":"まだ何もありません...","Only visible to you":"あなただけに見える","Open emoji picker":"絵文字ピッカーを開く","People matching":"一致する人","Pick your emoji":"絵文字を選んでください",Pin:Pin$5,"Pinned by":"ピンした方",Reply:Reply$5,"Reply to Message":"メッセージに返信",Search:Search$5,"Searching...":"検索中...",Send:Send$5,"Send message request failed":"メッセージ送信リクエストが失敗しました","Sending...":"送信中...","Slow Mode ON":"スローモードオン","Start of a new thread":"新しいスレッドの開始","This message was deleted...":"このメッセージは削除されました...",Thread:Thread$6,"Type your message":"メッセージを入力してください",Unmute:Unmute$5,Unpin:Unpin$5,"Upload type: \"{{ type }}\" is not allowed":"アップロードタイプ:\"{{ type }}\"は許可されていません","Wait until all attachments have uploaded":"すべての添付ファイルがアップロードされるまでお待ちください","You have no channels currently":"現在チャンネルはありません","You've reached the maximum number of files":"ファイルの最大数に達しました",live:live$5,"this content could not be displayed":"このコンテンツは表示できませんでした","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} と {{ moreCount }} 他人","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} と {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} と {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} イメージ","{{ memberCount }} members":"{{ memberCount }} メンバー","{{ replyCount }} replies":"{{ replyCount }} 返信","{{ user }} has been muted":"{{ user }} 無音されています","{{ user }} has been unmuted":"{{ user }} 無音されていません","{{ watcherCount }} online":"{{ watcherCount }} オンライン","🏙 Attachment...":"🏙 アタッチメント..."};
|
|
6999
7025
|
|
|
7000
|
-
var Cancel$4="취소";var Close$4="닫기";var Delete$4="삭제";var Delivered$4="배달됨";var Flag$4="플래그";var Mute$4="무음";var New$4="새로운";var Pin$4="핀";var Reply$4="답장";var Search$4="찾다";var Send$4="보내다";var Thread$5="스레드";var Unmute$4="음소거 해제";var Unpin$4="핀 해제";var live$4="라이브";var koTranslations = {"1 reply":"답장 1개","Attach files":"파일 첨부",Cancel:Cancel$4,"Channel Missing":"채널 누락",Close:Close$4,"Close emoji picker":"이모티콘 선택기 닫기","Commands matching":"일치하는 명령","Connection failure, reconnecting now...":"연결 실패, 지금 다시 연결 중...",Delete:Delete$4,Delivered:Delivered$4,"Edit Message":"메시지 수정","Edit message request failed":"메시지 수정 요청 실패","Emoji matching":"이모티콘 매칭","Empty message...":"빈 메시지...","Error adding flag":"플래그를 추가하는 동안 오류가 발생했습니다.","Error connecting to chat, refresh the page to try again.":"채팅에 연결하는 동안 오류가 발생했습니다. 페이지를 새로고침하여 다시 시도하세요.","Error deleting message":"메시지를 삭제하는 중에 오류가 발생했습니다.","Error muting a user ...":"사용자를 음소거하는 중에 오류가 발생했습니다...","Error pinning message":"메시지를 핀하는 중에 오류가 발생했습니다.","Error removing message pin":"메시지 핀을 제거하는 중에 오류가 발생했습니다.","Error unmuting a user ...":"사용자 음소거 해제 중 오류 발생...","Error uploading file":"파일 업로드 오류","Error uploading image":"이미지를 업로드하는 동안 오류가 발생했습니다.","Error · Unsent":"오류 · 전송되지 않음","Error: {{ errorMessage }}":"오류: {{ errorMessage }}",Flag:Flag$4,"Message Failed · Click to try again":"메시지 실패 · 다시 시도하려면 클릭하세요.","Message Failed · Unauthorized":"메시지 실패 · 승인되지 않음","Message deleted":"메시지가 삭제되었습니다.","Message has been successfully flagged":"메시지에 플래그가 지정되었습니다.","Message pinned":"메시지 핀했습니다",Mute:Mute$4,New:New$4,"New Messages!":"새 메시지!","No results found":"검색 결과가 없습니다","Nothing yet...":"아직 아무것도...","Only visible to you":"당신만 볼 수 있습니다","Open emoji picker":"이모티콘 선택기 열기","People matching":"일치하는 사람","Pick your emoji":"이모티콘 선택",Pin:Pin$4,"Pinned by":"핀했던 분:",Reply:Reply$4,"Reply to Message":"메시지에 답장",Search:Search$4,"Searching...":"수색...",Send:Send$4,"Send message request failed":"메시지 보내기 요청 실패","Sending...":"배상중...","Slow Mode ON":"슬로우 모드 켜짐","Start of a new thread":"새 스레드의 시작","This message was deleted...":"이 메시지는 삭제되었습니다...",Thread:Thread$5,"Type your message":"메시지 입력",Unmute:Unmute$4,Unpin:Unpin$4,"Upload type: \"{{ type }}\" is not allowed":"업로드 유형: \"{{ type }}\"은(는) 허용되지 않습니다.","Wait until all attachments have uploaded":"모든 첨부 파일이 업로드될 때까지 기다립니다.","You have no channels currently":"현재 채널이 없습니다.","You've reached the maximum number of files":"최대 파일 수에 도달했습니다.",live:live$4,"this content could not be displayed":"이 콘텐츠를 표시할 수 없습니다","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} 그리고 {{ moreCount }}명 더","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} 그리고 {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} 그리고 {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }}개 더","{{ memberCount }} members":"{{ memberCount }}명","{{ replyCount }} replies":"{{ replyCount }} 답장","{{ user }} has been muted":"{{ user }} 음소거되었습니다","{{ user }} has been unmuted":"{{ user }} 음소거가 해제되었습니다","{{ watcherCount }} online":"{{ watcherCount }} 온라인","🏙 Attachment...":"🏙 부착..."};
|
|
7026
|
+
var Cancel$4="취소";var Close$4="닫기";var Delete$4="삭제";var Delivered$4="배달됨";var Flag$4="플래그";var Menu$4="메뉴";var Mute$4="무음";var New$4="새로운";var Pin$4="핀";var Reply$4="답장";var Search$4="찾다";var Send$4="보내다";var Thread$5="스레드";var Unmute$4="음소거 해제";var Unpin$4="핀 해제";var live$4="라이브";var koTranslations = {"1 reply":"답장 1개","Attach files":"파일 첨부",Cancel:Cancel$4,"Channel Missing":"채널 누락",Close:Close$4,"Close emoji picker":"이모티콘 선택기 닫기","Commands matching":"일치하는 명령","Connection failure, reconnecting now...":"연결 실패, 지금 다시 연결 중...",Delete:Delete$4,Delivered:Delivered$4,"Edit Message":"메시지 수정","Edit message request failed":"메시지 수정 요청 실패","Emoji matching":"이모티콘 매칭","Empty message...":"빈 메시지...","Error adding flag":"플래그를 추가하는 동안 오류가 발생했습니다.","Error connecting to chat, refresh the page to try again.":"채팅에 연결하는 동안 오류가 발생했습니다. 페이지를 새로고침하여 다시 시도하세요.","Error deleting message":"메시지를 삭제하는 중에 오류가 발생했습니다.","Error muting a user ...":"사용자를 음소거하는 중에 오류가 발생했습니다...","Error pinning message":"메시지를 핀하는 중에 오류가 발생했습니다.","Error removing message pin":"메시지 핀을 제거하는 중에 오류가 발생했습니다.","Error unmuting a user ...":"사용자 음소거 해제 중 오류 발생...","Error uploading file":"파일 업로드 오류","Error uploading image":"이미지를 업로드하는 동안 오류가 발생했습니다.","Error · Unsent":"오류 · 전송되지 않음","Error: {{ errorMessage }}":"오류: {{ errorMessage }}",Flag:Flag$4,Menu:Menu$4,"Message Failed · Click to try again":"메시지 실패 · 다시 시도하려면 클릭하세요.","Message Failed · Unauthorized":"메시지 실패 · 승인되지 않음","Message deleted":"메시지가 삭제되었습니다.","Message has been successfully flagged":"메시지에 플래그가 지정되었습니다.","Message pinned":"메시지 핀했습니다",Mute:Mute$4,New:New$4,"New Messages!":"새 메시지!","No results found":"검색 결과가 없습니다","Nothing yet...":"아직 아무것도...","Only visible to you":"당신만 볼 수 있습니다","Open emoji picker":"이모티콘 선택기 열기","People matching":"일치하는 사람","Pick your emoji":"이모티콘 선택",Pin:Pin$4,"Pinned by":"핀했던 분:",Reply:Reply$4,"Reply to Message":"메시지에 답장",Search:Search$4,"Searching...":"수색...",Send:Send$4,"Send message request failed":"메시지 보내기 요청 실패","Sending...":"배상중...","Slow Mode ON":"슬로우 모드 켜짐","Start of a new thread":"새 스레드의 시작","This message was deleted...":"이 메시지는 삭제되었습니다...",Thread:Thread$5,"Type your message":"메시지 입력",Unmute:Unmute$4,Unpin:Unpin$4,"Upload type: \"{{ type }}\" is not allowed":"업로드 유형: \"{{ type }}\"은(는) 허용되지 않습니다.","Wait until all attachments have uploaded":"모든 첨부 파일이 업로드될 때까지 기다립니다.","You have no channels currently":"현재 채널이 없습니다.","You've reached the maximum number of files":"최대 파일 수에 도달했습니다.",live:live$4,"this content could not be displayed":"이 콘텐츠를 표시할 수 없습니다","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} 그리고 {{ moreCount }}명 더","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} 그리고 {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} 그리고 {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }}개 더","{{ memberCount }} members":"{{ memberCount }}명","{{ replyCount }} replies":"{{ replyCount }} 답장","{{ user }} has been muted":"{{ user }} 음소거되었습니다","{{ user }} has been unmuted":"{{ user }} 음소거가 해제되었습니다","{{ watcherCount }} online":"{{ watcherCount }} 온라인","🏙 Attachment...":"🏙 부착..."};
|
|
7001
7027
|
|
|
7002
|
-
var Cancel$3="Annuleer";var Close$3="Sluit";var Delete$3="Verwijder";var Delivered$3="Afgeleverd";var Flag$3="Markeer";var Mute$3="Mute";var New$3="Nieuwe";var Pin$3="Pin";var Reply$3="Antwoord";var Search$3="Zoeken";var Send$3="Verstuur";var Thread$4="Draadje";var Unmute$3="Unmute";var Unpin$3="Losmaken";var live$3="live";var nlTranslations = {"1 reply":"1 antwoord","Attach files":"Bijlage toevoegen",Cancel:Cancel$3,"Channel Missing":"Kanaal niet gevonden",Close:Close$3,"Close emoji picker":"Sluit de emoji-kiezer","Commands matching":"Bijpassende opdrachten","Connection failure, reconnecting now...":"Probleem met de verbinding, opnieuw verbinding maken...",Delete:Delete$3,Delivered:Delivered$3,"Edit Message":"Pas bericht aan","Edit message request failed":"Verzoek om bericht bewerken mislukt","Emoji matching":"Emoji-overeenkomsten","Empty message...":"Leeg bericht...","Error adding flag":"Fout bij toevoegen van vlag","Error connecting to chat, refresh the page to try again.":"Fout bij het verbinden, ververs de pagina om nogmaals te proberen","Error deleting message":"Fout bij verwijderen van bericht","Error muting a user ...":"Fout bij het muten van de gebruiker","Error pinning message":"Fout bij vastzetten van bericht","Error removing message pin":"Fout bij verwijderen van berichtpin","Error unmuting a user ...":"Fout bij het unmuten van de gebruiker","Error uploading file":"Fout bij uploaden bestand","Error uploading image":"Fout bij uploaden afbeelding","Error · Unsent":"Error: · niet verzonden","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$3,"Message Failed · Click to try again":"Bericht mislukt, klik om het nogmaals te proberen","Message Failed · Unauthorized":"Bericht mislukt, ongeautoriseerd","Message deleted":"Bericht verwijderd","Message has been successfully flagged":"Bericht is succesvol gemarkeerd","Message pinned":"Bericht vastgezet",Mute:Mute$3,New:New$3,"New Messages!":"Nieuwe Berichten!","No results found":"Geen resultaten gevonden","Nothing yet...":"Nog niets ...","Only visible to you":"Alleen zichtbaar voor jou","Open emoji picker":"Open emojipicker","People matching":"Mensen die matchen","Pick your emoji":"Kies je emoji",Pin:Pin$3,"Pinned by":"Vastgemaakt door",Reply:Reply$3,"Reply to Message":"Antwoord op bericht",Search:Search$3,"Searching...":"Zoeken...",Send:Send$3,"Send message request failed":"Verzoek om bericht te verzenden mislukt","Sending...":"Aan het verzenden...","Slow Mode ON":"Langzame modus aan","Start of a new thread":"Begin van een nieuwe draadje","This message was deleted...":"Dit bericht was verwijderd",Thread:Thread$4,"Type your message":"Type je bericht",Unmute:Unmute$3,Unpin:Unpin$3,"Upload type: \"{{ type }}\" is not allowed":"Uploadtype: \"{{ type }}\" is niet toegestaan","Wait until all attachments have uploaded":"Wacht tot alle bijlagen zijn geüpload","You have no channels currently":"Er zijn geen chats beschikbaar","You've reached the maximum number of files":"Je hebt het maximale aantal bestanden bereikt",live:live$3,"this content could not be displayed":"Deze inhoud kan niet weergegeven worden","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} en {{ moreCount }} meer","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} en {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} en {{ secondUser }}","{{ imageCount }} more":"+{{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} deelnemers","{{ replyCount }} replies":"{{ replyCount }} antwoorden","{{ user }} has been muted":"{{ user }} is muted","{{ user }} has been unmuted":"{{ user }} is unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Bijlage..."};
|
|
7028
|
+
var Cancel$3="Annuleer";var Close$3="Sluit";var Delete$3="Verwijder";var Delivered$3="Afgeleverd";var Flag$3="Markeer";var Menu$3="Menu";var Mute$3="Mute";var New$3="Nieuwe";var Pin$3="Pin";var Reply$3="Antwoord";var Search$3="Zoeken";var Send$3="Verstuur";var Thread$4="Draadje";var Unmute$3="Unmute";var Unpin$3="Losmaken";var live$3="live";var nlTranslations = {"1 reply":"1 antwoord","Attach files":"Bijlage toevoegen",Cancel:Cancel$3,"Channel Missing":"Kanaal niet gevonden",Close:Close$3,"Close emoji picker":"Sluit de emoji-kiezer","Commands matching":"Bijpassende opdrachten","Connection failure, reconnecting now...":"Probleem met de verbinding, opnieuw verbinding maken...",Delete:Delete$3,Delivered:Delivered$3,"Edit Message":"Pas bericht aan","Edit message request failed":"Verzoek om bericht bewerken mislukt","Emoji matching":"Emoji-overeenkomsten","Empty message...":"Leeg bericht...","Error adding flag":"Fout bij toevoegen van vlag","Error connecting to chat, refresh the page to try again.":"Fout bij het verbinden, ververs de pagina om nogmaals te proberen","Error deleting message":"Fout bij verwijderen van bericht","Error muting a user ...":"Fout bij het muten van de gebruiker","Error pinning message":"Fout bij vastzetten van bericht","Error removing message pin":"Fout bij verwijderen van berichtpin","Error unmuting a user ...":"Fout bij het unmuten van de gebruiker","Error uploading file":"Fout bij uploaden bestand","Error uploading image":"Fout bij uploaden afbeelding","Error · Unsent":"Error: · niet verzonden","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$3,Menu:Menu$3,"Message Failed · Click to try again":"Bericht mislukt, klik om het nogmaals te proberen","Message Failed · Unauthorized":"Bericht mislukt, ongeautoriseerd","Message deleted":"Bericht verwijderd","Message has been successfully flagged":"Bericht is succesvol gemarkeerd","Message pinned":"Bericht vastgezet",Mute:Mute$3,New:New$3,"New Messages!":"Nieuwe Berichten!","No results found":"Geen resultaten gevonden","Nothing yet...":"Nog niets ...","Only visible to you":"Alleen zichtbaar voor jou","Open emoji picker":"Open emojipicker","People matching":"Mensen die matchen","Pick your emoji":"Kies je emoji",Pin:Pin$3,"Pinned by":"Vastgemaakt door",Reply:Reply$3,"Reply to Message":"Antwoord op bericht",Search:Search$3,"Searching...":"Zoeken...",Send:Send$3,"Send message request failed":"Verzoek om bericht te verzenden mislukt","Sending...":"Aan het verzenden...","Slow Mode ON":"Langzame modus aan","Start of a new thread":"Begin van een nieuwe draadje","This message was deleted...":"Dit bericht was verwijderd",Thread:Thread$4,"Type your message":"Type je bericht",Unmute:Unmute$3,Unpin:Unpin$3,"Upload type: \"{{ type }}\" is not allowed":"Uploadtype: \"{{ type }}\" is niet toegestaan","Wait until all attachments have uploaded":"Wacht tot alle bijlagen zijn geüpload","You have no channels currently":"Er zijn geen chats beschikbaar","You've reached the maximum number of files":"Je hebt het maximale aantal bestanden bereikt",live:live$3,"this content could not be displayed":"Deze inhoud kan niet weergegeven worden","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} en {{ moreCount }} meer","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} en {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} en {{ secondUser }}","{{ imageCount }} more":"+{{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} deelnemers","{{ replyCount }} replies":"{{ replyCount }} antwoorden","{{ user }} has been muted":"{{ user }} is muted","{{ user }} has been unmuted":"{{ user }} is unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Bijlage..."};
|
|
7003
7029
|
|
|
7004
|
-
var Cancel$2="Cancelar";var Close$2="Perto";var Delete$2="Excluir";var Delivered$2="Entregue";var Flag$2="Bandeira";var Mute$2="Mudo";var New$2="Novo";var Pin$2="Alfinete";var Reply$2="Responder";var Search$2="Procurar";var Send$2="Mandar";var Thread$3="Fio";var Unmute$2="Com som";var Unpin$2="Liberar";var live$2="viver";var ptTranslations = {"1 reply":"1 resposta","Attach files":"Anexar arquivos",Cancel:Cancel$2,"Channel Missing":"Canal ausente",Close:Close$2,"Close emoji picker":"Fechar seletor de emoji","Commands matching":"Correspondência de comandos","Connection failure, reconnecting now...":"Falha de conexão, reconectando agora ...",Delete:Delete$2,Delivered:Delivered$2,"Edit Message":"Editar Mensagem","Edit message request failed":"O pedido de edição da mensagem falhou","Emoji matching":"Emoji correspondente","Empty message...":"Mensagem vazia ...","Error adding flag":"Erro ao adicionar bandeira","Error connecting to chat, refresh the page to try again.":"Erro ao conectar ao bate-papo, atualize a página para tentar novamente.","Error deleting message":"Erro ao deletar mensagem","Error muting a user ...":"Erro ao silenciar um usuário ...","Error pinning message":"Erro ao fixar mensagem","Error removing message pin":"Erro ao remover o PIN da mensagem","Error unmuting a user ...":"Erro ao ativar o som de um usuário ...","Error uploading file":"Erro ao enviar arquivo","Error uploading image":"Erro ao carregar a imagem","Error · Unsent":"Erro · Não enviado","Error: {{ errorMessage }}":"Erro: {{ errorMessage }}",Flag:Flag$2,"Message Failed · Click to try again":"A mensagem falhou · Clique para tentar novamente","Message Failed · Unauthorized":"A mensagem falhou · não autorizado","Message deleted":"Mensagem apagada","Message has been successfully flagged":"A mensagem foi sinalizada com sucesso","Message pinned":"Mensagem fixada",Mute:Mute$2,New:New$2,"New Messages!":"Novas mensagens!","No results found":"Nenhum resultado encontrado","Nothing yet...":"Nada ainda...","Only visible to you":"Visível apenas para você","Open emoji picker":"Abrir seletor de emoji","People matching":"Pessoas combinando","Pick your emoji":"Escolha o seu emoji",Pin:Pin$2,"Pinned by":"Fixado por",Reply:Reply$2,"Reply to Message":"Responder a mensagem",Search:Search$2,"Searching...":"Procurando...",Send:Send$2,"Send message request failed":"O pedido de envio de mensagem falhou","Sending...":"Enviando ...","Slow Mode ON":"Modo lento LIGADO","Start of a new thread":"Início de um novo tópico","This message was deleted...":"Esta mensagem foi excluída ...",Thread:Thread$3,"Type your message":"Digite sua mensagem",Unmute:Unmute$2,Unpin:Unpin$2,"Upload type: \"{{ type }}\" is not allowed":"Tipo de upload: \"{{ type }}\" não é permitido","Wait until all attachments have uploaded":"Espere até que todos os anexos tenham sido carregados","You have no channels currently":"Você não tem canais atualmente","You've reached the maximum number of files":"Você atingiu o número máximo de arquivos",live:live$2,"this content could not be displayed":"este conteúdo não pôde ser exibido","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e mais {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mais","{{ memberCount }} members":"{{ memberCount }} membros","{{ replyCount }} replies":"{{ replyCount }} respostas","{{ user }} has been muted":"{{ user }} foi silenciado","{{ user }} has been unmuted":"{{ user }} foi reativado","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anexo ..."};
|
|
7030
|
+
var Cancel$2="Cancelar";var Close$2="Perto";var Delete$2="Excluir";var Delivered$2="Entregue";var Flag$2="Bandeira";var Menu$2="Cardápio";var Mute$2="Mudo";var New$2="Novo";var Pin$2="Alfinete";var Reply$2="Responder";var Search$2="Procurar";var Send$2="Mandar";var Thread$3="Fio";var Unmute$2="Com som";var Unpin$2="Liberar";var live$2="viver";var ptTranslations = {"1 reply":"1 resposta","Attach files":"Anexar arquivos",Cancel:Cancel$2,"Channel Missing":"Canal ausente",Close:Close$2,"Close emoji picker":"Fechar seletor de emoji","Commands matching":"Correspondência de comandos","Connection failure, reconnecting now...":"Falha de conexão, reconectando agora ...",Delete:Delete$2,Delivered:Delivered$2,"Edit Message":"Editar Mensagem","Edit message request failed":"O pedido de edição da mensagem falhou","Emoji matching":"Emoji correspondente","Empty message...":"Mensagem vazia ...","Error adding flag":"Erro ao adicionar bandeira","Error connecting to chat, refresh the page to try again.":"Erro ao conectar ao bate-papo, atualize a página para tentar novamente.","Error deleting message":"Erro ao deletar mensagem","Error muting a user ...":"Erro ao silenciar um usuário ...","Error pinning message":"Erro ao fixar mensagem","Error removing message pin":"Erro ao remover o PIN da mensagem","Error unmuting a user ...":"Erro ao ativar o som de um usuário ...","Error uploading file":"Erro ao enviar arquivo","Error uploading image":"Erro ao carregar a imagem","Error · Unsent":"Erro · Não enviado","Error: {{ errorMessage }}":"Erro: {{ errorMessage }}",Flag:Flag$2,Menu:Menu$2,"Message Failed · Click to try again":"A mensagem falhou · Clique para tentar novamente","Message Failed · Unauthorized":"A mensagem falhou · não autorizado","Message deleted":"Mensagem apagada","Message has been successfully flagged":"A mensagem foi sinalizada com sucesso","Message pinned":"Mensagem fixada",Mute:Mute$2,New:New$2,"New Messages!":"Novas mensagens!","No results found":"Nenhum resultado encontrado","Nothing yet...":"Nada ainda...","Only visible to you":"Visível apenas para você","Open emoji picker":"Abrir seletor de emoji","People matching":"Pessoas combinando","Pick your emoji":"Escolha o seu emoji",Pin:Pin$2,"Pinned by":"Fixado por",Reply:Reply$2,"Reply to Message":"Responder a mensagem",Search:Search$2,"Searching...":"Procurando...",Send:Send$2,"Send message request failed":"O pedido de envio de mensagem falhou","Sending...":"Enviando ...","Slow Mode ON":"Modo lento LIGADO","Start of a new thread":"Início de um novo tópico","This message was deleted...":"Esta mensagem foi excluída ...",Thread:Thread$3,"Type your message":"Digite sua mensagem",Unmute:Unmute$2,Unpin:Unpin$2,"Upload type: \"{{ type }}\" is not allowed":"Tipo de upload: \"{{ type }}\" não é permitido","Wait until all attachments have uploaded":"Espere até que todos os anexos tenham sido carregados","You have no channels currently":"Você não tem canais atualmente","You've reached the maximum number of files":"Você atingiu o número máximo de arquivos",live:live$2,"this content could not be displayed":"este conteúdo não pôde ser exibido","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e mais {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mais","{{ memberCount }} members":"{{ memberCount }} membros","{{ replyCount }} replies":"{{ replyCount }} respostas","{{ user }} has been muted":"{{ user }} foi silenciado","{{ user }} has been unmuted":"{{ user }} foi reativado","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anexo ..."};
|
|
7005
7031
|
|
|
7006
|
-
var Cancel$1="Отмена";var Close$1="Закрыть";var Delete$1="Удалить";var Delivered$1="Отправлено";var Flag$1="Пожаловаться";var Mute$1="Отключить уведомления";var New$1="Новые";var Pin$1="Штырь";var Reply$1="Отвечать";var Search$1="Поиск";var Send$1="Отправить";var Thread$2="Ветка";var Unmute$1="Включить уведомления";var Unpin$1="Открепить";var live$1="В прямом эфире";var ruTranslations = {"1 reply":"1 ответ","Attach files":"Прикрепить файлы",Cancel:Cancel$1,"Channel Missing":"Канал не найден",Close:Close$1,"Close emoji picker":"Закрыть окно выбора смайлов","Commands matching":"Соответствие команд","Connection failure, reconnecting now...":"Ошибка соединения, переподключение...",Delete:Delete$1,Delivered:Delivered$1,"Edit Message":"Редактировать сообщение","Edit message request failed":"Не удалось изменить запрос сообщения","Emoji matching":"Соответствие эмодзи","Empty message...":"Пустое сообщение...","Error adding flag":"Ошибка добавления флага","Error connecting to chat, refresh the page to try again.":"Ошибка подключения к чату, обновите страницу чтобы попробовать снова.","Error deleting message":"Ошибка при удалении сообщения","Error muting a user ...":"Ошибка отключения уведомлений от пользователя...","Error pinning message":"Сообщение об ошибке при закреплении","Error removing message pin":"Ошибка при удалении булавки сообщения","Error unmuting a user ...":"Ошибка включения уведомлений...","Error uploading file":"Ошибка при загрузке файла","Error uploading image":"Ошибка загрузки изображения","Error · Unsent":"Ошибка · Не отправлено","Error: {{ errorMessage }}":"Ошибка: {{ errorMessage }}",Flag:Flag$1,"Message Failed · Click to try again":"Ошибка отправки сообщения · Нажмите чтобы повторить","Message Failed · Unauthorized":"Ошибка отправки сообщения · Неавторизованный","Message deleted":"Сообщение удалено","Message has been successfully flagged":"Жалоба на сообщение была принята","Message pinned":"Сообщение закреплено",Mute:Mute$1,New:New$1,"New Messages!":"Новые сообщения!","No results found":"результаты не найдены","Nothing yet...":"Пока ничего нет...","Only visible to you":"Только видно для вас","Open emoji picker":"Выбрать emoji","People matching":"Соответствующие люди","Pick your emoji":"Выберите свой emoji",Pin:Pin$1,"Pinned by":"Закреплено",Reply:Reply$1,"Reply to Message":"Ответить на сообщение",Search:Search$1,"Searching...":"Ищем...",Send:Send$1,"Send message request failed":"Не удалось отправить запрос на отправку сообщения","Sending...":"Отправка...","Slow Mode ON":"Медленный режим включен","Start of a new thread":"Начало новой ветки","This message was deleted...":"Сообщение было удалено...",Thread:Thread$2,"Type your message":"Ваше сообщение",Unmute:Unmute$1,Unpin:Unpin$1,"Upload type: \"{{ type }}\" is not allowed":"Тип загрузки: \"{{ type }}\" не разрешен","Wait until all attachments have uploaded":"Подождите, пока все вложения загрузятся","You have no channels currently":"У вас нет каналов в данный момент","You've reached the maximum number of files":"Вы достигли максимального количества файлов",live:live$1,"this content could not be displayed":"Этот контент не может быть отображен в данный момент","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} и {{ moreCount }} еще","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} и {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} и {{ secondUser }}","{{ imageCount }} more":"Ещё {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} члены","{{ replyCount }} replies":"{{ replyCount }} ответов","{{ user }} has been muted":"Вы отписались от уведомлений от {{ user }}","{{ user }} has been unmuted":"Уведомления от {{ user }} были включены","{{ watcherCount }} online":"{{ watcherCount }} в сети","🏙 Attachment...":"🏙 Вложение..."};
|
|
7032
|
+
var Cancel$1="Отмена";var Close$1="Закрыть";var Delete$1="Удалить";var Delivered$1="Отправлено";var Flag$1="Пожаловаться";var Menu$1="Меню";var Mute$1="Отключить уведомления";var New$1="Новые";var Pin$1="Штырь";var Reply$1="Отвечать";var Search$1="Поиск";var Send$1="Отправить";var Thread$2="Ветка";var Unmute$1="Включить уведомления";var Unpin$1="Открепить";var live$1="В прямом эфире";var ruTranslations = {"1 reply":"1 ответ","Attach files":"Прикрепить файлы",Cancel:Cancel$1,"Channel Missing":"Канал не найден",Close:Close$1,"Close emoji picker":"Закрыть окно выбора смайлов","Commands matching":"Соответствие команд","Connection failure, reconnecting now...":"Ошибка соединения, переподключение...",Delete:Delete$1,Delivered:Delivered$1,"Edit Message":"Редактировать сообщение","Edit message request failed":"Не удалось изменить запрос сообщения","Emoji matching":"Соответствие эмодзи","Empty message...":"Пустое сообщение...","Error adding flag":"Ошибка добавления флага","Error connecting to chat, refresh the page to try again.":"Ошибка подключения к чату, обновите страницу чтобы попробовать снова.","Error deleting message":"Ошибка при удалении сообщения","Error muting a user ...":"Ошибка отключения уведомлений от пользователя...","Error pinning message":"Сообщение об ошибке при закреплении","Error removing message pin":"Ошибка при удалении булавки сообщения","Error unmuting a user ...":"Ошибка включения уведомлений...","Error uploading file":"Ошибка при загрузке файла","Error uploading image":"Ошибка загрузки изображения","Error · Unsent":"Ошибка · Не отправлено","Error: {{ errorMessage }}":"Ошибка: {{ errorMessage }}",Flag:Flag$1,Menu:Menu$1,"Message Failed · Click to try again":"Ошибка отправки сообщения · Нажмите чтобы повторить","Message Failed · Unauthorized":"Ошибка отправки сообщения · Неавторизованный","Message deleted":"Сообщение удалено","Message has been successfully flagged":"Жалоба на сообщение была принята","Message pinned":"Сообщение закреплено",Mute:Mute$1,New:New$1,"New Messages!":"Новые сообщения!","No results found":"результаты не найдены","Nothing yet...":"Пока ничего нет...","Only visible to you":"Только видно для вас","Open emoji picker":"Выбрать emoji","People matching":"Соответствующие люди","Pick your emoji":"Выберите свой emoji",Pin:Pin$1,"Pinned by":"Закреплено",Reply:Reply$1,"Reply to Message":"Ответить на сообщение",Search:Search$1,"Searching...":"Ищем...",Send:Send$1,"Send message request failed":"Не удалось отправить запрос на отправку сообщения","Sending...":"Отправка...","Slow Mode ON":"Медленный режим включен","Start of a new thread":"Начало новой ветки","This message was deleted...":"Сообщение было удалено...",Thread:Thread$2,"Type your message":"Ваше сообщение",Unmute:Unmute$1,Unpin:Unpin$1,"Upload type: \"{{ type }}\" is not allowed":"Тип загрузки: \"{{ type }}\" не разрешен","Wait until all attachments have uploaded":"Подождите, пока все вложения загрузятся","You have no channels currently":"У вас нет каналов в данный момент","You've reached the maximum number of files":"Вы достигли максимального количества файлов",live:live$1,"this content could not be displayed":"Этот контент не может быть отображен в данный момент","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} и {{ moreCount }} еще","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} и {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} и {{ secondUser }}","{{ imageCount }} more":"Ещё {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} члены","{{ replyCount }} replies":"{{ replyCount }} ответов","{{ user }} has been muted":"Вы отписались от уведомлений от {{ user }}","{{ user }} has been unmuted":"Уведомления от {{ user }} были включены","{{ watcherCount }} online":"{{ watcherCount }} в сети","🏙 Attachment...":"🏙 Вложение..."};
|
|
7007
7033
|
|
|
7008
|
-
var Cancel="İptal";var Close="Kapat";var Delete="Sil";var Delivered="İletildi";var Flag="Bayrak";var Mute="Sessiz";var New="Yeni";var Pin="Toplu iğne";var Reply="Cevapla";var Search="Arama";var Send="Gönder";var Thread$1="Konu";var Unmute="Sesini aç";var Unpin="Sabitlemeyi kaldır";var live="canlı";var trTranslations = {"1 reply":"1 cevap","Attach files":"Dosya ekle",Cancel:Cancel,"Channel Missing":"Kanal bulunamıyor",Close:Close,"Close emoji picker":"Emoji seçiciyi kapat","Commands matching":"Eşleşen komutlar","Connection failure, reconnecting now...":"Bağlantı hatası, tekrar bağlanılıyor...",Delete:Delete,Delivered:Delivered,"Edit Message":"Mesajı Düzenle","Edit message request failed":"Mesaj düzenleme isteği başarısız oldu","Emoji matching":"Emoji eşleştirme","Empty message...":"Boş mesaj...","Error adding flag":"Bayrak eklenirken hata oluştu","Error connecting to chat, refresh the page to try again.":"Bağlantı hatası, sayfayı yenileyip tekrar deneyin.","Error deleting message":"Mesaj silinirken hata oluştu","Error muting a user ...":"Kullanıcıyı sessize alırken hata oluştu ...","Error pinning message":"Mesaj sabitlenirken hata oluştu","Error removing message pin":"Mesaj PIN'i kaldırılırken hata oluştu","Error unmuting a user ...":"Kullanıcının sesini açarken hata oluştu ...","Error uploading file":"Dosya yüklenirken hata oluştu","Error uploading image":"Resmi yüklerken hata","Error · Unsent":"Hata · Gönderilemedi","Error: {{ errorMessage }}":"Hata: {{ errorMessage }}",Flag:Flag,"Message Failed · Click to try again":"Mesaj Başarısız · Tekrar denemek için tıklayın","Message Failed · Unauthorized":"Mesaj Başarısız · Yetkisiz","Message deleted":"Mesaj silindi","Message has been successfully flagged":"Mesaj başarıyla bayraklandı","Message pinned":"Mesaj sabitlendi",Mute:Mute,New:New,"New Messages!":"Yeni Mesajlar!","No results found":"Sonuç bulunamadı","Nothing yet...":"Şimdilik hiçbir şey...","Only visible to you":"Sadece size görünür","Open emoji picker":"Emoji klavyesini aç","People matching":"Eşleşen kişiler","Pick your emoji":"Emoji seçin",Pin:Pin,"Pinned by":"Sabitleyen",Reply:Reply,"Reply to Message":"Mesajı Cevapla",Search:Search,"Searching...":"Aranıyor...",Send:Send,"Send message request failed":"Mesaj gönderme isteği başarısız oldu","Sending...":"Gönderiliyor...","Slow Mode ON":"Yavaş Mod Açık","Start of a new thread":"Yeni konunun başı","This message was deleted...":"Bu mesaj silindi",Thread:Thread$1,"Type your message":"Mesajınızı yazın",Unmute:Unmute,Unpin:Unpin,"Upload type: \"{{ type }}\" is not allowed":"Yükleme türü: \"{{ type }}\" izin verilmez","Wait until all attachments have uploaded":"Tüm ekler yüklenene kadar bekleyin","You have no channels currently":"Henüz kanalınız yok","You've reached the maximum number of files":"Maksimum dosya sayısına ulaştınız",live:live,"this content could not be displayed":"bu içerik gösterilemiyor","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} ve {{ moreCount }} daha","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, ve {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} ve {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} adet daha","{{ memberCount }} members":"{{ memberCount }} üyeler","{{ replyCount }} replies":"{{ replyCount }} cevaplar","{{ user }} has been muted":"{{ user }} sessize alındı","{{ user }} has been unmuted":"{{ user }} sesi açıldı","{{ watcherCount }} online":"{{ watcherCount }} çevrimiçi","🏙 Attachment...":"🏙 Ek..."};
|
|
7034
|
+
var Cancel="İptal";var Close="Kapat";var Delete="Sil";var Delivered="İletildi";var Flag="Bayrak";var Menu="Menü";var Mute="Sessiz";var New="Yeni";var Pin="Toplu iğne";var Reply="Cevapla";var Search="Arama";var Send="Gönder";var Thread$1="Konu";var Unmute="Sesini aç";var Unpin="Sabitlemeyi kaldır";var live="canlı";var trTranslations = {"1 reply":"1 cevap","Attach files":"Dosya ekle",Cancel:Cancel,"Channel Missing":"Kanal bulunamıyor",Close:Close,"Close emoji picker":"Emoji seçiciyi kapat","Commands matching":"Eşleşen komutlar","Connection failure, reconnecting now...":"Bağlantı hatası, tekrar bağlanılıyor...",Delete:Delete,Delivered:Delivered,"Edit Message":"Mesajı Düzenle","Edit message request failed":"Mesaj düzenleme isteği başarısız oldu","Emoji matching":"Emoji eşleştirme","Empty message...":"Boş mesaj...","Error adding flag":"Bayrak eklenirken hata oluştu","Error connecting to chat, refresh the page to try again.":"Bağlantı hatası, sayfayı yenileyip tekrar deneyin.","Error deleting message":"Mesaj silinirken hata oluştu","Error muting a user ...":"Kullanıcıyı sessize alırken hata oluştu ...","Error pinning message":"Mesaj sabitlenirken hata oluştu","Error removing message pin":"Mesaj PIN'i kaldırılırken hata oluştu","Error unmuting a user ...":"Kullanıcının sesini açarken hata oluştu ...","Error uploading file":"Dosya yüklenirken hata oluştu","Error uploading image":"Resmi yüklerken hata","Error · Unsent":"Hata · Gönderilemedi","Error: {{ errorMessage }}":"Hata: {{ errorMessage }}",Flag:Flag,Menu:Menu,"Message Failed · Click to try again":"Mesaj Başarısız · Tekrar denemek için tıklayın","Message Failed · Unauthorized":"Mesaj Başarısız · Yetkisiz","Message deleted":"Mesaj silindi","Message has been successfully flagged":"Mesaj başarıyla bayraklandı","Message pinned":"Mesaj sabitlendi",Mute:Mute,New:New,"New Messages!":"Yeni Mesajlar!","No results found":"Sonuç bulunamadı","Nothing yet...":"Şimdilik hiçbir şey...","Only visible to you":"Sadece size görünür","Open emoji picker":"Emoji klavyesini aç","People matching":"Eşleşen kişiler","Pick your emoji":"Emoji seçin",Pin:Pin,"Pinned by":"Sabitleyen",Reply:Reply,"Reply to Message":"Mesajı Cevapla",Search:Search,"Searching...":"Aranıyor...",Send:Send,"Send message request failed":"Mesaj gönderme isteği başarısız oldu","Sending...":"Gönderiliyor...","Slow Mode ON":"Yavaş Mod Açık","Start of a new thread":"Yeni konunun başı","This message was deleted...":"Bu mesaj silindi",Thread:Thread$1,"Type your message":"Mesajınızı yazın",Unmute:Unmute,Unpin:Unpin,"Upload type: \"{{ type }}\" is not allowed":"Yükleme türü: \"{{ type }}\" izin verilmez","Wait until all attachments have uploaded":"Tüm ekler yüklenene kadar bekleyin","You have no channels currently":"Henüz kanalınız yok","You've reached the maximum number of files":"Maksimum dosya sayısına ulaştınız",live:live,"this content could not be displayed":"bu içerik gösterilemiyor","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} ve {{ moreCount }} daha","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, ve {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} ve {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} adet daha","{{ memberCount }} members":"{{ memberCount }} üyeler","{{ replyCount }} replies":"{{ replyCount }} cevaplar","{{ user }} has been muted":"{{ user }} sessize alındı","{{ user }} has been unmuted":"{{ user }} sesi açıldı","{{ watcherCount }} online":"{{ watcherCount }} çevrimiçi","🏙 Attachment...":"🏙 Ek..."};
|
|
7009
7035
|
|
|
7010
7036
|
var defaultNS = 'translation';
|
|
7011
7037
|
var defaultLng = 'en';
|
|
@@ -7606,7 +7632,7 @@ var Streami18n = /** @class */ (function () {
|
|
|
7606
7632
|
return Streami18n;
|
|
7607
7633
|
}());
|
|
7608
7634
|
|
|
7609
|
-
var version = '
|
|
7635
|
+
var version = '8.0.0';
|
|
7610
7636
|
|
|
7611
7637
|
var useChat = function (_a) {
|
|
7612
7638
|
var _b;
|
|
@@ -7619,7 +7645,7 @@ var useChat = function (_a) {
|
|
|
7619
7645
|
var _e = React.useState(), channel = _e[0], setChannel = _e[1];
|
|
7620
7646
|
var _f = React.useState([]), mutes = _f[0], setMutes = _f[1];
|
|
7621
7647
|
var _g = React.useState(initialNavOpen), navOpen = _g[0], setNavOpen = _g[1];
|
|
7622
|
-
var clientMutes = (_b = client.user) === null || _b === void 0 ? void 0 : _b.mutes;
|
|
7648
|
+
var clientMutes = ((_b = client.user) === null || _b === void 0 ? void 0 : _b.mutes) || [];
|
|
7623
7649
|
var closeMobileNav = function () { return setNavOpen(false); };
|
|
7624
7650
|
var openMobileNav = function () { return setTimeout(function () { return setNavOpen(true); }, 100); };
|
|
7625
7651
|
var appSettings = React.useRef(null);
|
|
@@ -7640,7 +7666,7 @@ var useChat = function (_a) {
|
|
|
7640
7666
|
}
|
|
7641
7667
|
}, [client]);
|
|
7642
7668
|
React.useEffect(function () {
|
|
7643
|
-
setMutes(clientMutes
|
|
7669
|
+
setMutes(clientMutes);
|
|
7644
7670
|
var handleEvent = function (event) {
|
|
7645
7671
|
var _a;
|
|
7646
7672
|
setMutes(((_a = event.me) === null || _a === void 0 ? void 0 : _a.mutes) || []);
|
|
@@ -8341,7 +8367,7 @@ var UnMemoizedCustomNotification = function (props) {
|
|
|
8341
8367
|
var active = props.active, children = props.children, type = props.type;
|
|
8342
8368
|
if (!active)
|
|
8343
8369
|
return null;
|
|
8344
|
-
return (React__default['default'].createElement("div", { className: "str-chat__custom-notification notification-" + type, "data-testid": 'custom-notification' }, children));
|
|
8370
|
+
return (React__default['default'].createElement("div", { "aria-live": 'polite', className: "str-chat__custom-notification notification-" + type, "data-testid": 'custom-notification' }, children));
|
|
8345
8371
|
};
|
|
8346
8372
|
var CustomNotification = React__default['default'].memo(UnMemoizedCustomNotification);
|
|
8347
8373
|
|
|
@@ -8793,7 +8819,7 @@ var UnMemoizedMessageNotification = function (props) {
|
|
|
8793
8819
|
var children = props.children, onClick = props.onClick, _a = props.showNotification, showNotification = _a === void 0 ? true : _a;
|
|
8794
8820
|
if (!showNotification)
|
|
8795
8821
|
return null;
|
|
8796
|
-
return (React__default['default'].createElement("button", { className: 'str-chat__message-notification', "data-testid": 'message-notification', onClick: onClick }, children));
|
|
8822
|
+
return (React__default['default'].createElement("button", { "aria-live": 'polite', className: 'str-chat__message-notification', "data-testid": 'message-notification', onClick: onClick }, children));
|
|
8797
8823
|
};
|
|
8798
8824
|
var MessageNotification = React__default['default'].memo(UnMemoizedMessageNotification);
|
|
8799
8825
|
|
|
@@ -9041,10 +9067,30 @@ function useShouldForceScrollToBottom(messages, currentUserId) {
|
|
|
9041
9067
|
}
|
|
9042
9068
|
|
|
9043
9069
|
var PREPEND_OFFSET = Math.pow(10, 7);
|
|
9070
|
+
function captureResizeObserverExceededError(e) {
|
|
9071
|
+
if (e.message === 'ResizeObserver loop completed with undelivered notifications.' ||
|
|
9072
|
+
e.message === 'ResizeObserver loop limit exceeded') {
|
|
9073
|
+
e.stopImmediatePropagation();
|
|
9074
|
+
}
|
|
9075
|
+
}
|
|
9076
|
+
function useCaptureResizeObserverExceededError() {
|
|
9077
|
+
React.useEffect(function () {
|
|
9078
|
+
window.addEventListener('error', captureResizeObserverExceededError);
|
|
9079
|
+
return function () {
|
|
9080
|
+
window.removeEventListener('error', captureResizeObserverExceededError);
|
|
9081
|
+
};
|
|
9082
|
+
}, []);
|
|
9083
|
+
}
|
|
9084
|
+
function fractionalItemSize(element) {
|
|
9085
|
+
return element.getBoundingClientRect().height;
|
|
9086
|
+
}
|
|
9044
9087
|
var VirtualizedMessageListWithContext = function (props) {
|
|
9045
9088
|
var additionalVirtuosoProps = props.additionalVirtuosoProps, channel = props.channel, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? true : _a, hasMore = props.hasMore, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, loadingMore = props.loadingMore, loadMore = props.loadMore, propMessage = props.Message, _d = props.messageLimit, messageLimit = _d === void 0 ? 100 : _d, messages = props.messages, notifications = props.notifications, _e = props.overscan, overscan = _e === void 0 ? 0 : _e,
|
|
9046
9089
|
// TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
|
|
9047
9090
|
scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _f = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _f === void 0 ? false : _f, _g = props.separateGiphyPreview, separateGiphyPreview = _g === void 0 ? false : _g, _h = props.shouldGroupByUser, shouldGroupByUser = _h === void 0 ? false : _h, _j = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _j === void 0 ? 'smooth' : _j;
|
|
9091
|
+
// Stops errors generated from react-virtuoso to bubble up
|
|
9092
|
+
// to Sentry or other tracking tools.
|
|
9093
|
+
useCaptureResizeObserverExceededError();
|
|
9048
9094
|
var _k = useComponentContext('VirtualizedMessageList'), _l = _k.DateSeparator, DateSeparator$1 = _l === void 0 ? DateSeparator : _l, _m = _k.EmptyStateIndicator, EmptyStateIndicator$1 = _m === void 0 ? EmptyStateIndicator : _m, _o = _k.GiphyPreviewMessage, GiphyPreviewMessage$1 = _o === void 0 ? GiphyPreviewMessage : _o, _p = _k.LoadingIndicator, LoadingIndicator$1 = _p === void 0 ? LoadingIndicator : _p, _q = _k.MessageListNotifications, MessageListNotifications$1 = _q === void 0 ? MessageListNotifications : _q, _r = _k.MessageNotification, MessageNotification$1 = _r === void 0 ? MessageNotification : _r, _s = _k.MessageSystem, MessageSystem = _s === void 0 ? EventComponent : _s, _t = _k.TypingIndicator, TypingIndicator = _t === void 0 ? null : _t, _u = _k.VirtualMessage, contextMessage = _u === void 0 ? MessageSimple : _u;
|
|
9049
9095
|
var _v = useChatContext('VirtualizedMessageList'), client = _v.client, customClasses = _v.customClasses;
|
|
9050
9096
|
var lastRead = React.useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
|
|
@@ -9087,16 +9133,29 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9087
9133
|
}
|
|
9088
9134
|
setNewMessagesNotification(false);
|
|
9089
9135
|
}, [virtuoso, processedMessages, setNewMessagesNotification, processedMessages.length]);
|
|
9136
|
+
var _y = React__default['default'].useState(false), newMessagesReceivedInBackground = _y[0], setNewMessagesReceivedInBackground = _y[1];
|
|
9137
|
+
var resetNewMessagesReceivedInBackground = React.useCallback(function () {
|
|
9138
|
+
setNewMessagesReceivedInBackground(false);
|
|
9139
|
+
}, []);
|
|
9140
|
+
React.useEffect(function () {
|
|
9141
|
+
setNewMessagesReceivedInBackground(true);
|
|
9142
|
+
}, [messages]);
|
|
9090
9143
|
var scrollToBottomIfConfigured = React.useCallback(function (event) {
|
|
9091
9144
|
if (scrollToLatestMessageOnFocus && event.target === window) {
|
|
9092
|
-
|
|
9145
|
+
if (newMessagesReceivedInBackground) {
|
|
9146
|
+
setTimeout(scrollToBottom, 100);
|
|
9147
|
+
}
|
|
9093
9148
|
}
|
|
9094
|
-
}, [scrollToLatestMessageOnFocus, scrollToBottom]);
|
|
9149
|
+
}, [scrollToLatestMessageOnFocus, scrollToBottom, newMessagesReceivedInBackground]);
|
|
9095
9150
|
React.useEffect(function () {
|
|
9096
9151
|
if (typeof window !== 'undefined') {
|
|
9097
9152
|
window.addEventListener('focus', scrollToBottomIfConfigured);
|
|
9153
|
+
window.addEventListener('blur', resetNewMessagesReceivedInBackground);
|
|
9098
9154
|
}
|
|
9099
|
-
return function () {
|
|
9155
|
+
return function () {
|
|
9156
|
+
window.removeEventListener('focus', scrollToBottomIfConfigured);
|
|
9157
|
+
window.removeEventListener('blur', resetNewMessagesReceivedInBackground);
|
|
9158
|
+
};
|
|
9100
9159
|
}, [scrollToBottomIfConfigured]);
|
|
9101
9160
|
var numItemsPrepended = usePrependedMessagesCount(processedMessages);
|
|
9102
9161
|
var shouldForceScrollToBottom = useShouldForceScrollToBottom(processedMessages, client.userID);
|
|
@@ -9126,12 +9185,8 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9126
9185
|
var groupedByUser = shouldGroupByUser &&
|
|
9127
9186
|
streamMessageIndex > 0 &&
|
|
9128
9187
|
((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = messageList[streamMessageIndex - 1].user) === null || _b === void 0 ? void 0 : _b.id);
|
|
9129
|
-
var firstOfGroup = shouldGroupByUser &&
|
|
9130
|
-
|
|
9131
|
-
((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_e = (_d = messageList[streamMessageIndex - 1]) === null || _d === void 0 ? void 0 : _d.user) === null || _e === void 0 ? void 0 : _e.id);
|
|
9132
|
-
var endOfGroup = shouldGroupByUser &&
|
|
9133
|
-
streamMessageIndex > 0 &&
|
|
9134
|
-
((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
|
|
9188
|
+
var firstOfGroup = shouldGroupByUser && ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_e = (_d = messageList[streamMessageIndex - 1]) === null || _d === void 0 ? void 0 : _d.user) === null || _e === void 0 ? void 0 : _e.id);
|
|
9189
|
+
var endOfGroup = shouldGroupByUser && ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
|
|
9135
9190
|
return (React__default['default'].createElement(Message, { closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: props.customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, message: message, Message: MessageUIComponent, messageActions: props.messageActions }));
|
|
9136
9191
|
}, [customMessageRenderer, shouldGroupByUser, numItemsPrepended]);
|
|
9137
9192
|
var virtuosoComponents = React.useMemo(function () {
|
|
@@ -9169,7 +9224,7 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9169
9224
|
var virtualizedMessageListClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualizedMessageList) || 'str-chat__virtual-list';
|
|
9170
9225
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
9171
9226
|
React__default['default'].createElement("div", { className: virtualizedMessageListClass },
|
|
9172
|
-
React__default['default'].createElement(reactVirtuoso.Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, components: virtuosoComponents, firstItemIndex: PREPEND_OFFSET - numItemsPrepended, followOutput: followOutput, initialTopMostItemIndex: processedMessages.length ? processedMessages.length - 1 : 0, itemContent: function (i) { return messageRenderer(processedMessages, i); }, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, additionalVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {})))),
|
|
9227
|
+
React__default['default'].createElement(reactVirtuoso.Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, components: virtuosoComponents, firstItemIndex: PREPEND_OFFSET - numItemsPrepended, followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: processedMessages.length ? processedMessages.length - 1 : 0, itemContent: function (i) { return messageRenderer(processedMessages, i); }, itemSize: fractionalItemSize, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, additionalVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {})))),
|
|
9173
9228
|
React__default['default'].createElement(MessageListNotifications$1, { hasNewMessages: newMessagesNotification, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottom }),
|
|
9174
9229
|
giphyPreviewMessage && React__default['default'].createElement(GiphyPreviewMessage$1, { message: giphyPreviewMessage })));
|
|
9175
9230
|
};
|
|
@@ -9212,7 +9267,7 @@ var DefaultThreadHeader = function (props) {
|
|
|
9212
9267
|
React__default['default'].createElement("div", { className: 'str-chat__thread-header-details' },
|
|
9213
9268
|
React__default['default'].createElement("strong", null, t('Thread')),
|
|
9214
9269
|
React__default['default'].createElement("small", null, getReplyCount())),
|
|
9215
|
-
React__default['default'].createElement("button", { className: 'str-chat__square-button', "data-testid": 'close-button', onClick: function (event) { return closeThread(event); } },
|
|
9270
|
+
React__default['default'].createElement("button", { "aria-label": 'Close thread', className: 'str-chat__square-button', "data-testid": 'close-button', onClick: function (event) { return closeThread(event); } },
|
|
9216
9271
|
React__default['default'].createElement("svg", { height: '10', width: '10', xmlns: 'http://www.w3.org/2000/svg' },
|
|
9217
9272
|
React__default['default'].createElement("path", { d: 'M9.916 1.027L8.973.084 5 4.058 1.027.084l-.943.943L4.058 5 .084 8.973l.943.943L5 5.942l3.973 3.974.943-.943L5.942 5z', fillRule: 'evenodd' })))));
|
|
9218
9273
|
};
|
|
@@ -9260,10 +9315,7 @@ var ThreadInner = function (props) {
|
|
|
9260
9315
|
var UnMemoizedWindow = function (props) {
|
|
9261
9316
|
var children = props.children, _a = props.hideOnThread, hideOnThread = _a === void 0 ? false : _a;
|
|
9262
9317
|
var thread = useChannelStateContext('Window').thread;
|
|
9263
|
-
|
|
9264
|
-
if (thread && hideOnThread)
|
|
9265
|
-
return null;
|
|
9266
|
-
return React__default['default'].createElement("div", { className: "str-chat__main-panel" }, children);
|
|
9318
|
+
return (React__default['default'].createElement("div", { className: "str-chat__main-panel " + (hideOnThread && thread ? 'str-chat__main-panel--hideOnThread' : '') }, children));
|
|
9267
9319
|
};
|
|
9268
9320
|
/**
|
|
9269
9321
|
* A UI component for conditionally displaying a Thread or Channel
|
|
@@ -9356,9 +9408,9 @@ exports.MessageText = MessageText;
|
|
|
9356
9408
|
exports.MessageTimestamp = MessageTimestamp;
|
|
9357
9409
|
exports.Modal = Modal;
|
|
9358
9410
|
exports.ModalComponent = ModalComponent;
|
|
9359
|
-
exports.ModalImage = ModalImage;
|
|
9360
9411
|
exports.PinIcon = PinIcon;
|
|
9361
9412
|
exports.PinIndicator = PinIndicator;
|
|
9413
|
+
exports.QuotedMessagePreview = QuotedMessagePreview;
|
|
9362
9414
|
exports.ReactionIcon = ReactionIcon;
|
|
9363
9415
|
exports.ReactionSelector = ReactionSelector;
|
|
9364
9416
|
exports.ReactionsList = ReactionsList;
|