hideMessageTranslation method

Future<void> hideMessageTranslation(
  1. ChatMessage message
)

Implementation

Future<void> hideMessageTranslation(ChatMessage message) async {
  final nimMessage = message.nimMessage;
  final messageId = MessageTranslationHelper.messageIdentity(nimMessage);
  final info = getMessageTranslationState(nimMessage)?.translation;
  if (messageId.isEmpty || info == null || info.hidden) {
    return;
  }
  final hiddenInfo = info.copyWith(hidden: true);
  if (kIsWeb) {
    _messageTranslationStates[messageId] = MessageTranslationState(
      translation: hiddenInfo,
      source: hiddenInfo.source,
    );
    notifyListeners();
    return;
  }
  final localExtension = MessageTranslationHelper.mergeMessageTranslation(
    nimMessage.localExtension,
    hiddenInfo,
  );
  final result =
      await NimCore.instance.messageService.updateMessageLocalExtension(
    message: nimMessage,
    localExtension: localExtension,
  );
  if (_isDisposed || !result.isSuccess) {
    return;
  }
  final updatedMessage = result.data ?? nimMessage;
  updatedMessage.localExtension = localExtension;
  _messageTranslationStates[messageId] = MessageTranslationState(
    translation: hiddenInfo,
    source: hiddenInfo.source,
  );
  _replaceMessageById(updatedMessage);
  notifyListeners();
}