Skip to content

Commit 87212e6

Browse files
committed
changelog update
1 parent 76bbfa9 commit 87212e6

File tree

2 files changed

+352
-352
lines changed

2 files changed

+352
-352
lines changed

CHANGELOG.md

Lines changed: 0 additions & 352 deletions
Original file line numberDiff line numberDiff line change
@@ -1,352 +0,0 @@
1-
# What's new in version 4?
2-
3-
## Overall
4-
5-
- No callback. Use `Promise`.
6-
7-
```ts
8-
// v3
9-
sb.connect(userId, (err, user) => {});
10-
11-
// v4
12-
const user = await sb.connect(userId);
13-
```
14-
15-
- `Treeshaking` applied. The classes, interfaces, enums, types come to be `import`-able with treeshaking. See [SDK reference](https://sendbird.com/docs/chat/v4/javascript/ref/index.html) page for detailed list of exports.
16-
17-
```ts
18-
// v3
19-
sb.GroupChannel
20-
sb.LogLevel
21-
...
22-
23-
// v4
24-
import { LogLevel } from '@sendbird/chat';
25-
import { GroupChannel } from '@sendbird/groupChannel';
26-
...
27-
```
28-
29-
- `static` object relocation.
30-
31-
|`v3`|`v4`|
32-
|-|-|
33-
|`sb.GroupChannel`|`sb.groupChannel`*|
34-
|`sb.OpenChannel`|`sb.openChannel`**|
35-
|`sb.BaseMessage`|`sb.message`|
36-
37-
> \* Should declare `GroupChannelModule` in `SendbirdChat.init()`.
38-
> ** Should declare `OpenChannelModule` in `SendbirdChat.init()`.
39-
40-
## New features
41-
42-
- Added `onConnected()`, `onDisconnected()` to `ConnectionHandler`.
43-
44-
## Changes
45-
46-
- Changed initialization interface.
47-
48-
```ts
49-
// v3
50-
import SendBird from 'sendbird';
51-
import AsyncStorage from '@react-native-async-storage/async-storage';
52-
53-
const sb = new SendBird({
54-
appId: APP_ID,
55-
localCacheEnabled: true,
56-
});
57-
sb.setLogLevel(sb.LogLevel.WARN);
58-
sb.appVersion = APP_VERSION;
59-
sb.Options.useMemberAsMessageSender = true;
60-
61-
// only for React Native
62-
sb.useAsyncStorageAsDatabase(AsyncStorage);
63-
64-
// v4
65-
import SendbirdChat, {
66-
SendbirdChatOptions,
67-
Loglevel
68-
} from '@sendbird/chat';
69-
import AsyncStorage from '@react-native-async-storage/async-storage';
70-
71-
const sb = SendbirdChat.init({
72-
appId: APP_ID,
73-
appVersion: APP_VERSION,
74-
modules,
75-
options: new SendbirdChatOptions({
76-
useMemberAsMessageSender: true,
77-
}),
78-
logLevel: LogLevel.WARN,
79-
localCacheEnabled: true,
80-
useAsyncStorageStore: AsyncStorage, // only for React Native
81-
});
82-
```
83-
84-
- Replaced `ChannelHandler` to `GroupChannelHandler` and `OpenChannelHandler`
85-
86-
```ts
87-
// v3
88-
const channelHandler = new sb.ChannelHandler();
89-
channelHandler.onChannelChanged = (channel) => {
90-
...
91-
};
92-
sb.addChannelHandler(EVENT_ID, channelHandler);
93-
sb.removeChannelHandler(EVENT_ID);
94-
95-
// v4
96-
import { GroupChannelHandler } from '@sendbird/chat/groupChannel';
97-
98-
const channelHandler = new GroupChannelHandler({
99-
onChannelChanged: (channel) => {
100-
...
101-
},
102-
});
103-
sb.groupChannel.addGroupChannelHandler(EVENT_ID, channelHandler);
104-
sb.groupChannel.removeGroupChannelHandler(EVENT_ID);
105-
```
106-
107-
- No builder pattern for `Collection`s.
108-
109-
```ts
110-
// v3
111-
const groupChannelFilter = new sb.GroupChannelFilter();
112-
const gc = sb.GroupChannel.createGroupChannelCollection()
113-
.setOrder(sb.GroupChannelCollection.GroupChannelOrder.LATEST_LAST_MESSAGE)
114-
.setFilter(groupChannelFilter)
115-
.build();
116-
117-
const messageFilter = new sb.MessageFilter();
118-
const mc = channel.createMessageCollection()
119-
.setFilter(messageFilter)
120-
.setStartingPoint(startingPoint)
121-
.build();
122-
123-
// v4
124-
import {
125-
GroupChannelFilter,
126-
GroupChannelListOrder
127-
} from '@sendbird/chat/groupChannel';
128-
import { MessageFilter } from '@sendbird/chat/message';
129-
130-
const groupChannelFilter = new GroupChannelFilter();
131-
const gc = sb.groupChannel.createGroupChannelCollection({
132-
filter: groupChannelFilter,
133-
order: GroupChannelListOrder.LATEST_LAST_MESSAGE,
134-
});
135-
136-
const messageFilter = new MessageFilter();
137-
const mc = channel.createMessageCollection({
138-
filter: messageFilter,
139-
startingPoint: Date.now(),
140-
});
141-
```
142-
143-
- Changed `sb.updateCurrentUserInfo()` to take `UserUpdateParams` as a parameter.
144-
145-
```ts
146-
// v3
147-
sb.updateCurrentUserInfo(NICKNAME, PROFILE_URL);
148-
sb.updateCurrentUserInfoWithProfileImage(NICKNAME, PROFILE_IMAGE);
149-
150-
// v4
151-
import { UserUpdateParams } from '@sendbird/chat';
152-
153-
const params = new UserUpdateParams({
154-
nickname: NICKNAME,
155-
profileUrl: PROFILE_URL,
156-
// or you can put a file as `profileImage` to upload the profile
157-
});
158-
sb.updateCurrentUserInfo(params);
159-
// no sb.updateCurrentUserInfoWithProfileImage()
160-
```
161-
162-
- Changed `sb.getUnreadItemCount()` to take `UnreadItemCountParams` as a parameter.
163-
164-
```ts
165-
// v3
166-
sb.getUnreadItemCount(KEYS);
167-
168-
// v4
169-
const params = new UnreadItemCountParams({
170-
keys: KEYS,
171-
});
172-
sb.getUnreadItemCount(params);
173-
```
174-
175-
- Changed `sb.getTotalUnreadMessageCount()` to take `TotalUnreadMessageCountParams` as a parameter.
176-
177-
```ts
178-
// v3
179-
sb.getTotalUnreadMessageCount(CHANNEL_CUSTOM_TYPES);
180-
// no super channel filter support
181-
182-
// v4
183-
const params = new TotalUnreadMessageCountParams({
184-
channelCustomTypesFilter: CHANNEL_CUSTOM_TYPES,
185-
superChannelFilter: SUPER_CHANNEL_FILTER,
186-
});
187-
sb.getTotalUnreadMessageCount(params);
188-
```
189-
190-
- Changed `sendUserMessage()` and `sendFileMessage()` interface to chain the callbacks for pending/failed/succeeded messages.
191-
192-
```ts
193-
// v3
194-
const pendingMessage = channel.sendUserMessage(params, (err, message) => {
195-
if (err) {
196-
// message is a failed message
197-
} else {
198-
// message is a succeeded message
199-
}
200-
});
201-
202-
// v4
203-
channel.sendUserMessage(params)
204-
.onPending((pendingMessage: UserMessage) => {})
205-
.onFailed((err: Error, failedMessage: UserMessage) => {})
206-
.onSucceeded((succeededMessage: UserMessage) => {});
207-
```
208-
209-
- Separated update params from create params.
210-
211-
```ts
212-
// v3
213-
GroupChannelParams // both for create/update
214-
OpenChannelParams // both for create/update
215-
UserMessageParams // both for send/update
216-
FileMessageParams // both for send/update
217-
218-
// v4
219-
GroupChannelCreateParams
220-
GroupChannelUpdateParams
221-
OpenChannelCreateParams
222-
OpenChannelUpdateParams
223-
UserMessageCreateParams
224-
UserMessageUpdateParams
225-
FileMessageCreateParams
226-
FileMessageUpdateParams
227-
```
228-
229-
- Changed to accept initial properties in `~Params` constructors.
230-
231-
```ts
232-
// v3
233-
const params = new sb.UserMessageParams();
234-
params.message = 'message';
235-
236-
// v4
237-
import { UserMessageParams } from '@sendbird/chat/message';
238-
239-
const params = new UserMessageCreateParams({
240-
message: 'message',
241-
});
242-
243-
// or you can still use it as v3
244-
const params = new UserMessageCreateParams();
245-
params.message = 'message';
246-
```
247-
248-
- Changed to accept properties in `~Query` constructors. The query properties are immutable later on.
249-
250-
```ts
251-
// v3
252-
const query = sb.GroupChannel.createMyGroupChannelListQuery();
253-
query.customTypesFilter = ['a', 'b'];
254-
query.order = 'latest_last_message';
255-
256-
// v4
257-
import { GroupChannelListOrder } from '@sendbird/chat/groupChannel';
258-
259-
const query = sb.groupChannel.createMyGroupChannelListQuery({
260-
customTypesFilter: ['a', 'b'],
261-
order: GroupChannelListOrder.LATEST_LAST_MESSAGE,
262-
});
263-
query.customTypesFilter = ['a', 'b']; // ERROR! IMMUTABLE PROPERTY!
264-
```
265-
266-
- Changed `buildFromSerializedData()` paths.
267-
268-
```ts
269-
// v3
270-
sb.AdminMessage.buildFromSerializedData()
271-
sb.FileMessage.buildFromSerializedData()
272-
sb.UserMessage.buildFromSerializedData()
273-
sb.Sender.buildFromSerializedData()
274-
275-
sb.GroupChannel.buildFromSerializedData()
276-
sb.GroupChannelListQuery.buildFromSerializedData()
277-
sb.Member.buildFromSerializedData()
278-
279-
sb.OpenChannel.buildFromSerializedData()
280-
281-
sb.User.buildFromSerializedData()
282-
283-
// v4
284-
sb.message.buildMessageFromSerializedData() // admin/file/user altogether
285-
sb.message.buildSenderFromSerializedData()
286-
287-
sb.groupChannel.buildGroupChannelFromSerializedData()
288-
sb.groupChannel.buildGroupChannelListQueryFromSerializedData()
289-
sb.groupChannel.buildMemberFromSerializedData()
290-
291-
sb.openChannel.buildOpenChannelFromSerializedData()
292-
293-
sb.buildUserFromSerializedData()
294-
```
295-
296-
- Turned some getter functions to read-only properties.
297-
298-
```ts
299-
// v3
300-
SendBird.getInstance()
301-
sb.getApplicationId()
302-
sb.getConnectionState()
303-
sb.getLastConnectedAt()
304-
channel.isGroupChannel()
305-
channel.isOpenChannel()
306-
channel.getCachedMetaData()
307-
message.isUserMessage()
308-
message.isFileMessage()
309-
message.isAdminMessage()
310-
message.isResendable()
311-
312-
// v4
313-
SendbirdChat.instance
314-
sb.appId
315-
sb.connectionState
316-
sb.lastConnectedAt
317-
channel.isGroupChannel
318-
channel.isOpenChannel
319-
channel.cachedMetaData
320-
message.isUserMessage
321-
message.isFileMessage
322-
message.isAdminMessage
323-
message.isResendable
324-
```
325-
326-
- Relocations
327-
328-
|v3|v4|
329-
|-|-|
330-
|`sb.getMyGroupChannelChangeLogsByToken()`|`sb.groupChannel.getMyGroupChannelChangeLogsByToken()`|
331-
|`sb.getMyGroupChannelChangeLogsByTimestamp()`|`sb.groupChannel.getMyGroupChannelChangeLogsByTimestamp()`|
332-
333-
- Renames
334-
335-
|v3|v4|
336-
|-|-|
337-
|`SendBird`|`SendbirdChat`|
338-
|`SendBirdException`|`SendbirdError`|
339-
|`GCMPushToken`|`FCMPushToken`*|
340-
|`sb.initializeDatabase()`|`sb.initializeCache()`|
341-
|`sb.clearDatabase()`|`sb.clearCache()`|
342-
|`channelHandler.onReadReceiptUpdated()`|`groupChannelHandler.onUnreadMemberStatusUpdated()`|
343-
|`channelHandler.onDeliveryReceiptUpdated()`|`groupChannelHandler.onUndeliveredMemberStatusUpdated()`|
344-
|`groupChannel.cachedReadReceiptStatus`|`groupChannel.cachedUnreadMemberState`|
345-
|`groupChannel.cachedDeliveryReceiptStatus`|`groupChannel.cachedUndeliveredMemberState`|
346-
|`message.sendingStatus`|`message.requestState`|
347-
348-
> \* But stilling meaning the token for Android.
349-
350-
## Removes
351-
352-
- Removed `channel.getMessagesByID()`.

0 commit comments

Comments
 (0)