Skip to content

Commit 59780a8

Browse files
authored
feat: add new input state api (#137)
1 parent 2e351cb commit 59780a8

File tree

7 files changed

+61
-2
lines changed

7 files changed

+61
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@openim/wasm-client-sdk",
3-
"version": "3.8.2",
3+
"version": "3.8.2-1",
44
"description": "open im sdk for web",
55
"source": "src/index.ts",
66
"main": "lib/index.js",

src/constant/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,17 @@ export enum CbEvents {
1616
OnProgress = 'OnProgress',
1717
OnRecvNewMessage = 'OnRecvNewMessage',
1818
OnRecvNewMessages = 'OnRecvNewMessages',
19+
OnRecvOnlineOnlyMessage = 'OnRecvOnlineOnlyMessage',
1920
OnRecvOfflineNewMessage = 'onRecvOfflineNewMessage',
21+
OnRecvOnlineOnlyMessages = 'OnRecvOnlineOnlyMessages',
2022
OnRecvOfflineNewMessages = 'onRecvOfflineNewMessages',
2123
OnRecvMessageRevoked = 'OnRecvMessageRevoked',
2224
OnNewRecvMessageRevoked = 'OnNewRecvMessageRevoked',
2325
OnRecvC2CReadReceipt = 'OnRecvC2CReadReceipt',
2426
OnRecvGroupReadReceipt = 'OnRecvGroupReadReceipt',
2527
OnConversationChanged = 'OnConversationChanged',
2628
OnNewConversation = 'OnNewConversation',
29+
OnConversationUserInputStatusChanged = 'OnConversationUserInputStatusChanged',
2730
OnSyncServerFailed = 'OnSyncServerFailed',
2831
OnSyncServerFinish = 'OnSyncServerFinish',
2932
OnSyncServerProgress = 'OnSyncServerProgress',

src/sdk/index.ts

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ import {
7272
UpdateFriendsParams,
7373
SetConversationParams,
7474
GetSpecifiedFriendsParams,
75+
ChangeInputStatesParams,
76+
GetInputstatesParams,
7577
} from '../types/params';
7678

7779
import {
@@ -97,7 +99,12 @@ import {
9799
WSEvent,
98100
WsResponse,
99101
} from '../types/entity';
100-
import { GroupAtType, LoginStatus, MessageReceiveOptType } from '@/types/enum';
102+
import {
103+
GroupAtType,
104+
LoginStatus,
105+
MessageReceiveOptType,
106+
Platform,
107+
} from '@/types/enum';
101108
import { logBoxStyleValue } from '@/utils';
102109
class SDK extends Emitter {
103110
private wasmInitializedPromise: Promise<any>;
@@ -891,6 +898,9 @@ class SDK extends Emitter {
891898
[operationID, JSON.stringify(data.message), data.groupID, data.sendID]
892899
);
893900
};
901+
/**
902+
* @deprecated Use changeInputStates instead.
903+
*/
894904
typingStatusUpdate = <T>(
895905
data: TypingUpdateParams,
896906
operationID = uuidv4()
@@ -901,6 +911,23 @@ class SDK extends Emitter {
901911
data.msgTip,
902912
]);
903913
};
914+
changeInputStates = (
915+
data: ChangeInputStatesParams,
916+
operationID = uuidv4()
917+
) => {
918+
return this._invoker<void>('changeInputStates ', window.changeInputStates, [
919+
operationID,
920+
data.conversationID,
921+
data.focus,
922+
]);
923+
};
924+
getInputstates = (data: GetInputstatesParams, operationID = uuidv4()) => {
925+
return this._invoker<Platform[]>('getInputstates ', window.getInputstates, [
926+
operationID,
927+
data.conversationID,
928+
data.userID,
929+
]);
930+
};
904931
clearConversationAndDeleteAllMsg = <T>(
905932
data: string,
906933
operationID = uuidv4()

src/types/entity.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,12 @@ export type UserOnlineState = {
442442
userID: string;
443443
};
444444

445+
export type ConversationInputStatus = {
446+
conversationID: string;
447+
userID: string;
448+
platformIDs: Platform[];
449+
};
450+
445451
export type GroupMessageReceiptInfo = {
446452
conversationID: string;
447453
groupMessageReadInfo: GroupMessageReadInfo[];

src/types/eventData.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { CbEvents } from '..';
22
import {
33
BlackUserItem,
4+
ConversationInputStatus,
45
ConversationItem,
56
FriendApplicationItem,
67
FriendUserItem,
@@ -36,13 +37,16 @@ export type EventDataMap = {
3637
[CbEvents.OnJoinedGroupAdded]: GroupItem;
3738
[CbEvents.OnJoinedGroupDeleted]: GroupItem;
3839
[CbEvents.OnNewConversation]: ConversationItem[];
40+
[CbEvents.OnConversationUserInputStatusChanged]: ConversationInputStatus;
3941
[CbEvents.OnNewRecvMessageRevoked]: RevokedInfo;
4042
[CbEvents.OnRecvC2CReadReceipt]: ReceiptInfo[];
4143
[CbEvents.OnRecvGroupReadReceipt]: GroupMessageReceiptInfo;
4244
[CbEvents.OnRecvNewMessage]: MessageItem;
4345
[CbEvents.OnRecvNewMessages]: MessageItem[];
4446
[CbEvents.OnRecvOfflineNewMessage]: MessageItem;
47+
[CbEvents.OnRecvOnlineOnlyMessage]: MessageItem;
4548
[CbEvents.OnRecvOfflineNewMessages]: MessageItem[];
49+
[CbEvents.OnRecvOnlineOnlyMessages]: MessageItem[];
4650
[CbEvents.OnSelfInfoUpdated]: SelfUserInfo;
4751
[CbEvents.OnSyncServerFailed]: void;
4852
[CbEvents.OnSyncServerStart]: boolean;

src/types/index.d.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Platform } from './enum';
12
import { CreateGroupParams } from './params';
23

34
type DatabaseApi = (...args: any[]) => Promise<any>;
@@ -512,6 +513,16 @@ declare global {
512513
recvID: string,
513514
msgTip: string
514515
) => Promise<string>;
516+
changeInputStates: (
517+
operationID: string,
518+
conversationID: string,
519+
focus: boolean
520+
) => Promise<void>;
521+
getInputstates: (
522+
operationID: string,
523+
conversationID: string,
524+
userID: string
525+
) => Promise<Platform[]>;
515526
markNotifyMessageHasRead: (
516527
operationID: string,
517528
conversationID: string

src/types/params.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,14 @@ export type TypingUpdateParams = {
263263
recvID: string;
264264
msgTip: string;
265265
};
266+
export type ChangeInputStatesParams = {
267+
conversationID: string;
268+
focus: boolean;
269+
};
270+
export type GetInputstatesParams = {
271+
conversationID: string;
272+
userID: string;
273+
};
266274
export type SetConversationExParams = {
267275
conversationID: string;
268276
ex: string;

0 commit comments

Comments
 (0)