From e5f253ebc10c02ffdeea0354b137c79cfff245e6 Mon Sep 17 00:00:00 2001 From: bytedream Date: Tue, 24 Jun 2025 00:00:05 +0200 Subject: [PATCH] show kill details on kill number hover --- src/app/website/index/Teams.svelte | 41 ++++++++++++++++-------------- src/db/schema/death.ts | 25 ++++++++++++++---- 2 files changed, 42 insertions(+), 24 deletions(-) diff --git a/src/app/website/index/Teams.svelte b/src/app/website/index/Teams.svelte index 3b71631..fd481e1 100644 --- a/src/app/website/index/Teams.svelte +++ b/src/app/website/index/Teams.svelte @@ -1,10 +1,10 @@ @@ -54,7 +54,7 @@

{team.name} @@ -65,34 +65,37 @@ {/if} -
+
{#if team.memberOne.id != null} head {/if} {team.memberOne.username}
-
+
{#if team.memberTwo.id != null} head {/if} {team.memberTwo.username}
- - {deaths.filter( - (death) => death.killerUserId === team.memberOne.id || death.killerUserId === team.memberTwo.id - ).length} + + + {#each team.kills as kill, i (i)} +

{kill.killer!.username} 🔪 {kill.killed.username}

+ {/each} +
+ {team.kills.length}
diff --git a/src/db/schema/death.ts b/src/db/schema/death.ts index 747459c..da847a5 100644 --- a/src/db/schema/death.ts +++ b/src/db/schema/death.ts @@ -1,4 +1,4 @@ -import { int, mysqlTable, varchar } from 'drizzle-orm/mysql-core'; +import { alias, int, mysqlTable, varchar } from 'drizzle-orm/mysql-core'; import type { MySql2Database } from 'drizzle-orm/mysql2'; import { user } from './user.ts'; import { eq } from 'drizzle-orm'; @@ -24,7 +24,6 @@ export type GetDeathByUserIdReq = { }; export type GetDeathsReq = {}; -export type GetDeathsRes = (typeof death.$inferSelect)[]; export async function addDeath(db: Database, values: AddDeathReq) { await db.insert(death).values(values); @@ -36,7 +35,23 @@ export async function getDeathByUserId(db: Database, values: GetDeathByUserIdReq }); } -// eslint-disable-next-line @typescript-eslint/no-unused-vars -export async function getDeaths(db: Database, values: GetDeathsReq): Promise { - return db.query.death.findMany(); +export async function getDeaths(db: Database, _values: GetDeathsReq) { + const killed = alias(user, 'killed'); + const killer = alias(user, 'killer'); + + return db + .select({ + message: death.message, + killed: { + id: killed.id, + username: killed.username + }, + killer: { + id: killer.id, + username: killer.username + } + }) + .from(death) + .innerJoin(killed, eq(death.deadUserId, killed.id)) + .leftJoin(killer, eq(death.killerUserId, killer.id)); }