Merge: Konfliktusok feloldása és toastify integráció

- Megtartva az új kártya típusok (QUESTION, LUCK, JOKER)
- Hozzáadva toastify notifikációk
- Egyszerűsített új kártya létrehozás
This commit is contained in:
GitG0r0
2025-10-22 21:31:16 +02:00
8 changed files with 492 additions and 151 deletions
@@ -8,6 +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"
export default function DeckCreator() {
const { deckId } = useParams() // URL-ből deck ID (új deck esetén undefined)
@@ -31,9 +32,12 @@ 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 {
// Új deck
setDeck({
id: null,
name: "Új Pakli",
@@ -60,6 +64,7 @@ export default function DeckCreator() {
}
const saved = await createDeck(payload)
<<<<<<< HEAD
setDeck(prev => ({
...prev,
id: saved.id ?? prev.id,
@@ -67,16 +72,27 @@ export default function DeckCreator() {
updatedate: saved.updatedate ?? prev.updatedate
}))
alert('✅ Deck sikeresen mentve!')
=======
setDeck(prev => ({
...prev,
id: saved.id ?? prev.id,
creationdate: saved.creationdate ?? prev.creationdate,
updatedate: saved.updatedate ?? prev.updatedate
}))
console.log('Deck saved (backend):', saved)
notifySuccess('Deck sikeresen mentve!')
>>>>>>> main
} catch (error) {
console.error('Mentési hiba:', error)
alert('Hiba történt a mentés során: ' + (error?.response?.data?.error || error.message || String(error)))
notifyError('Hiba történt a mentés során: ' + (error?.response?.data?.error || error.message || String(error)))
}
}
// 🔧 Itt korábban volt confirm(), de most eltávolítottuk
const handleBack = () => {
if (confirm("Biztosan visszamész? A nem mentett változtatások elvesznek.")) {
navigate("/decks")
}
// Egyszerű visszalépés — ha akarsz, később adhatunk hozzá saját modalt
navigate("/decks")
}
const handleCreateCard = (cardType) => {
@@ -92,9 +108,34 @@ 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 = {
...cardData,
id: Date.now(), // Temporary ID
}
setDeck(prev => ({
...prev,
cards: [...prev.cards, newCard]
}))
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
}
setDeck(prev => ({
@@ -109,26 +150,25 @@ export default function DeckCreator() {
setNewCardType(null)
}
// 🔧 Itt is confirm() volt — most a CardsList popupja kezeli a megerősítést
const handleDeleteCard = (cardId) => {
if (confirm("Biztosan törlöd ezt a kártyát?")) {
setDeck(prev => ({
...prev,
cards: prev.cards.filter(card => card.id !== cardId)
}))
if (selectedCard?.id === cardId) {
setSelectedCard(null)
}
setDeck(prev => ({
...prev,
cards: prev.cards.filter(card => card.id !== cardId)
}))
if (selectedCard?.id === cardId) {
setSelectedCard(null)
}
}
return (
<div className="w-full min-h-screen bg-[color:var(--color-background)] flex flex-col">
<Navbar />
<main className="flex-1 flex flex-col">
{/* Deck Header */}
<DeckHeader
<DeckHeader
deck={deck}
onUpdate={handleDeckUpdate}
onSave={handleSaveDeck}
@@ -169,4 +209,4 @@ export default function DeckCreator() {
</main>
</div>
)
}
}