sendbird-uikit-ios/CHANGELOG.md

576 lines
32 KiB
Markdown

# Changelog
### v3.5.9 (Jun 15, 2023) with Chat SDK **v4.9.1**
* Improved stability
### v3.5.8 (May 26, 2023) with Chat SDK **v4.8.5**
* Improved stability
### v3.5.7 (May 16, 2023) with Chat SDK **v4.8.3**
* Added `notifications` property in `SBUFontSet.FontFamily` class
* This property is for the Notification feature
* Added statistics for the action of notification
* Improved stability
### v3.5.6 (Apr 26, 2023) with Chat SDK **v4.6.7**
* Update iOS deployment target to 11.0 for Xcode 14.1+
* Modified access level to the public of `SBUChannelTitleView` class and properties.
* Improved pending message update logic in thread message list
### v3.5.5 (Apr 19, 2023)
* Improved stability
### v3.5.4 (Apr 14, 2023) with Chat SDK **v4.6.6**
* Separated `quotedMessageBackgroundColor` as `quotedMessageLeftBackgroundColor` and `quotedMessageRightBackgroundColor` in `SBUMessageCellTheme`
* Deprecated `quotedMessageBackgroundColor` in `SBUMessageCellTheme`
* Added `quotedMessageLeftBackgroundColor` and `quotedMessageRightBackgroundColor` in `SBUMessageCellTheme`
* Modified access level to the public of `SBUCommonItem` properties.
* Supported multi-line title of channel cell
* Improved stability
### v3.5.3 (Mar 31, 2023)
* Modified voice message maximum recording time from 1 min to 10 min
* Improved stability
### v3.5.2 (Mar 24, 2023)
* Added `SBUCommonViewControllerSet`
* Added `FileViewController` to `SBUCommonViewControllerSet`
* Renamed `SBUFileViewer` to `SBUFileViewController`
* Added new static properties in `SBUGlobals`
* Added `isTintColorEnabledForCustomizedIcon` and `isCustomizedIconResizable`
* Improved stability
### v3.5.1 (Mar 17, 2023)
* Improved stability
### v3.5.0 (Mar 14, 2023) with Chat SDK **v4.6.0**
* Added Support for Notification Channels
* `SBUFeedNotificationChannelViewController` and `SBUFeedNotificationChannelModule` (`Header`, `List`) added
* `SBUChatNotificationChannelViewController` and `SBUChatNotificationChannelModule` (`Header`, `List`) added
### v3.4.0 (Mar 6, 2023) with Chat SDK **v4.5.0**
* Support **voice message** features in Group Channel
* Added views
* Added `SBUVoiceMessageInputView`
* Added `SBUVoiceContentView`
* Added voice message features to `SBUMessageInputView`
* Added `voiceMessageButton`
* Added `showsVoiceMessageButton`
* Added delegates
* Added `messageInputViewDidTapVoiceMessage(_:)` to `SBUMessageInputViewDelegate`
* Added classes
* Added `SBUVoiceRecorder`
* Added `SBUVoicePlayer`
* Added `SBUVoiceFileInfo`
* Added static properties in `SBUGlobals`
* Added `SBUVoiceMessageConfiguration` class
* Added `isVoiceMessageEnabled` in `SBUVoiceMessageConfiguration`
* Added `minRecordingTime` in `SBUVoiceMessageConfiguration/Recorder`
* Added `maxRecordingTime` in `SBUVoiceMessageConfiguration/Recorder`
* Added `voiceMessageConfig` in `SBUGlobals`
* Added `isAVPlayerAlwaysEnabled` in `SBUGlobals`
* Added new strings in `SBUStringSet`
* Added `SBUStringSet/VoiceMessage` class
* Added `Input` nested string set class in `VoiceMessage`
* Added `Alert` nested string set class in `VoiceMessage`
* Added `Preview` nested string set class in `VoiceMessage`
* Added `fileName` string in `VoiceMessage`
* Opened `SBUChannelInfoHeaderView`
* Improved stability
### v3.3.7 (Feb 28, 2023) with Chat SDK **v4.4.0**
* Opened `popToChannel()` in `SBUBaseSelectUserViewController`
* Added `UITableView` header interfaces to the list components
* Opened `tableView(_:viewForHeaderInSection:)`
* Opened `tableView(_:heightForHeaderInSection:)`
### v3.3.6 (Feb 16, 2023)
* Improved stability
### v3.3.5 (Feb 13, 2023)
* Modify the channel initialization logic to draw first with cached messages
### v3.3.4 (Jan 25, 2023)
* Added web preview image width restriction
### v3.3.3 (Jan 20, 2023) with Chat SDK **v4.2.4**
* Changed image compression option's default value to `true`
* Added processing for `SendbirdChat` initializer errors in `SendbirdUI` Initializer.
### v3.3.2 (Jan 5, 2023) with Chat SDK **v4.2.2**
* Added `enablesReaction` in `SBUParentMessageInfoView`
* Fixed `contentMode` issue while loading image
* Improved stability
### v3.3.1 (Dec 8, 2022)
* Added `isUserIdUsedForNickname` in `SBUGlobals`
* Improved image compression process
* Improved date formats for past year's format
* `SBUGroupChannelCell`
* `SBUMessageSearchResultCell`
* `SBUMessageDateView`
* `SBUParentMessageInfoView`
* Added formatted date getter functions in Date extension class
* `lastUpdatedTimeForChannelCell(baseTimestamp:)`
* `lastUpdatedTimeForMessageSearchResultCell(baseTimestamp:)`
* `messageCreatedTimeForParentInfo(baseTimestamp:)`
* `dateSeparatedTime(baseTimestamp:)`
* Added static properties in `SBUDateFormatSet`
* `yyyyMMdd`
* `MMMddhhmma`
* `MMMddyyyyhhmma`
* Channel
* `lastUpdatedPastYearFormat`
* Message * `dateSeparatorDateFormat` * `dateSeparatorPastYearFormat` * `dateSeparatorTimeFormat` * `dateSeparatorYesterdayFormat`
* MessageSearch
* `lastUpdatedDateFormat`
* `lastUpdatedPastYearFormat` * `lastUpdatedTimeFormat`
* MessageThread * `sentDateDateFormat` * `sentDatePastYearFormat` * `sentDateTimeFormat` * `sentDateYesterdayFormat`
### v3.3.0 (Nov 23, 2022) with Chat SDK **v4.1.6**
* Improved image caching and gif handling process
* Improved file data handling process
* File name and mime type will set based on original file if possible
* Added classes
* `SBUMessageThreadModule`
* `SBUMessageThreadModule.Header`, `SBUMessageThreadModuleHeaderDelegate`
* `SBUMessageThreadModule.List`, `SBUMessageThreadModuleListDelegate`, `SBUMessageThreadModuleListDataSource`
* `SBUMessageThreadModule.Input`, `SBUMessageThreadModuleInputDelegate`, `SBUMessageThreadModuleInputDataSource`
* `SBUThreadInfoView`, `SBUThreadInfoViewDelegate`
* `SBUParentMessageInfoReactionView`
* `SBUMessageThreadTitleView`, `SBUMessageThreadTitleViewDelegate`
* `SBUMessageThreadViewController`, `SBUMessageThreadViewControllerDelegate`
* `SBUParentMessageInfoView`, `SBUParentMessageInfoViewDelegate`
* `SBUMessageThreadViewModel`, `SBUMessageThreadViewModelDelegate`, `SBUMessageThreadViewModelDataSource`
* Added module `SBUModuleSet`
* `messageThreadModule`
* Added viewController in `SBUViewControllerSet`
* `MessageThreadViewController`
* Added properties
* `useQuotedMessage`, `useThreadInfo`, `joinedAt` in `SBUBaseMessageCellParams` class
* `quotedMessageCreatedAt`, `messageCreatedAt`, `joinedAt` in `SBUQuotedBaseMessageViewParams` class
* `useQuotedMessage`, `useThreadInfo`, `threadHStackView`, `threadInfoSpacing`, `threadInfoView` in `SBUContentBaseMessageCell` class
* `emptyViewTopConstraint` in `SBUEmptyView`
* `params` property in `SBUQuotedBaseMessageView` class
* `sendFileMessageCompletionHandler`, `sendUserMessageCompletionHandler`, `pendingMessageManager` in `SBUBaseChannelViewModel`
* Added functions
* `setupThreadInfoView()` function in `SBUContentBaseMessageCell` class
* `updatePlaceholderText()` function in `SBUMessageInputView` class
* `showMessageThread(channelURL:parentMessageId:parentMessageCreatedAt:startingPoint:)` function in `SBUBaseChannelViewController` class
* `updateTopAnchorConstraint(constant:)` function in `SBUEmptyView` class
* `SBUMessageThreadViewControllerDelegate` functions in `SBUGroupChannelViewController` class
* `groupChannelModuleDidTapThreadInfoView(_:)` delegate function in `SBUGroupChannelModuleListDelegate`
* `baseChannelModule(_:didTapTitleView:)` delegate function in `SBUBaseChannelModuleHeaderDelegate`
* `baseChannelModule(_:pendingMessageManagerForCell:)` datasource function in `SBUBaseChannelModuleListDataSource`
* `MessageThread()` class function in `SBUDateFormatSet`
* `needsToRemoveMargin()` function in `SBUUserMessageTextView` class
* `setupSendUserMessageCompletionHandlers()`, `setupSendFileMessageCompletionHandlers()` functions in `SBUOpenChannelViewModel` class
* Added parameters in function
* `forMessageThread` parameter in functions of `SBUPendingMessageManager` class
* `fileName` and `mimeType` parameters in `pickImageData` function of `SBUBaseChannelModule.Input` class
* `fileName` and `mimeType` parameters in `didTapSendImageData` function of `SBUSelectablePhotoViewDelegate`
* `imageSize` parameter in `configure` function of `SBUMessageProfileView` class
* `removeMargin` parameter in initialize function of `SBUUserMessageTextView` class
* `isThreadMessage` and `joinedAt` parameters in initialize function of `SBUBaseMessageCellParams`, `SBUUserMessageCellParams`, `SBUFileMessageCellParams`, and `SBUUnknownMessageCellParams` classes
* `joinedAt` parameter in initialize function of `SBUQuotedBaseMessageViewParams` class
* `joinedAt` parameter in `setupQuotedMessageView` function of `SBUContentBaseMessageCell` class
* `completionHandler` parameter in `loadChannel` function of `SBUBaseChannelViewModel` class
* Added theme properties
* in `SBUChannelTheme`
* `messageThreadTitleColor`
* `messageThreadTitleFont`
* `messageThreadTitleChannelNameColor`
* `messageThreadTitleChannelNameFont`
* in `SBUMessageCellTheme`
* `repliedCountTextColor`
* `repliedCountTextFont`
* `repliedUsersMoreIconBackgroundColor`
* `repliedUsersMoreIconTintColor`
* `parentInfoBackgroundColor`
* `parentInfoUserNameTextFont`
* `parentInfoUserNameTextColor`
* `parentInfoDateFont`
* `parentInfoDateTextColor`
* `parentInfoMoreButtonTintColor`
* `parentInfoSeparateBarColor`
* `parentInfoReplyCountTextColor`
* `parentInfoReplyCountTextFont`
* Added strings in `SBUStringSet`
* `Message_Replied_Users_Count: (Int, Bool)`
* `Message_Reply_Cannot_Found_Original`
* `Message_Unavailable`
* `MessageThread.Menu.replyInThread`
* `MessageThread.MessageInput.replyInThread`
* `MessageThread.MessageInput.replyToThread`
* `MessageThread.Header.title`
* Added icons in `SBUIconSet`
* `iconEmpty`
* `iconThread`
* Added `SBUReplyConfiguration`
* Added `thread` type in `SBUReplyType` enumeration
* Added `SBUThreadReplySelectType` enumeration
* Added `dismissHandler` in `SBUAlertView`, `SBUActionSheet`
* Modified `caption3` font weight `.medium` to `.bold`
* Renamed `usingQuotedMessage` to `useQuotedMessage` in `SBUBaseMessageCellParams`, `SBUContentBaseMessageCell`, and `SBUQuotedBaseMessageViewParams` classes
* Deprecated
* `SBUGlobals` class
Deprecated `replyType` property, use `reply.replyType` instead
* `SBUQuotedBaseMessageViewParams` class
* Deprecated `init(message:position:usingQuotedMessage:joinedAt:)` function, use `init(message:position:useQuotedMessage:joinedAt:)` instead
* Deprecated `init(messageId:messagePosition:quotedMessageNickname:replierNickname:text:usingQuotedMessage:quotedMessageCreatedAt:)` function, use `init(messageId:messagePosition:quotedMessageNickname:replierNickname:text:useQuotedMessage:quotedMessageCreatedAt:)` instead
* Deprecated `init(messageId:messagePosition:quotedMessageNickname:replierNickname:name:type:urlString:usingQuotedMessage:quotedMessageCreatedAt:)` function, use `init(messageId:messagePosition:quotedMessageNickname:replierNickname:name:type:urlString:useQuotedMessage:quotedMessageCreatedAt:)` instead
### v3.2.3 (Nov 15, 2022)
> **IMPORTANT** If you use Swift Package Manager, Please *reset package cache* before download the current version.
* Opened keyboard events: `keyboardWillShow(_:)` and `keyboardWillHide(_:)`
* Updated `navigationBar` shadowColor
* Modified the type of class that includes the `UIControl` type object to `NSObject`
* Improved logic to update the 'startPoint' in the channel
* Improved logic moving to the original message of a quoted message
* Improved channel initialization process.
* Improved stability
### v3.2.2 (Oct 28, 2022) with Chat SDK **v4.1.2**
* Fixed `scrollToBottom` button flickers when send a message
* Improved fileMessage related processing
* Added `messageCellConfiguration` in `SBUGlobals`
* Modified fonts and colors in `SBUTheme`
* Renamed `ChannelListTheme` to `SBUGroupChannelListTheme` (also `SBUTheme.groupChannelListTheme`)
* Renamed `ChannelCellTheme` to `SBUGroupChannelCellTheme` (also `SBUTheme.groupChannelCellTheme`)
* Renamed `SBUTheme.setChannelList(channelListTheme:channelCellTheme:)` to `SBUTheme.setGroupChannelList(channelListTheme:channelCellTheme:)`
* `SBUGroupChannelListTheme`
* `notificationOnTintColor`: light (`SBUColorSet.background50` -> `SBUColorSet.ondark01`)
* `SBUGroupChannelCellTheme`
* Added `fileIconBackgroundColor`, `fileIconTintColor`
* `SBUOpenChannelCellTheme`
* `participantCountFont`: light(`SBUFontSet.caption1` -> `SBUFontSet.caption2`)
* `SBUChannelTheme`
* Added `openChannelOGTitleColor`, `buttonBackgroundColor`, `buttonTitleColor`, `sideButtonIconColor`, `newMessageBadgeColor`
* `menuItemDisabledColor`: light(`SBUColorSet.ondark04` -> `SBUColorSet.onlight04`)
* `mentionLimitGuideTextFont`: (`SBUFontSet.body1` -> `SBUFontSet.body3`)
* `quotedMessageBackgroundColor`: light(removed alpha value 0.5)
* `SBUMessageCellTheme`
* Renamed `unknownMessageDescTextColor` to `unknownMessageDescLeftTextColor`
* Added `unknownMessageDescRightTextColor`
* `SBUChannelSettingsTheme`
* `userNameFont` (subtitle1 -> h1)
* `urlFont` (body3 -> body1)
* `cellDescriptionTextFont` (subtitle3 -> body3)
* `SBUCreateOpenChannelTheme`
* `textFieldFont` (body3 -> subtitle1)
* Please add the code below in `AppDelegate` or `SceneDelegate` to use the values before the change.
```
SBUTheme.groupChannelListTheme.notificationOnTintColor = SBUColorSet.background50
SBUTheme.openChannelCellTheme.participantCountFont = SBUFontSet.caption1
SBUTheme.channelTheme.menuItemDisabledColor = SBUColorSet.ondark04
SBUTheme.channelTheme.mentionLimitGuideTextFont = SBUFontSet.body1
SBUTheme.channelSettingsTheme.userNameFont = SBUFontSet.subtitle1
SBUTheme.channelSettingsTheme.urlFont = SBUFontSet.body3
SBUTheme.channelSettingsTheme.cellDescriptionTextFont = SBUFontSet.subtitle3
SBUTheme.createOpenChannelTheme.textFieldFont = SBUFontSet.body3
```
* Fixed bcsymbolmap issue for SPM
### v3.2.1 (Oct 13, 2022) with Chat SDK **v4.0.15**
* Added `contentMode` parameter to `setImage(withImage:backgroundColor:makeCircle:)` in `SBUCoverImageView`
* Modified SendbirdUIKit initializer to synchronously
* Deprecated functions in `SBUGroupChannelListViewModel`
* `updateChannels(_:needReload:)`
* `upsertChannels(_:needReload:)`
* `deleteChannels(_:needReload:)`
* `sortChannelList(needReload:)`
* Improved stability
### v3.2.0 (Sep 21, 2022) with Chat SDK **v4.0.13**
> **IMPORTANT** If you use Swift Package Manager, Please *reset package cache* before download the current version.
* Support **Open channel list** features
* Added classes
* `SBUOpenChannelListViewController`
* `SBUOpenChannelCell`
* `SBUOpenChannelListViewModel`
* `SBUOpenChannelListModule`, `SBUOpenChannelListModule.Header` and `SBUOpenChannelListModule.List`
* Added `OpenChannelListViewController` in `SBUViewControllerSet`
* Added `openChannelListModule` in `SBUModuleSet`
* Added `openChannelListTheme` and `openChannelCellTheme` in `SBUTheme`
* Added `isPullToRefreshEnabled` property in `SBUBaseChannelListModule.List`
* Added `pullToRefresh(_:)` function in `SBUBaseChannelListModule.List`
* Added `baseChannelListModuleDidSelectRefresh(_:)` protocol in `SBUBaseChannelListModuleListDelegate`
* Added `iconChannels` in `SBUIconSetType`
* Supported openChannelList feature on `moveToChannel` function in `SendbirdUI`
* Support **Create open channel** features
* Added classes
* `SBUCreateOpenChannelViewController`
* `SBUCreateOpenChannelViewModel`
* `SBUCreateOpenChannelModule`, `SBUCreateOpenChannelModule.Header` and `SBUCreateOpenChannelModule.ProfileInput`
* Added `CreateOpenChannelViewController` in `SBUViewControllerSet`
* Added `createOpenChannelModule` in `SBUModuleSet`
* Added `createOpenChannelTheme` in `SBUTheme`
* Added `openChannelParamsCreateBuilder` in `SBUGlobalCustomParams`
* Added create open channel related Strings in `SBUStringSet`
* `CreateOpenChannel_Create`, `CreateOpenChannel_Header_Title`, `CreateOpenChannel_ProfileInput_Placeholder`
* Added `user` object in `SBUUser` for accessing ChatSDK's user
* Added `openChannelModule(_:didTapMediaView:)` in `OpenChannelModuleMediaDelegate` method.
* Added `UITextField` related classes
* `UITextField+SBUIKit`
* `SBUUnderLineTextField`
* Added `tag` parameter in `SBUCommonItem`
* Added `delete` case in `MediaResourceType`
* Added `SBUBaseChannelListViewModel`
* Added `SBUBaseChannelListModule`, `SBUBaseChannelListModule.Header`, `SBUBaseChannelListModule.List` classes
* Renamed `SBUGroupChannelListModuleListDelegate` functions
* `channelListModule(_:didSelectRowAt:)` to `groupChannelListModule(_:didSelectRowAt:)`
* `channelListModule(_:didDetectPreloadingPosition:)` to `groupChannelListModule(_:didDetectPreloadingPosition:)`
* `channelListModule(_:didSelectLeave:)` to `groupChannelListModule(_:didSelectLeave:)`
* `channelListModule(_:didChangePushTriggerOption:channel:)` to `groupChannelListModule(_:didChangePushTriggerOption:channel:)`
* `channelListModuleDidSelectRetry(_:)` to `groupChannelListModuleDidSelectRetry(_:)`
* Renamed `SBUGroupChannelListModuleListDataSource` function
* `channelListModule(_:channelsInTableView:)` to `groupChannelListModule(_:channelsInTableView:)`
* Renamed `channelListModule` in `SBUModuleSet` to `groupChannelListModule`
* Renmaed `defaultLeftButton`, `defaultRightButton` to `defaultLeftBarButton`, `defaultRightBarButton`
* Replaced `setPlaceholderImage(iconSize:)` to `setPlaceholder(type:iconSize:)` in `SBUCoverImageView`
* Added `setPlaceholder(type:iconSize:)`
* Deprecated `setPlaceholderImage(iconSize:)`
### v3.1.3 (Sep 15, 2022) with Chat SDK **v4.0.12**
* Improved stability
### v3.1.2 (Aug 31, 2022) with Chat SDK **v4.0.9**
* Added message menu interfaces and events to `BaseChannelModuleList`
* List
* `showMessageMenu(on:forRowAt:)`
* `showFailedMessageMenu(on:)`
* `showDeleteMessageAlert(on:oneTimeTheme:)`
* `showMessageMenuSheet(for:cell:)`
* `showMessageContextMenu(for:cell:forRowAt:)`
* `createMessageMenuItems(for:) -> [SBUMenuItem]`
* `createCopyMenuItem(for:) -> SBUMenuItem`
* `createDeleteMenuItem(for:) -> SBUMenuItem`
* `createEditMenuItem(for:) -> SBUMenuItem`
* `createSaveMenuItem(for:) -> SBUMenuItem`
* `createReplyMenuItem(for:) -> SBUMenuItem`
* Delegate
* `baseChannelModule(_:didTapRetryFailedMessage:)`
* `baseChannelModule(_:didTapDeleteFailedMessage:)`
* `baseChannelModule(_:didTapCopyMessage:)`
* `baseChannelModule(_:didTapDeleteMessage:)`
* `baseChannelModule(_:didTapEditMessage:)`
* `baseChannelModule(_:didTapSaveMessage:)`
* `baseChannelModule(_:didTapReplyMessage:)`
* `baseChannelModule(_:didReactToMessage:withEmoji:selected:)`
* `baseChannelModule(_:didTapMoreEmojisOnMessage:)`
* `baseChannelModule(_:didDismissMenuForCell:)`
* DataSource
* `baseChannelModule(_:parentViewControllerDisplayMenuItems:) -> UIViewController?`
* Improved stability
* Improved logic in `SBUUserListViewController`
* Fixed typo in `SBUViewControllerSet`
### v3.1.1 (Aug 17, 2022)
* Improved stability
### v3.1.0 (Aug 3, 2022) with Chat SDK **v4.0.8**
* Support moderation in OpenChannel
* `SBUModuleSet`
* Deprecated `moderationsModule` property, use `groupModerationsModule` or `openModerationsModule` instead
* Deprecated `registerOperatorModule` property, use `groupRegisterOperatorModule` or `openRegisterOperatorModule` instead
* Deprecated `userListModule` property, use `groupUserListModule` or `openUserListModule` instead
* Deprecated `init(channelListModule:baseChannelModule:groupChannelModule:openChannelModule:inviteUserModule:registerOperatorModule:userListModule:groupChannelPushSettingsModule:createChannelModule:groupChannelSettingsModule:openChannelSettingsModule:moderationsModule:messageSearchModule:)` function, use `init(channelListModule:baseChannelModule:groupChannelModule:openChannelModule:inviteUserModule:groupRegisterOperatorModule:openRegisterOperatorModule:groupUserListModule:openUserListModule:groupChannelPushSettingsModule:createChannelModule:groupChannelSettingsModule:openChannelSettingsModule:groupModerationsModule:openModerationsModule:messageSearchModule:)` instead
* `SBUViewControllerSet`
* Renmaed `groupChannelPushSettingsViewController` to `GroupChannelPushSettingsViewController`
* Deprecated `RegisterOperatorViewController`, use `GroupChannelRegisterOperatorViewController` or `OpenChannelRegisterOperatorViewController` instead
* Deprecated `UserListViewController`, use `GroupUserListViewController` or `OpenUserListViewController` instead
* Deprecated `ModerationsViewController`, use `GroupModerationsViewController` or `OpenModerationsViewController` instead
* `SBUEnums`
* Added `allTypes(channel:)` function in `ModerationItemType` enum
* Added `noMutedParticipants` case in `EmptyViewType`
* `SBUModerationsViewController`
* Deprecated `init(channelURL:)`, use `init(channelURL:channelType:)` instead
* Deprecated `createViewModel(channel:channelURL:)`, use `createViewModel(channel:)` or `createViewModel(channelURL:channelType:)` instead
* Added functions in `SBUOpenChannelSettingsViewController` class
* `showModerationList()`
* `showDeleteChannelAlert()`
* Deprecated function in `SBUModerationsViewModel` class
* `init(channe:channelURL:delegate:)` -> Use `init(channel:delegate:)` or `init(channelURL:channelType:delegate:)` instead
* Added `channelType` parameter in configuration function of `SBUUserListModule.Header`
* Added `channelType` parameter in initialization function of `SBURegisterOperatorViewController`
* Added `participantListQuery` parameter in initialization function of `SBUBaseSelectUserViewModel`
* Added `mutedParticipantListQuery` parameter in initialization function of `SBUUserListViewModel`
* Added `sbu_updateOperatorStatus(channel:)`
* Improved list item customization of Group/OpenChannelSettings
* Added `SBUChannelSettingItem`
* Added `SBUBaseChannelSettingCell`, `SBUGroupChannelSettingCell` and `SBUOpenChannelSettingCell`
* Added did select related delegates in `SBUGroupChannelSettingsModule.List` and `SBUOpenChannelSettingsModule.List`
* Modified `configureCell` of `SBUGroupChannelSettingsModule.List` and `SBUOpenChannelSettingsModule.List` to use `SBUChannelSettingItem`
* Added moderations menu in OpenChannelSettings
* Added `itemDeleteTextColor` property in `SBUChannelSettingsTheme`
* Added strings
* `ChannelSettings_Delete_Question_Mark`
* `ChannelSettings_Delete_Description`
* Added ChannelSetting item's notification strings
* `ChannelSettings_Notifications_On`
* `ChannelSettings_Notifications_Off`
* `ChannelSettings_Notifications_Mentiones_Only`
* Modified `loadAllEmojis(completionHandler:)` function access level to `public` in `SBUEmojiManager` class
* Improved stability
### v3.0.0 (Jul 12, 2022) with Chat SDK **v4.0.5**
* UIKit v3.0.0 officially version
* Support `modules` and `components` in the UIKit
* See more details and breaking changes. [[details](/changelogs/BREAKING_CHANGES_V3.md)]
* See the Migration Guide for Converting V2 to V3. [[details](/changelogs/MIGRATION_GUIDE_V3.md)]
---
* Applied `SBUSelectablePhotoViewDelegate` and `PHPickerViewControllerDelegate` to `SBUBaseChannelSettingViewController`
* Added `showCamera()`, `showPhotoLibraryPicker()`, `showLimitedPhotoLibraryPicker()` and `showPermissionAlert()` to `SBUBaseChannelSettingViewController`
* Added `init(mediaType:)` to `SBUSelectablePhotoViewController`
* Added `startHandler` to `SendbirdUI` initializer
* Renamed to `initialize(applicationId:startHandler:migrationHandler:completionHandler:)`
* Set `setMemberInfoInMessage` option to `true`
* Added muted mode feature in OpenChannel
* Fixed quoted message long name layout issue
* Modified access level of message cell interfaces
* Added `messageInputView(_:willChangeMode:message:mentionManager:)` to `SBUGroupChannelModule.Input`
* Changed `SBUMessageInputView option` to read-only
* Renamed `SBUStringSet`
* `ChannelSettings_Banned_Members` to `ChannelSettings_Banned_Users`
* `Empty_No_Banned_Members` to `Empty_No_Banned_Users`
* `InviteChannel_Header_Select_Members` to `InviteChannel_Header_Select_Users`
* `InviteChannel_Add` to `InviteChannel_Register`
* `MemberList_Me` to `UserList_Me`
* `MemberList_Ban` to `UserList_Ban`
* `MemberList_Unban` to `UserList_Unban`
* `MemberList_Mute` to `UserList_Mute`
* `MemberList_Unmute` to `UserList_Unmute`
* `MemberList_Dismiss_Operator` to `UserList_Unregister_Operator`
* `MemberList_Promote_Operator` to `UserList_Register_Operator`
* `MemberList_Title_Members` to `UserList_Title_Members`
* `MemberList_Title_Operators` to `UserList_Title_Operators`
* `MemberList_Title_Muted_Members` to `UserList_Title_Muted_Members`
* `MemberList_Title_Banned_Members` to `UserList_Title_Banned_Users`
* `MemberList_Title_Participants` to `UserList_Title_Participants`
* `UserProfile_Promote` to `UserProfile_Register`
* `UserProfile_Dismiss` to `UserProfile_Unregister`
* Added new `SBUStringSet`
* `UserList_Title_Muted_Participants`
* `Empty_No_Muted_Participants`
* Removed unused `SBUStringSet`
* `MemberList_Header_Title`
* Renamed `SBUEnums`
* `ChannelMemberListType` to `ChannelUserListType`
* `channelMembers`, `mutedMembers`, `bannedMembers` to `members`, `muted`, `banned` in `ChannelMemberListType`
* `bannedMembers` to `bannedUsers` in `ModerationItemType`
* `channelMembers`, `inviteUser`, `mutedMembers`, `bannedMembers` to `members`, `invite`, `muted`, `banned` in `UserListType`
* `noBannedMembers` to `noBannedUsers` in `EmptyViewType`
* Renamed `SBUMemberListViewController` to `SBUUserListViewController`
* Renamed properties, functions in `SBUMemberListViewController`
* `memberList`, `memberListType` to `userList`, `userListType`
* `init(channel:memberListType:)` to `init(channel:userListType:)`
* `init(channel:members:type:)` to `init(channel:users:userListType:)`
* `init(channelURL:channelType:members:memberListType:)` to `init(channelURL:channelType:users:userListType:)`
### v3.0.0-beta.4 (Jun 21, 2022)
* Modified some view to be able to change its date format
* Opened `SBUMessageDateView`
* Opened `SBUChannelCell`
* Added `SBUMessageDateView.dateFormat`
* Added `SBUOpenChannelContentBaseMessageCell.dateFormat`
* Added `SBUMessageSearchResultCell.dateFormat`
* Added parameters to `SBUChannelCell buildLastUpdatedDate()`: `dateFormat`, `timeFormat`
* Added public classes and interfaces regarding message cells
* Added open/public interfaces in message cells.
* Added `SBULinkClickableTextView`
* Added `SBUMessageWebView` , `SBUMessageWebViewModel` and `SBUOpenChannelMessageWebView`
* Added `SBUUserMessageTextViewDelegate` , `SBUUserMessageTextViewModel` and `SBUUserMessageTextView`
* Added `SBUUserNameView`
* Added `SBUFileViewerDelegate` and `SBUFileViewer`
* Added `QuotedFileCommonContentView` and `QuotedFileImageContentView`
* Added `SBUMessageReactionView`
* Added `SBUDateFormatSet`
* Added `Date.sbu_toString(dateFormat:localizedFormat)`
* Changed `Date.lastUpdatedTime` function in `Data+SBUIKit` access level to public
* Fixed not called completion handler on unregister pushToken
### v3.0.0-beta.3 (Jun 2, 2022)
* Added channel push settings feature.
* Added `SBUGroupChannelPushSettingsViewController` class.
* Added `SBUGroupChannelPushSettingsModule`, `SBUGroupChannelPushSettingsModule.Header` and
`SBUGroupChannelPushSettingsModule.List` classes.
* Added `SBUGroupChannelPushSettingsViewModel` class.
* Added `ChannelPushSettings_Header_Title`, `ChannelPushSettings_Notification_Title`, `ChannelPushSettings_Item_All`, `ChannelPushSettings_Item_Mentions_Only`, `ChannelPushSettings_Notification_Description`.
* Added `keyword` to `SBUHighlightInfo`
* Modify parameter `highlight` to `highlightKeyword` in `SBUCommonContentView`
* Modified searched message cell display method (highlight -> animation)
* Added mentioned user nickname highlighting.
* Added show mini profile function when touch mentioned nickname.
* Added initialize function in `SBUCreateChannelVC`.
* Renamed `SBUStringSet.Channel_Header_Typing` to `SBUStringSet.Channel_Typing`
* Updated `SBUTheme.channelCell`
* Added `succeededStateColor`
* Added `deliveryReceiptStateColor`
* Added `readReceiptStateColor`
* Added `leftBarButton` to `SBUSelectablePhotoViewController`
* Added `leftBarButton`
* Added `didTapLeftBarButton()`
* Improved stability.
### v3.0.0-beta.2 (Apr 29, 2022) with Chat SDK v3.1.13
* Added User Mention Features
* Added Mention feature to `SBUGlobals`
* `userMentionConfig`
* `isUserMentionEnabled`
* Added `Mention` to `SBUStringSet`
* `Mention.Trigger_Key`
* `Mention.Limit_Guide`
* Added `SBUUserMentionConfiguration`
* Added `SBUBaseChannelViewModel` methods
* `sendUserMessage(text:mentionedMessageTemplate:mentionedUserIds:parentMessage:)`
* `updateUserMessage(message:text:mentionedMessageTemplate:mentionedUserIds:)`
* Added properties to `SBUMessageInputView`
* `defaultAttributes`, `mentionedAttributes`
* Added `SBUMessageInputViewDelegate` methods
* `messageInputView(_:shouldChangeTextIn:replacementText:) -> Bool`
* `messageInputView(_:shouldInteractWith:in:interaction:) -> Bool`
* `messageInputView(_:didChangeSelection:)`
* Added `SBUGroupChannelModuleInputDelegate` methods
* `groupChannelModule(_:didTapSend:mentionedMessageTemplate:mentionedUserIds:parentMessage:)`
* `groupChannelModule(_:didTapEdit:mentionedMessageTemplate:mentionedUserIds:)`
* `groupChannelModule(_:shouldLoadSuggestedMentions:)`
* Added `SBUMentionManager`, `SBUMentionManagerDelegate` and
* `mentionManager(_didChangeSuggestedMention:filteredText:isTriggered:)`, `mentionManager(_:didInsertMentionsTo:)``SBUMentionManagerDataSource`
* Added `SBUSuggestedMentionList`, `SBSBUSuggestedMentionListDelegate`
* `Mention_Limit_Guide` to `SBUStringSet`
* `isMentionGuideEnabled`
* `SBUMentionLimitGuideCell`
* `suggestedUserList(_:didSelectUser:)`
* Updated `SBUGroupChannelCell`
* `unreadMentionLabel`
* Updated `SBUGroupChannelModule.Input`
* `mentionManager`
* `suggestedMentionList`
* `setupMentionManager`, `updateSuggestedMentionList(with:)`, `presentSuggestedMentionList()`, `dismissSuggestedMentionList()`
* Updated `SBUUserCell` to support `SBUSuggestedMentionList`
* `UserListType.suggestedMention`
* `nicknameLabel` and `userIdLabel`
* Renamed `userNickname` to `nicknameLabel`
* Renamed `userNameTextColor` and `userNameFont` to `nicknameTextColor` and `nicknameFont`
* Updated `SBUTheme` for the mention features
* `mentionTextFont`, `mentionLeftTextColor`, `mentionRightTextColor`, `mentionLeftTextBackgroundColor`, `mentionRightTextBackgroundColor` for message cell.
* `mentionTextFont`, `mentionTextColor`, `mentionTextBackgroundColor` for message input.
* `mentionLimitGuideTextFont`, `mentionLimitGuideTextColor`, `separatorColor` for channel.
* `unreadMentionTextFont`, `unreadMentionTextColor` for channel cell.
* `nicknameTextFont`, `nicknameTextColor`, `nonameTextColor`, `userIdTextFont` and `userIdTextColor`
### v3.0.0-beta (Apr 12, 2022)
* Applied modularization.
* The structure has been changed to use `Module` for functions related to UI, and to use `ViewModel` for functions related to data processing.
* **Please refer to the [Breaking changes v3](/changelogs/BREAKING_CHANGES_V3.md).**
---
### v2.x
* **Please refer to the [Changelog v2](/changelogs/CHANGELOG_V2.md).**