Feature: Consequence rendszer implementálása minden kártya típushoz
- TaskCardEditor: Consequence és wrongConsequence kezelés hozzáadva - JokerCardEditor: Teljesítés és nem teljesítés consequence-ek - LuckCardEditor: Szerencse kártyák consequence kezelése - CardEditor: Alapértelmezett consequence értékek az új kártyákhoz - DeckCreator: Consequence mezők biztosítása mentéskor - CardsList: Következmény típusok megjelenítése - UI javítás: Mind a három editor külön szekciókba rendezve (info, szöveg, következmények) - Egységes struktúra és design az összes kártya szerkesztőnél
This commit is contained in:
@@ -51,9 +51,16 @@ export default function DeckCreator() {
|
||||
|
||||
const handleSaveDeck = async () => {
|
||||
try {
|
||||
// Konvertálás: Frontend string -> Backend enum number
|
||||
const typeMapping = {
|
||||
'LUCK': 0,
|
||||
'JOKER': 1,
|
||||
'QUESTION': 2
|
||||
}
|
||||
|
||||
const payload = {
|
||||
name: deck.name,
|
||||
type: deck.type,
|
||||
type: typeMapping[deck.type] ?? 2, // Alapértelmezett: QUESTION
|
||||
ctype: deck.privacy === 'public' ? 'PUBLIC' : 'PRIVATE',
|
||||
description: deck.description || '',
|
||||
cards: deck.cards
|
||||
@@ -95,18 +102,30 @@ export default function DeckCreator() {
|
||||
|
||||
const handleSaveCard = (cardData) => {
|
||||
try {
|
||||
// Biztosítjuk az alapértelmezett consequence értékeket
|
||||
const defaultConsequence = { type: 0, value: 1 }
|
||||
const defaultWrongConsequence = { type: 1, value: 1 }
|
||||
|
||||
const updatedCard = {
|
||||
...cardData,
|
||||
id: isCreatingCard ? Date.now() : cardData.id
|
||||
id: isCreatingCard ? Date.now() : cardData.id,
|
||||
consequence: cardData.consequence || defaultConsequence,
|
||||
// wrongConsequence csak QUESTION és JOKER típusoknál
|
||||
...(cardData.type === 'QUESTION' || cardData.type === 'JOKER'
|
||||
? { wrongConsequence: cardData.wrongConsequence || defaultWrongConsequence }
|
||||
: {}
|
||||
)
|
||||
}
|
||||
|
||||
let wasInvalidCardDeleted = false
|
||||
|
||||
setDeck(prev => {
|
||||
// Ellenőrizzük, vannak-e nem megfelelő típusú kártyák
|
||||
const invalidCards = prev.cards.filter(card => card.type !== prev.type)
|
||||
|
||||
// Ha új kártyát mentünk megfelelő típussal és vannak nem megfelelők
|
||||
if (isCreatingCard && cardData.type === prev.type && invalidCards.length > 0) {
|
||||
notifyWarning(`${invalidCards.length} db nem megfelelő típusú kártya törlésre került`)
|
||||
wasInvalidCardDeleted = true
|
||||
|
||||
return {
|
||||
...prev,
|
||||
@@ -130,7 +149,13 @@ export default function DeckCreator() {
|
||||
setIsCreatingCard(false)
|
||||
setNewCardType(null)
|
||||
|
||||
notifySuccess('Kártya sikeresen mentve!')
|
||||
// Csak egy értesítés
|
||||
if (wasInvalidCardDeleted) {
|
||||
const invalidCount = deck.cards.filter(card => card.type !== deck.type).length
|
||||
notifyWarning(`Kártya mentve! ${invalidCount} db nem megfelelő típusú kártya törlésre került.`)
|
||||
} else {
|
||||
notifySuccess('Kártya sikeresen mentve!')
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Kártya mentési hiba:', error)
|
||||
notifyError('Hiba történt a kártya mentése során')
|
||||
|
||||
Reference in New Issue
Block a user