search_interface/node_modules/.cache/babel-loader/5228460960ebac52224c92ad5d7f4d2a6fbfba96a3be9269864d319d841028c6.json
2025-04-14 09:23:55 +09:00

1 line
15 KiB
JSON

{"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 category string to an array for multi-select.\n const [selectedCategories, setSelectedCategories] = useState(['science']);\n const navigate = useNavigate();\n\n // Existing image maps extended to include a \"multi\" key.\n const imageMap = {\n science: '/main.png',\n philosophy: '/philosophy.png',\n tech: '/tech.png',\n discover: '/web.png',\n multi: '/multi.png' // Multi-category main 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' // Multi-category header image.\n };\n const appBgMap = {\n science: '#fcfcff',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#f0f0f0' // Multi-category app background color.\n };\n const headerBgMap = {\n science: '#f8f8f8',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#cccccc' // Multi-category header background color.\n };\n\n // Compute the current category key to use for images and colors.\n // If more than one category is selected, we use \"multi\"; otherwise, use the only selected value.\n const currentCategory = selectedCategories.length > 1 ? 'multi' : selectedCategories[0];\n const handleSubmit = e => {\n e.preventDefault();\n // Pass the selected categories as a comma-separated string.\n navigate(`/results?q=${encodeURIComponent(query)}&cat=${selectedCategories.join(\",\")}`);\n };\n\n // Handle multi-select changes.\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: 63,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\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: 66,\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: 67,\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: 70,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"multi-select-container\",\n children: /*#__PURE__*/_jsxDEV(\"select\", {\n multiple: true,\n value: selectedCategories,\n onChange: handleCategoryChange,\n children: [\"science\", \"philosophy\", \"tech\", \"discover\"].sort((a, b) => {\n // Make sure selected options appear at the top.\n const aSelected = selectedCategories.includes(a);\n const bSelected = selectedCategories.includes(b);\n if (aSelected && !bSelected) return -1;\n if (!aSelected && bSelected) return 1;\n return 0;\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: 95,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\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: 104,\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: 105,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\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","sort","a","b","aSelected","includes","bSelected","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 category string to an array for multi-select.\n const [selectedCategories, setSelectedCategories] = useState(['science']);\n const navigate = useNavigate();\n\n // Existing image maps extended to include a \"multi\" key.\n const imageMap = {\n science: '/main.png',\n philosophy: '/philosophy.png',\n tech: '/tech.png',\n discover: '/web.png',\n multi: '/multi.png', // Multi-category main 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', // Multi-category header image.\n };\n\n const appBgMap = {\n science: '#fcfcff',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#f0f0f0', // Multi-category app background color.\n };\n\n const headerBgMap = {\n science: '#f8f8f8',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n multi: '#cccccc', // Multi-category header background color.\n };\n\n // Compute the current category key to use for images and colors.\n // If more than one category is selected, we use \"multi\"; otherwise, use the only selected value.\n const currentCategory = selectedCategories.length > 1 ? 'multi' : selectedCategories[0];\n\n const handleSubmit = (e) => {\n e.preventDefault();\n // Pass the selected categories as a comma-separated string.\n navigate(`/results?q=${encodeURIComponent(query)}&cat=${selectedCategories.join(\",\")}`);\n };\n\n // Handle multi-select changes.\n const handleCategoryChange = (e) => {\n const options = Array.from(e.target.selectedOptions, (opt) => opt.value);\n setSelectedCategories(options);\n };\n\n return (\n <div className=\"App\" style={{ backgroundColor: appBgMap[currentCategory] }}>\n <header className=\"header-bar\" style={{ backgroundColor: headerBgMap[currentCategory] }}>\n <img src={headerMap[currentCategory]} alt=\"Header\" />\n </header>\n <main className=\"main-content\">\n <img id=\"mascot-img\" src={imageMap[currentCategory]} alt=\"Mascot\" />\n <div id=\"tagline\">a search engine for the rest of us</div>\n <form className=\"search-form\" onSubmit={handleSubmit}>\n <div className=\"search-container\">\n <input\n type=\"text\"\n name=\"search\"\n placeholder=\"Search...\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n />\n </div>\n {/* Replace radio buttons with a multi-select drop-down */}\n <div className=\"multi-select-container\">\n <select\n multiple\n value={selectedCategories}\n onChange={handleCategoryChange}\n >\n {[\"science\", \"philosophy\", \"tech\", \"discover\"]\n .sort((a, b) => {\n // Make sure selected options appear at the top.\n const aSelected = selectedCategories.includes(a);\n const bSelected = selectedCategories.includes(b);\n if (aSelected && !bSelected) return -1;\n if (!aSelected && bSelected) return 1;\n return 0;\n })\n .map((cat) => (\n <option key={cat} value={cat}>\n {cat.charAt(0).toUpperCase() + cat.slice(1)}\n </option>\n ))}\n </select>\n </div>\n </form>\n </main>\n <footer className=\"footer\">\n <a href=\"https://git.tsugutsugugo.com/explore/repos\">Source</a> |{' '}\n <a href=\"https://docs.tsugutsugugo.com/\">Docs</a>\n </footer>\n </div>\n );\n}\n\nexport default App;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}