Compare commits

1 Commits

Author SHA1 Message Date
blooming
2ef3ee9ef9 feat: add new input state api (#11) 2024-10-17 15:13:14 +08:00
14 changed files with 77 additions and 18 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

16
package-lock.json generated
View File

@@ -1,21 +1,21 @@
{ {
"name": "@openim/electron-client-sdk", "name": "@openim/electron-client-sdk",
"version": "1.1.0", "version": "1.1.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@openim/electron-client-sdk", "name": "@openim/electron-client-sdk",
"version": "1.1.0", "version": "1.1.1",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"koffi": "^2.8.0", "koffi": "2.8.0",
"uuid": "^9.0.0" "uuid": "^9.0.0"
}, },
"devDependencies": { "devDependencies": {
"@commitlint/cli": "^16.2.4", "@commitlint/cli": "^16.2.4",
"@commitlint/config-conventional": "^16.2.4", "@commitlint/config-conventional": "^16.2.4",
"@openim/wasm-client-sdk": "^3.8.2-beta.4", "@openim/wasm-client-sdk": "^3.8.2-1",
"@rollup/plugin-alias": "^5.1.0", "@rollup/plugin-alias": "^5.1.0",
"@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-terser": "^0.4.4",
"@types/ffi-napi": "^4.0.10", "@types/ffi-napi": "^4.0.10",
@@ -43,7 +43,7 @@
"node": ">=12.0" "node": ">=12.0"
}, },
"peerDependencies": { "peerDependencies": {
"@openim/wasm-client-sdk": "^3.8.2-beta.3", "@openim/wasm-client-sdk": "^3.8.2-1",
"electron": ">=12.0.0" "electron": ">=12.0.0"
} }
}, },
@@ -1882,9 +1882,9 @@
} }
}, },
"node_modules/@openim/wasm-client-sdk": { "node_modules/@openim/wasm-client-sdk": {
"version": "3.8.2-beta.4", "version": "3.8.2-1",
"resolved": "https://registry.npmjs.org/@openim/wasm-client-sdk/-/wasm-client-sdk-3.8.2-beta.4.tgz", "resolved": "https://registry.npmjs.org/@openim/wasm-client-sdk/-/wasm-client-sdk-3.8.2-1.tgz",
"integrity": "sha512-AH1FgOiQFM9bL1R18/z2oZkZwXKVZTy6EpMaBfSV6giM/++fwV4zLS0W/vJ7u8CrZgkcIPaY7h+JR3ICxn/3vg==", "integrity": "sha512-ntpmRJrZVzaAM7MbA1BsY1jgeGEJUlyWGH6Yqz5+yjd1qNBL4f7SysiDXYHoizOWNNWCSGzeC8iZPDMRIS0hEw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=12.0" "node": ">=12.0"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@openim/electron-client-sdk", "name": "@openim/electron-client-sdk",
"version": "1.1.1", "version": "1.1.2",
"description": "open im sdk for node", "description": "open im sdk for node",
"source": "src/index.ts", "source": "src/index.ts",
"main": "lib/index.js", "main": "lib/index.js",
@@ -43,7 +43,7 @@
"devDependencies": { "devDependencies": {
"@commitlint/cli": "^16.2.4", "@commitlint/cli": "^16.2.4",
"@commitlint/config-conventional": "^16.2.4", "@commitlint/config-conventional": "^16.2.4",
"@openim/wasm-client-sdk": "^3.8.2", "@openim/wasm-client-sdk": "^3.8.2-1",
"@rollup/plugin-alias": "^5.1.0", "@rollup/plugin-alias": "^5.1.0",
"@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-terser": "^0.4.4",
"@types/ffi-napi": "^4.0.10", "@types/ffi-napi": "^4.0.10",
@@ -76,11 +76,11 @@
"*.ts": "eslint --cache --cache-location .eslintcache --fix" "*.ts": "eslint --cache --cache-location .eslintcache --fix"
}, },
"dependencies": { "dependencies": {
"koffi": "^2.8.0", "koffi": "2.8.0",
"uuid": "^9.0.0" "uuid": "^9.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@openim/wasm-client-sdk": "^3.8.2", "@openim/wasm-client-sdk": "^3.8.2-1",
"electron": ">=12.0.0" "electron": ">=12.0.0"
} }
} }

