Skip to content

Releases: sendbird/sendbird-chat-sdk-javascript

v4.5.0

03 Mar 08:53
Compare
Choose a tag to compare

v4.5.0 (Mar 3, 2023)

Features

Polls in Open Channel

Polls is now supported in both Open Channels and Group Channels!

Specification

  • Added Poll.serialize()
  • Added PollModule.buildPollFromSerializedData()
  • Added onPollUpdated, onPollVoted, and onPollDeleted in OpenChannelHandlerParams
  • Moved following methods from GroupChannel to BaseChannel:
    • updatePoll()
    • deletePoll()
    • closePoll()
    • addPollOption()
    • updatePollOption()
    • deletePollOption()
    • votePoll()
    • getPollChangeLogsSinceTimestamp()
    • getPollChangeLogsSinceToken()
    • createPollListQuery()
    • createPollVoterListQuery()

Improvements

  • Fixed a bug where GroupChannelFilter using nicknames (nicknameContainsFilter, nicknameExactMatchFilter, and nicknameExactMatchFilter) includes current user's nickname when searching from locally cached group channels
  • Fixed a bug where BaseMessage.applyThreadInfoUpdateEvent() always returning false
  • Fixed a bug where BaseChannel’s createMessageMetaArrayKeys, deleteMessageMetaArrayKeys, addMessageMetaArrayValues, and removeMessageMetaArrayValues returning unexpected result when file message is given

v4.4.0

24 Feb 08:06
Compare
Choose a tag to compare

v4.4.0 (Feb 24, 2023)

Features

Disconnect Websocket only

When you call sb.disconnect, it disconnects the WebSocket and clears local cache. You can think of it as logging out.

In some cases, you need to only disconnect the WebSocket. You can now do it by calling sb.disconnectWebSocket.
It only disconnects the WebSocket and preserves the local cache.

sb.disconnectWebSocket();

To connect again after disconnecting with disconnectWebSocket(),
use sb.connect().

const user = await sb.connect(userId: userId); 

Added appStateToggleEnabled param

Added SendbirdChatParams.appStateToggleEnabled which can be used to optionally disable internal control of Websocket connection on document.visibilityState change

Improvements

  • Fixed a bug where changed groupChannel.members was not updated while disconnected

v4.3.1

15 Feb 07:57
Compare
Choose a tag to compare

v4.3.1 (Feb 15, 2023)

Improvements

  • Fixed a bug where poll.votedOptionIds is not updated upon calling poll.applyPollUpdateEvent(pollUpdateEvent)
  • Fixed a bug where auto-resending file message fails occasionally
  • MessageCollectionEventHandler.onMessagesDeleted
    • Added a new parameter messages: BaseMessage[]
    • Deprecated messageIds: number[]
    • onMessagesDeleted callback now returns either unsent or sent messages through a new parameter messages: BaseMessage[], which you can use to remove pending messages
  • Fixed a bug where MessageRequestHandler.onPending is called when pending message is marked for auto-resend
  • Fixed a bug where MessageCollection.hasNext remains true after MessageCollection.initialize() is called with startingPoint as now
  • Fixed a bug where SDK calls MessageCollectionEventHandler when handler has not been set
  • Fixed a bug where MessageCollectionEventHandler.onMessagesUpdated is called on update of GroupChannels getUnreadMemberCount and getUndeliveredMemberCount
  • Deprecated EVENT_MESSAGE_READ and EVENT_MESSAGE_DELIVERED in MessageEventSource
  • Exported BaseMessageCreateParams and BaseMessageUpdateParams
  • Improved stability

v4.3.0

01 Feb 10:18
Compare
Choose a tag to compare

Changelog

v4.3.0 (Feb 01, 2023)

Features

Participant class in Open Channel

Participant is a new interface for User who joined Open Channel. It's optimized for scalability and contains much lighter information about the User than a Member in Group Channel.
Now clients can implement Open Channels easier in SDK with more built-in capabilities. You can compare how Member, Participant, and User are different here

  • Participant holds essential information about the participant like below. They contain their muted status (is_muted) on top of basic User information
class Participant extends User {
  readonly isMuted: boolean;
}
  • ParticipantListQuery.next() now returns Promise<Participant[]>
  • For backward compatibility, the return type remains as Promise<User[]>, but the return value can be casted into Promise<Participant[]>

v4.2.9

01 Feb 08:36
Compare
Choose a tag to compare

Changelog

v4.2.9 (Feb 01, 2023)

Features

  • Added SendbirdChatOptions.sessionTokenRefreshTimeout. You can now set longer timeout value for session token expire. (Default: 60s, Maximum: 1800s). This means that Sendbird SDK will wait longer for your new session token, making it easier for you to reconnect to our service.

Improvements

  • Improved stability

v4.2.8

27 Jan 08:52
Compare
Choose a tag to compare

v4.2.8 (Jan 27, 2023)

Improvements

  • Fixed a bug where groupChannelHandler.onChannelChanged() is not called on pin or unpin message event
  • Parameter params in getMessageChangeLogsSinceTimestamp(), and getMessageChangeLogsSinceToken() is now made optional

v4.2.7

23 Jan 15:17
Compare
Choose a tag to compare

v4.2.7 (Jan 24, 2023)

Improvements

  • Fixed a bug where MessageCollection.hasPrevious is false when there exists old messages

v4.2.6

20 Jan 03:25
Compare
Choose a tag to compare

v4.2.6 (Jan 20, 2023)

Improvements

  • Fixed a bug of where onChannelsAdded event is not fired upon creating a first channel in GroupChannelCollection when localCacheEnabled is set to false
  • Improved stability

v4.2.5

17 Jan 06:26
Compare
Choose a tag to compare

v4.2.5 (Jan 17, 2023)

Improvements

  • Fixed a bug in MessageCollection onMessagesUpdated event triggered for old messages
  • Fixed a bug where calling connect while offline did not reconnect even when the app came online
  • Improved stability

v4.2.4

11 Jan 05:16
Compare
Choose a tag to compare

v4.2.4 (Jan 11, 2023)

Improvements

  • Fixed a bug in MessageCollection where old messages are being added to the view when app reconnects
  • Added argument validation in GroupChannel.pinMessage() and GroupChannel.unpinMessage()
  • Fixed a bug where GroupChannelHandler.onChannelChanged() and GroupChannelHandler.onPinnedMessageUpdated() events are not called when channel.lastPinnedMessage is updated
  • Improved stability