Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: expose optional remark plugin to keep all line breaks and keep HTML in message text #2170

Merged

Conversation

MartinCupela
Copy link
Contributor

🎯 Goal

Provide a remark plugin that would allow the integrators to keep the line breaks in the displayed message text. By default, a sequence of multiple line breaks in a markdown string leads to creation of a paragraph element by the remark-parse library used internally by react-markdown (used internally by renderText). To keep the line breaks, these have to be injected while transforming the mdast tree with a custom remark plugin.

This PR introduces export of such plugin but does apply the plugin by default. Integrators that wish to keep those line breaks will have to opt in to use of the plugin as follows:

import { UserResponse } from 'stream-chat';
import {
  htmlToStringPlugin,
  keepLineBreaksPlugin,
  MessageList,
  MessageListProps,
  renderText,
  RenderTextPluginConfigurator,
} from 'stream-chat-react';

const getRemarkPlugins: RenderTextPluginConfigurator = (plugins) => [
  keepLineBreaksPlugin,
  ...plugins,
];

function customRenderText(text?: string, mentionedUsers?: UserResponse[]) {
  return renderText(text, mentionedUsers, { getRemarkPlugins });
}

export const CustomMessageList = (props: MessageListProps) => (
  <MessageList {...props} renderText={customRenderText} />
);

Display HTML in message text

The PR introduces a fix that renders the html in the text as a part of the message text. Until now, the HTML tags were scraped and only the text inside was rendered. Now a remark plugin htmlToTextPlugin is available to render the HTML string as text.

import React from 'react';
import { UserResponse } from 'stream-chat';
import {
  htmlToTextPlugin,
  keepLineBreaksPlugin,
  MessageList,
  MessageListProps,
  renderText,
  RenderTextPluginConfigurator,
} from 'stream-chat-react';

const getRemarkPlugins: RenderTextPluginConfigurator = (plugins) => [
  htmlToTextPlugin,
  keepLineBreaksPlugin,
  ...plugins,
];

function customRenderText(text?: string, mentionedUsers?: UserResponse[]) {
  return renderText(text, mentionedUsers, { getRemarkPlugins });
}

export const CustomMessageList = (props: MessageListProps) => (
  <MessageList {...props} renderText={customRenderText} />
);

🎨 UI Changes

keep line breaks

image

display html as string

image

@MartinCupela MartinCupela marked this pull request as ready for review November 13, 2023 14:57
Copy link

github-actions bot commented Nov 13, 2023

Size Change: +2.9 kB (0%)

Total Size: 1.91 MB

