you can now UPLAD IMAGES AND VIDS!!! in the quetions of kahootlone/quizzlet

This commit is contained in:
RezHackXYZ 2025-05-31 18:13:50 +05:30
parent 5f53e923d0
commit de7e3da139
29 changed files with 158 additions and 96 deletions

View file

@ -1,59 +1,59 @@
export let AnswersSymbolAndColorScheme = [ export let AnswersSymbolAndColorScheme = [
{ {
color: "#6E0000", Color: "#6E0000",
selectedColor: "#AA2222", SelectedColor: "#AA2222",
hoverBorderColor: "#FF5D5D", HoverBorderColor: "#FF5D5D",
selectedBorderColor: "#FF0000", SelectedBorderColor: "#FF0000",
symbol: "nf-md-triangle", Symbol: "nf-md-triangle",
}, },
{ {
color: "#00316E", Color: "#00316E",
selectedColor: "#2255AA", SelectedColor: "#2255AA",
hoverBorderColor: "#5D9CFF", HoverBorderColor: "#5D9CFF",
selectedBorderColor: "#0000FF", SelectedBorderColor: "#0000FF",
symbol: "nf-fa-square", Symbol: "nf-fa-square",
}, },
{ {
color: "#6E6E00", Color: "#6E6E00",
selectedColor: "#AAAA22", SelectedColor: "#AAAA22",
hoverBorderColor: "#FFFF5D", HoverBorderColor: "#FFFF5D",
selectedBorderColor: "#DDFF00", SelectedBorderColor: "#DDFF00",
symbol: "nf-fa-circle", Symbol: "nf-fa-circle",
}, },
{ {
color: "#006E00", Color: "#006E00",
selectedColor: "#22AA22", SelectedColor: "#22AA22",
hoverBorderColor: "#5DFF5D", HoverBorderColor: "#5DFF5D",
selectedBorderColor: "#00FF00", SelectedBorderColor: "#00FF00",
symbol: "nf-fa-diamond", Symbol: "nf-fa-diamond",
}, },
{ {
color: "#4B0082", Color: "#4B0082",
selectedColor: "#7F33B5", SelectedColor: "#7F33B5",
hoverBorderColor: "#B066FF", HoverBorderColor: "#B066FF",
selectedBorderColor: "#9932CC", SelectedBorderColor: "#9932CC",
symbol: "nf-md-star", Symbol: "nf-md-star",
}, },
{ {
color: "#FF8C00", Color: "#FF8C00",
selectedColor: "#FFB347", SelectedColor: "#FFB347",
hoverBorderColor: "#FFD580", HoverBorderColor: "#FFD580",
selectedBorderColor: "#FFA500", SelectedBorderColor: "#FFA500",
symbol: "nf-md-hexagon", Symbol: "nf-md-hexagon",
}, },
{ {
color: "#008B8B", Color: "#008B8B",
selectedColor: "#33CCCC", SelectedColor: "#33CCCC",
hoverBorderColor: "#66FFFF", HoverBorderColor: "#66FFFF",
selectedBorderColor: "#00CED1", SelectedBorderColor: "#00CED1",
symbol: "nf-md-octagon", Symbol: "nf-md-octagon",
}, },
{ {
color: "#8B4513", Color: "#8B4513",
selectedColor: "#CD853F", SelectedColor: "#CD853F",
hoverBorderColor: "#DEB887", HoverBorderColor: "#DEB887",
selectedBorderColor: "#A0522D", SelectedBorderColor: "#A0522D",
symbol: "nf-md-heart", Symbol: "nf-md-heart",
}, },
]; ];
@ -129,5 +129,5 @@ JUST PROVIDE THE JSON AND NOTHING ELSE.
The user's Question that they want to generate options for is: The user's Question that they want to generate options for is:
[question] [question]
` `,
}; };

View file

@ -0,0 +1 @@
export const ssr = false;

View file

@ -53,6 +53,13 @@
{/each} {/each}
</div> </div>
<GenerateOptionsUsingAI {index} /> <GenerateOptionsUsingAI {index} />
<input type="file" onchange={() => UpLoadFiles(files[0])} bind:files accept="image/*,video/*" /> <input
type="file"
onchange={async () => {
questions.v[index].media = await UpLoadFiles(files[0]);
}}
bind:files
accept="image/*,video/*"
/>
</div> </div>
</div> </div>

View file

