renderRecall function
撤回提示:本人撤回的“你撤回了一条消息”,群主或管理员撤回别人的标出操作人,服务端和平台撤回的不显示操作人。 没有撤回的返回空字符串。
Implementation
String renderRecall(DRObject message, {required String self, required NameOf nameOf, DRLocale locale = zhCN}) {
final l = locale;
String t(String key) => l.recall[key] ?? zhCN.recall[key] ?? '';
final r = asMap(message.raw['recalled']);
if (r == null) return '';
final by = asString(r['by']);
if (r['role'] == 'server' || r['role'] == 'platform' || by == null || by.isEmpty) return t('byServer');
final sender = asString(message.raw['sender']);
if (by == sender) return by == self ? t('self') : formatTemplate(t('sender'), {'name': nameOf(by)});
final actor = by == self ? l.you : nameOf(by);
final name = sender != null ? (sender == self ? l.you : nameOf(sender)) : l.deletedUser;
return formatTemplate(t('byAdmin'), {'actor': actor, 'name': name});
}