hideMessageTranslation method
Future<void>
hideMessageTranslation(
- 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();
}