diff --git a/src/routes/event/scoring/[eventId]/+page.svelte b/src/routes/event/scoring/[eventId]/+page.svelte index f7dc4cb..6b7a8f4 100644 --- a/src/routes/event/scoring/[eventId]/+page.svelte +++ b/src/routes/event/scoring/[eventId]/+page.svelte @@ -1,6 +1,8 @@ -{#await eventDataPromise} +{#if loading}
loading
-{:then eventData} - {@const event = eventData[0]} +{:else}
- {console.log(event)}
{event.name} - {event.division} - scoring
+ + +
- {#each event.registeredPlayers as bracket, bi} + + + {#each displayBrackets as bracket, bi}
- {bracket.name} -
+ {bracket.name}
- {#each bracket.items as player} -
-
- {player.firstName} - {player.lastName} + {#each bracket.items as player, pi (player.id)} + {@const playerScores = committedScores[player.id] ?? []} + {@const validScores = playerScores.filter((s): s is number => s !== null)} + {@const avgScore = + validScores.length > 0 + ? validScores.reduce((a, b) => a + b, 0) / validScores.length + : 0} +
+
onDragStart(bi, pi)} + class:drop-target={dropTarget?.bi === bi && dropTarget?.pi === pi} + ondragover={(e) => onDragOver(e, bi, pi)} + ondrop={() => onDrop(bi, pi)} + ondragend={onDragEnd} + > +
+ {player.firstName} + {player.lastName} +
+
+ {#each Array.from({ length: numResults }, (_, i) => i) as run} + { + const current = [ + ...(pendingScores[player.id] ?? Array(numResults).fill('')) + ]; + current[run] = e.currentTarget.value; + pendingScores[player.id] = current; + }} + onblur={(e) => { + const val = parseFloat(e.currentTarget.value); + const current = [ + ...(committedScores[player.id] ?? Array(numResults).fill(null)) + ]; + current[run] = isNaN(val) ? null : val; + committedScores[player.id] = current; + }} + /> + {/each} + {#if event.resultPresets[0].averageResults == 1}{/if} +
+
+
+ avg: {avgScore.toFixed(2)}
{/each}
{/each}
+ +
-{/await} +{/if}