From c1c5af73ddc5156e406eee17d88a242196928423 Mon Sep 17 00:00:00 2001 From: bytedream Date: Wed, 4 Jun 2025 00:45:23 +0200 Subject: [PATCH] sort team table --- src/app/website/index/Teams.svelte | 62 ++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 11 deletions(-) diff --git a/src/app/website/index/Teams.svelte b/src/app/website/index/Teams.svelte index 95a99d3..c6c418e 100644 --- a/src/app/website/index/Teams.svelte +++ b/src/app/website/index/Teams.svelte @@ -9,6 +9,36 @@ } const { teams, deaths }: Props = $props(); + + const entries = teams.map((team) => ({ + ...team, + memberOne: + team.memberOne.id != null + ? { + ...team.memberOne, + dead: deaths.findIndex((d) => d.deadUserId === team.memberOne.id) !== -1 + } + : undefined, + memberTwo: + team.memberTwo.id != null + ? { + ...team.memberTwo, + dead: deaths.findIndex((d) => d.deadUserId === team.memberTwo.id) !== -1 + } + : undefined, + kills: deaths.filter((d) => d.killerUserId === team.memberOne.id || d.killerUserId === team.memberTwo.id).length + })); + entries.sort((a, b) => { + const aAllowed = !!a.memberOne && !!a.memberTwo && !(a.memberOne.dead && a.memberTwo.dead); + const bAllowed = !!b.memberOne && !!b.memberTwo && !(b.memberOne.dead && b.memberTwo.dead); + if (!aAllowed && !bAllowed) { + return 0; + } else if (!aAllowed || !bAllowed) { + return (bAllowed as unknown as number) - (aAllowed as unknown as number); + } + + return b.kills - a.kills; + });
@@ -22,34 +52,44 @@ - {#each teams as team (team.id)} + {#each entries as team (team.id)}
-

+

{team.name}

- {#if !team.memberOne.id || !team.memberTwo.id} + {#if !team.memberOne || !team.memberTwo} Team unvollständig {/if} - {#if team.memberOne.id} - {@const dead = deaths.findIndex((d) => d.deadUserId === team.memberOne.id)} + {#if team.memberOne}
- head - {team.memberOne.username} + head + {team.memberOne.username}
{/if} - {#if team.memberTwo.id} - {@const dead = deaths.findIndex((d) => d.deadUserId === team.memberTwo.id)} + {#if team.memberTwo}
- head - {team.memberTwo.username} + head + {team.memberTwo.username}
{/if}