Filename Size Change
./dist/browser.full-bundle.js 748 kB +1.27 kB (0%)
./dist/browser.full-bundle.min.js 454 kB +197 B (0%)
./dist/components/Message/renderText/index.js 132 B -11 B (-8%)
./dist/components/Message/renderText/rehypePlugins.js 0 B -1.07 kB (removed) 🏆
./dist/index.cjs.js 362 kB +380 B (0%)
./dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.js 242 B +242 B (new file) 🆕
./dist/components/Message/renderText/rehypePlugins/index.js 72 B +72 B (new file) 🆕
./dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.js 1.02 kB +1.02 kB (new file) 🆕
./dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.js 178 B +178 B (new file) 🆕
./dist/components/Message/renderText/remarkPlugins/index.js 75 B +75 B (new file) 🆕
./dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.js 527 B +527 B (new file) 🆕
./dist/components/Message/renderText/types.js 31 B +31 B (new file) 🆕
ℹ️ View Unchanged
Filename Size
./dist/components/Attachment/attachment-sizing.js 1.08 kB
./dist/components/Attachment/Attachment.js 1.01 kB
./dist/components/Attachment/AttachmentActions.js 524 B
./dist/components/Attachment/AttachmentContainer.js 2.09 kB
./dist/components/Attachment/Audio.js 1.64 kB
./dist/components/Attachment/Card.js 1.76 kB
./dist/components/Attachment/DownloadButton.js 259 B
./dist/components/Attachment/FileAttachment.js 555 B
./dist/components/Attachment/FileSizeIndicator.js 240 B
./dist/components/Attachment/hooks/useAudioController.js 612 B
./dist/components/Attachment/icons.js 573 B
./dist/components/Attachment/index.js 109 B
./dist/components/Attachment/UnsupportedAttachment.js 267 B
./dist/components/Attachment/utils.js 1.65 kB
./dist/components/AutoCompleteTextarea/Header.js 332 B
./dist/components/AutoCompleteTextarea/index.js 157 B
./dist/components/AutoCompleteTextarea/Item.js 497 B
./dist/components/AutoCompleteTextarea/List.js 1.48 kB
./dist/components/AutoCompleteTextarea/Textarea.js 6.58 kB
./dist/components/AutoCompleteTextarea/types.js 31 B
./dist/components/AutoCompleteTextarea/utils.js 834 B
./dist/components/Avatar/Avatar.js 740 B
./dist/components/Avatar/index.js 46 B
./dist/components/Channel/Channel.js 8.24 kB
./dist/components/Channel/channelState.js 1.04 kB
./dist/components/Channel/emojiData.js 464 B
./dist/components/Channel/hooks/useChannelContainerClasses.js 353 B
./dist/components/Channel/hooks/useCreateChannelStateContext.js 1.49 kB
./dist/components/Channel/hooks/useCreateTypingContext.js 194 B
./dist/components/Channel/hooks/useEditMessageHandler.js 252 B
./dist/components/Channel/hooks/useIsMounted.js 168 B
./dist/components/Channel/hooks/useMentionsHandlers.js 422 B
./dist/components/Channel/index.js 117 B
./dist/components/Channel/LoadingChannel.js 360 B
./dist/components/Channel/utils.js 339 B
./dist/components/ChannelHeader/ChannelHeader.js 896 B
./dist/components/ChannelHeader/icons.js 458 B
./dist/components/ChannelHeader/index.js 53 B
./dist/components/ChannelList/ChannelList.js 2.95 kB
./dist/components/ChannelList/ChannelListMessenger.js 448 B
./dist/components/ChannelList/hooks/index.js 196 B
./dist/components/ChannelList/hooks/useChannelDeletedListener.js 409 B
./dist/components/ChannelList/hooks/useChannelHiddenListener.js 408 B
./dist/components/ChannelList/hooks/useChannelTruncatedListener.js 338 B
./dist/components/ChannelList/hooks/useChannelUpdatedListener.js 572 B
./dist/components/ChannelList/hooks/useChannelVisibleListener.js 574 B
./dist/components/ChannelList/hooks/useConnectionRecoveredListener.js 236 B
./dist/components/ChannelList/hooks/useMessageNewListener.js 509 B
./dist/components/ChannelList/hooks/useMobileNavigation.js 276 B
./dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js 784 B
./dist/components/ChannelList/hooks/useNotificationMessageNewListener.js 661 B
./dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.js 369 B
./dist/components/ChannelList/hooks/usePaginatedChannels.js 1.45 kB
./dist/components/ChannelList/hooks/useUserPresenceChangedListener.js 424 B
./dist/components/ChannelList/index.js 78 B
./dist/components/ChannelList/utils.js 314 B
./dist/components/ChannelPreview/ChannelPreview.js 908 B
./dist/components/ChannelPreview/ChannelPreviewMessenger.js 881 B
./dist/components/ChannelPreview/hooks/index.js 97 B
./dist/components/ChannelPreview/hooks/useChannelPreviewInfo.js 431 B
./dist/components/ChannelPreview/hooks/useIsChannelMuted.js 280 B
./dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.js 829 B
./dist/components/ChannelPreview/index.js 81 B
./dist/components/ChannelPreview/utils.js 695 B
./dist/components/ChannelSearch/ChannelSearch.js 1.11 kB
./dist/components/ChannelSearch/hooks/useChannelSearch.js 2.2 kB
./dist/components/ChannelSearch/icons.js 701 B
./dist/components/ChannelSearch/index.js 85 B
./dist/components/ChannelSearch/SearchBar.js 1.29 kB
./dist/components/ChannelSearch/SearchInput.js 335 B
./dist/components/ChannelSearch/SearchResults.js 1.54 kB
./dist/components/ChannelSearch/utils.js 89 B
./dist/components/Chat/Chat.js 952 B
./dist/components/Chat/hooks/useChannelsQueryState.js 212 B
./dist/components/Chat/hooks/useChat.js 1.44 kB
./dist/components/Chat/hooks/useCreateChatContext.js 650 B
./dist/components/Chat/hooks/useCustomStyles.js 649 B
./dist/components/Chat/index.js 71 B
./dist/components/ChatAutoComplete/ChatAutoComplete.js 1.06 kB
./dist/components/ChatAutoComplete/index.js 56 B
./dist/components/ChatDown/ChatDown.js 530 B
./dist/components/ChatDown/icons.js 1.26 kB
./dist/components/ChatDown/index.js 48 B
./dist/components/CommandItem/CommandItem.js 265 B
./dist/components/CommandItem/index.js 51 B
./dist/components/DateSeparator/DateSeparator.js 514 B
./dist/components/DateSeparator/index.js 53 B
./dist/components/EmoticonItem/EmoticonItem.js 417 B
./dist/components/EmoticonItem/index.js 52 B
./dist/components/EmptyStateIndicator/EmptyStateIndicator.js 458 B
./dist/components/EmptyStateIndicator/icons.js 323 B
./dist/components/EmptyStateIndicator/index.js 59 B
./dist/components/EventComponent/EventComponent.js 831 B
./dist/components/EventComponent/index.js 52 B
./dist/components/Gallery/Gallery.js 1.05 kB
./dist/components/Gallery/Image.js 638 B
./dist/components/Gallery/index.js 64 B
./dist/components/Gallery/ModalGallery.js 341 B
./dist/components/index.js 307 B
./dist/components/InfiniteScrollPaginator/index.js 54 B
./dist/components/InfiniteScrollPaginator/InfiniteScroll.js 1.36 kB
./dist/components/Loading/index.js 76 B
./dist/components/Loading/LoadingChannels.js 285 B
./dist/components/Loading/LoadingErrorIndicator.js 366 B
./dist/components/Loading/LoadingIndicator.js 671 B
./dist/components/LoadMore/index.js 68 B
./dist/components/LoadMore/LoadMoreButton.js 530 B
./dist/components/LoadMore/LoadMorePaginator.js 444 B
./dist/components/Message/FixedHeightMessage.js 1.7 kB
./dist/components/Message/hooks/index.js 134 B
./dist/components/Message/hooks/useActionHandler.js 751 B
./dist/components/Message/hooks/useDeleteHandler.js 616 B
./dist/components/Message/hooks/useEditHandler.js 300 B
./dist/components/Message/hooks/useFlagHandler.js 753 B
./dist/components/Message/hooks/useMentionsHandler.js 387 B
./dist/components/Message/hooks/useMuteHandler.js 941 B
./dist/components/Message/hooks/useOpenThreadHandler.js 266 B
./dist/components/Message/hooks/usePinHandler.js 930 B
./dist/components/Message/hooks/useReactionHandler.js 2.12 kB
./dist/components/Message/hooks/useRetryHandler.js 343 B
./dist/components/Message/hooks/useUserHandler.js 223 B
./dist/components/Message/hooks/useUserRole.js 735 B
./dist/components/Message/icons.js 1.63 kB
./dist/components/Message/index.js 162 B
./dist/components/Message/Message.js 1.99 kB
./dist/components/Message/MessageDeleted.js 374 B
./dist/components/Message/MessageOptions.js 900 B
./dist/components/Message/MessageRepliesCountButton.js 523 B
./dist/components/Message/MessageSimple.js 2.27 kB
./dist/components/Message/MessageStatus.js 1.23 kB
./dist/components/Message/MessageText.js 1.06 kB
./dist/components/Message/MessageTimestamp.js 546 B
./dist/components/Message/QuotedMessage.js 817 B
./dist/components/Message/renderText/Anchor.js 327 B
./dist/components/Message/renderText/Emoji.js 173 B
./dist/components/Message/renderText/Mention.js 195 B
./dist/components/Message/renderText/regex.js 374 B
./dist/components/Message/renderText/renderText.js 1.94 kB
./dist/components/Message/types.js 31 B
./dist/components/Message/utils.js 2.76 kB
./dist/components/MessageActions/index.js 62 B
./dist/components/MessageActions/MessageActions.js 1.32 kB
./dist/components/MessageActions/MessageActionsBox.js 1.33 kB
./dist/components/MessageInput/AttachmentPreviewList.js 1.07 kB
./dist/components/MessageInput/CooldownTimer.js 341 B
./dist/components/MessageInput/DefaultTriggerProvider.js 439 B
./dist/components/MessageInput/DropzoneProvider.js 548 B
./dist/components/MessageInput/EditMessageForm.js 1.17 kB
./dist/components/MessageInput/EmojiPicker.js 619 B
./dist/components/MessageInput/hooks/index.js 78 B
./dist/components/MessageInput/hooks/useAttachments.js 976 B
./dist/components/MessageInput/hooks/useCommandTrigger.js 903 B
./dist/components/MessageInput/hooks/useCooldownTimer.js 760 B
./dist/components/MessageInput/hooks/useCreateMessageInputContext.js 1.49 kB
./dist/components/MessageInput/hooks/useEmojiIndex.js 268 B
./dist/components/MessageInput/hooks/useEmojiPicker.js 766 B
./dist/components/MessageInput/hooks/useEmojiTrigger.js 500 B
./dist/components/MessageInput/hooks/useFileState.js 169 B
./dist/components/MessageInput/hooks/useFileUploads.js 1.22 kB
./dist/components/MessageInput/hooks/useImageUploads.js 1.33 kB
./dist/components/MessageInput/hooks/useLinkPreviews.js 1.37 kB
./dist/components/MessageInput/hooks/useMessageInputState.js 3.03 kB
./dist/components/MessageInput/hooks/useMessageInputText.js 917 B
./dist/components/MessageInput/hooks/usePasteHandler.js 830 B
./dist/components/MessageInput/hooks/useSubmitHandler.js 2.53 kB
./dist/components/MessageInput/hooks/useUserTrigger.js 1.88 kB
./dist/components/MessageInput/hooks/utils.js 1.69 kB
./dist/components/MessageInput/icons.js 2.84 kB
./dist/components/MessageInput/index.js 176 B
./dist/components/MessageInput/LinkPreviewList.js 778 B
./dist/components/MessageInput/MessageInput.js 585 B
./dist/components/MessageInput/MessageInputFlat.js 2.71 kB
./dist/components/MessageInput/MessageInputSmall.js 1.78 kB
./dist/components/MessageInput/QuotedMessagePreview.js 916 B
./dist/components/MessageInput/types.js 387 B
./dist/components/MessageInput/UploadsPreview.js 871 B
./dist/components/MessageList/ConnectionStatus.js 457 B
./dist/components/MessageList/CustomNotification.js 293 B
./dist/components/MessageList/GiphyPreviewMessage.js 197 B
./dist/components/MessageList/hooks/index.js 183 B
./dist/components/MessageList/hooks/MessageList/index.js 108 B
./dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js 646 B
./dist/components/MessageList/hooks/MessageList/useMessageListElements.js 1.04 kB
./dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.js 916 B
./dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.js 887 B
./dist/components/MessageList/hooks/useLastReadData.js 266 B
./dist/components/MessageList/hooks/VirtualizedMessageList/index.js 141 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.js 381 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js 388 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.js 691 B
./dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.js 1.21 kB
./dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js 428 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.js 384 B
./dist/components/MessageList/icons.js 368 B
./dist/components/MessageList/index.js 172 B
./dist/components/MessageList/MessageList.js 2.87 kB
./dist/components/MessageList/MessageListMainPanel.js 258 B
./dist/components/MessageList/MessageListNotifications.js 455 B
./dist/components/MessageList/MessageNotification.js 293 B
./dist/components/MessageList/ScrollToBottomButton.js 1.08 kB
./dist/components/MessageList/utils.js 2.78 kB
./dist/components/MessageList/VirtualizedMessageList.js 3.86 kB
./dist/components/MessageList/VirtualizedMessageListComponents.js 1.62 kB
./dist/components/MML/index.js 43 B
./dist/components/MML/MML.js 535 B
./dist/components/Modal/icons.js 435 B
./dist/components/Modal/index.js 45 B
./dist/components/Modal/Modal.js 776 B
./dist/components/ReactFileUtilities/FileIcon/FileIcon.js 536 B
./dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.js 2.73 kB
./dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.js 5.46 kB
./dist/components/ReactFileUtilities/FileIcon/iconMap.js 800 B
./dist/components/ReactFileUtilities/FileIcon/index.js 53 B
./dist/components/ReactFileUtilities/FileIcon/mimeTypes.js 834 B
./dist/components/ReactFileUtilities/FilePreviewer.js 634 B
./dist/components/ReactFileUtilities/FileUploadButton.js 501 B
./dist/components/ReactFileUtilities/IconButton.js 273 B
./dist/components/ReactFileUtilities/icons/AttachmentIcon.js 397 B
./dist/components/ReactFileUtilities/icons/CloseIcon.js 560 B
./dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.js 1.52 kB
./dist/components/ReactFileUtilities/icons/index.js 96 B
./dist/components/ReactFileUtilities/icons/PictureIcon.js 333 B
./dist/components/ReactFileUtilities/icons/RetryIcon.js 325 B
./dist/components/ReactFileUtilities/ImageDropzone.js 1.02 kB
./dist/components/ReactFileUtilities/ImagePreviewer.js 737 B
./dist/components/ReactFileUtilities/ImageUploadButton.js 430 B
./dist/components/ReactFileUtilities/index.js 177 B
./dist/components/ReactFileUtilities/LoadingIndicator.js 307 B
./dist/components/ReactFileUtilities/Thumbnail.js 468 B
./dist/components/ReactFileUtilities/ThumbnailPlaceholder.js 384 B
./dist/components/ReactFileUtilities/types.js 31 B
./dist/components/ReactFileUtilities/UploadButton.js 289 B
./dist/components/ReactFileUtilities/utils.js 1.21 kB
./dist/components/Reactions/hooks/useProcessReactions.js 1.06 kB
./dist/components/Reactions/index.js 74 B
./dist/components/Reactions/ReactionSelector.js 2.05 kB
./dist/components/Reactions/ReactionsList.js 1.31 kB
./dist/components/Reactions/SimpleReactionsList.js 1.46 kB
./dist/components/Reactions/utils/utils.js 116 B
./dist/components/SafeAnchor/index.js 74 B
./dist/components/SafeAnchor/SafeAnchor.js 304 B
./dist/components/Thread/icons.js 370 B
./dist/components/Thread/index.js 71 B
./dist/components/Thread/Thread.js 1.43 kB
./dist/components/Thread/ThreadHead.js 314 B
./dist/components/Thread/ThreadHeader.js 460 B
./dist/components/Thread/ThreadStart.js 283 B
./dist/components/Tooltip/hooks/index.js 61 B
./dist/components/Tooltip/hooks/useEnterLeaveHandlers.js 305 B
./dist/components/Tooltip/index.js 47 B
./dist/components/Tooltip/Tooltip.js 478 B
./dist/components/TypingIndicator/index.js 55 B
./dist/components/TypingIndicator/TypingIndicator.js 1.22 kB
./dist/components/UserItem/index.js 48 B
./dist/components/UserItem/UserItem.js 628 B
./dist/components/Window/index.js 46 B
./dist/components/Window/Window.js 372 B
./dist/constants/limits.js 96 B
./dist/constants/messageTypes.js 99 B
./dist/context/ChannelActionContext.js 588 B
./dist/context/ChannelStateContext.js 586 B
./dist/context/ChatContext.js 573 B
./dist/context/ComponentContext.js 579 B
./dist/context/DefaultEmoji.js 119 B
./dist/context/DefaultEmojiPicker.js 124 B
./dist/context/EmojiContext.js 800 B
./dist/context/index.js 128 B
./dist/context/MessageContext.js 580 B
./dist/context/MessageInputContext.js 350 B
./dist/context/MessageListContext.js 377 B
./dist/context/TranslationContext.js 783 B
./dist/context/TypingContext.js 581 B
./dist/context/utils/getDisplayName.js 102 B
./dist/css/index.css 28.4 kB
./dist/css/v2/index.css 20 kB
./dist/css/v2/index.layout.css 7.58 kB
./dist/i18n/de.json 1.83 kB
./dist/i18n/en.json 1.13 kB
./dist/i18n/es.json 1.84 kB
./dist/i18n/fr.json 1.86 kB
./dist/i18n/hi.json 2.1 kB
./dist/i18n/index.js 67 B
./dist/i18n/it.json 1.84 kB
./dist/i18n/ja.json 2.05 kB
./dist/i18n/ko.json 1.98 kB
./dist/i18n/nl.json 1.77 kB
./dist/i18n/pt.json 1.79 kB
./dist/i18n/ru.json 2.25 kB
./dist/i18n/Streami18n.js 5.76 kB
./dist/i18n/tr.json 1.79 kB
./dist/i18n/translations.js 172 B
./dist/i18n/utils.js 528 B
./dist/index.js 72 B
./dist/stream-emoji.json 53 kB
./dist/types/types.js 31 B
./dist/utils/browsers.js 156 B
./dist/utils/deprecationWarning.js 317 B
./dist/utils/generateRandomId.js 130 B
./dist/utils/getChannel.js 951 B
./dist/utils/getWholeChar.js 411 B
./dist/utils/index.js 79 B
./dist/version.js 60 B

