import React, { useState } from "react" import { useNavigate } from "react-router-dom" import { FaPlus, FaFilter, FaCalendarAlt, FaArrowUp, FaArrowDown, FaSortAlphaDown, FaSortAlphaUp, FaQuestionCircle, } from "react-icons/fa" import SearchBox from "../Search/SearchBox" import PopUp from "../PopUp/PopUp" import DeckInfoPopUp from "../PopUp/DeckInfoPopUp" const deckTypes = [ { label: "Luck", color: "var(--color-luck)" }, { label: "Question", color: "var(--color-question)" }, { label: "Fun", color: "var(--color-fun)" }, ] const mockDecks = [ // Just for visual mockup { id: 1, name: "Party Luck", type: "Luck", created: "2025-07-01", origin: "Vállalati" }, { id: 2, name: "Quiz Night", type: "Question", created: "2025-07-02", origin: "Saját" }, { id: 3, name: "Fun Times", type: "Fun", created: "2025-07-03", origin: "Vállalati" }, { id: 4, name: "Corporate Challenge", type: "Question", created: "2025-07-04", origin: "Vállalati" }, { id: 5, name: "Randomizer", type: "Luck", created: "2025-07-05", origin: "Saját" }, { id: 6, name: "Afterwork luck", type: "Luck", created: "2025-07-06", origin: "Saját" }, { id: 7, name: "Serpent Quiz", type: "Question", created: "2025-07-07", origin: "Vállalati" }, { id: 8, name: "Green Fortune", type: "Luck", created: "2025-07-08", origin: "Vállalati" }, { id: 9, name: "Team Builder", type: "Fun", created: "2025-07-09", origin: "Saját" }, { id: 10, name: "Knowledge Race", type: "Question", created: "2025-07-10", origin: "Saját" }, ] const origins = ["Mind", "Vállalati", "Saját"] const sortOptions = [ { value: "date-asc", label: ( <> ), }, { value: "date-desc", label: ( <> ), }, { value: "abc-asc", label: ( <> ), }, { value: "abc-desc", label: ( <> ), }, ] const DeckManager = () => { const navigate = useNavigate() const [selectedType, setSelectedType] = useState("All") const [selectedOrigin, setSelectedOrigin] = useState("Mind") const [sortBy, setSortBy] = useState("date-desc") const [search, setSearch] = useState("") const [showSortHelp, setShowSortHelp] = useState(false) const [selectedDeck, setSelectedDeck] = useState(null) // Filter logic (mock) let filteredDecks = mockDecks.filter((deck) => { const typeMatch = selectedType === "All" || deck.type === selectedType const originMatch = selectedOrigin === "Mind" || deck.origin === selectedOrigin const searchMatch = !search || deck.name.toLowerCase().includes(search.toLowerCase()) return typeMatch && originMatch && searchMatch }) // Sort logic filteredDecks = [...filteredDecks].sort((a, b) => { if (sortBy === "date-asc") { return a.created.localeCompare(b.created) } else if (sortBy === "date-desc") { return b.created.localeCompare(a.created) } else if (sortBy === "abc-asc") { return a.name.localeCompare(b.name) } else if (sortBy === "abc-desc") { return b.name.localeCompare(a.name) } return 0 }) return (
{/* Filters */}
setSearch(e.target.value)} width={240} placeholder="Keresés..." className="mr-4" /> Típus: {deckTypes.map((type) => ( ))} Eredet: Rendezés: {showSortHelp && ( setShowSortHelp(false)}>

Rendezési lehetőségek magyarázata

  • 📅↑ – Dátum szerint növekvő sorrendben (legrégebbi elöl)
  • 📅↓ – Dátum szerint csökkenő sorrendben (legújabb elöl)
  • A→Z – Név szerint növekvő sorrendben (A-tól Z-ig)
  • Z→A – Név szerint csökkenő sorrendben (Z-től A-ig)
)}
{/* Decks Grid */}
{/* Create New Deck (Mockup) */}
navigate("/deck-creator")} className="flex flex-col items-center justify-center h-48 bg-[color:var(--color-card)] border-2 border-dashed border-[color:var(--color-success)] rounded-2xl cursor-pointer hover:bg-[color:var(--color-success)]/20 transition-all duration-200 shadow-lg" > Új pakli létrehozása
{/* Existing Decks (Mockup) */} {filteredDecks.map((deck) => { const deckType = deckTypes.find((t) => t.label === deck.type) const borderColor = deckType ? deckType.color : "var(--color-success)" return (
setSelectedDeck(deck)} >
{deck.type === "Luck" ? "Szerencse" : deck.type === "Question" ? "Kérdés" : deck.type === "Fun" ? "Szórakozás" : deck.type}

{deck.name}

Létrehozva: {deck.created}
) })}
{/* Deck Info Popup */} {selectedDeck && setSelectedDeck(null)} />}
) } export default DeckManager