title method
- bool withDeletedLabel = true,
Returns text represented title of this RxChat.
If withDeletedLabel is true, then returns the title with the deleted
label for deleted users.
Implementation
String title({bool withDeletedLabel = true}) {
String title = 'dot'.l10n * 3;
switch (chat.value.kind) {
case ChatKind.monolog:
title = chat.value.name?.val ?? 'label_chat_monolog'.l10n;
break;
case ChatKind.dialog:
final String? name =
members.values
.firstWhereOrNull((u) => u.user.id != me)
?.user
.title ??
chat.value.members
.firstWhereOrNull((e) => e.user.id != me)
?.user
.title;
title = name ?? title;
break;
case ChatKind.group:
if (chat.value.name != null) {
title = chat.value.name!.val;
} else {
final Iterable<String> names;
final List<RxUser> users = members.values
.take(3)
.map((e) => e.user)
.toList();
if (users.length < chat.value.membersCount && users.length < 3) {
names = chat.value.members.take(3).map((e) => e.user.title);
} else {
names = users.take(3).map((e) => e.title);
}
title = names.join('comma_space'.l10n);
if (chat.value.membersCount > 3) {
title += 'comma_space'.l10n + ('dot'.l10n * 3);
}
}
break;
case ChatKind.artemisUnknown:
// No-op.
break;
}
return title;
}