juggleim-rnsdk 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -500,7 +500,7 @@ export interface Message {
500
500
  clientMsgNo: number;
501
501
  localAttribute: string;
502
502
  messageState: number;
503
- isEdited: boolean;
503
+ isEdite: boolean;
504
504
  direction: number;
505
505
  isDelete: boolean;
506
506
  senderUserId: string;
@@ -441,6 +441,8 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
441
441
 
442
442
  // 添加是否已读
443
443
  map.putBoolean("hasRead", message.isHasRead());
444
+ map.putBoolean("isEdit", message.isEdit());
445
+ map.putBoolean("isDeleted", message.isDeleted());
444
446
 
445
447
  // 添加群消息阅读信息
446
448
  if (message.getGroupMessageReadInfo() != null) {
@@ -1552,6 +1554,36 @@ public class JuggleIMManager extends ReactContextBaseJavaModule {
1552
1554
  }
1553
1555
  }
1554
1556
 
1557
+ /**
1558
+ * 更新消息
1559
+ * @param messageId 消息ID
1560
+ * @param contentMap 新的消息内容
1561
+ * @param conversationMap 会话对象
1562
+ * @param promise Promise对象
1563
+ */
1564
+ @ReactMethod
1565
+ public void updateMessage(String messageId, ReadableMap contentMap, ReadableMap conversationMap, Promise promise) {
1566
+ try {
1567
+ MessageContent content = convertMapToMessageContent(contentMap);
1568
+ Conversation conversation = convertMapToConversation(conversationMap);
1569
+
1570
+ JIM.getInstance().getMessageManager().updateMessage(messageId, content, conversation, new IMessageManager.IMessageCallback() {
1571
+ @Override
1572
+ public void onSuccess(Message message) {
1573
+ promise.resolve(convertMessageToMap(message));
1574
+ }
1575
+
1576
+ @Override
1577
+ public void onError(int errorCode) {
1578
+ promise.reject("error", "Error code: " + errorCode);
1579
+ }
1580
+ });
1581
+ } catch (Exception e) {
1582
+ e.printStackTrace();
1583
+ promise.reject(e);
1584
+ }
1585
+ }
1586
+
1555
1587
  /**
1556
1588
  * 设置消息置顶
1557
1589
  * @param messageId 消息ID
@@ -396,6 +396,8 @@ RCT_EXPORT_METHOD(addConversationDelegate) {
396
396
 
397
397
  // 添加是否已读
398
398
  dict[@"hasRead"] = @(message.hasRead);
399
+ dict[@"isEdit"] = @(message.isEdit);
400
+ dict[@"isDeleted"] = @(message.isDeleted);
399
401
 
400
402
  // 添加群消息阅读信息
401
403
  if (message.groupReadInfo) {
@@ -1498,6 +1500,34 @@ RCT_EXPORT_METHOD(
1498
1500
  }];
1499
1501
  }
1500
1502
 
1503
+ /**
1504
+ * 更新消息
1505
+ */
1506
+ RCT_EXPORT_METHOD(updateMessage : (NSString *)messageId content : (
1507
+ NSDictionary *)contentMap conversation : (NSDictionary *)
1508
+ conversationMap resolver : (RCTPromiseResolveBlock)
1509
+ resolve rejecter : (RCTPromiseRejectBlock)reject) {
1510
+ @try {
1511
+ JMessageContent *content = [self convertDictToMessageContent:contentMap];
1512
+ JConversation *conversation =
1513
+ [self convertDictionaryToConversation:conversationMap];
1514
+
1515
+ [JIM.shared.messageManager updateMessage:content
1516
+ messageId:messageId
1517
+ inConversation:conversation
1518
+ success:^(JMessage *message) {
1519
+ resolve([self convertMessageToDictionary:message]);
1520
+ }
1521
+ error:^(JErrorCode code) {
1522
+ reject(@"error",
1523
+ [NSString stringWithFormat:@"Error code: %ld", (long)code],
1524
+ nil);
1525
+ }];
1526
+ } @catch (NSException *exception) {
1527
+ reject(@"UPDATE_MESSAGE_ERROR", exception.reason, nil);
1528
+ }
1529
+ }
1530
+
1501
1531
  /**
1502
1532
  * 设置消息置顶
1503
1533
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "juggleim-rnsdk",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "React Native wrapper for Juggle IM SDK",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",
package/src/index.d.ts CHANGED
@@ -202,12 +202,14 @@ declare module "juggleim-rnsdk" {
202
202
  * @property {Conversation} conversation - 会话对象
203
203
  * @property {MessageContent} content - 消息内容
204
204
  * @property {GroupMessageReadInfo} [groupMessageReadInfo] - 群消息阅读信息(可选)
205
+ * @property {MessageMentionInfo} mentionInfo - 消息提及信息
206
+ * @property {Message} [referredMessage] - 引用的消息
205
207
  */
206
208
  export interface Message {
207
209
  clientMsgNo: number;
208
210
  localAttribute: string;
209
211
  messageState: number;
210
- isEdited: boolean;
212
+ isEdit: boolean;
211
213
  direction: number;
212
214
  isDelete: boolean;
213
215
  senderUserId: string;
@@ -218,6 +220,7 @@ declare module "juggleim-rnsdk" {
218
220
  content: MessageContent;
219
221
  groupMessageReadInfo?: GroupMessageReadInfo;
220
222
  mentionInfo: MessageMentionInfo;
223
+ referredMessage?: Message;
221
224
  }
222
225
 
223
226
  /**
@@ -364,6 +367,11 @@ declare module "juggleim-rnsdk" {
364
367
  onError?: (message: Message, errorCode: number) => void;
365
368
  }
366
369
 
370
+ export interface UpdateMessageCallback {
371
+ onSuccess?: (message: Message) => void;
372
+ onError?: (errorCode: number) => void;
373
+ }
374
+
367
375
  // 获取消息相关接口
368
376
  export interface GetMessageOptions {
369
377
  count?: number;
@@ -377,6 +385,8 @@ declare module "juggleim-rnsdk" {
377
385
  content: MessageContent;
378
386
  mentionInfo?: MessageMentionInfo;
379
387
  pushData?: PushData;
388
+ // 引用消息ID
389
+ referredMessageId?: string;
380
390
  }
381
391
  /**
382
392
  * 连接状态监听器回调函数
@@ -853,6 +863,21 @@ declare module "juggleim-rnsdk" {
853
863
  messageIds: string[],
854
864
  ): Promise<Boolean>;
855
865
 
866
+ /**
867
+ * 更新消息
868
+ * @param messageId 消息ID
869
+ * @param content 新的消息内容
870
+ * @param conversation 会话对象
871
+ * @param callback 回调函数
872
+ * @returns {Promise<Message>} 更新后的消息对象
873
+ */
874
+ static updateMessage(
875
+ messageId: string,
876
+ content: MessageContent,
877
+ conversation: Conversation,
878
+ callback?: UpdateMessageCallback
879
+ ): Promise<Message>;
880
+
856
881
  /**
857
882
  * 设置消息置顶
858
883
  * @param messageId 消息ID
package/src/index.js CHANGED
@@ -938,6 +938,28 @@ class JuggleIM {
938
938
  return JMI.sendReadReceipt(conversation, messageIds);
939
939
  }
940
940
 
941
+ /**
942
+ * 更新消息
943
+ * @param {string} messageId - 消息ID
944
+ * @param {MessageContent} content - 新的消息内容
945
+ * @param {Conversation} conversation - 会话对象
946
+ * @param {UpdateMessageCallback} callback - 回调对象
947
+ * @returns {Promise<Message>} 更新后的消息对象
948
+ */
949
+ static async updateMessage(messageId, content, conversation, callback = {}) {
950
+ try {
951
+ const updatedMessage = await JMI.updateMessage(messageId, content, conversation);
952
+ if (callback.onSuccess) {
953
+ callback.onSuccess(updatedMessage);
954
+ }
955
+ return updatedMessage;
956
+ } catch (error) {
957
+ if (callback.onError) {
958
+ callback.onError(error.code || -1);
959
+ }
960
+ }
961
+ }
962
+
941
963
  /**
942
964
  * 设置消息置顶
943
965
  * @param {string} messageId - 消息ID