diff --git a/src/app/page.tsx b/src/app/page.tsx index 1f3d30a..73f8ccb 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -20,6 +20,8 @@ import { ChevronUp, ChevronDown, Copy, Trash2, Anchor, Lock } from 'lucide-react export default function Home() { const [campaign, setCampaign] = useState(DEFAULT_CAMPAIGN); const [selectedModuleId, setSelectedModuleId] = useState('mod-products-fantasticky'); + // Produkt otvorený v paneli (harmonika); nastaví sa aj klikom na produkt v náhľade + const [selectedProductId, setSelectedProductId] = useState(null); const [isSaving, setIsSaving] = useState(false); const [isExportingBrevo, setIsExportingBrevo] = useState(false); const [brevoUrl, setBrevoUrl] = useState(null); @@ -667,6 +669,10 @@ export default function Home() { backgroundImage: 'linear-gradient(135deg, #005bb5 0%, #000d1a 100%)' }} > + {/* Zvýraznenie produktu otvoreného v paneli */} + {selectedProductId && ( + + )} {/* E-mail Container 1:1 k originálu */}
{campaign.modules.map((mod, idx) => { @@ -683,7 +689,16 @@ export default function Home() { return (
setSelectedModuleId(mod.id)} + onClick={(e) => { + // Klik na kartu produktu otvorí v paneli práve tento produkt + const card = (e.target as HTMLElement).closest('[data-product-id]'); + if (card) { + setSelectedProductId(card.getAttribute('data-product-id')); + } else if (mod.id !== selectedModuleId) { + setSelectedProductId(null); + } + setSelectedModuleId(mod.id); + }} className={`relative cursor-pointer transition-all duration-150 rounded-2xl ${ isSelected ? 'ring-2 ring-offset-4 ring-offset-[#001a33] ring-red-500 shadow-2xl' @@ -866,7 +881,11 @@ export default function Home() { dangerouslySetInnerHTML={{ __html: renderSingleModuleHtml(mod, campaign) }} - className="pointer-events-none" + onClick={(e) => { + // odkazy v náhľade neotvárame, klik slúži na výber modulu / produktu + if ((e.target as HTMLElement).closest('a')) e.preventDefault(); + }} + className="[&_[data-product-id]]:cursor-pointer" /> )}
@@ -879,6 +898,8 @@ export default function Home() {