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

fix: prevent layout shifts in reactions modal #2272

Merged
merged 9 commits into from
Feb 21, 2024

Conversation

myandrienko
Copy link
Contributor

@myandrienko myandrienko commented Feb 13, 2024

🚂 GetStream/stream-chat-css#270

To-Do

  • Release and bump updated CSS

Copy link

codecov bot commented Feb 13, 2024

Codecov Report

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

Comparison is base (7f350a0) 84.82% compared to head (0bcd51f) 84.81%.

Files Patch % Lines
src/components/Reactions/SpriteImage.tsx 33.33% 0 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2272      +/-   ##
==========================================
- Coverage   84.82%   84.81%   -0.02%     
==========================================
  Files         344      344              
  Lines        7573     7568       -5     
  Branches     2106     2103       -3     
==========================================
- Hits         6424     6419       -5     
  Misses        806      806              
  Partials      343      343              

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

Copy link

github-actions bot commented Feb 13, 2024

Size Change: +635 B (0%)

Total Size: 1.72 MB

Filename Size Change
./dist/browser.full-bundle.js 687 kB +118 B (0%)
./dist/browser.full-bundle.min.js 377 kB +139 B (0%)
./dist/components/Emojis/index.cjs.js 1.87 kB +1 B (0%)
./dist/components/Reactions/hooks/useFetchReactions.js 600 B -1 B (0%)
./dist/components/Reactions/ReactionsListModal.js 972 B +13 B (+1%)
./dist/components/Reactions/SpriteImage.js 705 B +83 B (+13%) ⚠️
./dist/components/Reactions/StreamEmoji.js 385 B +45 B (+13%) ⚠️
./dist/css/v2/index.css 19.8 kB +54 B (0%)
./dist/css/v2/index.layout.css 8.32 kB +64 B (+1%)
./dist/index.cjs.js 23.4 kB +1 B (0%)
./dist/Window-b8b7fd61.js 0 B -315 kB (removed) 🏆
./dist/Window-2595fe68.js 315 kB +315 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size
./dist/components/Attachment/attachment-sizing.js 1.08 kB
./dist/components/Attachment/Attachment.js 1.04 kB
./dist/components/Attachment/AttachmentActions.js 524 B
./dist/components/Attachment/AttachmentContainer.js 2.13 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 653 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 527 B
./dist/components/AutoCompleteTextarea/List.js 1.52 kB
./dist/components/AutoCompleteTextarea/Textarea.js 6.81 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 9.33 kB
./dist/components/Channel/channelState.js 1.04 kB
./dist/components/Channel/hooks/useChannelContainerClasses.js 353 B
./dist/components/Channel/hooks/useCreateChannelStateContext.js 1.56 kB
./dist/components/Channel/hooks/useCreateTypingContext.js 235 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 3.03 kB
./dist/components/ChannelList/ChannelListMessenger.js 448 B
./dist/components/ChannelList/hooks/index.js 196 B
./dist/components/ChannelList/hooks/useChannelDeletedListener.js 454 B
./dist/components/ChannelList/hooks/useChannelHiddenListener.js 450 B
./dist/components/ChannelList/hooks/useChannelTruncatedListener.js 379 B
./dist/components/ChannelList/hooks/useChannelUpdatedListener.js 614 B
./dist/components/ChannelList/hooks/useChannelVisibleListener.js 616 B
./dist/components/ChannelList/hooks/useConnectionRecoveredListener.js 275 B
./dist/components/ChannelList/hooks/useMessageNewListener.js 599 B
./dist/components/ChannelList/hooks/useMobileNavigation.js 276 B
./dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js 825 B
./dist/components/ChannelList/hooks/useNotificationMessageNewListener.js 702 B
./dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.js 411 B
./dist/components/ChannelList/hooks/usePaginatedChannels.js 1.52 kB
./dist/components/ChannelList/hooks/useUserPresenceChangedListener.js 466 B
./dist/components/ChannelList/index.js 78 B
./dist/components/ChannelList/utils.js 314 B
./dist/components/ChannelPreview/ChannelPreview.js 1.02 kB
./dist/components/ChannelPreview/ChannelPreviewMessenger.js 881 B
./dist/components/ChannelPreview/hooks/index.js 97 B
./dist/components/ChannelPreview/hooks/useChannelPreviewInfo.js 471 B
./dist/components/ChannelPreview/hooks/useIsChannelMuted.js 319 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.26 kB
./dist/components/ChannelSearch/icons.js 701 B
./dist/components/ChannelSearch/index.js 85 B
./dist/components/ChannelSearch/SearchBar.js 1.33 kB
./dist/components/ChannelSearch/SearchInput.js 335 B
./dist/components/ChannelSearch/SearchResults.js 1.58 kB
./dist/components/ChannelSearch/utils.js 89 B
./dist/components/Chat/Chat.js 933 B
./dist/components/Chat/hooks/useChannelsQueryState.js 212 B
./dist/components/Chat/hooks/useChat.js 1.46 kB
./dist/components/Chat/hooks/useCreateChatContext.js 671 B
./dist/components/Chat/hooks/useCustomStyles.js 649 B
./dist/components/Chat/index.js 71 B
./dist/components/ChatAutoComplete/ChatAutoComplete.js 1.25 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/Emojis/EmojiPicker.js 1.3 kB
./dist/components/Emojis/index.js 51 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/BaseImage.js 481 B
./dist/components/Gallery/Gallery.js 1.13 kB
./dist/components/Gallery/Image.js 681 B
./dist/components/Gallery/index.js 70 B
./dist/components/Gallery/ModalGallery.js 627 B
./dist/components/index.js 307 B
./dist/components/InfiniteScrollPaginator/index.js 54 B
./dist/components/InfiniteScrollPaginator/InfiniteScroll.js 1.45 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 565 B
./dist/components/LoadMore/LoadMorePaginator.js 484 B
./dist/components/Message/FixedHeightMessage.js 1.7 kB
./dist/components/Message/hooks/index.js 146 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/useMarkUnreadHandler.js 714 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.16 kB
./dist/components/Message/hooks/useReactionsFetcher.js 788 B
./dist/components/Message/hooks/useRetryHandler.js 343 B
./dist/components/Message/hooks/useUserHandler.js 223 B
./dist/components/Message/hooks/useUserRole.js 760 B
./dist/components/Message/icons.js 1.63 kB
./dist/components/Message/index.js 162 B
./dist/components/Message/Message.js 2.28 kB
./dist/components/Message/MessageDeleted.js 374 B
./dist/components/Message/MessageErrorText.js 381 B
./dist/components/Message/MessageOptions.js 921 B
./dist/components/Message/MessageRepliesCountButton.js 523 B
./dist/components/Message/MessageSimple.js 2.45 kB
./dist/components/Message/MessageStatus.js 1.23 kB
./dist/components/Message/MessageText.js 999 B
./dist/components/Message/MessageTimestamp.js 546 B
./dist/components/Message/QuotedMessage.js 817 B
./dist/components/Message/renderText/componentRenderers/Anchor.js 327 B
./dist/components/Message/renderText/componentRenderers/Emoji.js 173 B
./dist/components/Message/renderText/componentRenderers/index.js 65 B
./dist/components/Message/renderText/componentRenderers/Mention.js 195 B
./dist/components/Message/renderText/index.js 132 B
./dist/components/Message/renderText/regex.js 374 B
./dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.js 252 B
./dist/components/Message/renderText/rehypePlugins/index.js 72 B
./dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.js 1.04 kB
./dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.js 178 B
./dist/components/Message/renderText/remarkPlugins/index.js 75 B
./dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.js 531 B
./dist/components/Message/renderText/renderText.js 1.76 kB
./dist/components/Message/renderText/types.js 31 B
./dist/components/Message/types.js 31 B
./dist/components/Message/utils.js 2.92 kB
./dist/components/MessageActions/CustomMessageActionsList.js 346 B
./dist/components/MessageActions/hooks/index.js 66 B
./dist/components/MessageActions/hooks/useMessageActionsBoxPopper.js 517 B
./dist/components/MessageActions/index.js 76 B
./dist/components/MessageActions/MessageActions.js 1.5 kB
./dist/components/MessageActions/MessageActionsBox.js 1.18 kB
./dist/components/MessageBounce/index.js 68 B
./dist/components/MessageBounce/MessageBounceModal.js 253 B
./dist/components/MessageBounce/MessageBouncePrompt.js 507 B
./dist/components/MessageInput/AttachmentPreviewList.js 1.25 kB
./dist/components/MessageInput/CooldownTimer.js 377 B
./dist/components/MessageInput/DefaultTriggerProvider.js 442 B
./dist/components/MessageInput/DropzoneProvider.js 548 B
./dist/components/MessageInput/EditMessageForm.js 1.05 kB
./dist/components/MessageInput/hooks/index.js 78 B
./dist/components/MessageInput/hooks/useAttachments.js 1.02 kB
./dist/components/MessageInput/hooks/useCommandTrigger.js 903 B
./dist/components/MessageInput/hooks/useCooldownTimer.js 818 B
./dist/components/MessageInput/hooks/useCreateMessageInputContext.js 1.42 kB
./dist/components/MessageInput/hooks/useEmojiTrigger.js 734 B
./dist/components/MessageInput/hooks/useFileState.js 169 B
./dist/components/MessageInput/hooks/useFileUploads.js 1.27 kB
./dist/components/MessageInput/hooks/useImageUploads.js 1.38 kB
./dist/components/MessageInput/hooks/useLinkPreviews.js 1.41 kB
./dist/components/MessageInput/hooks/useMessageInputState.js 2.74 kB
./dist/components/MessageInput/hooks/useMessageInputText.js 958 B
./dist/components/MessageInput/hooks/usePasteHandler.js 871 B
./dist/components/MessageInput/hooks/useSubmitHandler.js 2.54 kB
./dist/components/MessageInput/hooks/useUserTrigger.js 1.92 kB
./dist/components/MessageInput/hooks/utils.js 1.69 kB
./dist/components/MessageInput/icons.js 2.84 kB
./dist/components/MessageInput/index.js 181 B
./dist/components/MessageInput/LinkPreviewList.js 778 B
./dist/components/MessageInput/MessageInput.js 641 B
./dist/components/MessageInput/MessageInputFlat.js 2.4 kB
./dist/components/MessageInput/MessageInputSmall.js 1.72 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 300 B
./dist/components/MessageList/GiphyPreviewMessage.js 197 B
./dist/components/MessageList/hooks/index.js 183 B
./dist/components/MessageList/hooks/MessageList/index.js 126 B
./dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js 687 B
./dist/components/MessageList/hooks/MessageList/useMessageListElements.js 645 B
./dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.js 960 B
./dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.js 895 B
./dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.js 977 B
./dist/components/MessageList/hooks/useLastReadData.js 266 B
./dist/components/MessageList/hooks/useMarkRead.js 534 B
./dist/components/MessageList/hooks/VirtualizedMessageList/index.js 158 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.js 423 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.32 kB
./dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js 471 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.js 423 B
./dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js 609 B
./dist/components/MessageList/icons.js 622 B
./dist/components/MessageList/index.js 204 B
./dist/components/MessageList/MessageList.js 3.19 kB
./dist/components/MessageList/MessageListMainPanel.js 290 B
./dist/components/MessageList/MessageListNotifications.js 471 B
./dist/components/MessageList/MessageNotification.js 293 B
./dist/components/MessageList/renderMessages.js 926 B
./dist/components/MessageList/ScrollToBottomButton.js 459 B
./dist/components/MessageList/UnreadMessagesNotification.js 414 B
./dist/components/MessageList/UnreadMessagesSeparator.js 302 B
./dist/components/MessageList/utils.js 2.79 kB
./dist/components/MessageList/VirtualizedMessageList.js 4.29 kB
./dist/components/MessageList/VirtualizedMessageListComponents.js 1.98 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 895 B
./dist/components/Reactions/index.js 108 B
./dist/components/Reactions/reactionOptions.js 330 B
./dist/components/Reactions/ReactionSelector.js 1.81 kB
./dist/components/Reactions/ReactionsList.js 960 B
./dist/components/Reactions/SimpleReactionsList.js 1.05 kB
./dist/components/Reactions/types.js 31 B
./dist/components/Reactions/utils/utils.js 300 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.52 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/ChannelListContext.js 377 B
./dist/context/ChannelStateContext.js 586 B
./dist/context/ChatContext.js 573 B
./dist/context/ComponentContext.js 579 B
./dist/context/index.js 131 B
./dist/context/MessageBounceContext.js 630 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 26.7 kB
./dist/css/v2/emoji-mart.css 1.84 kB
./dist/css/v2/emoji-replacement.css 299 B
./dist/i18n/de.json 2.18 kB
./dist/i18n/en.json 1.34 kB
./dist/i18n/es.json 2.2 kB
./dist/i18n/fr.json 2.24 kB
./dist/i18n/hi.json 2.5 kB
./dist/i18n/index.js 67 B
./dist/i18n/it.json 2.21 kB
./dist/i18n/ja.json 2.4 kB
./dist/i18n/ko.json 2.33 kB
./dist/i18n/nl.json 2.1 kB
./dist/i18n/pt.json 2.16 kB
./dist/i18n/ru.json 2.66 kB
./dist/i18n/Streami18n.js 5.76 kB
./dist/i18n/tr.json 2.14 kB
./dist/i18n/translations.js 172 B
./dist/i18n/utils.js 528 B
./dist/index_UMD.js 175 B
./dist/index.js 78 B
./dist/types/index.js 31 B
./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 968 B
./dist/utils/getWholeChar.js 411 B
./dist/utils/index.js 79 B
./dist/version.js 60 B

