/
outbreak
/
kilocode
Обзор
Документация
Войти
/
outbreak
/
kilocode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
webview-ui/src/utils/format.ts
75 строк
2 KB
roomote[bot]
feat: clean up task list in HistoryPreview and History components (#6687)
05 авг 2025, 21:05
Не верифицирован
05 авг 2025, 21:05
24584f5
Код
Авторство
О чём код?
import i18next from "i18next" export function formatLargeNumber(num: number): string { if (num >= 1e9) { return (num / 1e9).toFixed(1) + i18next.t("common:number_format.billion_suffix") } if (num >= 1e6) { return (num / 1e6).toFixed(1) + i18next.t("common:number_format.million_suffix") } if (num >= 1e3) { return (num / 1e3).toFixed(1) + i18next.t("common:number_format.thousand_suffix") } return num.toString() } export const formatDate = (timestamp: number) => { const date = new Date(timestamp) const locale = i18next.language || "en" return date.toLocaleString(locale, { month: "long", day: "numeric", hour: "numeric", minute: "2-digit", hour12: true, }) } export const formatTimeAgo = (timestamp: number) => { const now = Date.now() const diff = now - timestamp const seconds = Math.floor(diff / 1000) const minutes = Math.floor(seconds / 60) const hours = Math.floor(minutes / 60) const days = Math.floor(hours / 24) const weeks = Math.floor(days / 7) const months = Math.floor(days / 30) const years = Math.floor(days / 365) if (years > 0) { return years === 1 ? i18next.t("common:time_ago.year_ago") : i18next.t("common:time_ago.years_ago", { count: years }) } if (months > 0) { return months === 1 ? i18next.t("common:time_ago.month_ago") : i18next.t("common:time_ago.months_ago", { count: months }) } if (weeks > 0) { return weeks === 1 ? i18next.t("common:time_ago.week_ago") : i18next.t("common:time_ago.weeks_ago", { count: weeks }) } if (days > 0) { return days === 1 ? i18next.t("common:time_ago.day_ago") : i18next.t("common:time_ago.days_ago", { count: days }) } if (hours > 0) { return hours === 1 ? i18next.t("common:time_ago.hour_ago") : i18next.t("common:time_ago.hours_ago", { count: hours }) } if (minutes > 0) { return minutes === 1 ? i18next.t("common:time_ago.minute_ago") : i18next.t("common:time_ago.minutes_ago", { count: minutes }) } if (seconds > 30) { return i18next.t("common:time_ago.seconds_ago", { count: seconds }) } return i18next.t("common:time_ago.just_now") }