diff --git a/SerpentRace_Frontend/src/components/DeckCreator/DeckHeader.jsx b/SerpentRace_Frontend/src/components/DeckCreator/DeckHeader.jsx
index 2aaa8626..7ca4e98d 100644
--- a/SerpentRace_Frontend/src/components/DeckCreator/DeckHeader.jsx
+++ b/SerpentRace_Frontend/src/components/DeckCreator/DeckHeader.jsx
@@ -1,7 +1,7 @@
// src/components/DeckCreator/DeckHeader.jsx
// Deck alapadatok szerkesztése és mentés
-import React from "react"
+import React, { useState, useRef, useEffect } from "react"
import { FaSave, FaArrowLeft, FaGlobe, FaLock, FaQuestionCircle, FaDice, FaLaughBeam } from "react-icons/fa"
const deckTypes = [
@@ -16,9 +16,30 @@ const privacyOptions = [
]
export default function DeckHeader({ deck, onUpdate, onSave, onBack }) {
+ const [isTypeDropdownOpen, setIsTypeDropdownOpen] = useState(false);
+ const [isPrivacyDropdownOpen, setIsPrivacyDropdownOpen] = useState(false);
+ const typeDropdownRef = useRef(null);
+ const privacyDropdownRef = useRef(null);
+
const currentDeckType = deckTypes.find(type => type.value === deck.type) || deckTypes[0]
const currentPrivacy = privacyOptions.find(option => option.value === deck.privacy) || privacyOptions[0]
+ useEffect(() => {
+ function handleClickOutside(event) {
+ if (typeDropdownRef.current && !typeDropdownRef.current.contains(event.target)) {
+ setIsTypeDropdownOpen(false);
+ }
+ if (privacyDropdownRef.current && !privacyDropdownRef.current.contains(event.target)) {
+ setIsPrivacyDropdownOpen(false);
+ }
+ }
+
+ document.addEventListener('mousedown', handleClickOutside);
+ return () => {
+ document.removeEventListener('mousedown', handleClickOutside);
+ };
+ }, []);
+
const handleInputChange = (field, value) => {
onUpdate({ [field]: value })
}
@@ -80,17 +101,51 @@ export default function DeckHeader({ deck, onUpdate, onSave, onBack }) {
-
+
+
+
+ {isTypeDropdownOpen && (
+
+ {deckTypes.map(type => (
+
+ ))}
+
+ )}
+
{/* Privacy */}
@@ -98,17 +153,51 @@ export default function DeckHeader({ deck, onUpdate, onSave, onBack }) {
-
+
+
+
+ {isPrivacyDropdownOpen && (
+
+ {privacyOptions.map(option => (
+
+ ))}
+
+ )}
+
{/* Description */}