compressed-size-action

@@ -69,7 +69,7 @@ export function ReactionsListModal({
)}
</div>
{SelectedEmojiComponent && (
<div className='emoji str-chat__message-reaction-emoji str-chat__message-reaction-emoji-big'>
<div className='emoji str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback str-chat__message-reaction-emoji-big'>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We want to provide some additional styles to prevent layout shift when switching from a fallback emoji to a sprite image. Since only React SDK uses image emoji, I added some react-specific class names.

Comment on lines +42 to +58
'--str-chat__sprite-image-resize-ratio':
'var(--str-chat__sprite-image-resize-ratio-x, var(--str-chat__sprite-image-resize-ratio-y, 1))',
'--str-chat__sprite-image-resize-ratio-x':
'calc(var(--str-chat__sprite-image-width) / var(--str-chat__sprite-item-width))',
'--str-chat__sprite-image-resize-ratio-y':
'calc(var(--str-chat__sprite-image-height) / var(--str-chat__sprite-item-height))',
'--str-chat__sprite-item-height': `${spriteHeight / rows}`,
'--str-chat__sprite-item-width': `${spriteWidth / columns}`,
...(Number.isFinite(height) ? { '--str-chat__sprite-image-height': `${height}px` } : {}),
...(Number.isFinite(width) ? { '--str-chat__sprite-image-width': `${width}px` } : {}),
backgroundImage: `url('${spriteUrl}')`,
backgroundPosition: `${x * (100 / (columns - 1))}% ${y * (100 / (rows - 1))}%`,
backgroundSize: `${columns * 100}% ${rows * 100}%`,
height:
'var(--str-chat__sprite-image-height, calc(var(--str-chat__sprite-item-height) * var(--str-chat__sprite-image-resize-ratio)))',
width:
'var(--str-chat__sprite-image-width, calc(var(--str-chat__sprite-item-width) * var(--str-chat__sprite-image-resize-ratio)))',
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All the same calculations, now in CSS 🪄

position={position}
rows={3}
spriteUrl={STREAM_SPRITE_URL}
style={
{
'--str-chat__sprite-image-height': 'var(--str-chat__stream-emoji-size, 18px)',
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keeping the old default size of 18px for emoji, for backwards compatibility.

@myandrienko myandrienko marked this pull request as ready for review February 13, 2024 15:39
@myandrienko myandrienko changed the title fix: make sprite image configurable via CSS variable fix: prevent layout shifts in reactions modal Feb 13, 2024
@@ -9,7 +9,7 @@ import GHComponentLink from '../_docusaurus-components/GHComponentLink';

## Introducing new reactions

When it came to developer experience regarding customization of the reaction components our team noticed that our integrators generally strugled to make more advanced adjustments to reactions without having to rebuild the whole [component set](../components/message-components/reactions.mdx). The whole process has been quite unintuitive and that's why this update aims at making adjusting your reactions much easier.
When it came to developer experience regarding customization of the reaction components our team noticed that our integrators generally struggled to make more advanced adjustments to reactions without having to rebuild the whole [component set](../components/message-components/reactions.mdx). The whole process has been quite unintuitive and that's why this update aims at making adjusting your reactions much easier.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! 🙏

@myandrienko myandrienko merged commit 706cf3d into master Feb 21, 2024
8 of 9 checks passed
@myandrienko myandrienko deleted the fix/reactions-modal-layout-shift branch February 21, 2024 09:20
github-actions bot pushed a commit that referenced this pull request Feb 21, 2024
## [11.9.0](v11.8.0...v11.9.0) (2024-02-21)

### Bug Fixes

* add aria-expanded attribute to emoji picker and reactions selector ([#2274](#2274)) ([b15cdd5](b15cdd5))
* mark channel read on scroll to bottom of the main message list ([#2283](#2283)) ([d04d0ab](d04d0ab))
* prevent layout shifts in reactions modal ([#2272](#2272)) ([706cf3d](706cf3d))
* trap focus in opened modal ([#2278](#2278)) ([8f48b52](8f48b52))

### Features

* make aria-labels localizable ([#2282](#2282)) ([7867677](7867677)), closes [#1931](#1931) [#1994](#1994)
@stream-ci-bot
Copy link
Collaborator

🎉 This PR is included in version 11.9.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants