Releases: sendbird/sendbird-uikit-react
Releases · sendbird/sendbird-uikit-react
[v3.2.0] (Sep 27 2022)
Features:
- OpenChannelList component
- Create new smart components (modules)
- CreateOpenChannel
- OpenChannelList
- Add a renderHeader props into the ui/Modal component
- Add stringSet for OpenChannelLisit and CreateOpenChannel components
- OPEN_CHANNEL_LIST__TITLE: 'Channels',
- CREATE_OPEN_CHANNEL_LIST__TITLE: 'New channel profile',
- CREATE_OPEN_CHANNEL_LIST__SUBTITLE__IMG_SECTION: 'Channel image',
- CREATE_OPEN_CHANNEL_LIST__SUBTITLE__IMG_UPLOAD: 'Upload',
- CREATE_OPEN_CHANNEL_LIST__SUBTITLE__TEXT_SECTION: 'Channel name',
- CREATE_OPEN_CHANNEL_LIST__SUBTITLE__TEXT_PLACE_HOLDER: 'Enter channel name',
- CREATE_OPEN_CHANNEL_LIST__SUBMIT: 'Create',
- Create new smart components (modules)
- Add prop?.value to MessageWrappers
- @sendbird/uikit-react/Channel/components/MessageInput
- @sendbird/uikit-react/OpenChannel/components/OpenChannelInput
- @sendbird/uikit-react/ui/MessageInput
- Value is reset when channelURL changes
Fixes:
- Fix issue where ConnectionHandler overwrite SessionHandler
- Use queries from @sendbird/chat
- Use imported versions of GroupChannelListQueryParams and ApplicationUserListQueryParams
- Fix
openChannel casing in type defn - Add some missing localization variables
- Deprecate ChatHeader and ChannelPreview in @sendbird/uikit-react/ui
- Replace the ButtonTypes and ButtonSizes into the Button/index
- Apply scroll to input and dark theme color to UserProfile
- Disable the create channel button when no user invite
- Use ref from MessageInputWrapper props if present
- Some CSS level polishing fixes~
Dev. Env:
- Remove
enzymeandreact-test-renderer - Upgrade the
reactversion to v18 - Upgrade the
storybookversion to v6.5.10 - Upgrade the
jestandbabel-jestto v29 - Upgrade the
jsdomto v20 - Install
jest-environment-jsdom - Install
global-jsdom - Install
testing-library(@testing-library/reactand@testing-library/jest-dom) - Migrate every tests with
testing-libraryinstead of theenzymeand `react-test-renderer - Replace node-sass with sass(Dart Sass)
- Reduce bundle size by treating react-dom/server as external
[v3.1.3] (Sep 19 2022)
Features:
- Export SessionHandler through
@sendbird/uikit-react/handlers/SessionHandler- This is a workaround to fix an issue where inhertiance chains break custom handler implementation
import SessionHandler from '@sendbird/uikit-react/handlers/SessionHandler'
- Rem units can be used for typography
- Pass prop
config.isREMUnitEnabled-> true on SendbirdProvider
to use "rem" units - We are adding rem as unit for typography/font size
- Pass prop
Fixes:
- Fix the position of ContextMenu
- Do not exit the current open channel when the channel state is changed
- Display menu only for operators on the member list
- Hide muted icon when pop-up component is appeared
- Set message context's border roundly by the state using the reaction feature
- Add props
isReactionEnabledto the<TextMessageItemBody /> - Add props
isReactionEnabledto the<OGMessageItemBody /> - Add props
isReactionEnabledto the<FileMessageItemBody /> - Add props
isReactionEnabledto the<ThumbnailMessageItemBody /> - Add props
isReactionEnabledto the<UnknownMessageItemBody />
- Add props
- Add the message as a parameter of renderCustomSeparator
- before: renderCustomSeparator={() => ReactElement}
- after: renderCustomSeparator={(props: { message }) => ReactElement}
- Fix typo on the type
- renderCustomSep'e'rator to renderCustomSep'a'rator
[v3.1.2] (Aug 31 / Sept 1 2022)
Migrate UI components into TypeScript
This doesnt affect anyone, it a step in task to migrate the project source code into TS
Fixes:
-
Type defn: Change type of react elements to
React.ReactElement- Change every
React.ReactNodeandReact.ComponenttoReact.ReactElement - Use the type of SendbirdError
- Use the type MessageSearchQueryParams
- Use enum MessageSearchOrder.TIMESTAMP in the message search query params instead of
'ts' as const
ReactNode could be
string | number | null | undefined | ReactElement | portaland this(expecting string or number) causes warning when we use it like<CustomComp />// in the component { renderMessage } = props const CustomMessage = useMemo(() => { return renderMessage({ ... }); }, []); return ( <div> <CustomMessage /> </div> );
so expecting ReactElement is better for our case
- Change every
-
Fix message grouping:
Set isMessageGroupingEnabed to true(was set to false during v2 migration)
[v3.1.1] (Aug 17 2022)
Features:
- Add channel handlers to the open channel settings
- Add an open channel handler into the OpenChannelSettings component
- Use operators property to render operator list on the OpenChannelSetting
instead of fetching operators
- Export handlers through
@sendbird/uikit-react/handlers, this is a workaround
to fix an issue where inhertiance chains break custom handler implementation- ConnectionHandler ->
@sendbird/uikit-react/handlers/ConnectionHandler - GroupChannelHandler ->
@sendbird/uikit-react/handlers/GroupChannelHandler - OpenChannelHandler ->
@sendbird/uikit-react/handlers/OpenChannelHandler - UserEventHandler ->
@sendbird/uikit-react/handlers/UserEventHandler - Example: https://codesandbox.io/s/test-3-1-1-rc-5-f94w7i
- ConnectionHandler ->
Fixes:
- Update SendableMessage to UserMessage and FileMessage
- Change the type of MessageHandler.onFailed to FailedMessageHandler
- Add missing type defns into scripts/index_d_ts
- Typo in creating channelHandlerId on the ChannelList
[v3.1.0] (Aug 03 2022)
Features:
- Support moderation in OpenChannel
- Provide moderations: mute, unmute, ban, and unban on the
OpenChannelSettings - Provide moderations: register and unregister operator on the
OpenChannelSettings - Add MutedParticipantList and MutedParticipantsModal into the
OpenChannelSettings - Add BannedUserList and BannedUsersModal into the
OpenChannelSettings - Add OperatorList and OperatorsModal into the
OpenChannelSettings - Add AddOperatorsModal into the
OpenChannelSettings
- Provide moderations: mute, unmute, ban, and unban on the
Full Changelog: v3.0.2...v3.1.0
[v3.0.2] (Aug 03 2022)
Fixes:
- Explicitly export library as esm-module
ESM library should have "type": "module" (package.json file that is going to /dist)
This fixes Cannot use import outside module issue in next.js - Add optional chaining for createApplicationUserList
- Fix QueryInProgress warning:
React 18 strict mode glitch that causes useEffect to run twice - Cannot connect sometimes when customApiHost is empty
Connection couldnt be established with no error message when customApiHost and customWebSocketHost
were passed as empty string - Handle all chances of command not received error
Handle chances of command not recieved error in markAsRead
Experimental markasread handling -> longer times, no more call after unmount - Move typing handler in channellist into local variable
[v3.0.2-beta.0] (July 31 2022)
Fixes:
- Explicitly export library as esm-module
ESM library should have "type": "module" (package.json file that is going to /dist)
This fixes Cannot use import outside module issue in next.js - Add optional chaining for createApplicationUserList
- Cannot connect sometimes when customApiHost is empty
Connection couldnt be established with no error message when customApiHost and customWebSocketHost
were passed as empty string - Handle all chances of command not received error
Handle chances of command not recieved error in markAsRead
Experimental markasread handling -> longer times, no more call after unmount - Move typing handler in channellist into local variable
[v3.0.1] (July 28 2022)
Features:
- Accept customApiHost & customWebSocketHost as props to SendbirdProvider
- Add basic TS project sample
Fixes:
- Improve URL detection in OG message
- Add onCloseClick to MessageSearchProps
- Safe call removeGroupChannelHandler in TypingIndicator
- Apply userListQuery
- Type definition for channellist and setting
[2.7.2] (July 27 2022)
- Bugfix
- Fix: Improve URL detection in messages