From dcf1fed0c3143cd8791d095da858b592857e36cf Mon Sep 17 00:00:00 2001 From: RezHackXYZ Date: Thu, 12 Jun 2025 17:25:26 +0530 Subject: [PATCH] now you can learn from multiple decks, will implement editing the deaks soon! --- src/routes/flashcards/+page.svelte | 55 +++++++++++++++++++++--- src/routes/flashcards/logic.svelte.js | 6 +-- src/routes/flashcards/tempelateDeck.json | 27 ++++++++++-- src/routes/nav.svelte | 4 +- 4 files changed, 78 insertions(+), 14 deletions(-) diff --git a/src/routes/flashcards/+page.svelte b/src/routes/flashcards/+page.svelte index 409e5d6..6ba50e1 100644 --- a/src/routes/flashcards/+page.svelte +++ b/src/routes/flashcards/+page.svelte @@ -3,25 +3,68 @@ import Card from "./card.svelte"; import StatsAndButtons from "./StatsAndButtons.svelte"; - import { stats, resetDeck,SetNewDeck } from "./logic.svelte.js"; + import { stats, resetDeck, SetNewDeck } from "./logic.svelte.js"; import { onMount } from "svelte"; import tempelateDeck from "./tempelateDeck.json"; onMount(() => { - SetNewDeck(JSON.parse(localStorage.getItem("deck")) || tempelateDeck); + SetNewDeck(JSON.parse(localStorage.getItem("deck")) || tempelateDeck, true); }); + + let DemoDeck = [ + { + deckName: "Tech", + cards: [ + { Q: "What is Svelte?", a: "A modern JavaScript framework for building user interfaces." }, + { Q: "What is a component?", a: "A reusable piece of UI in Svelte." }, + { Q: "How do you create a reactive variable?", a: "$: variableName = value;" }, + ], + }, + { + deckName: "Math Basics", + cards: [ + { Q: "What is 2 + 2?", a: "4" }, + { Q: "What is the square root of 16?", a: "4" }, + { Q: "What is 5 * 6?", a: "30" }, + ], + }, + { + deckName: "Geography", + cards: [ + { Q: "What is the capital of France?", a: "Paris" }, + { Q: "Which continent is Egypt in?", a: "Africa" }, + { Q: "What is the largest ocean?", a: "Pacific Ocean" }, + ], + }, + ];
{#if stats.isDeckEmpty}
-

Hey, You learned everything!

- +

Choose a Deck To lean from!

+
+ +
{:else} -
+
-
+
diff --git a/src/routes/flashcards/logic.svelte.js b/src/routes/flashcards/logic.svelte.js index c2ba1a4..132b9ba 100644 --- a/src/routes/flashcards/logic.svelte.js +++ b/src/routes/flashcards/logic.svelte.js @@ -1,4 +1,3 @@ - export let card = $state({ Q: "", a: "" }); export let statusOfCard = $state({ @@ -15,13 +14,14 @@ export let deck = [ { Q: "Will @Shub go totally bankrupt?", a: "yes!" }, ]; -export function SetNewDeck (newDeck) { +export function SetNewDeck(newDeck, ThisIsOfPageLoad = false) { deck = newDeck; resetDeck(); + stats.isDeckEmpty = ThisIsOfPageLoad; } export let stats = $state({ - isDeckEmpty: false, + isDeckEmpty: true, AnswerKnown: 0, AnswerNotKnown: 0, AnswerNotChecked: deck.length, diff --git a/src/routes/flashcards/tempelateDeck.json b/src/routes/flashcards/tempelateDeck.json index cb40c1f..55cf87d 100644 --- a/src/routes/flashcards/tempelateDeck.json +++ b/src/routes/flashcards/tempelateDeck.json @@ -1,5 +1,26 @@ [ - { "Q": "Best programer in the world?", "a": "RezHackXYZ" }, - { "Q": "Best coding community?", "a": "HackClub" }, - { "Q": "Will @Shub go totally bankrupt?", "a": "yes!" } + { + "deckName": "Tech", + "cards": [ + { "Q": "What is Svelte?", "a": "Best web dev Framework ever." }, + { "Q": "What is a component?", "a": "A reusable piece of UI in Svelte." }, + { "Q": "How do you create a reactive variable?", "a": "$: variableName = value;" } + ] + }, + { + "deckName": "Math Basics", + "cards": [ + { "Q": "What is 2 + 2?", "a": "4" }, + { "Q": "What is the square root of 16?", "a": "4" }, + { "Q": "What is 5 * 6?", "a": "30" } + ] + }, + { + "deckName": "Geography", + "cards": [ + { "Q": "What is the capital of France?", "a": "Paris" }, + { "Q": "Which continent is Egypt in?", "a": "Africa" }, + { "Q": "What is the largest ocean?", "a": "Pacific Ocean" } + ] + } ] diff --git a/src/routes/nav.svelte b/src/routes/nav.svelte index ca99afc..f9c8bd3 100644 --- a/src/routes/nav.svelte +++ b/src/routes/nav.svelte @@ -60,7 +60,7 @@ import { colseModal, ShowSeconds } from "./IdleScreen/logic/TimeAndTableData.svelte.js"; import EditTimetableDiv from "./IdleScreen/components/timetable/EditTimetable.svelte"; import { TabOpen } from "./randomname/+page.svelte"; - import { resetDeck } from "./flashcards/logic.svelte"; + import { resetDeck, stats } from "./flashcards/logic.svelte"; import EditCards from "./flashcards/editCards.svelte"; @@ -123,7 +123,7 @@ - + {/if}