import type { Item } from "@/types"; import type { WidgetData } from "@/widgets/index"; import { t } from "@/i18n"; // Immich — photo/video counts and library footprint. function num(d: WidgetData | undefined, k: string): number { const v = d?.[k]; return typeof v === "number" ? v : 0; } const fmtNum = (n: number) => n >= 1_000_000 ? `${(n / 1_000_000).toFixed(1)}M` : n >= 1000 ? `${(n / 1000).toFixed(1)}k` : String(n); const fmtBytes = (b: number) => b >= 1 << 30 ? `${(b / (1 << 30)).toFixed(1)} GB` : `${(b / (1 << 20)).toFixed(0)} MB`; export function ImmichWidget({ item, data, error }: { item: Item; data: WidgetData | undefined; error: string | undefined }) { if (error) { return {item.name} — {error}; } return (