@ -1,4 +1,6 @@
import { DefaultQuestions } from "$lib/config.js"; import { DefaultQuestions } from "$lib/config.js";
import toast from "svelte-5-french-toast";
export let Wait = $state({ v: false }); export let Wait = $state({ v: false });
export let questions = $state({ export let questions = $state({
@ -29,6 +31,6 @@ export function DeleteQuestion(index) {
questions.v.splice(index, 1); questions.v.splice(index, 1);
} }
} else { } else {
alert("You need at least one question."); toast.error("You need at least one question.");
} }
} }

View file

@ -1,5 +1,6 @@
import { questions } from "./GameCreateData.svelte.js"; import { questions } from "./GameCreateData.svelte.js";
import { AiPrompts } from "$lib/config.js"; import { AiPrompts } from "$lib/config.js";
import toast from "svelte-5-french-toast";
export function GenerateOptionsUsingAI(index) { export function GenerateOptionsUsingAI(index) {
fetch("https://ai.hackclub.com/chat/completions", { fetch("https://ai.hackclub.com/chat/completions", {
@ -26,9 +27,9 @@ export function GenerateOptionsUsingAI(index) {
questions.v[index].name = question; questions.v[index].name = question;
}) })
.catch((error) => { .catch((error) => {
alert("Error:" + error); toast.error("Error:" + error);
return; return;
}); });
alert("added!"); toast.success("added!");
} }

View file

@ -1,5 +1,6 @@
import { questions } from "./GameCreateData.svelte.js"; import { questions } from "./GameCreateData.svelte.js";
import { AiPrompts } from "$lib/config.js"; import { AiPrompts } from "$lib/config.js";
import toast from "svelte-5-french-toast";
export function GenerateQuestionsUsingAI() { export function GenerateQuestionsUsingAI() {
let topic = window.prompt( let topic = window.prompt(
@ -30,9 +31,9 @@ export function GenerateQuestionsUsingAI() {
questions.v = JSON.parse(data.choices[0].message.content); questions.v = JSON.parse(data.choices[0].message.content);
}) })
.catch((error) => { .catch((error) => {
alert("Error:" + error); toast.error("Error:" + error);
return; return;
}); });
alert("added!"); toast.success("added!");
} }

View file

@ -1,4 +1,6 @@
import { supabase } from "$lib/supabase"; import { supabase } from "$lib/supabase";
import toast from "svelte-5-french-toast";
export async function createGame(questions, gamePin) { export async function createGame(questions, gamePin) {
const { data: gameData, error: gameError } = await supabase.from("games").insert({ const { data: gameData, error: gameError } = await supabase.from("games").insert({
@ -9,7 +11,7 @@ export async function createGame(questions, gamePin) {
}); });
if (gameError) { if (gameError) {
alert("Failed to create game: " + gameError.message + "\n\nPlease try again."); toast.error("Failed to create game: " + gameError.message + "\n\nPlease try again.");
return; return;
} }
@ -18,6 +20,7 @@ export async function createGame(questions, gamePin) {
gameid: gamePin, gameid: gamePin,
questionstext: q.name, questionstext: q.name,
correctanswer: q.correctAnswer, correctanswer: q.correctAnswer,
media: q.media || null,
})); }));
const { data: questionsResult, error: questionsError } = await supabase const { data: questionsResult, error: questionsError } = await supabase
@ -26,7 +29,7 @@ export async function createGame(questions, gamePin) {
.select("id"); .select("id");
if (questionsError) { if (questionsError) {
alert("Failed to insert questions: " + questionsError.message + "\n\nPlease try again."); toast.error("Failed to insert questions: " + questionsError.message + "\n\nPlease try again.");
return; return;
} }
@ -43,9 +46,9 @@ export async function createGame(questions, gamePin) {
const { error: answersError } = await supabase.from("answers").insert(answersData); const { error: answersError } = await supabase.from("answers").insert(answersData);
if (answersError) { if (answersError) {
alert("Failed to insert answers: " + answersError.message + "\n\nPlease try again."); toast.error("Failed to insert answers: " + answersError.message + "\n\nPlease try again.");
return; return;
} }
window.location.href = `/host?gamepin=${gamePin}` ; window.location.href = `/kahootclone/host?gamepin=${gamePin}`;
} }

View file

