flow / src /lib /format.ts
mrfakename's picture
Initial Flow app
fb57ab3 verified
Raw History Blame Contribute Delete
650 Bytes
export const fmtDuration = (ms: number) => {
if (ms < 1000) return `${Math.round(ms)}ms`;
const s = ms / 1000;
if (s < 60) return `${s.toFixed(1)}s`;
const m = Math.floor(s / 60);
return `${m}m ${Math.round(s - m * 60)}s`;
};
export const timeAgo = (ts: number, now = Date.now()) => {
const s = Math.max(0, Math.round((now - ts) / 1000));
if (s < 5) return "just now";
if (s < 60) return `${s}s ago`;
const m = Math.floor(s / 60);
if (m < 60) return `${m}m ago`;
const h = Math.floor(m / 60);
return `${h}h ago`;
};
export const isMac = /Mac|iPhone|iPad/.test(navigator.platform);
export const MOD = isMac ? "⌘" : "Ctrl";