fleet/frontend/components/TableContainer/utilities/TableContainerUtils.ts

31 lines
840 B
TypeScript

const DEFAULT_RESULTS_NAME = "results";
/**
* Returns a proper results count text — singular or plural as needed.
* For regular cases, computes singular by removing "ies" or "s".
* For irregular cases, pass singularName.
*/
export const generateResultsCountText = (
name: string = DEFAULT_RESULTS_NAME,
resultsCount?: number,
singularName?: string
): string => {
if (!resultsCount || resultsCount === 0) return `0 ${name}`;
// If exactly 1 result, return singular form.
if (resultsCount === 1) {
if (singularName) {
return `1 ${singularName}`;
}
if (name.endsWith("ies")) {
return `1 ${name.slice(0, -3)}y`;
}
if (name.endsWith("s")) {
return `1 ${name.slice(0, -1)}`;
}
}
return `${resultsCount.toLocaleString()} ${name}`;
};
export default { generateResultsCountText };