refactor: add dynamic input height, agent sorting, and last activity tracking
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Format a date as a human-friendly relative time string
|
||||
* Examples: "just now", "5m ago", "2h ago", "3d ago", "Jan 15"
|
||||
*/
|
||||
export function formatTimeAgo(date: Date): string {
|
||||
const now = new Date();
|
||||
const diffMs = now.getTime() - date.getTime();
|
||||
const diffSec = Math.floor(diffMs / 1000);
|
||||
const diffMin = Math.floor(diffSec / 60);
|
||||
const diffHour = Math.floor(diffMin / 60);
|
||||
const diffDay = Math.floor(diffHour / 24);
|
||||
|
||||
if (diffSec < 10) {
|
||||
return "just now";
|
||||
}
|
||||
|
||||
if (diffMin < 1) {
|
||||
return `${diffSec}s ago`;
|
||||
}
|
||||
|
||||
if (diffHour < 1) {
|
||||
return `${diffMin}m ago`;
|
||||
}
|
||||
|
||||
if (diffDay < 1) {
|
||||
return `${diffHour}h ago`;
|
||||
}
|
||||
|
||||
if (diffDay < 7) {
|
||||
return `${diffDay}d ago`;
|
||||
}
|
||||
|
||||
// For older dates, show abbreviated month and day
|
||||
const month = date.toLocaleDateString("en-US", { month: "short" });
|
||||
const day = date.getDate();
|
||||
return `${month} ${day}`;
|
||||
}
|
||||
Reference in New Issue
Block a user