View File

@@ -130,12 +130,13 @@ export const eventMapping: Record<NativeEvent, CbEvents> = {
[NativeEvent.RECV_MESSAGE_EXTENSIONS_CHANGED]: CbEvents.UnUsedEvent, [NativeEvent.RECV_MESSAGE_EXTENSIONS_CHANGED]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_MESSAGE_EXTENSIONS_DELETED]: CbEvents.UnUsedEvent, [NativeEvent.RECV_MESSAGE_EXTENSIONS_DELETED]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_MESSAGE_EXTENSIONS_ADDED]: CbEvents.UnUsedEvent, [NativeEvent.RECV_MESSAGE_EXTENSIONS_ADDED]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_OFFLINE_NEW_MESSAGE]: CbEvents.UnUsedEvent, [NativeEvent.RECV_OFFLINE_NEW_MESSAGE]: CbEvents.OnRecvOfflineNewMessage,
[NativeEvent.MSG_DELETED]: CbEvents.UnUsedEvent, [NativeEvent.MSG_DELETED]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_OFFLINE_NEW_MESSAGES]: CbEvents.UnUsedEvent, [NativeEvent.RECV_OFFLINE_NEW_MESSAGES]: CbEvents.OnRecvOfflineNewMessages,
[NativeEvent.MESSAGE_KV_INFO_CHANGED]: CbEvents.UnUsedEvent, [NativeEvent.MESSAGE_KV_INFO_CHANGED]: CbEvents.UnUsedEvent,
[NativeEvent.CONVERSATION_USER_INPUT_STATUS_CHANGED]: CbEvents.UnUsedEvent, [NativeEvent.CONVERSATION_USER_INPUT_STATUS_CHANGED]:
[NativeEvent.RECV_ONLINE_ONLY_MESSAGE]: CbEvents.UnUsedEvent, CbEvents.OnConversationUserInputStatusChanged,
[NativeEvent.RECV_ONLINE_ONLY_MESSAGE]: CbEvents.OnRecvOnlineOnlyMessage,
[NativeEvent.RECV_NEW_INVITATION]: CbEvents.OnReceiveNewInvitation, [NativeEvent.RECV_NEW_INVITATION]: CbEvents.OnReceiveNewInvitation,
[NativeEvent.INVITEE_ACCEPTED]: CbEvents.OnInviteeAccepted, [NativeEvent.INVITEE_ACCEPTED]: CbEvents.OnInviteeAccepted,
[NativeEvent.INVITEE_ACCEPTED_BY_OTHER_DEVICE]: [NativeEvent.INVITEE_ACCEPTED_BY_OTHER_DEVICE]:

View File

