editMessage method

Future<Map> editMessage(
  1. dynamic message,
  2. dynamic config,
  3. int? messageAttachedCallbackID,
  4. int? multipleMediaUploadingCallbackID,
)

Implementation

Future<Map<dynamic, dynamic>> editMessage(
    dynamic message,
    dynamic config,
    int? messageAttachedCallbackID,
    int? multipleMediaUploadingCallbackID) async {
  final _message = _mapToJSObject(message);
  final _config = _mapToJSObject(config);

  Map notification = {
    'onMessageAttached': allowInterop((message) {
      ZIMMessageAttachedCallback? callback = ZIMCommonData
          .zimMessageAttachedCallbackMap[messageAttachedCallbackID];

      if (callback != null) {
        callback(ZIMConverter.oZIMMessage(_jsObjectToMap(message)));
      }
    }),
    'onMultipleMediaUploadingProgress': allowInterop((message,
        currentFileSize,
        totalFileSize,
        messageInfoIndex,
        currentIndexFileSize,
        totalIndexFileSize) {
      ZIMMultipleMediaUploadingProgress? progress =
          ZIMCommonData.multipleMediaUploadingProgressMap[
              multipleMediaUploadingCallbackID];
      if (progress != null) {
        progress(
            ZIMConverter.oZIMMessage(_jsObjectToMap(message))
                as ZIMMultipleMessage,
            currentFileSize,
            totalFileSize,
            messageInfoIndex,
            currentIndexFileSize,
            totalIndexFileSize);
      }
    })
  };

  final result = await promiseToFuture(ZIM
          .getInstance()!
          .editMessage(_message, _config, _mapToJSObject(notification)))
      .catchError(_handleError);

  return _jsObjectToMap(result);
}