Releases: sendbird/sendbird-uikit-react
v3.14.0-beta.2
[v3.14.0-beta.2] (Mar 22, 2024)
Fixes
- Fixed a bug where swiping
Carouselin mobile view displaying flickering effect - Added missing default
font-familyvalue tosendbird-message-template__root
[v3.13.3] (Mar 22, 2024)
Features
- Added a
renderMenuItemto theMessageMenucomponent- How to use?
<GroupChannel renderMessageContent={(props) => ( <MessageContent {...props} renderMessageMenu={(props) => ( <MessageMenu {...props} renderMenuItem={(props) => { const { className, onClick, dataSbId, disable, text, } = props; return <MenuItem /> // Render Custom Menu Item }} /> )} /> )} />
- Added
onBeforeDownloadFileMessageto the<GroupChannel />and<Thread />modules- How to use?
const ONE_MB = 1024 * 1024; /** * Use this list to check if it's displayed as a ThumbnailMessage. * (https://github.com/sendbird/sendbird-uikit-react/blob/main/src/utils/index.ts) */ const ThumbnailMessageTypes = [ 'image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp', // not supported in IE 'video/mpeg', 'video/ogg', 'video/webm', 'video/mp4', ]; <GroupChannel // or Thread onBeforeDownloadFileMessage={async ({ message, index = null }) => { if (message.isFileMessage()) { const confirmed = window.confirm(`The file size is ${(message.size / ONE_MB).toFixed(2)}MB. Would you like to continue downloading?`); return confirmed; } if (message.isMultipleFilesMessage()) { const confirmed = window.confirm(`The file size is ${(message.fileInfoList[index].fileSize / ONE_MB).toFixed(2)}MB. Would you like to continue downloading?`); return confirmed; } return true; }} />
- Added
onDownloadClickto theFileViewer,FileViewerView,MobileBottomSheet,MobileContextMenu, andMobileMenu
Fixes
- Improved the stability of the ChannelSettings Modals
- Support menu on the
MembersModal,MutedMembersModal, andOperatorsModal - Display
Operatordescription on theMembersModal
- Support menu on the
- Fixed the
widthsize of theOGMessageItemBodycomponent - Added fallback logic on template rendering error
- Replaced the hardcoded text
(You)with the StringSetCHANNEL_SETTING__MEMBERS__YOUin theUserListItem
v3.14.0-beta
[v3.14.0-beta] (Mar 15, 2024)
Features
- Added 'wide' and 'full' width support for
MessageContentwhen value exists inmessage.extendedMessagePayload['ui']['container_type'] - Added
Carouselui component MessageTemplatenow supports composite templates
[v3.13.2] (Mar 14, 2024)
Features
- Add a
renderHeaderprops to the ChannelSettingsUIProps<ChannelSettingsUI renderHeader={() => ...} />
Fixes
- Deprecated the
onClickprop inUserListItemand addedonUserAvatarClick. The deprecated prop will be removed in the next major version - Added throttling in
mute/unmuteoperation - Added throttling in
add/removeoperator operation - Fixed that the Chat SDK is not initialized more than once
- Display the normal
FileMessagefor the.movvideo - Show
Xbutton on the ModalHeader of mobile mode - Modify the incorrect stringSet on the BannedUsersModal
CHANNEL_SETTING__MUTED_MEMBERS__TITLEtoCHANNEL_SETTING__BANNED_MEMBERS__TITLECHANNEL_SETTING__MODERATION__BANtoCHANNEL_SETTING__MODERATION__UNBAN- also modified the dataSbId,
channel_setting_banned_user_context_menu_bantochannel_setting_banned_user_context_menu_unban
- Fixed a specific environment issue (Android emulator) - Resolved an issue in modals used in ChannelSettings such as MembersModal, MutedMembersModal, AddOperatorsModal, OperatorsModal, BannedUsersModal, where even when scrolling to the end, additional members were not fetched
- Fixed a specific environment issue (Safari) - Similarly addressed an issue within lists inside modals, where overflow occurred instead of scrolling
v3.13.1
v3.13.0
[v3.13.0] (Feb 29, 2024)
Template message feature
Now we are supporting template message feature!
A message with valid extendedMessagePayload.template value will be displayed with TemplateMessageItemBody.
- Added new ui components:
MessageTemplateTemplateMessageItemBodyFallbackTemplateMessageItemBodyLoadingTemplateMessageItemBody
Others
- Added
showSuggestedRepliesForglobal option- How to use?
<App appId={appId} userId={userId} uikitOptions={{ groupChannel: { // Below setting always shows `SuggestedReplies` component of a message. Default value is 'last_message_only'. showSuggestedRepliesFor: 'always', } }} />
- Added
renderSuggestedRepliesinMessagemodule- How to use?
<Channel renderSuggestedReplies={(suggestedRepliesProps) => { const { replyOptions, onSendMessage, message } = suggestedRepliesProps; return <CustomSuggestedReplies options={replyOptions} />; }} />
- Added
renderMobileMenuOnLongPressinMessageContentProps- How to use?
<Channel renderMessageContent={(props) => ( <MessageContent {...props} renderMobileMenuOnLongPress={(mobileMenuProps: MobileBottomSheetProps) => ( <CustomMobileMenu {...mobileMenuProps} /> )} /> )} />
Fixes
- Fixed a bug where bouncing animation is applied to pending message
- Fixed a bug
useChannelSettingsContextnot returning channel on initial mount due to channel requests being made before the SDK connection success
v3.12.1
[v3.12.1] (Feb 26, 2024)
Fixes:
-
Added loading status to the
ChannelSettingsmodule and addressed some layout issues -
Added support for multiple lines in the
MessageInputon mobile devices -
Fixed hard-coded text to localization text for uploading file size and count limits
-
Fixed the
MessageListParamstype in theChannelProvider -
Fixed requests for empty image paths during the image optimization process
-
Fixed an infinite loop issue occurring when using the
GroupChannel/components/MessageandChannel/components/Messagecomponents in therenderMessagemethod of theGroupChannelandChannelmodules -
The
renderMessagemethod of theGroupChannelmodule no longer nests messages under theMessagecomponent. If a container element for theMessagecomponent is needed, use it as follows:import { GroupChannel } from '@sendbird/uikit-react/GroupChannel'; import { Message } from '@sendbird/uikit-react/GroupChannel/components/Message'; const GroupChannelPage = () => { return ( <GroupChannel renderMessage={(props) => { return ( <Message message={props.message}> <div>{props.message.messageId}</div> </Message> ) }} /> ) }
-
The
renderMessageprop of theChannel/components/MessageandGroupChannel/components/Messagecomponents has been deprecated. Instead, use thechildrenprop to customize message sub-elements<Message message={props.message}> <div>{props.message.messageId}</div> </Message>
-
Added detailed comments for customizing-related props in the
GroupChannelmodule
v3.12.0
[v3.12.0] (Feb 16, 2024)
Features:
- Local cache is enabled by default
- If desired, it can be disabled using
sdkInitParams
import SendbirdProvider from '@sendbird/uikit-react/SendbirdProvider'; const App = () => ( <SendbirdProvider // ... sdkInitParams={{ localCacheEnabled: false }} /> )
- If desired, it can be disabled using
- Added
GroupChannelandGroupChannelListmodules.- With the introduction of
GroupChannelandGroupChannelList, a new local caching feature has been added, allowing you to experience a more efficient chat environment.
We provide a massive component calledAppthat combines all the features. From now on, this component will useGroupChannelandGroupChannelListinstead ofChannelandChannelList.
If you wish to continue usingChannelandChannelList, you can useenableLegacyChannelModulesto ensure the previous components are still available for use.import SendbirdApp from '@sendbird/uikit-react/App'; const App = () => ( <SendbirdApp // ... enableLegacyChannelModules /> );
- You can find detailed changes, usage instructions, and migration methods in the document here: Migration Guide
- With the introduction of
Fixes:
- Fixed a bug where the session refresh failed when the
accessTokenwas changed #969 - Fixed a bug causing infinite loading when the channel is not selected in the Channel module #970
- Fixed a bug where the mention feature was not functioning properly #971
- Fixed a bug where URLs with numbered top-level domains were treated as links #972
- Fixed a bug where message scroll delays were inconsistently applied #975
- Fixed a bug where
isUserIdUsedForNicknamewas not functioning properly #976 - Optimized the rendering of
SendbirdProvider - Optimized the SDK initialization logic for StrictMode
v3.11.1
v3.11.0
[v3.11.0] (Feb 07, 2024)
Features:
- Added
enableSuggestedRepliesglobal option- How to use?
<App appId={appId} userId={userId} uikitOptions={{ groupChannel: { // Below turns on the `SuggestedReplies` feature (see v3.8.0 release changelog). Default value is false. enableSuggestedReplies: true, } }} />
MessageInputis now being disabled ifchannel.lastMessage.extendedMessagePayload['disable_chat_input']is true
Fixes:
- Fixed a bug where channel is being removed from my channel list when other member leaves the channel
- Fixed a bug where channel avatar image is not updated when a member leaves, or joins, or
profileUrlchanges - Fixed a bug where
ChannelListUIis not updated when network is reconnected - Fixed a bug in
ChannelListwhereactiveChannelUrlis set butonChannelSelectfires with null after loadingChannelList - Fixed a bug where url text wrapped around special characters not parsed as link
- Fixed a bug where space character before url text is removed in sent message
- Fixed a runtime error occurring when using
renderMessageofChannelmodule