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/src/ResultsPage.js\",\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 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 useEffect(() => {\n const apiUrl = `https://${category}.tsugutsugugo.com/yacysearch.json?query=${encodeURIComponent(query)}&resource=global&urlmaskfilter=.*&prefermaskfilter=&nav=all`;\n fetch(apiUrl).then(res => res.json()).then(data => {\n if (data.channels && data.channels[0].items) {\n setResults(data.channels[0].items);\n } else {\n setResults([]);\n }\n setLoading(false);\n }).catch(err => {\n console.error(err);\n setResults([]);\n setLoading(false);\n });\n }, [query, category]);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"App\",\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: \"Header\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 22\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\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 \\\"\", query, \"\\\"\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), loading ? /*#__PURE__*/_jsxDEV(\"p\", {\n children: \"Loading results...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 11\n }, this) : results.length > 0 ? /*#__PURE__*/_jsxDEV(\"ul\", {\n style: {\n textAlign: 'left',\n marginTop: '20px',\n listStyleType: 'none'\n },\n children: results.map((item, idx) => /*#__PURE__*/_jsxDEV(\"li\", {\n style: {\n marginBottom: '20px'\n },\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: 62,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n dangerouslySetInnerHTML: {\n __html: item.description\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\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: 66,\n columnNumber: 17\n }, this)]\n }, idx, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 11\n }, this) : /*#__PURE__*/_jsxDEV(\"p\", {\n children: \"No search results found.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\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: 82,\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: 83,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\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","headerMap","science","philosophy","tech","discover","headerBgMap","apiUrl","encodeURIComponent","fetch","then","res","json","data","channels","items","catch","err","console","error","className","children","style","backgroundColor","to","src","alt","fileName","_jsxFileName","lineNumber","columnNumber","id","length","textAlign","marginTop","listStyleType","map","item","idx","marginBottom","href","link","target","rel","color","fontSize","textDecoration","fontWeight","title","dangerouslySetInnerHTML","__html","description","_c","$RefreshReg$"],"sources":["/home/magh/Documents/landing_page/src/ResultsPage.js"],"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 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 useEffect(() => {\n const apiUrl = `https://${category}.tsugutsugugo.com/yacysearch.json?query=${encodeURIComponent(query)}&resource=global&urlmaskfilter=.*&prefermaskfilter=&nav=all`;\n\n fetch(apiUrl)\n .then(res => res.json())\n .then(data => {\n if (data.channels && data.channels[0].items) {\n setResults(data.channels[0].items);\n } else {\n setResults([]);\n }\n setLoading(false);\n })\n .catch(err => {\n console.error(err);\n setResults([]);\n setLoading(false);\n });\n }, [query, category]);\n\n return (\n
Loading results...
\n ) : results.length > 0 ? (\nNo search results found.
\n )}\n