Skip to main content

Flashcard Komponens

A Flashcard komponens egyetlen szókártyát jelenít meg, amely interaktívan váltogat a "kifejezés" és "definíció" oldalai között.

Működés

  • Egy kártyát jelenít meg, amely alapértelmezés szerint a kifejezést vagy a definíciót mutatja.
  • Kattintásra a kártya átfordul, és megmutatja a másik oldalt.
  • Támogatja a betöltési állapotot, ekkor egy spinner jelenik meg a tartalom helyén.
  • Integrálva van egy csúsztatási (swipe) funkcióval (SwipeElement), amely lehetővé teszi a felhasználó számára, hogy jobbra vagy balra csúsztassa a kártyát, és ehhez callback függvényeket biztosít.
  • Az onChangeFunction prop segítségével értesítést kaphatunk, amikor a kártya átfordul.

Propok

NévTípusKötelezőLeírás
definitionstringIgenA szókártya "válasz" vagy "definíció" oldala.
termstringIgenA szókártya "kérdés" vagy "kifejezés" oldala.
onChangeFunctionFunctionNemCallback függvény, amely akkor hívódik meg, amikor a kártya átfordul.
defaultSetbooleanNemHa true, a kártya kezdetben a kifejezést mutatja.
loadingbooleanNemHa true, betöltési animációt (Spin) jelenít meg.
idstringNemA szókártya egyedi azonosítója.
lastbooleanNemJelzi, ha ez az utolsó kártya a sorozatban (a komponens kódjából nem egyértelmű a használata).
animationClassstringNemCSS osztály az animációs effektekhez.
swipeLeftFunctionIgenCallback függvény a balra csúsztatás eseményére.
swipeRightFunctionIgenCallback függvény a jobbra csúsztatás eseményére.
blockSwipebooleanNemHa true, letiltja a csúsztatási gesztusokat.

TypeOfFlashcard interface (a szókártya adatstruktúrája)

KulcsTípusLeírás
termstringA szókártya kifejezése.
definitionstringA szókártya definíciója.
idstringA szókártya egyedi azonosítója.
knownbooleanOpcionális, jelzi, hogy a felhasználó ismeri-e a kártyát.

Használati példa

Az alábbi példa egy szókártya készletben található egyes szókártya komponensek használatát mutatja be.

import { useState } from 'react';
import Flashcard from '@/components/Flashcard/Flashcard.component';
import { TypeOfFlashcard } from '@/components/Flashcard/Flashcard'; // A típus importálása

export default function FlashcardsDisplay() {
const [currentCardIndex, setCurrentCardIndex] = useState(0);
const flashcards: TypeOfFlashcard[] = [
{ id: "1", term: "Kifejezés 1", definition: "Definíció 1" },
{ id: "2", term: "Kifejezés 2", definition: "Definíció 2" },
];

const currentCard = flashcards[currentCardIndex];

const handleSwipeLeft = () => {
console.log("Balra csúsztatva!");
// Navigálás az előző kártyára vagy valami más akció
};

const handleSwipeRight = () => {
console.log("Jobbra csúsztatva!");
// Navigálás a következő kártyára vagy valami más akció
if (currentCardIndex < flashcards.length - 1) {
setCurrentCardIndex(currentCardIndex + 1);
}
};

return (
<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '400px' }}>
{currentCard ? (
<Flashcard
key={currentCard.id}
term={currentCard.term}
definition={currentCard.definition}
swipeLeft={handleSwipeLeft}
swipeRight={handleSwipeRight}
defaultSet={true} // Kezdetben a kifejezést mutatja
/>
) : (
<p>Nincsenek kártyák</p>
)}
</div>
);
}