fixed that for somereson, the svelte toast when i wraped the insert game and other stuff in a svelte toast promise, it send the request twice that coused a issue so i have made it so the whole thing is in 1 promise!

This commit is contained in:
RezHackXYZ 2025-06-11 08:08:07 +05:30
parent 8ba9640398
commit 72a71d616c
No known key found for this signature in database
GPG key ID: C4C90E569C9669E2

View file

@ -12,6 +12,7 @@ export async function createGame() {
return; return;
} }
wait.v = true; wait.v = true;
const gamePin = Math.floor(Math.random() * 1000000) const gamePin = Math.floor(Math.random() * 1000000)
.toString() .toString()
.padStart(6, "0"); .padStart(6, "0");
@ -24,64 +25,60 @@ export async function createGame() {
media: q.hasMedia ? q.mediaURL : null, media: q.hasMedia ? q.mediaURL : null,
})); }));
const insertGamePromise = supabase.from("games").insert({ const gameCreationPromise = async () => {
creator: "anonymous", const { data: gameData, error: gameError } = await supabase
creationdate: new Date().toISOString(), .from("games")
status: "lobby", .insert([
gamepin: gamePin, {
}); creator: "anonymous",
creationdate: new Date().toISOString(),
status: "lobby",
gamepin: gamePin,
},
])
.select();
const { data: gameData, error: gameError } = await toast.promise(insertGamePromise, { if (gameError) {
loading: "Creating game...", throw gameError;
success: "Game created!", }
error: (err) =>
"Failed to create game: " + (err?.message || "Unknown error") + "\n\nPlease try again.",
});
if (gameError) { const { data: questionsResult, error: questionsError } = await supabase
//wait.v = false; .from("questions")
//return; .insert(questionsData)
} .select("id");
const insertQuestionsPromise = supabase.from("questions").insert(questionsData).select("id"); if (questionsError) {
throw questionsError;
}
const { data: questionsResult, error: questionsError } = await toast.promise( const answersData = [];
insertQuestionsPromise, questionsResult.forEach((question, index) => {
{ QuestionsData.v[index].options.forEach((answer) => {
loading: "Inserting questions...", answersData.push({
success: "Questions inserted!", questionid: question.id,
error: (err) => content: answer,
"Failed to insert questions: " + });
(err?.message || "Unknown error") +
"\n\nPlease try again.",
},
);
if (questionsError) {
wait.v = false;
return;
}
const answersData = [];
questionsResult.forEach((question, index) => {
QuestionsData.v[index].options.forEach((answer) => {
answersData.push({
questionid: question.id,
content: answer,
}); });
}); });
});
const insertAnswersPromise = supabase.from("answers").insert(answersData); const { error: answersError } = await supabase
.from("answers")
.insert(answersData)
.select();
const { error: answersError } = await toast.promise(insertAnswersPromise, { if (answersError) {
loading: "Inserting answers...", throw answersError;
success: "Answers inserted!", }
error: (err) => };
"Failed to insert answers: " + (err?.message || "Unknown error") + "\n\nPlease try again.",
});
if (answersError) { try {
await toast.promise(gameCreationPromise(), {
loading: "Creating game...",
success: "Game created successfully!",
error: (err) =>
"Failed to create game: " + (err?.message || "Unknown error") + "\n\nPlease try again.",
});
} catch (error) {
wait.v = false; wait.v = false;
return; return;
} }