Skip to content

Releases: sendbird/sendbird-uikit-react-native

v3.3.0

23 Nov 03:33
51adda5
Compare
Choose a tag to compare

3.3.0 (2023-11-23)

Release notes

  • 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.

Changelogs

Features

  • add bottomSheetItem to props of renderMessage (83f8710)
  • add typing indicator bubble ui and logic (9223b43)

Bug Fixes

  • add promise polyfills for hermes (2f31a45)
  • adjust lineHeight of iOS TextInput (c9c253e)
  • if the bubble renders and the scroll reaches the bottom, it should scroll to bottom on android (a866422)

v3.2.0

03 Nov 07:51
dd02958
Compare
Choose a tag to compare

3.2.0 (2023-11-03)

Release notes

  • 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 and react-native-audio-recorder-player.
      • Create platform services using createNativeRecorderService and createNativePlayerService.
    • Expo:
      • Install expo-av
      • Create platform services using createExpoRecorderService and createExpoPlayerService.
  • 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.

Changelogs

Features

  • add chat init params to chatOptions (7742853)
  • add createRecordFilePath method to FileServiceInterface (0b7fd40)
  • add reaction.onPressUserProfile to SendbirdUIKitContainer props (379bcce)
  • add scrollToMessage to group channel contexts (df48e2c)
  • add string set for microphone permission (9e9c2e1)
  • add string set for muted and frozen when sending a voice message (0c8d1f5)
  • add voice message config to uikit container (6f5de2c)
  • add yalc for local deployment (7778d67)
  • foundation: add audio icon (366d6af)
  • foundation: add progress bar component (af6a2fb)
  • foundation: add voice message input color set (b94d230)
  • foundation: implement voice file message component (f6d90db)
  • foundation: update icons (85d7d58)
  • implement cli player service (b136de4)
  • implement cli recorder service (e05cf93)
  • implement recorder and player service for expo (851ec0e)
  • implement voice message input (9e6bc75)
  • implement voice message logic (337d022)

Bug Fixes

  • await onClose for voice message input before displaying permission alert (62ef277)
  • CLNP-983: display a message unavailable text if the message is not accessible (e38512a)
  • CLNP-983: search for messages from an accessible range (b025f7f)
  • foundation: fixed to use color variant in unknown group channel message (1b8576a)
  • reset player and recorder if input closed with back button press (e8e43ec)
  • UIKIT-4452: uikit configuration should always be initialized (1e539bb)

Improvements

  • lift up the flatListRef to the provider and created MessageList context (4a6efdc)

v3.1.2

04 Oct 08:25
49d4821
Compare
Choose a tag to compare

3.1.2 (2023-10-04)

Release notes

  • Add chatOptions.localCacheEncryption to SendbirdUIKitContainer props
  • Filter deactivated users when making mention suggestions
  • In the case of a resolved version, an android inverted flatlist warning message is not displayed.

Changelogs

Features

  • add localCacheEncryption interface to container prop (3341992)

Bug Fixes

  • filter deactivated users when making mention suggestions (ee1e9c2)

v3.1.1

23 Aug 02:31
cc1e2d6
Compare
Choose a tag to compare

3.1.1 (2023-08-23)

Release notes

  • When there is a thumbnail in the message, uses the first thumbnail of the message

Changelogs

Features

  • use thumbnails if available (62f3ca0)

v3.1.0

11 Aug 06:47
1ff295c
Compare
Choose a tag to compare

3.1.0 (2023-08-11)

Release notes

  • Added Quote reply feature in group channels (default: turned on)
    const App = () => {
      <SendbirdUIKitContainer
        appId={APP_ID}
        uikitOptions={{
          groupChannel: {
            replyType: 'none', // 'none', 'quote_reply'
          },
        }}
      />;
    };
  • Updated the minimum chat SDK version to v4.9.8.
  • Improved video thumbnail fetching and caching logic in the native media service.
  • Enhanced stability.

Changelogs

