mirror of
https://github.com/elisiariocouto/leggen.git
synced 2025-12-25 03:49:20 +00:00
- Add configurable API URL support via environment variables - Update nginx configuration with environment variable substitution - Create nginx template for dynamic proxy configuration - Update Docker configuration for environment variable handling - Fix hardcoded localhost:8000 references in error messages - Add proper TypeScript types for health check API - Format all code with Prettier for consistency - Update documentation with configuration instructions - Improve error messages to be environment-agnostic - Fix duplicate imports and type safety issues BREAKING: API URL is now configurable via VITE_API_URL (dev) and API_BACKEND_URL (prod)
63 lines
1.5 KiB
TypeScript
63 lines
1.5 KiB
TypeScript
import { clsx, type ClassValue } from "clsx";
|
|
|
|
export function cn(...inputs: ClassValue[]) {
|
|
return clsx(inputs);
|
|
}
|
|
|
|
export function formatCurrency(
|
|
amount: number,
|
|
currency: string = "EUR",
|
|
): string {
|
|
// Validate currency code - must be 3 letters and a valid ISO 4217 code
|
|
const validCurrency =
|
|
currency && /^[A-Z]{3}$/.test(currency) ? currency : "EUR";
|
|
|
|
try {
|
|
return new Intl.NumberFormat("en-US", {
|
|
style: "currency",
|
|
currency: validCurrency,
|
|
}).format(amount);
|
|
} catch {
|
|
// Fallback if currency is still invalid
|
|
console.warn(`Invalid currency code: ${currency}, falling back to EUR`);
|
|
return new Intl.NumberFormat("en-US", {
|
|
style: "currency",
|
|
currency: "EUR",
|
|
}).format(amount);
|
|
}
|
|
}
|
|
|
|
export function formatDate(date: string): string {
|
|
if (!date) return "No date";
|
|
|
|
const parsedDate = new Date(date);
|
|
if (isNaN(parsedDate.getTime())) {
|
|
console.warn("Invalid date string:", date);
|
|
return "Invalid date";
|
|
}
|
|
|
|
return new Intl.DateTimeFormat("en-US", {
|
|
year: "numeric",
|
|
month: "short",
|
|
day: "numeric",
|
|
}).format(parsedDate);
|
|
}
|
|
|
|
export function formatDateTime(date: string): string {
|
|
if (!date) return "No date";
|
|
|
|
const parsedDate = new Date(date);
|
|
if (isNaN(parsedDate.getTime())) {
|
|
console.warn("Invalid date string:", date);
|
|
return "Invalid date";
|
|
}
|
|
|
|
return new Intl.DateTimeFormat("en-US", {
|
|
year: "numeric",
|
|
month: "short",
|
|
day: "numeric",
|
|
hour: "2-digit",
|
|
minute: "2-digit",
|
|
}).format(parsedDate);
|
|
}
|