From 271427ba173766dd84043d511c45c315fdf86dfe Mon Sep 17 00:00:00 2001 From: ForkBench <robinvandemerghel@protonmail.com> Date: Fri, 12 Jul 2024 11:25:49 +0200 Subject: [PATCH] Removing event for new competitions, replacing it with subscriptions --- frontend/src/App.svelte | 3 ++- frontend/src/common/NavBar.svelte | 6 +++--- frontend/src/components/Seedings/Registrations.svelte | 4 ++-- frontend/src/store.ts | 3 ++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index 02f850f..6014225 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 e4acc44..51abe0a 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 497f0c8..0c88cec 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 6cc9cd8..797b724 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 -- GitLab