{"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 // Changed from a single string to an array for multi-select\n const [selectedCategories, setSelectedCategories] = useState(['science']);\n const navigate = useNavigate();\n\n // Extended your existing maps with a \"multi\" entry for multi-category searches\n const imageMap = {\n science: '/main.png',\n philosophy: '/philosophy.png',\n tech: '/tech.png',\n discover: '/web.png',\n multi: '/multi.png' // <-- new multi-category image\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' // <-- new multi-category header\n };\n const appBgMap = {\n science: '#fcfcff',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#f0f0f0' // <-- multi-category background\n };\n const headerBgMap = {\n science: '#f8f8f8',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#cccccc' // <-- multi-category header background\n };\n\n // If user selected more than one category, \"multi\" is used for images/colors.\n const currentCategory = selectedCategories.length > 1 ? 'multi' : selectedCategories[0];\n const handleSubmit = e => {\n e.preventDefault();\n // Pass multiple categories as a comma-separated string\n navigate(`/results?q=${encodeURIComponent(query)}&cat=${selectedCategories.join(\",\")}`);\n };\n\n // Called whenever the user selects/deselects categories from the multi-select\n const handleCategoryChange = e => {\n const options = Array.from(e.target.selectedOptions, opt => opt.value);\n setSelectedCategories(options);\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: 62,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\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: 65,\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: 66,\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: 69,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"multi-select-container\",\n children: /*#__PURE__*/_jsxDEV(\"select\", {\n multiple: true,\n size: \"1\",\n value: selectedCategories,\n onChange: handleCategoryChange,\n children: [\"science\", \"philosophy\", \"tech\", \"discover\"].sort((a, b) => {\n // First selected category goes on top; the rest remain alphabetical\n if (a === selectedCategories[0]) return -1;\n if (b === selectedCategories[0]) return 1;\n return a.localeCompare(b);\n }).map(cat => /*#__PURE__*/_jsxDEV(\"option\", {\n value: cat,\n children: cat.charAt(0).toUpperCase() + cat.slice(1)\n }, cat, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 64,\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: 105,\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: 106,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 5\n }, this);\n}\n_s(App, \"Pdez9FCaZhls8ybi96jsrXayt30=\", 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","navigate","imageMap","science","philosophy","tech","discover","multi","headerMap","appBgMap","headerBgMap","currentCategory","length","handleSubmit","e","preventDefault","encodeURIComponent","join","handleCategoryChange","options","Array","from","target","selectedOptions","opt","value","className","style","backgroundColor","children","src","alt","fileName","_jsxFileName","lineNumber","columnNumber","id","onSubmit","type","name","placeholder","onChange","multiple","size","sort","a","b","localeCompare","map","cat","charAt","toUpperCase","slice","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 // Changed from a single string to an array for multi-select\n const [selectedCategories, setSelectedCategories] = useState(['science']);\n const navigate = useNavigate();\n\n // Extended your existing maps with a \"multi\" entry for multi-category searches\n const imageMap = {\n science: '/main.png',\n philosophy: '/philosophy.png',\n tech: '/tech.png',\n discover: '/web.png',\n multi: '/multi.png', // <-- new multi-category image\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', // <-- new multi-category header\n };\n\n const appBgMap = {\n science: '#fcfcff',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#f0f0f0', // <-- multi-category background\n };\n\n const headerBgMap = {\n science: '#f8f8f8',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#cccccc', // <-- multi-category header background\n };\n\n // If user selected more than one category, \"multi\" is used for images/colors.\n const currentCategory = selectedCategories.length > 1 ? 'multi' : selectedCategories[0];\n\n const handleSubmit = (e) => {\n e.preventDefault();\n // Pass multiple categories as a comma-separated string\n navigate(`/results?q=${encodeURIComponent(query)}&cat=${selectedCategories.join(\",\")}`);\n };\n\n // Called whenever the user selects/deselects categories from the multi-select\n const handleCategoryChange = (e) => {\n const options = Array.from(e.target.selectedOptions, (opt) => opt.value);\n setSelectedCategories(options);\n };\n\n return (\n