Select Git revision
Registrations.svelte
Registrations.svelte 11.90 KiB
<script lang="ts">
import { onMount } from "svelte";
import * as Models from "../../../bindings/changeme/astro/services/models";
import * as Session from "../../../bindings/changeme/astro/services/session";
import { SelectedCompetition } from "../../store";
import { GenerateRandomPlayer } from "../../../bindings/changeme/astro/services/player";
import swal from "sweetalert";
let players: (Models.Player | null)[] = [];
let filteredPlayers: (Models.Player | null)[] = [];
let competition: Models.Competition | undefined;
var playerNumber = 0;
SelectedCompetition.subscribe((value) => {
competition = value;
loadPlayers();
});
async function loadPlayers() {
if (competition === undefined) {
return;
}
Session.GetAllPlayersFromCompetition(competition.CompetitionID).then(
(result) => {
players = result;
}
);
}
onMount(async () => {
await loadPlayers();
sortBy = { key: "PlayerInitialRank", asc: true };
});
function getPlayerValueByKey(player: Models.Player | null, key: string) {
if (player === null) {
return "";
}
switch (key) {
case "PlayerInitialRank":
return player.PlayerInitialRank;
case "PlayerFirstname":
return player.PlayerFirstname;
case "PlayerLastname":
return player.PlayerLastname;
case "PlayerClub":
return player.PlayerClub;
default:
return "";
}
}
let sortBy = { key: "PlayerInitialRank", asc: true };
$: players = players.sort((a, b) => {
let aValue = getPlayerValueByKey(a, sortBy.key);
let bValue = getPlayerValueByKey(b, sortBy.key);
if (aValue === null || bValue === null) {
return 0;
}
if (aValue < bValue) {
return sortBy.asc ? -1 : 1;
}
if (aValue > bValue) {
return sortBy.asc ? 1 : -1;
}
return 0;
});