feat: Integrate forum layout support across various components and enhance room handling logic

This commit is contained in:
2026-07-06 01:06:20 +10:00
parent d1626e3585
commit c57797ffe4
62 changed files with 6876 additions and 385 deletions

View File

@@ -0,0 +1,40 @@
/** matrixsso-style relative time (e.g. "4m", "3h", "now"). */
export function formatForumTimeAgo(timestamp: number): string {
const ms = timestamp;
if (!Number.isFinite(ms) || ms <= 0) {
return 'now';
}
const seconds = Math.floor((Date.now() - ms) / 1000);
if (seconds < 45) {
return 'now';
}
const minutes = Math.floor(seconds / 60);
if (minutes < 60) {
return `${minutes}m`;
}
const hours = Math.floor(minutes / 60);
if (hours < 24) {
return `${hours}h`;
}
const days = Math.floor(hours / 24);
if (days < 7) {
return `${days}d`;
}
const weeks = Math.floor(days / 7);
if (weeks < 5) {
return `${weeks}w`;
}
const months = Math.floor(days / 30);
if (months < 12) {
return `${months}mo`;
}
const years = Math.floor(days / 365);
return `${years}y`;
}