import { derived, writable } from 'svelte/store'; function createTeamsStore() { const { subscribe, set, update } = writable({teams:{}, teams_count: 0, rank: []}); return { subscribe, update: (res_teams, cb=null) => { if (res_teams.status === 200) { res_teams.json().then((teams) => { const teams_count = Object.keys(teams).length const rank = []; for (const tid in teams) { teams[tid].id = Number(tid); rank.push(teams[tid]); } rank.sort((a, b) => (a.rank > b.rank ? 1 : (a.rank == b.rank ? 0 : -1))); update((t) => (Object.assign(t, {teams, teams_count, rank}))); if (cb) { cb(teams, teams_count, rank); } }); } }, }; } export const teamsStore = createTeamsStore(); export const teams = derived( teamsStore, ($teamsStore) => ($teamsStore.teams) ); export const teams_count = derived( teamsStore, ($teamsStore) => ($teamsStore.teams_count) ); export const rank = derived( teamsStore, ($teamsStore) => ($teamsStore.rank) );