Features

  • add video thumbnail component (e702155)
  • UIKIT-4240: implement basic quote reply logic (#103) (b4add0e)

Bug Fixes

  • add exception handling for unreachable parent message (9df42be)
  • unsent messages should be shown first of the message list (3a4544e)

v3.0.4

13 Jul 04:50
bf8ff37
Compare
Choose a tag to compare

3.0.4 (2023-07-13)

Release notes

  • Fix send file messages in Expo environment

Changelogs

Features

  • update expo-document-picker and support backward compatibility (364f805)

Bug Fixes

  • utils: extension should not contain dot in getMimeFromFileExtension (7be3d0c)
  • utils: getFileExtensionFromUri should return extension not a mime-type (e2df878)
  • utils: return extension of getFileExtensionFromMime should contain dot (85b6d18)

v3.0.3

11 Jul 23:33
f674e3c
Compare
Choose a tag to compare

3.0.3 (2023-07-11)

Release notes

  • Fix to send the file messages normally

Changelogs

Bug Fixes

  • utils: wrong mime type check condition in normalizeFile (1ca3789)

v3.0.2

10 Jul 01:40
2fb2eee
Compare
Choose a tag to compare

3.0.2 (2023-07-10)

Release notes

  • Fixed that unable to load next messages when message searching on iOS in a react-native environment lower than v0.72

Changelogs

Bug Fixes

  • revert "fix: do not use scrollview enhancer if the platform is not android (ff48e36)" (907b09e)

v3.0.1

04 Jul 12:57
6dbea50
Compare
Choose a tag to compare

3.0.1 (2023-07-04)

Release notes

Update expo modules and support backward compatibility

  • Latest version support for expo-av module
  • Latest version support for expo-clipboard module
  • Latest version support for expo-document-picker module
  • Latest version support for expo-file-system module
  • Latest version support for expo-image-manipulator module
  • Latest version support for expo-image-picker module
  • Latest version support for expo-media-library module
  • Latest version support for expo-notifications module
  • Latest version support for expo-video-thumbnails module

Changelogs

Bug Fixes

  • do not use scrollview enhancer if the platform is not android (ff48e36)
  • update expo modules and support backward compatibility (5c45ee6)

v3.0.0

28 Jun 05:04
210cca5
Compare
Choose a tag to compare

3.0.0 (2023-06-28)

Release notes

Feature configurations

  • The minimum @sendbird/chat version has been increased from 4.3.0 to 4.9.2.
  • You can now configure the features of UIKit through the uikitOptions prop of SendbirdUIKitContainer.
<SendbirdUIKitContainer
  uikitOptions={{
    common: {
      enableUsingDefaultUserProfile: true,
    },
    groupChannel: {
      enableMention: false,
      enableOgtag: true,
      enableReaction: true,
      enableTypingIndicator: true,
      input: {
        camera: {
          enablePhoto: true,
          enableVideo: true,
        },
        gallery: {
          enablePhoto: true,
          enableVideo: true,
        },
        enableDocument: true,
      },
    },
    groupChannelList: {
      enableTypingIndicator: true,
      enableMessageReceiptStatus: true,
    },
    groupChannelSettings: {
      enableMessageSearch: true,
    },
    openChannel: {
      enableOgtag: true,
      input: {
        camera: {
          enablePhoto: true,
          enableVideo: true,
        },
        gallery: {
          enablePhoto: true,
          enableVideo: true,
        },
        enableDocument: true,
      },
    },
  }}
/>

Breaking changes

Project configurations

The minimum React-Native version has been increased from 0.63.3 to 0.65.0.

Local cache is now a mandatory requirement.

  • You must inject localCacheStorage into SendbirdUIKitContainer.
<SendbirdUIKitContainer chatOptions={{ localCacheStorage: AsyncStorage }} />

Code migrations and removal of deprecated items

Feature configurations

  • The feature configuration options that were previously present in the chatOptions prop of SendbirdUIKitContainer have been moved to uikitOptions prop.

    • chatOptions.enableUserMention is replaced with uikitOptions.groupChannel.enableMention
    • chatOptions.enableGroupChannelOGTag is replaced with uikitOptions.groupChannel.enableOgtag
    • chatOptions.enableChannelListTypingIndicator replaced with uikitOptions.groupChannelList.enableTypingIndicator
    • chatOptions.enableChannelListMessageReceiptStatus is replaced with uikitOptions.groupChannelList.enableMessageReceiptStatus
    • chatOptions.enableMessageSearch is replaced with uikitOptions.groupChannelSettings.enableMessageSearch
    • chatOptions.enableOpenChannelOGTag is replaced with uikitOptions.openChannel.enableOgtag
    • chatOptions.enableUsingDefaultUserProfile is replaced with uikitOptions.common.enableUsingDefaultUserProfile

Resources

  • StringSet

    • OPEN_CHANNEL.LIST_BANNER_FROZEN is replaced with LABELS.CHANNEL_MESSAGE_LIST_FROZEN
    • GROUP_CHANNEL.LIST_BANNER_FROZEN is replaced with LABELS.CHANNEL_MESSAGE_LIST_FROZEN
    • GROUP_CHANNEL.DIALOG_MESSAGE_COPY is replaced with LABELS.CHANNEL_MESSAGE_COPY
    • GROUP_CHANNEL.DIALOG_MESSAGE_EDIT is replaced with LABELS.CHANNEL_MESSAGE_EDIT
    • GROUP_CHANNEL.DIALOG_MESSAGE_SAVE is replaced with LABELS.CHANNEL_MESSAGE_SAVE
    • GROUP_CHANNEL.DIALOG_MESSAGE_DELETE is replaced with LABELS.CHANNEL_MESSAGE_DELETE
    • GROUP_CHANNEL.DIALOG_MESSAGE_DELETE_CONFIRM_TITLE is replaced with LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE
    • GROUP_CHANNEL.DIALOG_MESSAGE_DELETE_CONFIRM_OK is replaced with LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK
    • GROUP_CHANNEL.DIALOG_MESSAGE_DELETE_CONFIRM_CANCEL is replaced with LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL
    • GROUP_CHANNEL.DIALOG_MESSAGE_FAILED_RETRY is replaced with LABELS.CHANNEL_MESSAGE_FAILED_RETRY
    • GROUP_CHANNEL.DIALOG_MESSAGE_FAILED_REMOVE is replaced with LABELS.CHANNEL_MESSAGE_FAILED_REMOVE
    • GROUP_CHANNEL.DIALOG_ATTACHMENT_CAMERA(LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA) is replaced with LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO and LABELS.CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO
    • GROUP_CHANNEL.DIALOG_ATTACHMENT_PHOTO_LIBRARY is replaced with LABELS.CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY
    • GROUP_CHANNEL.DIALOG_ATTACHMENT_FILES is replaced with LABELS.CHANNEL_INPUT_ATTACHMENT_FILES
    • GROUP_CHANNEL.INPUT_PLACEHOLDER_ACTIVE is replaced with LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE
    • GROUP_CHANNEL.INPUT_PLACEHOLDER_DISABLED is replaced with LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED
    • GROUP_CHANNEL.INPUT_PLACEHOLDER_MUTED is replaced with LABELS.CHANNEL_INPUT_PLACEHOLDER_MUTED
    • GROUP_CHANNEL.INPUT_EDIT_OK is replaced with LABELS.CHANNEL_INPUT_EDIT_OK
    • GROUP_CHANNEL.INPUT_EDIT_CANCEL is replaced with LABELS.CHANNEL_INPUT_EDIT_CANCEL
    • GROUP_CHANNEL_MEMBERS.USER_BAR_ME_POSTFIX is replaced with LABELS.USER_BAR_ME_POSTFIX
    • GROUP_CHANNEL_MEMBERS.USER_BAR_OPERATOR is replaced with LABELS.USER_BAR_OPERATOR
  • Theme

    • Messsage in colors is replaced with GroupChannelMessage (colors.ui.message -> colors.ui.groupChannelMessage)

Components

  • GroupChannelFragment(GroupChannelProps),

    • In order to specify the local cache as mandatory, the queryCreator prop has been removed.
  • ChannelMessageList (GroupChannelProps, OpenChannelProps)

    • onPressImageMessage prop is replaced with onPressMediaMessage
    • onLeaveScrollBottom prop is replaced with onScrolledAwayFromBottom
    • onPressAvatar prop is replaced with onShowUserProfile
  • ChannelInput (GroupChannelProps, OpenChannelProps)

    • onSendFileMessage prop is replaced with onPressSendUserMessage
    • onSendUserMessage prop is replaced with onPressSendUserMessage
    • onUpdateFileMessage prop is replaced with onPressUpdateUserMessage
    • onUpdateUserMessage prop is replaced with onPressUpdateFileMessage
  • GroupChannelListFragment(GroupChannelListProps)

    • In order to specify the local cache as mandatory, the queryCreator prop has been removed.
    • renderGroupChannelPreview has been changed from (channel: SendbirdGroupChannel, onLongPressChannel: () => void) => React.ReactElement | null to (props: { channel: SendbirdGroupChannel; onPress: () => void; onLongPress: () => void; }) => React.ReactElement | null.
  • MessageRenderer component is replaced with GroupChannelMessageRenderer

Hooks

  • useGroupChannelMessages, useOpenChannelMessages
    • nextMessages and newMessagesFromMembers properties are replaced with newMessages

Changelogs

⚠ BREAKING CHANGES

  • update signature of channel preview prop in group channel list and open channel list
  • removed queryCreator from the group channel and group channel list
  • update minimum chat sdk version
  • bumped peer dependency version of chat sdk
  • react-native minimum version changed to 0.65.0 from 0.63.3
  • made chatOptions.localCacheStorage of SendbirdUIKitContainer required
  • deprecated item removal in foundation package
  • deprecated item removal in ChannelInput
  • deprecated MessageRenderer removal (replaced to GroupChannelMessageRenderer)
  • deprecated item removal in ChannelMessageList
  • deprecated item removal in uikit-chat-hooks package
  • deprecated item removal in StringSet

Features

  • added AttachmentsButton to ChannelInput component (687f3a0)
  • bumped peer dependency version of chat sdk (a57aff0)
  • deprecated item removal in ChannelInput (6a326ca)
  • deprecated item removal in ChannelMessageList (3a68a33)
  • deprecated item removal in foundation package (96f9717)
  • deprecated item removal in StringSet (956236b)
  • deprecated item removal in uikit-chat-hooks package (48fabfe)
  • deprecated MessageRenderer removal (replaced to GroupChannelMessageRenderer) (488e0b6)
  • hide ui elements when the channel is ephemeral (eacc2da)
  • made chatOptions.localCacheStorage of SendbirdUIKitContainer required (2f07d0d)
  • react-native minimum version changed to 0.65.0 from 0.63.3 (39a9852)
  • support options for default user profile(default: false) (6671a61)
  • support options for ogtag in channel (d80b8a0...
Read more