@ -1,11 +1,12 @@
import { createGame } from "./InsertGameInDB.js"; import { createGame } from "./InsertGameInDB.js";
import { questions,Wait } from "./GameCreateData.svelte.js"; import { questions,Wait } from "./GameCreateData.svelte.js";
import toast from "svelte-5-french-toast";
export async function startGame() { export async function startGame() {
if (questions.v.some((q) => q.name === "")) return alert("Please fill all questions"); if (questions.v.some((q) => q.name === "")) return toast.error("Please fill all questions");
if (questions.v.some((q) => q.answers.some((a) => a === ""))) return alert("Fill all options"); if (questions.v.some((q) => q.answers.some((a) => a === ""))) return toast.error("Fill all options");
if (questions.v.some((q) => q.correctAnswer === undefined)) if (questions.v.some((q) => q.correctAnswer === undefined))
return alert("Select correct answers"); return toast.error("Select correct answers");
const gamePin = Math.floor(Math.random() * 1000000) const gamePin = Math.floor(Math.random() * 1000000)
.toString() .toString()

View file

@ -27,5 +27,5 @@ export async function UpLoadFiles(file) {
// Retrieve public URL // Retrieve public URL
const { data: publicData } = supabase.storage.from("useruploadedcontent").getPublicUrl(filePath); const { data: publicData } = supabase.storage.from("useruploadedcontent").getPublicUrl(filePath);
toast.success(publicData.publicUrl); return publicData.publicUrl;
} }

View file

@ -2,18 +2,20 @@
import PlayingDisplay from "./components/DuringGame/display.svelte"; import PlayingDisplay from "./components/DuringGame/display.svelte";
import LobbyDisplay from "./components/lobby/display.svelte"; import LobbyDisplay from "./components/lobby/display.svelte";
import { Status } from "./logic/HostsData.svelte.js"; import { Status,gamePin } from "./logic/HostsData.svelte.js";
import { AutoUpdatePlayersList } from "./logic/UpdatePlayersList.js"; import { AutoUpdatePlayersList } from "./logic/UpdatePlayersList.js";
import { GetCurrentPlayers } from "./logic/GetCurrentPlayers.js"; import { GetCurrentPlayers } from "./logic/GetCurrentPlayers.js";
import { onMount } from "svelte"; import { onMount } from "svelte";
let gamePin;
onMount(() => { onMount(() => {
gamePin = new URLSearchParams(new URL(window.location.href).search).get("gamepin"); gamePin.v = new URLSearchParams(new URL(window.location.href).search).get("gamepin");
GetCurrentPlayers(gamePin);
AutoUpdatePlayersList(gamePin);
console.log("Game Pin: " + gamePin.v);
GetCurrentPlayers(gamePin.v);
AutoUpdatePlayersList(gamePin.v);
}); });
</script> </script>
@ -22,7 +24,7 @@
class="flex max-w-[700px] flex-col items-center justify-center gap-1 rounded-lg bg-gray-900 p-8 shadow-lg" class="flex max-w-[700px] flex-col items-center justify-center gap-1 rounded-lg bg-gray-900 p-8 shadow-lg"
> >
{#if Status.v == "lobby"} {#if Status.v == "lobby"}
<LobbyDisplay {gamePin} /> <LobbyDisplay/>
{:else if Status.v == "started"} {:else if Status.v == "started"}
<PlayingDisplay /> <PlayingDisplay />
{/if} {/if}

View file

@ -1,5 +1,5 @@
<script> <script>
import { PeopleAwnseredQ, Totalplayers } from "./../../logic/HostsData.svelte.js"; import { PeopleAwnseredQ, Totalplayers } from "../../logic/HostsData.svelte.js";
</script> </script>
<div class="mt-2 mb-3 flex w-full flex-col rounded-2xl border-2 border-green-400 p-2"> <div class="mt-2 mb-3 flex w-full flex-col rounded-2xl border-2 border-green-400 p-2">

View file

@ -1,5 +1,5 @@
<script> <script>
import { currentQuestion, totalQuetions } from "./../../../logic/HostsData.svelte.js"; import { currentQuestion, totalQuetions } from "../../../logic/HostsData.svelte.js";
</script> </script>
<div class="mt-5 mb-2 flex w-full items-center justify-center gap-3"> <div class="mt-5 mb-2 flex w-full items-center justify-center gap-3">

View file

@ -6,4 +6,6 @@
<ProgressBar /> <ProgressBar />
<Question /> <Question />
<Awnsers /> <Awnsers />

View file

@ -5,3 +5,20 @@
<h1 class="m-[0] text-center text-5xl"> <h1 class="m-[0] text-center text-5xl">
Q{currentQuestion.v + 1}. {CurrentQuestionDetails.v.question} Q{currentQuestion.v + 1}. {CurrentQuestionDetails.v.question}
</h1> </h1>
{#if CurrentQuestionDetails.v.media != null}
<div class="mb-3 flex items-center justify-center">
{#if CurrentQuestionDetails.v.media.match(/\.(mp4|webm|ogg|mov|avi|mkv)$/i)}
<video
src={CurrentQuestionDetails.v.media}
class="max-h-[300px] max-w-[500px] rounded-lg"
controls
/>
{:else}
<img
src={CurrentQuestionDetails.v.media}
class="max-h-[300px] max-w-[500px] rounded-lg"
alt="Question media"
/>
{/if}
</div>
{/if}

View file

@ -2,14 +2,15 @@
import StartGame from "./buttons/startGame.svelte"; import StartGame from "./buttons/startGame.svelte";
import Players from "./PlayersGUI/players.svelte"; import Players from "./PlayersGUI/players.svelte";
let props = $props(); import { gamePin } from "../../logic/HostsData.svelte.js";
let gamePin = props.gamePin;
console.log("Game Pin: " + gamePin.v);
</script> </script>
<h1 class="m-[0] text-9xl">HOSTING</h1> <h1 class="m-[0] text-9xl">HOSTING</h1>
<h1 class="m-[0] text-7xl">Game Pin:</h1> <h1 class="m-[0] text-7xl">Game Pin:</h1>
<h1 class="m-[0] rounded-2xl bg-gray-700 pt-1.5 pr-2 pb-0 pl-2 font-mono text-5xl"> <h1 class="m-[0] rounded-2xl bg-gray-700 pt-1.5 pr-2 pb-0 pl-2 font-mono text-5xl">
{gamePin} {gamePin.v}
</h1> </h1>
<Players /> <Players />
<StartGame {gamePin} /> <StartGame gamePin={gamePin.v} />

View file

@ -3,5 +3,5 @@ import { supabase } from "$lib/supabase.js";
export async function GameOver(GamePin) { export async function GameOver(GamePin) {
await supabase.from("games").update({ status: `completed` }).eq("gamepin", GamePin); await supabase.from("games").update({ status: `completed` }).eq("gamepin", GamePin);
window.location.replace("/results?gamepin=" + GamePin + "&playerID=host-null"); window.location.replace("/kahootclone/results?gamepin=" + GamePin + "&playerID=host-null");
} }

View file

@ -14,5 +14,5 @@ export async function GetCurrentPlayers(gamePin) {
return; return;
} }
players.v = data ? data.map(player => player.playername) : []; players.v = data ? data.map((player) => player.playername) : [];
} }

View file

@ -8,3 +8,5 @@ export let PeopleAwnseredQ = $state({ v: 0 });
export let Totalplayers = $state({ v: 3 }); export let Totalplayers = $state({ v: 3 });
export let CurrentQuestionDetails = $state({ v: {} }); export let CurrentQuestionDetails = $state({ v: {} });
export let gamePin = $state({ v: "" });

View file

@ -32,7 +32,7 @@ export async function WaitForAwnser(questionid, gamePin) {
const { data: questionsData } = await supabase const { data: questionsData } = await supabase
.from("questions") .from("questions")
.select("id,questionstext,correctanswer") .select("*")
.eq("gameid", Number(gamePin)) .eq("gameid", Number(gamePin))
.order("id", { ascending: true }); .order("id", { ascending: true });
@ -47,5 +47,6 @@ export async function WaitForAwnser(questionid, gamePin) {
correctAnswer: questionsData[currentQuestion.v].correctanswer, correctAnswer: questionsData[currentQuestion.v].correctanswer,
answers: answers.map((answer) => answer.content), answers: answers.map((answer) => answer.content),
questionid: questionsData[currentQuestion.v].id, questionid: questionsData[currentQuestion.v].id,
media: questionsData[currentQuestion.v].media || null,
}; };
} }

