{"ast":null,"code":"var _jsxFileName = \"/home/magh/Documents/landing_page_experimental/src/App.jsx\",\n _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport './App.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction App() {\n _s();\n const [query, setQuery] = useState('');\n // Store multiple selected categories in an array\n const [selectedCategories, setSelectedCategories] = useState(['science']);\n // Controls whether our custom drop-down is open\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const navigate = useNavigate();\n\n // Extended your existing maps with a \"multi\" entry for multi-category selections\n const imageMap = {\n science: '/main.png',\n philosophy: '/philosophy.png',\n tech: '/tech.png',\n discover: '/web.png',\n multi: '/multi.png' // displayed when more than one category is selected\n };\n const headerMap = {\n science: '/header.png',\n philosophy: '/header_philosophy.png',\n tech: '/header_tech.png',\n discover: '/header_web.png',\n multi: '/header_multi.png' // displayed when more than one category is selected\n };\n const appBgMap = {\n science: '#fcfcff',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#f0f0f0' // background for multi-category mode\n };\n const headerBgMap = {\n science: '#f8f8f8',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#cccccc' // header background for multi-category mode\n };\n\n // If multiple categories are selected, we use 'multi' for the images and colors\n const currentCategory = selectedCategories.length > 1 ? 'multi' : selectedCategories[0];\n\n // Submit the form, passing categories as comma-separated\n const handleSubmit = e => {\n e.preventDefault();\n navigate(`/results?q=${encodeURIComponent(query)}&cat=${selectedCategories.join(\",\")}`);\n };\n\n // Single-click toggling: if category is selected, remove it; otherwise add it\n const handleCategoryToggle = cat => {\n setSelectedCategories(prev => {\n if (prev.includes(cat)) {\n return prev.filter(c => c !== cat);\n } else {\n return [...prev, cat];\n }\n });\n };\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"App\",\n style: {\n backgroundColor: appBgMap[currentCategory]\n },\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n className: \"header-bar\",\n style: {\n backgroundColor: headerBgMap[currentCategory]\n },\n children: /*#__PURE__*/_jsxDEV(\"img\", {\n src: headerMap[currentCategory],\n alt: \"Header\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"main\", {\n className: \"main-content\",\n children: [/*#__PURE__*/_jsxDEV(\"img\", {\n id: \"mascot-img\",\n src: imageMap[currentCategory],\n alt: \"Mascot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"tagline\",\n children: \"a search engine for the rest of us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n className: \"search-form\",\n onSubmit: handleSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"search-container\",\n children: /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n name: \"search\",\n placeholder: \"Search...\",\n value: query,\n onChange: e => setQuery(e.target.value)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"custom-dropdown\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"dropdown-button\",\n onClick: () => setDropdownOpen(!dropdownOpen),\n children: selectedCategories.length === 1 ? selectedCategories[0].charAt(0).toUpperCase() + selectedCategories[0].slice(1) : 'Multiple categories'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 13\n }, this), dropdownOpen && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"dropdown-menu\",\n children: [\"science\", \"philosophy\", \"tech\", \"discover\"].sort((a, b) => {\n // Keep the first selected category on top, then alphabetical\n if (a === selectedCategories[0]) return -1;\n if (b === selectedCategories[0]) return 1;\n return a.localeCompare(b);\n }).map(cat => {\n const isSelected = selectedCategories.includes(cat);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: `dropdown-item ${isSelected ? 'dropdown-item-selected' : ''}`,\n onClick: () => handleCategoryToggle(cat),\n children: cat.charAt(0).toUpperCase() + cat.slice(1)\n }, cat, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 23\n }, this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"footer\", {\n className: \"footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://git.tsugutsugugo.com/explore/repos\",\n children: \"Source\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 9\n }, this), \" |\", ' ', /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://docs.tsugutsugugo.com/\",\n children: \"Docs\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 5\n }, this);\n}\n_s(App, \"577N32u0rtPZsQnQ932sol5bpHM=\", false, function () {\n return [useNavigate];\n});\n_c = App;\nexport default App;\nvar _c;\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["React","useState","useNavigate","jsxDEV","_jsxDEV","App","_s","query","setQuery","selectedCategories","setSelectedCategories","dropdownOpen","setDropdownOpen","navigate","imageMap","science","philosophy","tech","discover","multi","headerMap","appBgMap","headerBgMap","currentCategory","length","handleSubmit","e","preventDefault","encodeURIComponent","join","handleCategoryToggle","cat","prev","includes","filter","c","className","style","backgroundColor","children","src","alt","fileName","_jsxFileName","lineNumber","columnNumber","id","onSubmit","type","name","placeholder","value","onChange","target","onClick","charAt","toUpperCase","slice","sort","a","b","localeCompare","map","isSelected","href","_c","$RefreshReg$"],"sources":["/home/magh/Documents/landing_page_experimental/src/App.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport './App.css';\n\nfunction App() {\n const [query, setQuery] = useState('');\n // Store multiple selected categories in an array\n const [selectedCategories, setSelectedCategories] = useState(['science']);\n // Controls whether our custom drop-down is open\n const [dropdownOpen, setDropdownOpen] = useState(false);\n\n const navigate = useNavigate();\n\n // Extended your existing maps with a \"multi\" entry for multi-category selections\n const imageMap = {\n science: '/main.png',\n philosophy: '/philosophy.png',\n tech: '/tech.png',\n discover: '/web.png',\n multi: '/multi.png', // displayed when more than one category is selected\n };\n\n const headerMap = {\n science: '/header.png',\n philosophy: '/header_philosophy.png',\n tech: '/header_tech.png',\n discover: '/header_web.png',\n multi: '/header_multi.png', // displayed when more than one category is selected\n };\n\n const appBgMap = {\n science: '#fcfcff',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#f0f0f0', // background for multi-category mode\n };\n\n const headerBgMap = {\n science: '#f8f8f8',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#cccccc', // header background for multi-category mode\n };\n\n // If multiple categories are selected, we use 'multi' for the images and colors\n const currentCategory = selectedCategories.length > 1 ? 'multi' : selectedCategories[0];\n\n // Submit the form, passing categories as comma-separated\n const handleSubmit = (e) => {\n e.preventDefault();\n navigate(`/results?q=${encodeURIComponent(query)}&cat=${selectedCategories.join(\",\")}`);\n };\n\n // Single-click toggling: if category is selected, remove it; otherwise add it\n const handleCategoryToggle = (cat) => {\n setSelectedCategories((prev) => {\n if (prev.includes(cat)) {\n return prev.filter((c) => c !== cat);\n } else {\n return [...prev, cat];\n }\n });\n };\n\n return (\n