saveEditedMessageDraft method

Future<void> saveEditedMessageDraft(
  1. String messageUId,
  2. String content, {
  3. RCIMIWMessage? message,
  4. List<String>? mentionUserIds,
  5. List<RCKMessageEditMention>? mentions,
})

Implementation

Future<void> saveEditedMessageDraft(
  String messageUId,
  String content, {
  RCIMIWMessage? message,
  List<String>? mentionUserIds,
  List<RCKMessageEditMention>? mentions,
}) {
  if (!_canUseMessageEditDrafts || messageUId.isEmpty) {
    return Future<void>.value();
  }
  final targetEngine = _sessionEngine;
  if (targetEngine == null) return Future<void>.value();
  final type = _con.conversationType ?? RCIMIWConversationType.invalid;
  final targetId = _con.targetId ?? '';
  final channelId = _con.channelId;
  final draft = RCIMIWEditedMessageDraft.create(
    messageUId: messageUId,
    content: _encodeEditedMessageDraft(
      content,
      message: message,
      mentionUserIds: mentionUserIds,
      mentions: mentions,
    ),
  );
  return _enqueueEditedDraftOperation((generation, requestId) {
    return _invokeEditedDraftOperation(
      generation: generation,
      requestId: requestId,
      invoke: (callback) => targetEngine.saveEditedMessageDraft(
        type,
        targetId,
        channelId,
        draft,
        callback: callback,
      ),
    );
  });
}