Build chat in minutes with Sendbird UIKit open source code.
Bot releases are visible (Hide)
Published by github-actions[bot] 29 days ago
onOpenURL
and onOpenFileURL
to SendbirdUIKitContainer
.
<SendbirdUIKitContainer
appId={APP_ID}
handlers={{
onOpenURL: (url) => {
console.log('onOpenURL', url);
},
onOpenFileURL: (url) => {
console.log('onOpenFileURL', url);
},
}}
/>
Published by github-actions[bot] about 1 month ago
import { MMKV } from 'react-native-mmkv';
import { SendbirdUIKitContainer } from '@sendbird/uikit-react-native';
const mmkv = new MMKV();
const App = () => {
return <SendbirdUIKitContainer chatOptions={{ localCacheStorage: mmkv }}>{/* ... */}</SendbirdUIKitContainer>;
};
[!IMPORTANT]
Since react-native-mmkv uses JSI for synchronous native method invocations, remote debugging (e.g., with Chrome) is no longer possible.
Instead, you should use Flipper or React DevTools.
For more details on remote debugging deprecations, refer to react-native-community discussions and proposals #734.
For information on the new debugger, refer to react-native-community discussions and proposals #733.
Published by github-actions[bot] 4 months ago
Published by github-actions[bot] 4 months ago
enableReactionsSupergroup
in SendbirdUIKitContainerProps
, which is not allowed by default. If you wish to use this feature, contact us.Published by bang9 7 months ago
enableReactionsSupergroup
to enable reactions in super group channels.
import { SendbirdUIKitContainer } from '@sendbird/uikit-react-native';
const App = () => {
return (
<SendbirdUIKitContainer
uikitOptions={{
groupChannel: {
enableReactionsSupergroup: true,
},
}}
>
{/* Rest of your app */}
</SendbirdUIKitContainer>
);
};
Published by bang9 7 months ago
disableFastImage
prop to Image component in foundation package.
import { Image } from '@sendbird/uikit-react-native-foundation';
// If you don't want to use FastImage in UIKit for React Native, you can specify this default prop
if (Image.defaultProps) Image.defaultProps.disableFastImage = true;
Published by bang9 8 months ago
Published by bang9 9 months ago
channelListQueryParams
prop to GroupChannelListFragment
.collectionCreator
is deprecated and replaced by channelListQueryParams
)
<GroupChannelList
channelListQueryParams={{
includeEmpty: true,
includeFrozen: true,
}}
/>
messageListQueryParams
prop to GroupChannelFragment
.collectionCreator
is deprecated and replaced by messageListQueryParams
)
<GroupChannel
channelUrl={channelUrl}
messageListQueryParams={{
prevResultLimit: 20,
customTypesFilter: ['filter'],
}}
/>
CommonComponent
.React.ComponentType
instead of the function structure.Published by bang9 9 months ago
Published by bang9 11 months ago
Add typing indicator bubble feature.
TypingIndicatorBubble
is a new typing indicator UI that can be turned on through typingIndicatorTypes
option.
When turned on, it will be displayed in GroupChannelMessageList
upon receiving typing event in real time.
import { SendbirdUIKitContainer, TypingIndicatorType } from '@sendbird/uikit-react-native';
const App = () => {
return (
<SendbirdUIKitContainer
uikitOptions={{
groupChannel: {
typingIndicatorTypes: new Set([TypingIndicatorType.Bubble]),
},
}}
/>
);
};
Add bottomSheetItem
to the props of renderMessage.
bottomSheetItem
is a new prop for renderMessage
that can be utilized to add a custom item to the bottom sheet of a message.
It can be used to add a custom menu item to the bottom sheet of a message.
import { GroupChannelMessageRenderer } from '@sendbird/uikit-react-native';
import { useBottomSheet } from '@sendbird/uikit-react-native-foundation';
const GroupChannelScreen = () => {
const { openSheet } = useBottomSheet();
const onOpenMessageMenu = (bottomSheetItem) => {
if (!bottomSheetItem) return;
openSheet({
...bottomSheetItem,
sheetItems: [
// Update bottomSheetItem.sheetItems or append your custom menu item
...bottomSheetItem.sheetItems,
{ icon: 'search', title: 'Search', onPress: () => console.log('Search') },
],
});
};
return (
<GroupChannelFragment
renderMessage={(props) => {
return (
<GroupChannelMessageRenderer {...props} onLongPress={() => onOpenMessageMenu(props.bottomSheetItem)} />
);
}}
/>
);
};
Fix the not found Promise.allSettled
error in Hermes.
Fix the vertical alignment of iOS TextInput.
Published by bang9 12 months ago
Add chat init params to chatOptions
in SendbirdUIKitContainer
props.
Add reaction.onPressUserProfile
to SendbirdUIKitContainer
props.
Add scrollToMessage
to GroupChannelContexts.MessageList
.
Add Voice message
const App = () => {
return (
<SendbirdUIKitContainer
uikitOptions={{
groupChannel: {
enableVoiceMessage: true,
},
}}
platformServices={{
recorder: RecorderService,
player: PlayerService,
}}
/>
);
};
Before using it, you should implement the RecorderService
and PlayerService
platform services.
You can implement this easily by using helper functions.
- CLI
- Install
react-native-permissions
andreact-native-audio-recorder-player
.- Create platform services using
createNativeRecorderService
andcreateNativePlayerService
.- Expo:
- Install
expo-av
- Create platform services using
createExpoRecorderService
andcreateExpoPlayerService
.
Fix the display of a message unavailable text if the message is not accessible.
Fix the search for messages within an accessible range.
Fix the usage of color variants in unknown group channel messages.
Fix the ensure that the UIKit configuration is always initialized, even in offline mode.
Published by bang9 about 1 year ago
chatOptions.localCacheEncryption
to SendbirdUIKitContainer propsPublished by bang9 about 1 year ago
const App = () => {
<SendbirdUIKitContainer
appId={APP_ID}
uikitOptions={{
groupChannel: {
replyType: 'none', // 'none', 'quote_reply'
},
}}
/>;
};