diff --git a/src/routes/flashcards/+page.svelte b/src/routes/flashcards/+page.svelte index c372850..f63ee10 100644 --- a/src/routes/flashcards/+page.svelte +++ b/src/routes/flashcards/+page.svelte @@ -4,7 +4,7 @@ import StatsAndButtons from "./StatsAndButtons.svelte"; -
+
diff --git a/src/routes/flashcards/buttons.svelte b/src/routes/flashcards/buttons.svelte index b0472d6..d6a8643 100644 --- a/src/routes/flashcards/buttons.svelte +++ b/src/routes/flashcards/buttons.svelte @@ -1,2 +1,11 @@ - - + + + + + diff --git a/src/routes/flashcards/card.svelte b/src/routes/flashcards/card.svelte index bfa89ba..ee52dc3 100644 --- a/src/routes/flashcards/card.svelte +++ b/src/routes/flashcards/card.svelte @@ -1,20 +1,15 @@
(flipped = !flipped)} + on:click={() => (statusOfCard.flipped = !statusOfCard.flipped)} >
Click to flip the card and see the answer ☝️

+ + diff --git a/src/routes/flashcards/logic.svelte.js b/src/routes/flashcards/logic.svelte.js new file mode 100644 index 0000000..0376367 --- /dev/null +++ b/src/routes/flashcards/logic.svelte.js @@ -0,0 +1,49 @@ +export let card = $state({ Q: "What is the capital of France?", a: "Paris" }); + +export let statusOfCard = $state({ + currentlyAnswered: false, + flipped: false, + exiting: false, + exitingToRight: false, + entering: false, +}); + +function AnimateCard() { + statusOfCard.exiting = true; + + setTimeout(() => { + statusOfCard.exiting = false; + statusOfCard.entering = true; + + setTimeout(() => { + statusOfCard.entering = false; + + setTimeout(() => { + statusOfCard.currentlyAnswered = false; + }, 500); + }, 400); + }, 400); +} + +export function nextCard(side) { + if (statusOfCard.currentlyAnswered) { + return; + } + + statusOfCard.currentlyAnswered = true; + + if (side == "right") { + statusOfCard.exitingToRight = true; + } else { + statusOfCard.exitingToRight = false; + } + + if (statusOfCard.flipped) { + statusOfCard.flipped = false; + setTimeout(() => { + AnimateCard(); + }, 300); + } else { + AnimateCard(); + } +}