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