fix(admin): live online widget, ticket queue clarity, i18n+contract coverage
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m27s

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
SimoandCursor committed 2026-07-28 20:22:50 +02:00
1 parent 9177230dc2
commit 01126207dc
26 files changed
+1635 -114

No files matched your search

+24 -1
View File
@@ -53,6 +53,7 @@ export default async function CommandoCentrum() {
emulatorOnline,
maintenance,
activity,
onlineUsersRaw,
] = await Promise.all([
prisma.user.count({ where: { online: "1" } }).catch(() => 0),
prisma.user.count().catch(() => -1),
@@ -70,8 +71,30 @@ export default async function CommandoCentrum() {
.catch(
() => [] as Awaited<ReturnType<typeof prisma.staffActivities.findMany>>,
),
prisma.user
.findMany({
where: { online: "1" },
select: {
id: true,
username: true,
look: true,
lastOnline: true,
},
orderBy: { lastOnline: "desc" },
take: 40,
})
.catch(() => []),
]);
const onlineUsers = onlineUsersRaw.map((u) => ({
id: u.id,
username: u.username,
look: u.look,
roomId: null as number | null,
roomName: null as string | null,
lastActivity: u.lastOnline > 0 ? new Date(u.lastOnline * 1000) : new Date(),
}));
const staffIds = Array.from(
new Set(activity.map((a) => Number(a.userId))),
).filter((n) => n > 0);
@@ -134,7 +157,7 @@ export default async function CommandoCentrum() {
{/* ── Online users widget ───────────────────────────────── */}
<section className="admin-card mb-6">
<h2 className="admin-section-title">{t("onlineUsers")}</h2>
<OnlineUsersWidget users={[]} isLoading={false} />
<OnlineUsersWidget users={onlineUsers} isLoading={false} />
</section>
{/* ── Server info + diagnostics ──────────────────────────── */}