@@ -462,6 +462,18 @@ class OpenIMSDK
'void', 'void',
['baseCallback *', 'str', 'str', 'str'] ['baseCallback *', 'str', 'str', 'str']
); );
this.libOpenIMSDK.change_input_states = this.lib.func(
'__stdcall',
'change_input_states',
'void',
['baseCallback *', 'str', 'str', 'int']
);
this.libOpenIMSDK.get_input_states = this.lib.func(
'__stdcall',
'get_input_states',
'void',
['baseCallback *', 'str', 'str', 'str']
);
this.libOpenIMSDK.hide_all_conversations = this.lib.func( this.libOpenIMSDK.hide_all_conversations = this.lib.func(
'__stdcall', '__stdcall',
'hide_all_conversations', 'hide_all_conversations',
@@ -1127,7 +1139,7 @@ class OpenIMSDK
unInitSDK = (opid = uuidV4()) => unInitSDK = (opid = uuidV4()) =>
this.asyncRetunWrap( this.asyncRetunWrap(
opid, `unInitSDK-${opid}`,
this.libOpenIMSDK.un_init_sdk(`unInitSDK-${opid}`) this.libOpenIMSDK.un_init_sdk(`unInitSDK-${opid}`)
); );
@@ -1345,6 +1357,8 @@ class OpenIMSDK
deleteConversationAndDeleteAllMsg!: ConversationModuleApi['deleteConversationAndDeleteAllMsg']; deleteConversationAndDeleteAllMsg!: ConversationModuleApi['deleteConversationAndDeleteAllMsg'];
setConversationMsgDestructTime!: ConversationModuleApi['setConversationMsgDestructTime']; setConversationMsgDestructTime!: ConversationModuleApi['setConversationMsgDestructTime'];
setConversationIsMsgDestruct!: ConversationModuleApi['setConversationIsMsgDestruct']; setConversationIsMsgDestruct!: ConversationModuleApi['setConversationIsMsgDestruct'];
changeInputStates!: ConversationModuleApi['changeInputStates'];
getInputStates!: ConversationModuleApi['getInputStates'];
// implements message api // implements message api
createTextMessage!: MessageModuleApi['createTextMessage']; createTextMessage!: MessageModuleApi['createTextMessage'];

View File

@@ -13,9 +13,11 @@ import {
SetConversationMsgDestructTimeParams, SetConversationMsgDestructTimeParams,
SetConversationMsgDestructParams, SetConversationMsgDestructParams,
SetConversationParams, SetConversationParams,
ChangeInputStatesParams,
GetInputstatesParams,
} from '@openim/wasm-client-sdk/lib/types/params'; } from '@openim/wasm-client-sdk/lib/types/params';
import { ConversationItem } from '@openim/wasm-client-sdk/lib/types/entity'; import { ConversationItem } from '@openim/wasm-client-sdk/lib/types/entity';
import { GroupAtType } from '@openim/wasm-client-sdk'; import { GroupAtType, Platform } from '@openim/wasm-client-sdk';
export function setupConversationModule(openIMSDK: OpenIMSDK) { export function setupConversationModule(openIMSDK: OpenIMSDK) {
return { return {
@@ -241,6 +243,24 @@ export function setupConversationModule(openIMSDK: OpenIMSDK) {
JSON.stringify({ isMsgDestruct: params.isMsgDestruct }) JSON.stringify({ isMsgDestruct: params.isMsgDestruct })
); );
}), }),
changeInputStates: (params: ChangeInputStatesParams, opid = uuidV4()) =>
new Promise<BaseResponse<void>>((resolve, reject) => {
openIMSDK.libOpenIMSDK.change_input_states(
openIMSDK.baseCallbackWrap<void>(resolve, reject),
opid,
params.conversationID,
params.focus ? 1 : 0
);
}),
getInputStates: (params: GetInputstatesParams, opid = uuidV4()) =>
new Promise<BaseResponse<Platform[]>>((resolve, reject) => {
openIMSDK.libOpenIMSDK.get_input_states(
openIMSDK.baseCallbackWrap<Platform[]>(resolve, reject),
opid,
params.conversationID,
params.userID
);
}),
}; };
} }
@@ -322,4 +342,12 @@ export interface ConversationModuleApi {
params: SetConversationMsgDestructParams, params: SetConversationMsgDestructParams,
opid?: string opid?: string
) => Promise<BaseResponse<void>>; ) => Promise<BaseResponse<void>>;
changeInputStates: (
params: ChangeInputStatesParams,
opid?: string
) => Promise<BaseResponse<void>>;
getInputStates: (
params: GetInputstatesParams,
opid?: string
) => Promise<BaseResponse<Platform[]>>;
} }

View File

@@ -33,6 +33,10 @@ type IMSDKInterface = Omit<WasmInterface, 'login'> & {
* @access only for electron * @access only for electron
*/ */
initSDK: (param: InitConfig, opid?: string) => Promise<boolean>; initSDK: (param: InitConfig, opid?: string) => Promise<boolean>;
/**
* @access only for electron
*/
unInitSDK: (opid?: string) => Promise<void>;
/** /**
* @access only for electron * @access only for electron
*/ */

View File

@@ -263,6 +263,18 @@ declare module 'libOpenIMSDK' {
clientMsgID: string clientMsgID: string
): void; ): void;
hide_all_conversations(cCallback: CB_S_I_S_S, operationID: string): void; hide_all_conversations(cCallback: CB_S_I_S_S, operationID: string): void;
change_input_states(
cCallback: CB_S_I_S_S,
operationID: string,
conversationID: string,
focus: number
): void;
get_input_states(
cCallback: CB_S_I_S_S,
operationID: string,
conversationID: string,
userID: string
): void;
delete_all_msg_from_local_and_svr( delete_all_msg_from_local_and_svr(
cCallback: CB_S_I_S_S, cCallback: CB_S_I_S_S,
operationID: string operationID: string