compressed-size-action

@codecov-commenter
Copy link

codecov-commenter commented Nov 13, 2023

Codecov Report

Attention: 3 lines in your changes are missing coverage. Please review.

Comparison is base (8dcb1ac) 83.64% compared to head (150ff36) 83.68%.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2170      +/-   ##
==========================================
+ Coverage   83.64%   83.68%   +0.03%     
==========================================
  Files         308      313       +5     
  Lines        7129     7163      +34     
  Branches     2018     2025       +7     
==========================================
+ Hits         5963     5994      +31     
  Misses        832      832              
- Partials      334      337       +3     
Files Coverage Δ
src/components/Message/renderText/index.ts 100.00% <100.00%> (ø)
...ge/renderText/rehypePlugins/emojiMarkdownPlugin.ts 100.00% <100.00%> (ø)
...mponents/Message/renderText/rehypePlugins/index.ts 100.00% <100.00%> (ø)
...renderText/rehypePlugins/mentionsMarkdownPlugin.ts 93.54% <100.00%> (ø)
...ssage/renderText/remarkPlugins/htmlToTextPlugin.ts 100.00% <100.00%> (ø)
...mponents/Message/renderText/remarkPlugins/index.ts 100.00% <100.00%> (ø)
...e/renderText/remarkPlugins/keepLineBreaksPlugin.ts 85.00% <85.00%> (ø)

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Co-authored-by: Anton Arnautov <43254280+arnautov-anton@users.noreply.github.com>
@MartinCupela MartinCupela merged commit 5b191c9 into master Nov 13, 2023
6 of 7 checks passed
@MartinCupela MartinCupela deleted the feat/add-remark-plugin-to-keep-all-linebreaks-v10 branch November 13, 2023 19:18
github-actions bot pushed a commit that referenced this pull request Nov 14, 2023
## [10.19.0](v10.18.0...v10.19.0) (2023-11-14)