View file

@ -1,18 +1,15 @@
import { supabase } from "$lib/supabase.js"; import { supabase } from "$lib/supabase.js";
import { LobbyConnection } from "./UpdatePlayersList.js"; import { LobbyConnection } from "./UpdatePlayersList.js";
import { import { questions, Status, Totalplayers, totalQuetions, players } from "./HostsData.svelte.js";
questions,
Status,
Totalplayers,
totalQuetions,
players,
} from "./HostsData.svelte.js";
import { WaitForAwnser } from "./WaitForAwnser.js"; import { WaitForAwnser } from "./WaitForAwnser.js";
import toast from "svelte-5-french-toast";
export async function startGame(gamePin) { export async function startGame(gamePin) {
if (players.v.length == 0) { if (players.v.length == 0) {
alert("you need at least 1 person to start the game!"); toast.error("you need at least 1 person to start the game!");
return; return;
} }
await supabase.removeChannel(LobbyConnection); await supabase.removeChannel(LobbyConnection);

View file

@ -1,7 +1,9 @@
<script> <script>
import toast from "svelte-5-french-toast";
import { joinGame } from "./logic/joinGame.js"; import { joinGame } from "./logic/joinGame.js";
import { Checking } from "./logic/JoinGameData.svelte.js"; import { Checking } from "./logic/JoinGameData.svelte.js";
let pin; let pin;
let name; let name;
</script> </script>
@ -35,7 +37,7 @@
class="mt-2 cursor-pointer rounded-full bg-green-700 p-2 transition-all hover:scale-110 hover:-rotate-10" class="mt-2 cursor-pointer rounded-full bg-green-700 p-2 transition-all hover:scale-110 hover:-rotate-10"
on:click={() => { on:click={() => {
if (!pin || !name) { if (!pin || !name) {
alert("Please fill in the game pin and your name."); toast.error("Please fill in the game pin and your name.");
} else { } else {
joinGame(pin, name); joinGame(pin, name);
} }

View file

@ -1,4 +1,6 @@
import { supabase } from "$lib/supabase"; import { supabase } from "$lib/supabase";
import toast from "svelte-5-french-toast";
export async function addPlayer(name, gamePin) { export async function addPlayer(name, gamePin) {
const { data, error } = await supabase const { data, error } = await supabase
@ -11,7 +13,7 @@ export async function addPlayer(name, gamePin) {
.select("id"); .select("id");
if (error) { if (error) {
alert("Failed to join game: " + error.message + "\n\nPlease try again."); toast.error("Failed to join game: " + error.message + "\n\nPlease try again.");
return; return;
} }

View file

@ -1,12 +1,14 @@
import { addPlayer } from "./InsertPlayerInDB.js"; import { addPlayer } from "./InsertPlayerInDB.js";
import { validateGamePin } from "./validateGamePin.js"; import { validateGamePin } from "./validateGamePin.js";
import { Checking } from "./JoinGameData.svelte.js"; import { Checking } from "./JoinGameData.svelte.js";
import toast from "svelte-5-french-toast";
export async function joinGame(pin, name) { export async function joinGame(pin, name) {
Checking.v = true; Checking.v = true;
if (!(await validateGamePin(pin))) { if (!(await validateGamePin(pin))) {
alert("Invalid game pin. Please try again."); toast.error("Invalid game pin. Please try again.");
Checking.v = false; Checking.v = false;
return; return;
} }

View file

@ -26,7 +26,7 @@
--border-color-checked: {AnswersSymbolAndColorScheme[index].SelectedBorderColor}; --border-color-checked: {AnswersSymbolAndColorScheme[index].SelectedBorderColor};
--border-color-hover: {AnswersSymbolAndColorScheme[index].HoverBorderColor}; --border-color-hover: {AnswersSymbolAndColorScheme[index].HoverBorderColor};
" "
class="w-full cursor-pointer rounded-lg border-[5px] border-[var(--border-color)] bg-[var(--bg-color)] pt-1 pr-2 pb-1 pl-2 text-center text-3xl transition-all peer-checked:border-[var(--border-color-checked)] peer-checked:border-[var(--border-color-checked)] peer-checked:bg-[var(--bg-color-checked)] hover:border-[var(--border-color-hover)]" class="w-full cursor-pointer rounded-lg border-[5px] border-[var(--border-color)] bg-[var(--bg-color)] pt-1 pr-2 pb-1 pl-2 text-center text-3xl transition-all peer-checked:border-[var(--border-color-checked)] peer-checked:bg-[var(--bg-color-checked)] hover:border-[var(--border-color-hover)]"
> >
<i class="nf {AnswersSymbolAndColorScheme[index].Symbol}"></i> <i class="nf {AnswersSymbolAndColorScheme[index].Symbol}"></i>
{answer} {answer}

View file

@ -5,7 +5,7 @@
import SelectFirst from "./buttons/SelectFirst.svelte"; import SelectFirst from "./buttons/SelectFirst.svelte";
import Wait from "./text/wait.svelte"; import Wait from "./text/wait.svelte";
import SubmitAwnser from "./buttons/submitAwnser.svelte"; import SubmitAwnser from "./buttons/submitAwnser.svelte";
import { CurrentQuestion, Selected } from "../../logic/HostsData.svelte.js"; import { CurrentQuestion, Selected, questions } from "../../logic/HostsData.svelte.js";
</script> </script>
<div class="bg-grey-900 flex h-full items-center justify-center"> <div class="bg-grey-900 flex h-full items-center justify-center">
@ -15,6 +15,25 @@
<ProgressBar /> <ProgressBar />
{#if CurrentQuestion.v != null} {#if CurrentQuestion.v != null}
<Question /> <Question />
{#if questions.v.media != null}
<div class="mb-3 flex items-center justify-center">
{#if questions.v.media.match(/\.(mp4|webm|ogg|mov|avi|mkv)$/i)}
<video
src={questions.v.media}
class="max-h-[300px] max-w-[500px] rounded-lg"
controls
/>
{:else}
<img
src={questions.v.media}
class="max-h-[300px] max-w-[500px] rounded-lg"
alt="Question media"
/>
{/if}
</div>
{/if}
<Awnsers /> <Awnsers />
{#if Selected.v != null} {#if Selected.v != null}
<SubmitAwnser /> <SubmitAwnser />

View file

@ -11,7 +11,7 @@ import { supabase } from "$lib/supabase.js";
export async function NewStatus(NewStatus, gamePin) { export async function NewStatus(NewStatus, gamePin) {
if (NewStatus == "completed") { if (NewStatus == "completed") {
window.location.replace("/results?gamepin" + gamePin + "&playerID=" + playerid.v); window.location.replace("/kahootclone/results?gamepin=" + gamePin + "&playerID=" + playerid.v);
return; return;
} }
@ -20,7 +20,7 @@ export async function NewStatus(NewStatus, gamePin) {
const { data: questionsData } = await supabase const { data: questionsData } = await supabase
.from("questions") .from("questions")
.select("id,questionstext,correctanswer") .select("*")
.eq("gameid", Number(gamePin)) .eq("gameid", Number(gamePin))
.order("id", { ascending: true }); .order("id", { ascending: true });
@ -37,6 +37,7 @@ export async function NewStatus(NewStatus, gamePin) {
correctAnswer: questionsData[CurrentQuestion.v].correctanswer, correctAnswer: questionsData[CurrentQuestion.v].correctanswer,
answers: answers.map((answer) => answer.content), answers: answers.map((answer) => answer.content),
questionid: questionsData[CurrentQuestion.v].id, questionid: questionsData[CurrentQuestion.v].id,
media: questionsData[CurrentQuestion.v].media || null,
}; };
isWait.v = false; isWait.v = false;

View file

@ -2,8 +2,7 @@
import Selector from "./selector.svelte"; import Selector from "./selector.svelte";
import TopDisplay from "./TopDisplay.svelte"; import TopDisplay from "./TopDisplay.svelte";
import EditNameOfStudents from "./EditNameOfStudents.svelte"; import EditNameOfStudents from "./EditNameOfStudents.svelte";
//import {ShowAlert} from "../+page.svelte"; import toast from "svelte-5-french-toast";
export let RandomNamesState = $state({ export let RandomNamesState = $state({
NotSelectedYet: [], NotSelectedYet: [],
Selected: [], Selected: [],
@ -25,7 +24,7 @@
]; ];
RandomNamesState.NotSelectedYet.splice(randomIndex, 1); RandomNamesState.NotSelectedYet.splice(randomIndex, 1);
} else { } else {
//ShowAlert("All students have been selected.", "warning"); toast.error("All students have been selected.", "warning");
} }
} }

View file

@ -86,7 +86,6 @@ export function newGame() {
} }
function GameWin() { function GameWin() {
//ShowAlert("You win!", "success");
toast.success("You win!"); toast.success("You win!");
data.value[WordLegnth.v].push(words.v.length); data.value[WordLegnth.v].push(words.v.length);
@ -165,7 +164,7 @@ export function ButtonPressed(key) {
SendWord(CurrentWord.v); SendWord(CurrentWord.v);
CurrentWord.v = []; CurrentWord.v = [];
} else { } else {
//ShowAlert("Not a valid word", "error"); toast.error("Not a valid word");
} }
} }
return; return;