formatModelAndBilling function
Determine how to display model and billing info.
Implementation
({bool shouldSplit, String truncatedModel, String truncatedBilling})
formatModelAndBilling({
required String modelName,
required String billingType,
required int availableWidth,
}) {
const separator = ' \u00b7 ';
final combinedWidth =
modelName.length + separator.length + billingType.length;
final shouldSplit = combinedWidth > availableWidth;
if (shouldSplit) {
return (
shouldSplit: true,
truncatedModel: modelName.length > availableWidth
? '${modelName.substring(0, availableWidth - 1)}\u2026'
: modelName,
truncatedBilling: billingType.length > availableWidth
? '${billingType.substring(0, availableWidth - 1)}\u2026'
: billingType,
);
}
final maxModelWidth = math.max(
availableWidth - billingType.length - separator.length,
10,
);
return (
shouldSplit: false,
truncatedModel: modelName.length > maxModelWidth
? '${modelName.substring(0, maxModelWidth - 1)}\u2026'
: modelName,
truncatedBilling: billingType,
);
}