### Features

* expose optional remark plugin to keep all line breaks and keep HTML in message text ([#2170](#2170)) ([5b191c9](5b191c9))
* introduce MessageListContext ([#2166](#2166)) ([8dcb1ac](8dcb1ac))
@stream-ci-bot
Copy link
Collaborator

🎉 This PR is included in version 10.19.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Nov 14, 2023
## [11.0.0-rc.6](v11.0.0-rc.5...v11.0.0-rc.6) (2023-11-14)

### Features

* add pickerProps & popperOptions to EmojiPicker ([06a139a](06a139a))
* expose optional remark plugin to keep all line breaks and keep HTML in message text ([#2170](#2170)) ([5b191c9](5b191c9))
@stream-ci-bot
Copy link
Collaborator

🎉 This PR is included in version 11.0.0-rc.6 🎉

The release is available on:

Your semantic-release bot 📦🚀

arnautov-anton added a commit that referenced this pull request Nov 27, 2023
…endering by default (#2169)

BREAKING CHANGE: apply the remark plugins `keepLineBreaksPlugin`,
`htmlToTextPlugin` as a part of the default message text parsing,
upgrade `unified` libraries

### 🎯 Goal

Apply the remark plugins `keepLineBreaksPlugin`, `htmlToTextPlugin` as a
part of the default message text parsing.

## TODO

- [X] merge #2170 
- [X] include the plugins among the default remark plugins
- [X] migration guide - see below
- [X] remove docs section [Optional remark and rehype
plugins](https://getstream.io/chat/docs/sdk/react/components/core-components/message_list/#optional-remark-and-rehype-plugins)](https://getstream.io/chat/docs/sdk/react/components/core-components/message_list/#overriding-defaults)
- [X] upgrade Jest / install a new test runner (vitest) - new deps are
not found with old Jest 26.6.3
- [X] include migration guide text in docs
- [X] refactor [`customMarkDownRenderers` code in
`renderText`](https://github.com/GetStream/stream-chat-react/blob/f0bc7ba2532760cabb1db01e685a35bd3b0b64c5/src/components/Message/renderText/renderText.tsx#L158)

---------

Co-authored-by: Oliver Lazoroski <oliver.lazoroski@gmail.com>
Co-authored-by: Anton Arnautov <43254280+arnautov-anton@users.noreply.github.com>
arnautov-anton added a commit that referenced this pull request Nov 27, 2023
…endering by default (#2169)

Apply the remark plugins `keepLineBreaksPlugin`, `htmlToTextPlugin` as a
part of the default message text parsing.

- [X] merge #2170
- [X] include the plugins among the default remark plugins
- [X] migration guide - see below
- [X] remove docs section [Optional remark and rehype
plugins](https://getstream.io/chat/docs/sdk/react/components/core-components/message_list/#optional-remark-and-rehype-plugins)](https://getstream.io/chat/docs/sdk/react/components/core-components/message_list/#overriding-defaults)
- [X] upgrade Jest / install a new test runner (vitest) - new deps are
not found with old Jest 26.6.3
- [X] include migration guide text in docs
- [X] refactor [`customMarkDownRenderers` code in
`renderText`](https://github.com/GetStream/stream-chat-react/blob/f0bc7ba2532760cabb1db01e685a35bd3b0b64c5/src/components/Message/renderText/renderText.tsx#L158)

BREAKING CHANGE: apply the remark plugins `keepLineBreaksPlugin`, `htmlToTextPlugin` as a part of the default message text parsing, upgrade `unified` libraries

---------

Co-authored-by: Oliver Lazoroski <oliver.lazoroski@gmail.com>
Co-authored-by: Anton Arnautov <43254280+arnautov-anton@users.noreply.github.com>
github-actions bot pushed a commit that referenced this pull request Nov 27, 2023
## [11.0.0](v10.20.1...v11.0.0) (2023-11-27)

### ⚠ BREAKING CHANGES

* **emoji-mart:** `EmojiPicker` & `EmojiIndex` signatures changed, `EmojiIndex` has been renamed to `emojiSearchIndex`, both `EmojiPicker` & `emojiSearchIndex` are now optional, see [release guide](https://github.com/GetStream/stream-chat-react/blob/v11.0.0/docusaurus/docs/React/release-guides/upgrade-to-v11.mdx) for more information
* **emoji-mart:** `useImageFlagEmojisOnWindow` flag now requires extra style sheet import, see [release guide](https://github.com/GetStream/stream-chat-react/blob/v11.0.0/docusaurus/docs/React/release-guides/upgrade-to-v11.mdx) for more information
* **emoji-mart:** `reactionOptions` signature has changed, see [release guide](https://github.com/GetStream/stream-chat-react/blob/v11.0.0/docusaurus/docs/React/release-guides/upgrade-to-v11.mdx) for more information
* the first argument to `doSendMessageRequest` is now Channel instance instead of `Channel.cid`
* apply the remark plugins `keepLineBreaksPlugin`, `htmlToTextPlugin` as a part of the default message text parsing, upgrade `unified` libraries

### Bug Fixes

* **emoji-mart:** new reactions  ([#1947](#1947)) ([14bef23](14bef23)), closes [#1935](#1935) [#1637](#1637) [#1437](#1437) [#2159](#2159)
* **emoji-mart:** simplify EmojiPicker & emojiSearchIndex ([#2117](#2117)) ([a6e0a87](a6e0a87)), closes [#2116](#2116) [#2094](#2094)

### Features

* apply keepLineBreaksPlugin & htmlToTextPlugin plugins to text rendering by default ([#2169](#2169)) ([e8047f2](e8047f2)), closes [#2170](#2170) [/github.com/GetStream/stream-chat-react/blob/f0bc7ba2532760cabb1db01e685a35bd3b0b64c5/src/components/Message/renderText/renderText.tsx#L158](https://github.com/GetStream//github.com/GetStream/stream-chat-react/blob/f0bc7ba2532760cabb1db01e685a35bd3b0b64c5/src/components/Message/renderText/renderText.tsx/issues/L158)
* export MessageListNotifications and LinkPreviewList components and component props ([#2181](#2181)) ([a5a7e5a](a5a7e5a))
* require Channel instance as the first argument to doSendMessageRequest ([#2171](#2171)) ([2a06b88](2a06b88))

### Chores

* **deps:** bump stream-chat from 8.14.0 to 8.14.2 ([#2179](#2179)) ([4e6a59d](4e6a59d))
* **deps:** bump stream-chat from 8.14.2 to 8.14.3 ([#2185](#2185)) ([3dd8dab](3dd8dab))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants