Midday / packages /utils /src /format.ts
Jules
Final deployment with all fixes and verified content
c09f67c
import { format, isSameYear, parseISO } from "date-fns";
type FormatAmountParams = {
currency: string;
amount: number;
locale?: string;
minimumFractionDigits?: number;
maximumFractionDigits?: number;
};
export function formatAmount({
currency,
amount,
locale = "en-US",
minimumFractionDigits,
maximumFractionDigits,
}: FormatAmountParams) {
if (!currency) {
return;
}
return Intl.NumberFormat(locale, {
style: "currency",
currency,
minimumFractionDigits,
maximumFractionDigits,
}).format(amount);
}
export function formatDate(
date: string,
dateFormat?: string | null,
checkYear = true,
) {
const parsedDate = parseISO(date);
if (checkYear && isSameYear(new Date(), parsedDate)) {
return format(parsedDate, "MMM d");
}
return format(parsedDate, dateFormat ?? "P");
}
export function getInitials(value: string) {
const formatted = value.toUpperCase().replace(/[\s.-]/g, "");
if (formatted.split(" ").length > 1) {
return `${formatted.charAt(0)}${formatted.charAt(1)}`;
}
if (value.length > 1) {
return formatted.charAt(0) + formatted.charAt(1);
}
return formatted.charAt(0);
}