Loading results...
\n ) : results.length > 0 ? (\n- \n {results.map((item, idx) => (\n
- \n \n {item.title}\n \n \n \n Cache\n \n \n ))}\n
No search results found.
\n )}\n{"ast":null,"code":"var _jsxFileName = \"/home/magh/Documents/landing_page_scroll/src/ResultsPage.jsx\",\n _s = $RefreshSig$();\nimport React, { useEffect, useState } from 'react';\nimport { useLocation, Link } from 'react-router-dom';\nimport './App.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction ResultsPage() {\n _s();\n const [results, setResults] = useState([]);\n const [loading, setLoading] = useState(true);\n const location = useLocation();\n const searchParams = new URLSearchParams(location.search);\n const query = searchParams.get('q') || '';\n const category = searchParams.get('cat') || 'science';\n const sourceMap = {\n science: 'https://science.tsugutsugugo.com/yacysearch.json',\n philosophy: 'https://sophos.tsugutsugugo.com/yacysearch.json',\n tech: 'https://tech.tsugutsugugo.com/yacysearch.json',\n discover: 'https://web.tsugutsugugo.com/yacysearch.json'\n };\n const headerMap = {\n science: '/header.png',\n philosophy: '/header_philosophy.png',\n tech: '/header_tech.png',\n discover: '/header_web.png'\n };\n const headerBgMap = {\n science: '#f8f8f8',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff'\n };\n const appBgMap = {\n science: '#fcfcff',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff'\n };\n useEffect(() => {\n const fetchResults = async () => {\n const resultsPerPage = 10;\n const totalPages = 5;\n let allResults = [];\n const apiUrl = sourceMap[category];\n for (let page = 0; page < totalPages; page++) {\n const startRecord = page * resultsPerPage;\n try {\n var _data$channels, _data$channels$;\n const response = await fetch(`${apiUrl}?query=${encodeURIComponent(query)}&resource=global&urlmaskfilter=.*&prefermaskfilter=&nav=all&maximumRecords=${resultsPerPage}&startRecord=${startRecord}`);\n if (!response.ok) continue;\n const data = await response.json();\n const items = ((_data$channels = data.channels) === null || _data$channels === void 0 ? void 0 : (_data$channels$ = _data$channels[0]) === null || _data$channels$ === void 0 ? void 0 : _data$channels$.items) || [];\n allResults = [...allResults, ...items];\n } catch (error) {\n console.error(\"Fetching results failed:\", error);\n }\n }\n setResults(allResults);\n setLoading(false);\n };\n fetchResults();\n }, [query, category]);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: `App results-page`,\n style: {\n backgroundColor: appBgMap[category]\n },\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n className: \"header-bar\",\n style: {\n backgroundColor: headerBgMap[category]\n },\n children: /*#__PURE__*/_jsxDEV(Link, {\n to: \"/\",\n children: /*#__PURE__*/_jsxDEV(\"img\", {\n src: headerMap[category],\n alt: `${category} Header`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"main\", {\n className: \"main-content\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"tagline\",\n children: [\"Search Results for \", /*#__PURE__*/_jsxDEV(\"strong\", {\n children: query\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 46\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 9\n }, this), loading ? /*#__PURE__*/_jsxDEV(\"p\", {\n children: \"Loading results...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 11\n }, this) : results.length > 0 ? /*#__PURE__*/_jsxDEV(\"ul\", {\n style: {\n listStyleType: 'none'\n },\n children: results.map((item, idx) => /*#__PURE__*/_jsxDEV(\"li\", {\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: item.link,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n style: {\n color: 'blue',\n fontSize: '1.1em',\n textDecoration: 'none',\n fontWeight: 'bold'\n },\n children: item.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n dangerouslySetInnerHTML: {\n __html: item.description\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: `https://web.archive.org/web/*/${item.link}`,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n style: {\n color: '#888',\n fontSize: '0.9em'\n },\n children: \"Cache\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 17\n }, this)]\n }, idx, true, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 11\n }, this) : /*#__PURE__*/_jsxDEV(\"p\", {\n children: \"No search results found.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 82,\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: 111,\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: 112,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n_s(ResultsPage, \"tisgxuaUHm2G07XYn4AewBafuwY=\", false, function () {\n return [useLocation];\n});\n_c = ResultsPage;\nexport default ResultsPage;\nvar _c;\n$RefreshReg$(_c, \"ResultsPage\");","map":{"version":3,"names":["React","useEffect","useState","useLocation","Link","jsxDEV","_jsxDEV","ResultsPage","_s","results","setResults","loading","setLoading","location","searchParams","URLSearchParams","search","query","get","category","sourceMap","science","philosophy","tech","discover","headerMap","headerBgMap","appBgMap","fetchResults","resultsPerPage","totalPages","allResults","apiUrl","page","startRecord","_data$channels","_data$channels$","response","fetch","encodeURIComponent","ok","data","json","items","channels","error","console","className","style","backgroundColor","children","to","src","alt","fileName","_jsxFileName","lineNumber","columnNumber","id","length","listStyleType","map","item","idx","href","link","target","rel","color","fontSize","textDecoration","fontWeight","title","dangerouslySetInnerHTML","__html","description","_c","$RefreshReg$"],"sources":["/home/magh/Documents/landing_page_scroll/src/ResultsPage.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useLocation, Link } from 'react-router-dom';\nimport './App.css';\n\nfunction ResultsPage() {\n const [results, setResults] = useState([]);\n const [loading, setLoading] = useState(true);\n const location = useLocation();\n\n const searchParams = new URLSearchParams(location.search);\n const query = searchParams.get('q') || '';\n const category = searchParams.get('cat') || 'science';\n\n const sourceMap = {\n science: 'https://science.tsugutsugugo.com/yacysearch.json',\n philosophy: 'https://sophos.tsugutsugugo.com/yacysearch.json',\n tech: 'https://tech.tsugutsugugo.com/yacysearch.json',\n discover: 'https://web.tsugutsugugo.com/yacysearch.json',\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 };\n\n const headerBgMap = {\n science: '#f8f8f8',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n };\n\n const appBgMap = {\n science: '#fcfcff',\n philosophy: '#ffffff',\n tech: '#ffffff',\n discover: '#ffffff',\n };\n\n useEffect(() => {\n const fetchResults = async () => {\n const resultsPerPage = 10;\n const totalPages = 5;\n let allResults = [];\n\n const apiUrl = sourceMap[category];\n\n for (let page = 0; page < totalPages; page++) {\n const startRecord = page * resultsPerPage;\n try {\n const response = await fetch(\n `${apiUrl}?query=${encodeURIComponent(query)}&resource=global&urlmaskfilter=.*&prefermaskfilter=&nav=all&maximumRecords=${resultsPerPage}&startRecord=${startRecord}`\n );\n\n if (!response.ok) continue;\n\n const data = await response.json();\n const items = data.channels?.[0]?.items || [];\n\n allResults = [...allResults, ...items];\n } catch (error) {\n console.error(\"Fetching results failed:\", error);\n }\n }\n\n setResults(allResults);\n setLoading(false);\n };\n\n fetchResults();\n }, [query, category]);\n\n return (\n
Loading results...
\n ) : results.length > 0 ? (\nNo search results found.
\n )}\n