diff --git a/src/routes/hostgame/[gamePin]/+page.svelte b/src/routes/hostgame/[gamePin]/+page.svelte index 980a609..1c47d33 100644 --- a/src/routes/hostgame/[gamePin]/+page.svelte +++ b/src/routes/hostgame/[gamePin]/+page.svelte @@ -16,14 +16,23 @@ async function NewUpdate(question) { if (question[currentQuestion].playersCompelted == Totalplayers) { currentQuestion++; - await supabase - .from('games') - .update({ gameStatus: `${currentQuestion}` }) - .eq('gamePIN', Number(data.gamePin)); + + if (currentQuestion > questions.length) { + await supabase + .from('games') + .update({ gameStatus: `completed` }) + .eq('gamePIN', Number(data.gamePin)); + goto(`/results/${gamePin}`); + } else { + await supabase + .from('games') + .update({ gameStatus: `${currentQuestion}` }) + .eq('gamePIN', Number(data.gamePin)); + } + PeopleAwnseredQ = 0; } else { PeopleAwnseredQ = question[currentQuestion].playersCompelted; - } } diff --git a/src/routes/play/[gamePin]/+page.svelte b/src/routes/play/[gamePin]/+page.svelte index 3283028..a0a13c3 100644 --- a/src/routes/play/[gamePin]/+page.svelte +++ b/src/routes/play/[gamePin]/+page.svelte @@ -26,10 +26,18 @@ }, (payload) => { if (payload.new.gameStatus != gameStatus) { - gameStatus = payload.new.gameStatus; - isWait = false; - Selected = null; - currentQuestion = Number(gameStatus); + if (payload.new.questions == 'completed') { + goto(`/results/${gamePin}`, { + state: { + name + } + }); + } else { + gameStatus = payload.new.gameStatus; + isWait = false; + Selected = null; + currentQuestion = Number(gameStatus); + } } } ) diff --git a/src/routes/results/[gamePin]/+page.js b/src/routes/results/[gamePin]/+page.js new file mode 100644 index 0000000..aea5dc3 --- /dev/null +++ b/src/routes/results/[gamePin]/+page.js @@ -0,0 +1,5 @@ +export function load({ params }) { + return { + gamePin: params.gamePin + }; +} diff --git a/src/routes/results/[gamePin]/+page.svelte b/src/routes/results/[gamePin]/+page.svelte new file mode 100644 index 0000000..972b002 --- /dev/null +++ b/src/routes/results/[gamePin]/+page.svelte @@ -0,0 +1,71 @@ + + +
+
+

Leaderboard

+ + {#if players} + {#each players as player, i} + {#if name == player.name} +
+
+ {i + 1} +
+
{player.name}
+
+
+
{player.score} points
+
+
+
+ {:else}
+
+ {i + 1} +
+
{player.name}
+
+
+
+
{player.score} points
+
+ {/if} + {/each} + {/if} + + +
+