Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@sendbird/uikit-react

Package Overview
Dependencies
Maintainers
0
Versions
241
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sendbird/uikit-react - npm Package Versions

1
25

3.14.13-rc.0

Diff

sendbird
published 3.14.12 •

Changelog

Source

[v3.14.12] (July 3, 2024)

Features

  • RTL Support

    • Added htmlTextDirection prop to SendbirdProvider to support Right-To-Left (RTL) text direction for Middle East customers. Read more.
    import ar from 'date-fns/locale/ar';
    <SendbirdProvider
      ...
      htmlTextDirection={'rtl' | 'ltr'}
      // Setting a proper value to dateLocale would be necessary
      dateLocale={ar}
    >
    </SendbirdProvider>
    
  • DX Improvements: ChannelSetting SettingMenu

    • Added new components and hooks to make the menu items in the ChannelSettingsUI more modular and customizable.
    • New Files:
      • useMenuItems.tsx: Custom hook for menu items based on user roles.
      • MenuItem.tsx: Reusable and customizable menu item component.
      • MenuListByRole.tsx: Renders a list of menu items based on user roles.
    • Example usage: To customize the moderation panel with selected menu items:
      import React from 'react';
      import ChannelSettingsUI from '@sendbird-uikit/ChannelSettings/components/ChannelSettingsUI';
      import useMenuItems from '@sendbird-uikit/ChannelSettings/hooks/useMenuList';
      
      const CustomChannelSettings = () => {
        const menuItems = useMenuItems();
      
        const renderCustomModerationPanel = () => {
          // Create a new object by selecting only the desired menu items.
          const customMenuItems = {
            operator: {
              operators: menuItems.operator.operators, // Keep the operators menu
              allUsers: menuItems.operator.allUsers, // Keep the all users menu
              // Add or remove other menu items as needed.
            },
            nonOperator: {
              allUsers: menuItems.nonOperator.allUsers, // Keep the all users menu
              // Add or remove other menu items as needed.
            },
          };
      
          return <MenuListByRole menuItems={customMenuItems} />;
        };
      
        return (
          <ChannelSettingsUI renderModerationPanel={renderCustomModerationPanel} />
        );
      };
      
      export default CustomChannelSettings;
      
  • DX Improvements: ChannelSetting UserListItem

    • UserListItemMenu has been newly created
    • Provided it as a module which also contains UserListItemMenuProvider and useUserListItemMenuContext
      import { UserListItemMenu, UserListItemMenuProvider, useUserListItemMenuContext } from '@sendbird/uikit-react/ui/UserListItemMenu';
      
    • Added new renderUserListItem props to the list components of ChannelSettings:
      • OperatorList, MemberList, MutedMemberList, BannedUserList
    • Exported the following modules:
      • OperatorList, MemberList, MutedMemberList, BannedUserList
      import { OperatorList, MemberList, MutedMemberList, BannedUserList } from '@sendbird/uikit-react/ChannelSettings/components/ChannelSettingsUI';
      
    • Merged ui/UserListItem and ChannelSettings/components/UserListItem:
      • Use ui/UserListItem from now on
      • Added size prop to UserListItem, which now accepts two values: 'normal' and 'small' ('small' replaces the previous ChannelSettings/components/UserListItem)
        • normal: Used primarily in Modals
        • small: Used primarily in Lists
    • Example usage:
      <ChannelSettings
        renderUserListItem={(props) => (
          <UserListItem {...props}
            renderListItemMenu={(props) => (
              <UserListItemMenu
                {...props}
                onToggleOperatorState={({ user, newState, error }) => {/** Handle operator state change */}}
                onToggleMuteState={({ user, newState, error }) => {/** Handle mute state change */}}
                onToggleBanState={({ user, newState, error }) => {/** Handle ban state change */}}
                renderTrigger={({ ref }) => (<div ref={ref}>{/** Render your custom trigger icon here */}</div>)}
                renderMenuItems={({ items }) => (
                  <>
                    <items.OperatorToggleMenuItem />
                    <items.MuteToggleMenuItem />
                    <items.BanToggleMenuItem />
                  </>
                )}
              />
            )}
          />
        )}
      />
      

Fixes

  • Fixed image file viewer header style
  • Disabled isSuperGroupReactionsEnabled setter
  • Use APP_LAYOUT_ROOT to get the area info of the UIKit
    export const APP_LAYOUT_ROOT = 'sendbird-app__layout';
    
    • To ensure the menu positions are calculated correctly, wrap the entire area using SendbirdProvider with a tag that has the specified ID.

Chore

  • Updated @sendbird/chat version to 4.13.0
    • Improved channel/message refreshing performance utilizing LocalCaching.
sendbird
published 3.14.12-rc.0 •

sendbird
published 3.14.11 •

Changelog

Source

[v3.14.11] (June 20, 2024)

