resolveTextAvatarInitials function
String
resolveTextAvatarInitials(
- String text, {
- InitialsMode mode = InitialsMode.words,
- int maxInitials = 2,
- String initialsBuilder(
- String name
Implementation
String resolveTextAvatarInitials(
String text, {
InitialsMode mode = InitialsMode.words,
int maxInitials = 2,
String Function(String name)? initialsBuilder,
}) {
final trimmed = text.validate().trim();
if (trimmed.isEmptyOrNull) return '';
switch (mode) {
case InitialsMode.custom:
return initialsBuilder?.call(trimmed) ?? '';
case InitialsMode.firstOne:
return _firstAlphabet(trimmed);
case InitialsMode.firstTwo:
final buffer = StringBuffer();
for (var i = 0; i < trimmed.length && buffer.length < 2; i++) {
if (trimmed[i].isAlphabetOnly()) buffer.write(trimmed[i]);
}
return buffer.toString();
case InitialsMode.words:
final parts = trimmed.split(RegExp(r'\s+'));
final buffer = StringBuffer();
for (final part in parts) {
if (buffer.length >= maxInitials) break;
final letter = _firstAlphabet(part);
if (letter.isNotEmpty) buffer.write(letter);
}
return buffer.toString();
}
}