deltaWithMentionsAsText static method
Implementation
static Delta deltaWithMentionsAsText(Delta delta, {MentionConfig? mentionConfig}) {
final result = Delta();
final key = mentionConfig?.embedKey ?? 'mention';
for (final op in delta.toJson()) {
final insert = op['insert'];
final attr = op['attributes'] as Map<String, dynamic>?;
if (insert is Map<String, dynamic>) {
final embedData = insert[key];
if (embedData is Map<String, dynamic>) {
String? mentionText;
if (mentionConfig != null) {
final mention = mentionConfig.fromJson(embedData);
if (mention != null) mentionText = '@${mention.displayData}';
} else {
final String? name = switch (embedData) {
{'name': String n} => n,
_ => null,
};
if (name != null) mentionText = '@$name';
}
if (mentionText != null) {
result.insert(mentionText, attr);
continue;
}
}
}
result.insert(insert, attr);
}
return result;
}