Files
auto-trade/features/dashboard/utils/dashboard-format.ts

67 lines
2.1 KiB
TypeScript
Raw Normal View History

2026-02-12 14:20:07 +09:00
/**
* @file features/dashboard/utils/dashboard-format.ts
* @description /
*/
const KRW_FORMATTER = new Intl.NumberFormat("ko-KR");
const PERCENT_FORMATTER = new Intl.NumberFormat("ko-KR", {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
});
/**
* .
* @param value
* @returns
* @see features/dashboard/components/StatusHeader.tsx /
*/
export function formatCurrency(value: number) {
return KRW_FORMATTER.format(value);
}
/**
* .
* @param value
* @returns 2
* @see features/dashboard/components/StatusHeader.tsx
*/
export function formatPercent(value: number) {
return `${PERCENT_FORMATTER.format(value)}%`;
}
/**
* .
* @param value
* @returns + -
* @see features/dashboard/components/MarketSummary.tsx
*/
export function formatSignedCurrency(value: number) {
if (value > 0) return `+${formatCurrency(value)}`;
if (value < 0) return `-${formatCurrency(Math.abs(value))}`;
return "0";
}
/**
* .
* @param value
* @returns + -
* @see features/dashboard/components/MarketSummary.tsx
*/
export function formatSignedPercent(value: number) {
if (value > 0) return `+${formatPercent(value)}`;
if (value < 0) return `-${formatPercent(Math.abs(value))}`;
return "0.00%";
}
/**
* // .
* @param value
* @returns Tailwind
* @see features/dashboard/components/HoldingsList.tsx /
*/
export function getChangeToneClass(value: number) {
if (value > 0) return "text-red-600 dark:text-red-400";
if (value < 0) return "text-blue-600 dark:text-blue-400";
return "text-muted-foreground";
}