truncateString function
Truncates value to maxLength, avoiding surrogate pair splits.
Appends ... if the string was truncated.
Implementation
String truncateString(
String value, {
int maxLength = kDefaultStringTruncateLimit,
}) {
if (value.length <= maxLength) return value;
var end = maxLength;
// Avoid splitting a surrogate pair at the truncation boundary.
if (end > 0 &&
value.codeUnitAt(end - 1) >= 0xD800 &&
value.codeUnitAt(end - 1) <= 0xDBFF) {
end--;
}
return '${value.substring(0, end)}...';
}