diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index 02f850f1d21a9146e6c58a2fef0254db1d0aa01f..601422536daf087cd0f3955f094823b9b7e143b7 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -4,6 +4,7 @@ import Registrations from "./components/Seedings/Registrations.svelte"; import * as Session from "../bindings/changeme/astro/services/session"; import { Competition } from "../bindings/changeme/astro/services/models"; + import { Competitions } from "./store"; let competitions: Competition[] = []; let loading = true; @@ -14,7 +15,7 @@ }); // Listen for the "need-to-update" event - window.addEventListener("need-to-update", async () => { + Competitions.subscribe(async () => { competitions = await Session.GetCompetitions(); }); </script> diff --git a/frontend/src/common/NavBar.svelte b/frontend/src/common/NavBar.svelte index e4acc44d418382c0f93b0b6925f9b7b5dfeb7ad7..51abe0a398f1e31a5ba57df76627740b9cafc962 100644 --- a/frontend/src/common/NavBar.svelte +++ b/frontend/src/common/NavBar.svelte @@ -7,7 +7,7 @@ RemoveCompetition, } from "../../bindings/changeme/astro/services/session"; import { onMount } from "svelte"; - import { SelectedCompetition } from "../store"; + import { SelectedCompetition, Competitions } from "../store"; let competitions: Competition[] = []; @@ -15,7 +15,7 @@ competitions = await GetCompetitions(); // Emit a signal to the parent component - dispatchEvent(new CustomEvent("need-to-update", {})); + Competitions.set(competitions); } onMount(loadCompetitions); @@ -37,9 +37,9 @@ <button on:click={async () => { await RemoveCompetition(competition.CompetitionID); - loadCompetitions(); SelectedCompetition.set(undefined); + loadCompetitions(); }}>X</button > </div> diff --git a/frontend/src/components/Seedings/Registrations.svelte b/frontend/src/components/Seedings/Registrations.svelte index 497f0c867df870a90694cb5efbae8ed125c021d7..0c88cece9ed339b20c4b8a230aa299cd10ddd0a4 100644 --- a/frontend/src/components/Seedings/Registrations.svelte +++ b/frontend/src/components/Seedings/Registrations.svelte @@ -9,7 +9,6 @@ let players: (Models.Player | null)[] = []; let filteredPlayers: (Models.Player | null)[] = []; let competition: Models.Competition | undefined; - var playerNumber = 0; SelectedCompetition.subscribe((value) => { competition = value; @@ -265,7 +264,8 @@ on:click={async () => { var player = await GenerateRandomPlayer(); if (player != null) { - player.PlayerInitialRank = ++playerNumber; + player.PlayerInitialRank = + players.length + 1; } if (competition != undefined) diff --git a/frontend/src/store.ts b/frontend/src/store.ts index 6cc9cd8e4ce7b745e6c0bcbcac72ebdc703ca042..797b72406ba5162b06d06d5b1ba5f45d541fd388 100644 --- a/frontend/src/store.ts +++ b/frontend/src/store.ts @@ -1,4 +1,5 @@ import { writable } from 'svelte/store'; import type { Competition } from '../bindings/changeme/astro/services/models'; -export const SelectedCompetition = writable<Competition | undefined>(undefined); \ No newline at end of file +export const SelectedCompetition = writable<Competition | undefined>(undefined); +export const Competitions = writable<(Competition | undefined)[]>([]); \ No newline at end of file