perf(api,frontend): index hot queries, paginate chats, fix realtime
This commit is contained in:
1 parent
9d767d2531
commit
525ce024bc
27 files changed
+831
-268
No files matched your search
@@ -1,10 +1,22 @@
|
||||
import type { PresenceSample } from "$lib/api/types";
|
||||
import { formatListDate } from "$lib/format/datetime";
|
||||
|
||||
export function isOnline(sample: PresenceSample | null): boolean {
|
||||
if (sample === null || sample.status !== "online") {
|
||||
return false;
|
||||
}
|
||||
if (sample.next_offline_date === null) {
|
||||
return false;
|
||||
}
|
||||
return new Date(sample.next_offline_date).getTime() > Date.now();
|
||||
}
|
||||
|
||||
export function formatPresence(sample: PresenceSample): string {
|
||||
switch (sample.status) {
|
||||
case "online":
|
||||
return "online";
|
||||
return isOnline(sample)
|
||||
? "online"
|
||||
: lastSeen(sample.last_online_date ?? sample.ts);
|
||||
case "recently":
|
||||
return "last seen recently";
|
||||
case "last_week":
|
||||
@@ -15,7 +27,11 @@ export function formatPresence(sample: PresenceSample): string {
|
||||
return "last seen a long time ago";
|
||||
default:
|
||||
return sample.last_online_date
|
||||
? `last seen ${formatListDate(sample.last_online_date)}`
|
||||
? lastSeen(sample.last_online_date)
|
||||
: "offline";
|
||||
}
|
||||
}
|
||||
|
||||
function lastSeen(date: string): string {
|
||||
return `last seen ${formatListDate(date)}`;
|
||||
}
|
||||
Reference in new issue
Block a user