Spaces:
Paused
Paused
Download web/src/lib/utils.ts from r1000th/H0002: direct link, hf CLI and curl.
- Browser
- Download file 1.03 kB
-
https://huggingface.co/spaces/r1000th/H0002/resolve/main/web/src/lib/utils.ts
- Command line
-
hf download hf://spaces/r1000th/H0002/web/src/lib/utils.ts
-
curl -L -o utils.ts https://huggingface.co/spaces/r1000th/H0002/resolve/main/web/src/lib/utils.ts
1.03 kB
| import { type ClassValue, clsx } from "clsx"; | |
| import { twMerge } from "tailwind-merge"; | |
| export function cn(...inputs: ClassValue[]) { | |
| return twMerge(clsx(inputs)); | |
| } | |
| /** Relative time from a Unix epoch timestamp (seconds). */ | |
| export function timeAgo(ts: number): string { | |
| const delta = Date.now() / 1000 - ts; | |
| if (delta < 60) return "just now"; | |
| if (delta < 3600) return `${Math.floor(delta / 60)}m ago`; | |
| if (delta < 86400) return `${Math.floor(delta / 3600)}h ago`; | |
| if (delta < 172800) return "yesterday"; | |
| return `${Math.floor(delta / 86400)}d ago`; | |
| } | |
| /** Relative time from an ISO-8601 timestamp string. */ | |
| export function isoTimeAgo(iso: string): string { | |
| const delta = (Date.now() - new Date(iso).getTime()) / 1000; | |
| if (delta < 0 || Number.isNaN(delta)) return "unknown"; | |
| if (delta < 60) return "just now"; | |
| if (delta < 3600) return `${Math.floor(delta / 60)}m ago`; | |
| if (delta < 86400) return `${Math.floor(delta / 3600)}h ago`; | |
| return `${Math.floor(delta / 86400)}d ago`; | |
| } | |