// src/components/DeckCreator/TaskCardEditor.jsx // Feladat kártya szerkesztő (Quiz, Igaz/Hamis, Párosítás, Szöveges) import React from "react" import { FaPlus, FaTrash, FaCheck, FaTimes } from "react-icons/fa" const taskSubTypes = [ { value: 'quiz', label: '📋 Quiz (A/B/C/D)', description: 'Feleletválasztós kérdés' }, { value: 'truefalse', label: '✅ Igaz/Hamis', description: 'Igaz vagy hamis állítás' }, { value: 'matching', label: '🔗 Párosítás', description: 'Elemek összekapcsolása' }, { value: 'text', label: '✏️ Szöveges válasz', description: 'Szabadszöveges válasz' } ] const timeLimits = [ { value: 15, label: '15 másodperc' }, { value: 30, label: '30 másodperc' }, { value: 45, label: '45 másodperc' }, { value: 60, label: '1 perc' }, { value: 90, label: '1.5 perc' }, { value: 120, label: '2 perc' } ] export default function TaskCardEditor({ card, onChange }) { const updateField = (field, value) => { onChange({ [field]: value }) } const updateOption = (index, value) => { const newOptions = [...card.options] newOptions[index] = value onChange({ options: newOptions }) } const addMatchingPair = () => { const newLeft = [...(card.leftItems || []), ''] const newRight = [...(card.rightItems || []), ''] const newCorrectPairs = { ...(card.correctPairs || {}), [newLeft.length - 1]: newRight.length - 1 } onChange({ leftItems: newLeft, rightItems: newRight, correctPairs: newCorrectPairs }) } const removeMatchingPair = (index) => { const newLeft = card.leftItems.filter((_, i) => i !== index) const newRight = card.rightItems.filter((_, i) => i !== index) const newCorrectPairs = {} // Újraszámozás Object.entries(card.correctPairs).forEach(([leftIdx, rightIdx]) => { const newLeftIdx = parseInt(leftIdx) > index ? parseInt(leftIdx) - 1 : parseInt(leftIdx) const newRightIdx = parseInt(rightIdx) > index ? parseInt(rightIdx) - 1 : parseInt(rightIdx) if (newLeftIdx !== index && newRightIdx !== index) { newCorrectPairs[newLeftIdx] = newRightIdx } }) onChange({ leftItems: newLeft, rightItems: newRight, correctPairs: newCorrectPairs }) } const addAcceptedAnswer = () => { const newAnswers = [...(card.acceptedAnswers || []), ''] onChange({ acceptedAnswers: newAnswers }) } const updateAcceptedAnswer = (index, value) => { const newAnswers = [...card.acceptedAnswers] newAnswers[index] = value onChange({ acceptedAnswers: newAnswers }) } const removeAcceptedAnswer = (index) => { const newAnswers = card.acceptedAnswers.filter((_, i) => i !== index) onChange({ acceptedAnswers: newAnswers }) } return (
{/* Feladat típus választó */}

🎯 Feladat típusa

{taskSubTypes.map(type => ( ))}
{/* Quiz típus szerkesztő */} {card.subType === 'quiz' && (

📋 Quiz kérdés

{/* Kérdés */}