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

1 line
18 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"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 pill drop-down is open\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const navigate = useNavigate();\n\n // 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 multiple categories are 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 multiple categories are 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'\n const currentCategory = selectedCategories.length > 1 ? 'multi' : selectedCategories[0];\n\n // Submit 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: 74,\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: 75,\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: 79,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: `custom-dropdown ${dropdownOpen ? 'open' : ''}`,\n onClick: () => setDropdownOpen(!dropdownOpen),\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"dropdown-selected\",\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: 94,\n columnNumber: 13\n }, this), dropdownOpen && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"dropdown-items\",\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: e => {\n e.stopPropagation(); // so clicking an item wont immediately close the dropdown\n handleCategoryToggle(cat);\n },\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: 89,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 73,\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: 132,\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: 133,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\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","stopPropagation","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 pill drop-down is open\n const [dropdownOpen, setDropdownOpen] = useState(false);\n\n const navigate = useNavigate();\n\n // 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 multiple categories are 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 multiple categories are 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'\n const currentCategory = selectedCategories.length > 1 ? 'multi' : selectedCategories[0];\n\n // Submit 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 <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\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\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\n {/* Single pill container: top portion shows current category, bottom portion has items */}\n <div\n className={`custom-dropdown ${dropdownOpen ? 'open' : ''}`}\n onClick={() => setDropdownOpen(!dropdownOpen)}\n >\n {/* The top portion with the plus sign & selected category */}\n <div className=\"dropdown-selected\">\n {selectedCategories.length === 1\n ? selectedCategories[0].charAt(0).toUpperCase() + selectedCategories[0].slice(1)\n : 'Multiple categories'}\n </div>\n\n {/* The bottom portion: category items appear INSIDE the same container */}\n {dropdownOpen && (\n <div className=\"dropdown-items\">\n {[\"science\", \"philosophy\", \"tech\", \"discover\"]\n .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 })\n .map((cat) => {\n const isSelected = selectedCategories.includes(cat);\n return (\n <div\n key={cat}\n className={`dropdown-item ${isSelected ? 'dropdown-item-selected' : ''}`}\n onClick={(e) => {\n e.stopPropagation(); // so clicking an item wont immediately close the dropdown\n handleCategoryToggle(cat);\n }}\n >\n {cat.charAt(0).toUpperCase() + cat.slice(1)}\n </div>\n );\n })}\n </div>\n )}\n </div>\n </form>\n </main>\n\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":[]}