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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user