Added settings, enabled calendar

This commit is contained in:
dohsimpson
2024-12-31 13:58:14 -05:00
parent c4f0db329b
commit 7195f0d1f2
18 changed files with 493 additions and 137 deletions

37
lib/utils/formatNumber.ts Normal file
View File

@@ -0,0 +1,37 @@
import { Settings } from "../types";
function formatWithLocale(amount: number, useGrouping: boolean, maximumFractionDigits?: number): string {
return amount.toLocaleString(undefined, {
maximumFractionDigits,
useGrouping,
});
}
export function formatNumber({ amount, settings }: { amount: number, settings: Settings }): string {
const useFormatting = settings?.ui.useNumberFormatting ?? true;
const useGrouping = settings?.ui.useGrouping ?? true;
if (!useFormatting) {
return useGrouping ? formatWithLocale(amount, true) : amount.toString();
}
const absNum = Math.abs(amount);
if (absNum >= 1e12) {
return amount.toExponential(2);
}
if (absNum >= 1e9) {
return formatWithLocale(amount / 1e9, useGrouping, 1) + 'B';
}
if (absNum >= 1e6) {
return formatWithLocale(amount / 1e6, useGrouping, 1) + 'M';
}
if (absNum >= 1e3) {
return formatWithLocale(amount / 1e3, useGrouping, 1) + 'K';
}
return formatWithLocale(amount, useGrouping);
}