Features

  • Markdown Support for Text Messages

    • Added enableMarkdownForUserMessage to UIKitOptions. When enabled, markdown syntaxes for bold and link are now applied to user messages.
  • Descriptive Color Names Support

    • Users can now customize the color set using more descriptive color names instead of numerical codes.
    • Added a color map parsing utility function, mapColorKeys, to support both new and existing color names.
    • Detailed color name mappings:
      1. Primary, Secondary, Error, information
      Primary-500 -> Primary-extra dark
      Primary-400 -> Primary-dark
      Primary-300 -> Primary-main
      Primary-200 -> Primary-light
      Primary-100 -> Primary-extra light
      
      Secondary-500 -> Secondary-extra dark
      Secondary-400 -> Secondary-dark
      Secondary-300 -> Secondary-main
      Secondary-200 -> Secondary-light
      Secondary-100 -> Secondary-extra light
      
      1. Background 100~700: No changes
      2. Overlay
      Overlay-01 -> Overlay-dark
      Overlay-02 -> Overlay-light
      
      1. OnLight & OnDark
      // On Light
      On Light-01 -> Onlight-text-high-emphasis
      On Light-02 -> Onlight-text-mid-emphasis
      On Light-03 -> Onlight-text-low-emphasis
      On Light-04 -> Onlight-text-disabled
      // On Dark
      On Dark -01 -> Ondark-text-high-emphasis
      On Dark -02 -> Ondark-text-mid-emphasis
      On Dark -03 -> Ondark-text-low-emphasis
      On Dark -04 -> Ondark-text-disabled
      
  • Message Menu Component Refactor

    • Created MessageMenuProvider, useMessageMenuContext, and MessageMenu component.

    • Replaced MessageItemMenu with MessageMenu in GroupChannel. Future PR will apply it to Thread.

    • Migrated MobileContextMenu and MobileBottomSheet using MessageMenuProvider.

    • Exported the MobileMenu

      import { MobileMenu, MobileContextMenu, MobileBottomSheet } from '@sendbird/uikit-react/ui/MobileMenu';
      
    • How to use?

      Desktop menu

      import GroupChannel from '@sendbird/uikit-react/GroupChannel';
      import MessageContent from '@sendbird/uikit-react/ui/MessageContent';
      import { MessageMenu } from '@sendbird/uikit-react/ui/MessageMenu';
      
      const GroupChannelPage = () => (
        <GroupChannel
          renderMessageContent={(props) => (
            <MessageContent
              {...props}
              renderMessageMenu={(props) => (
                <MessageMenu
                  {...props}
                  renderMenuItems={(props) => {
                    const {
                      CopyMenuItem,
                      ReplyMenuItem,
                      // ...
                      DeleteMenuItem,
                    } = props.items;
                    // organize the menu items using the items
                    return (
                      <>
                        <CopyMenuItem />
                        <DeleteMenuItem />
                      </>
                    );
                  }}
                />
              )}
            />
          )}
        />
      );
      

      Mobile menu

      import GroupChannel from '@sendbird/uikit-react/GroupChannel';
      import MessageContent from '@sendbird/uikit-react/ui/MessageContent';
      import { MobileMenu } from '@sendbird/uikit-react/ui/MessageMenu';
      
      const GroupChannelPage = () => (
        <GroupChannel
          renderMessageContent={(props) => (
            <MessageContent
              {...props}
              renderMobileMenuOnLongPress={(props) => (
                <MobileMenu
                  {...props}
                  renderMenuItems={(props) => {
                    const {
                      CopyMenuItem,
                      ReplyMenuItem,
                      // ...
                      DeleteMenuItem,
                    } = props.items;
                    // organize the menu items using the items
                    return (
                      <>
                        <CopyMenuItem />
                        <DeleteMenuItem />
                      </>
                    );
                  }}
                />
              )}
            />
          )}
        />
      );
      

Fixes

  • Fixed an issue where the newMessages array was not being reset even after the message list scroll reached the bottom, causing the message notification bar to not disappear properly. Manually called resetNewMessages() under certain conditions.
  • Updated the logic to align with other platforms for consistency. Relocated the logic to the same section where other disabled conditions are checked.
sendbird
published 3.14.11-rc-2 •

sendbird
published 3.14.11-rc-1 •

sendbird
published 3.14.11-rc-0 •

sendbird
published 3.14.10 •

Changelog

Source

[v3.14.10] (June 13, 2024)

Fixes

  • Replaced onlight-05 with onlight-03 since onlight-05 doesn't exist in the product design guide.
  • Added the onClose event to the modals inside of the FileViewer components.
sendbird
published 3.14.10-rc.0 •

sendbird
published 3.14.9 •

Changelog

Source

[v3.14.9] (June 7, 2024)

Fixes

  • Resolved an issue where M4A format audio files were not playing in Safari. M4A files are now parsed as audio/x-m4a to ensure proper playback.
  • Prevented the newly created channels from being filtered out from the ChannelList.

Features

  • Added a modal to the FileViewer components for utilizing the onMounted event handler.
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc