Fix: Kártya típus kezelés javítása és joker kártyák megjelenítése

- Hozzáadva react-toastify a notifyWarning használatához
- Javítva a CardEditor fejléc hogy helyesen jelenítse meg az új kártya típusát
- Javítva a CardsList 'szerkesztés folyamatban' rész hogy QUESTION/JOKER/LUCK értékeket használjon
- Implementálva az automatikus nem megfelelő típusú kártyák törlése új kártya mentésekor
- Hozzáadva hibakezelés a kártya mentési logikához
- Joker típus címke változtatva 'Szórakozás'-ról 'Joker'-re
- Joker kártya szín változtatva citromsárgára (#FFD700)
- Docker watch mode volume konfiguráció javítása a hot reload-hoz
This commit is contained in:
GitG0r0
2025-10-22 23:21:19 +02:00
parent 0ca0e95540
commit edca8f84cd
10 changed files with 160 additions and 176 deletions
@@ -8,7 +8,7 @@ import DeckHeader from "../../components/DeckCreator/DeckHeader.jsx"
import CardsList from "../../components/DeckCreator/CardsList.jsx"
import CardEditor from "../../components/DeckCreator/CardEditor.jsx"
import { createDeck } from '../../api/deckApi'
import { notifySuccess, notifyError } from "../../components/Toastify/toastifyServices"
import { notifySuccess, notifyError, notifyWarning } from "../../components/Toastify/toastifyServices"
export default function DeckCreator() {
const { deckId } = useParams() // URL-ből deck ID (új deck esetén undefined)
@@ -32,11 +32,7 @@ export default function DeckCreator() {
// Betöltés API-ból
useEffect(() => {
if (deckId) {
<<<<<<< HEAD
// TODO: Betöltés API-ból
=======
loadDeck(deckId)
>>>>>>> main
} else {
setDeck({
id: null,
@@ -64,15 +60,6 @@ export default function DeckCreator() {
}
const saved = await createDeck(payload)
<<<<<<< HEAD
setDeck(prev => ({
...prev,
id: saved.id ?? prev.id,
creationdate: saved.creationdate ?? prev.creationdate,
updatedate: saved.updatedate ?? prev.updatedate
}))
alert('✅ Deck sikeresen mentve!')
=======
setDeck(prev => ({
...prev,
id: saved.id ?? prev.id,
@@ -82,7 +69,6 @@ export default function DeckCreator() {
console.log('Deck saved (backend):', saved)
notifySuccess('Deck sikeresen mentve!')
>>>>>>> main
} catch (error) {
console.error('Mentési hiba:', error)
notifyError('Hiba történt a mentés során: ' + (error?.response?.data?.error || error.message || String(error)))
@@ -108,46 +94,47 @@ export default function DeckCreator() {
}
const handleSaveCard = (cardData) => {
<<<<<<< HEAD
const updatedCard = {
...cardData,
id: isCreatingCard ? Date.now() : cardData.id
=======
if (isCreatingCard) {
// Új kártya hozzáadása
const newCard = {
try {
const updatedCard = {
...cardData,
id: Date.now(), // Temporary ID
id: isCreatingCard ? Date.now() : cardData.id
}
setDeck(prev => ({
...prev,
cards: [...prev.cards, newCard]
}))
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`)
return {
...prev,
cards: [
...prev.cards.filter(card => card.type === prev.type),
updatedCard
]
}
}
// Alap mentési logika
return {
...prev,
cards: isCreatingCard
? [...prev.cards, updatedCard]
: prev.cards.map(card => card.id === updatedCard.id ? updatedCard : card)
}
})
setSelectedCard(updatedCard)
setIsCreatingCard(false)
setNewCardType(null)
setSelectedCard(newCard)
} else {
// Meglévő kártya frissítése
setDeck(prev => ({
...prev,
cards: prev.cards.map(card =>
card.id === cardData.id ? cardData : card
)
}))
setSelectedCard(cardData)
>>>>>>> main
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')
}
setDeck(prev => ({
...prev,
cards: isCreatingCard
? [...prev.cards, updatedCard]
: prev.cards.map(card => card.id === updatedCard.id ? updatedCard : card)
}))
setSelectedCard(updatedCard)
setIsCreatingCard(false)
setNewCardType(null)
}
// 🔧 Itt is confirm() volt — most a CardsList popupja kezeli a megerősítést
@@ -196,7 +183,7 @@ export default function DeckCreator() {
<CardEditor
card={selectedCard}
isCreating={isCreatingCard}
cardType={newCardType}
cardType={isCreatingCard ? newCardType : deck.type}
onSave={handleSaveCard}
onCancel={() => {
setIsCreatingCard(false)