diff --git a/CHANGELOG.md b/CHANGELOG.md index a8199ffe8..6c083963a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Changelog - v3 +## [v3.17.0] (July 31 2025) +### Features +- Added `mark as unread` functionality for messages in Group Channel + - Added `enableMarkAsUnread` global option + - How to use? + ```tsx + + ``` + +### Fixes +- Fixed a bug Where Multiple Chat Windows cause unexpected behavior + +### Chore +- Updated `@sendbird/chat` version to `^4.18.0` +- Updated `@sendbird/uikit-tools` dependency version to `^0.0.10` +- Updated `@sendbird/react-uikit-message-template-view` dependency version to `^0.0.10` + ## [v3.16.12] (July 22 2025) ### Fixes: - Fixed a bug that caused a runtime exception when leaving or deleting a channel diff --git a/package.json b/package.json index 2f2fe490d..3c8779468 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@sendbird/uikit-react", - "version": "3.16.12", + "version": "3.17.0", "description": "Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.", "keywords": [ "sendbird", @@ -70,7 +70,7 @@ "react-dom": "^16.8.6 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "dependencies": { - "@sendbird/chat": "^4.19.2", + "@sendbird/chat": "^4.18.0", "@sendbird/react-uikit-message-template-view": "^0.0.10", "@sendbird/uikit-tools": "^0.0.10", "css-vars-ponyfill": "^2.3.2", diff --git a/src/modules/GroupChannel/components/MessageList/index.tsx b/src/modules/GroupChannel/components/MessageList/index.tsx index c29ef07bf..a55a13f60 100644 --- a/src/modules/GroupChannel/components/MessageList/index.tsx +++ b/src/modules/GroupChannel/components/MessageList/index.tsx @@ -110,14 +110,11 @@ export const MessageList = (props: GroupChannelMessageListProps) => { // Find the first unread message const firstUnreadMessage = useMemo(() => { - if (!enableMarkAsUnread || !isInitializedRef.current || messages.length === 0) { + if (!enableMarkAsUnread || !isInitializedRef.current || messages.length === 0 || readState === 'read') { return undefined; } - if (readState === 'read') { - separatorMessageRef.current = undefined; - isUnreadMessageExistInChannel.current = false; - } else if (readState === 'unread') { + if (readState === 'unread') { separatorMessageRef.current = undefined; isUnreadMessageExistInChannel.current = true; } @@ -224,6 +221,7 @@ export const MessageList = (props: GroupChannelMessageListProps) => { if (newMessages.length > 0) { resetNewMessages(); } + isUnreadMessageExistInChannel.current = false; markAsReadAll(currentChannel); }} /> diff --git a/yarn.lock b/yarn.lock index 0b83b9053..5c05c4268 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2747,9 +2747,9 @@ __metadata: languageName: node linkType: hard -"@sendbird/chat@npm:^4.19.2": - version: 4.19.4 - resolution: "@sendbird/chat@npm:4.19.4" +"@sendbird/chat@npm:^4.18.0": + version: 4.19.5 + resolution: "@sendbird/chat@npm:4.19.5" peerDependencies: "@react-native-async-storage/async-storage": ^1.17.6 react-native-mmkv: ">=2.0.0" @@ -2758,7 +2758,7 @@ __metadata: optional: true react-native-mmkv: optional: true - checksum: 3b7c5aa799e1f6794a4c035699a578e346dc437b42368152032f212a1568b8784356953bc2e73e77b990abdc33e27b6e9eb57114f36b2a0164dc0914558d3657 + checksum: b67d3b9413ae1b61c4261ef540f7b31b21fec925950a2805ac2cb0eac2c981ec001f8d066bce8fc294d6a104a4ad2a0481c1e907e59fa9bcc8a0081411b729c6 languageName: node linkType: hard @@ -2803,7 +2803,7 @@ __metadata: "@rollup/plugin-node-resolve": ^15.2.3 "@rollup/plugin-replace": ^5.0.4 "@rollup/plugin-typescript": ^11.1.5 - "@sendbird/chat": ^4.19.2 + "@sendbird/chat": ^4.18.0 "@sendbird/react-uikit-message-template-view": ^0.0.10 "@sendbird/uikit-tools": ^0.0.10 "@storybook/addon-essentials": ^8.5.0