Files
4dbd6753-c954-4abd-a5ab-ab3…/src/components/bento/BentoLineChart/utils.ts
2026-02-09 17:10:50 +00:00

34 lines
825 B
TypeScript

export const formatNumber = (value: number): string => {
if (value >= 100000) {
const millions = value / 1000000;
return `${millions.toFixed(1)}M`;
}
if (value >= 1000) {
const thousands = value / 1000;
const rounded = Math.round(thousands * 10) / 10;
return `${rounded}K`;
}
return value.toString();
};
export interface ChartDataItem {
value: number;
}
export const calculateYAxisWidth = (
data: ChartDataItem[],
isPercentage: boolean
): number => {
const maxValue = Math.max(...data.map((item) => item.value));
const formattedMax = isPercentage ? `${maxValue}%` : formatNumber(maxValue);
let multiplier = 9;
if (formattedMax.length === 2) {
multiplier = 11;
} else if (formattedMax.length === 3) {
multiplier = 13;
}
return formattedMax.length * multiplier;
};