export function formatRelativeOrDate(tsSec?: number, locale?: string) {
    if (!tsSec) return "—";
    const now = Date.now();
    const ts = tsSec * 1000;
    const diffMs = ts - now;
  
    const rtf = new Intl.RelativeTimeFormat(locale || undefined, { numeric: "auto" });
  
    const absMs = Math.abs(diffMs);
    const oneMin = 60 * 1000;
    const oneHour = 60 * oneMin;
    const oneDay = 24 * oneHour;
  
    // Match Woo-ish thresholds
    if (absMs < oneMin) {
      const secs = Math.round(diffMs / 1000);
      return rtf.format(secs, "second");
    }
    if (absMs < oneHour) {
      const mins = Math.round(diffMs / oneMin);
      return rtf.format(mins, "minute");
    }
    if (absMs < oneDay) {
      const hours = Math.round(diffMs / oneHour);
      return rtf.format(hours, "hour");
    }
    // Fallback to a readable local datetime
    const d = new Date(ts);
    return d.toLocaleString(undefined, {
      year: "numeric",
      month: "short",
      day: "2-digit",
      hour: "2-digit",
      minute: "2-digit",
    });
}