Releases: sendbird/sendbird-uikit-react
[v3.13.4] (Mark 27, 2024)
Feature
- Support the
Emoji Reactions
feature in the super group channel- However, the
Tooltip
displaying who reacted will only appear in the normal group channel, not in the super group channel.
- However, the
- Export the
MessageFeedbackFailedModal
component for consistency with other message feedback-related components.
v3.14.0-beta.2
[v3.14.0-beta.2] (Mar 22, 2024)
Fixes
- Fixed a bug where swiping
Carousel
in mobile view displaying flickering effect - Added missing default
font-family
value tosendbird-message-template__root
[v3.13.3] (Mar 22, 2024)
Features
- Added a
renderMenuItem
to theMessageMenu
component- 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
onBeforeDownloadFileMessage
to 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
onDownloadClick
to theFileViewer
,FileViewerView
,MobileBottomSheet
,MobileContextMenu
, andMobileMenu
Fixes
- Improved the stability of the ChannelSettings Modals
- Support menu on the
MembersModal
,MutedMembersModal
, andOperatorsModal
- Display
Operator
description on theMembersModal
- Support menu on the
- Fixed the
width
size of theOGMessageItemBody
component - Added fallback logic on template rendering error
- Replaced the hardcoded text
(You)
with the StringSetCHANNEL_SETTING__MEMBERS__YOU
in theUserListItem
v3.14.0-beta
[v3.14.0-beta] (Mar 15, 2024)
Features
- Added 'wide' and 'full' width support for
MessageContent
when value exists inmessage.extendedMessagePayload['ui']['container_type']
- Added
Carousel
ui component MessageTemplate
now supports composite templates
[v3.13.2] (Mar 14, 2024)
Features
- Add a
renderHeader
props to the ChannelSettingsUIProps<ChannelSettingsUI renderHeader={() => ...} />
Fixes
- Deprecated the
onClick
prop inUserListItem
and addedonUserAvatarClick
. The deprecated prop will be removed in the next major version - Added throttling in
mute/unmute
operation - Added throttling in
add/remove
operator operation - Fixed that the Chat SDK is not initialized more than once
- Display the normal
FileMessage
for the.mov
video - Show
X
button on the ModalHeader of mobile mode - Modify the incorrect stringSet on the BannedUsersModal
CHANNEL_SETTING__MUTED_MEMBERS__TITLE
toCHANNEL_SETTING__BANNED_MEMBERS__TITLE
CHANNEL_SETTING__MODERATION__BAN
toCHANNEL_SETTING__MODERATION__UNBAN
- also modified the dataSbId,
channel_setting_banned_user_context_menu_ban
tochannel_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:
MessageTemplate
TemplateMessageItemBody
FallbackTemplateMessageItemBody
LoadingTemplateMessageItemBody
Others
- Added
showSuggestedRepliesFor
global 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
renderSuggestedReplies
inMessage
module- How to use?
<Channel renderSuggestedReplies={(suggestedRepliesProps) => { const { replyOptions, onSendMessage, message } = suggestedRepliesProps; return <CustomSuggestedReplies options={replyOptions} />; }} />
- Added
renderMobileMenuOnLongPress
inMessageContentProps
- 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
useChannelSettingsContext
not 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
ChannelSettings
module and addressed some layout issues -
Added support for multiple lines in the
MessageInput
on mobile devices -
Fixed hard-coded text to localization text for uploading file size and count limits
-
Fixed the
MessageListParams
type in theChannelProvider
-
Fixed requests for empty image paths during the image optimization process
-
Fixed an infinite loop issue occurring when using the
GroupChannel/components/Message
andChannel/components/Message
components in therenderMessage
method of theGroupChannel
andChannel
modules -
The
renderMessage
method of theGroupChannel
module no longer nests messages under theMessage
component. If a container element for theMessage
component 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
renderMessage
prop of theChannel/components/Message
andGroupChannel/components/Message
components has been deprecated. Instead, use thechildren
prop to customize message sub-elements<Message message={props.message}> <div>{props.message.messageId}</div> </Message>
-
Added detailed comments for customizing-related props in the
GroupChannel
module
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
GroupChannel
andGroupChannelList
modules.- With the introduction of
GroupChannel
andGroupChannelList
, a new local caching feature has been added, allowing you to experience a more efficient chat environment.
We provide a massive component calledApp
that combines all the features. From now on, this component will useGroupChannel
andGroupChannelList
instead ofChannel
andChannelList
.
If you wish to continue usingChannel
andChannelList
, you can useenableLegacyChannelModules
to 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
accessToken
was 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
isUserIdUsedForNickname
was not functioning properly #976 - Optimized the rendering of
SendbirdProvider
- Optimized the SDK initialization logic for StrictMode