feat: implement leaderboard page with top performers and market activity

This commit is contained in:
Face 2025-05-24 15:50:10 +03:00
parent 930d1f41d7
commit 35237c3470
7 changed files with 605 additions and 66 deletions

View file

@ -42,4 +42,43 @@ export function debounce(func: (...args: any[]) => void, wait: number) {
clearTimeout(timeout);
timeout = setTimeout(later, wait);
};
}
}
export function formatPrice(price: number): string {
if (price < 0.01) {
return price.toFixed(6);
} else if (price < 1) {
return price.toFixed(4);
} else {
return price.toLocaleString(undefined, {
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
}
}
export function formatValue(value: number): string {
if (value >= 1e9) return `$${(value / 1e9).toFixed(2)}B`;
if (value >= 1e6) return `$${(value / 1e6).toFixed(2)}M`;
if (value >= 1e3) return `$${(value / 1e3).toFixed(2)}K`;
return `$${value.toFixed(2)}`;
}
export function formatQuantity(value: number): string {
if (value >= 1e9) return `${(value / 1e9).toFixed(2)}B`;
if (value >= 1e6) return `${(value / 1e6).toFixed(2)}M`;
if (value >= 1e3) return `${(value / 1e3).toFixed(2)}K`;
return value.toLocaleString();
}
export function formatDate(timestamp: string): string {
const date = new Date(timestamp);
return date.toLocaleDateString('en-US', {
month: 'short',
day: 'numeric',
hour: '2-digit',
minute: '2-digit'
});
}
export const formatMarketCap = formatValue;