
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\ikhba\\\\OneDrive\\\\Documents\\\\CIS3308\\\\landing_page\\\\src\\\\App.js\",\n _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport './App.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst form = document.querySelector('.search-form');\nconst inputField = document.getElementById(\"searchInput\");\nconst suggestionBox = document.getElementById(\"suggestionBox\");\nasync function checkGrammar(text) {\n const response = await fetch(\"https://api.languagetool.org/v2/check\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: new URLSearchParams({\n text: text,\n language: \"en-US\"\n })\n });\n const data = await response.json();\n if (data.matches.length > 0) {\n var _data$matches$0$repla;\n let suggestion = ((_data$matches$0$repla = data.matches[0].replacements[0]) === null || _data$matches$0$repla === void 0 ? void 0 : _data$matches$0$repla.value) || \"Fix error\";\n suggestionBox.innerHTML = `Did you mean: ${suggestion}`;\n suggestionBox.style.display = \"block\";\n } else {\n suggestionBox.style.display = \"none\";\n }\n}\nfunction applyCorrection(correctedText) {\n inputField.value = correctedText;\n suggestionBox.style.display = \"none\";\n}\ninputField.addEventListener(\"input\", function () {\n if (inputField.value.length > 3) {\n checkGrammar(inputField.value);\n } else {\n suggestionBox.style.display = \"none\";\n }\n});\nfunction App() {\n _s();\n const [query, setQuery] = useState('');\n const [category, setCategory] = useState('science');\n const handleSubmit = e => {\n e.preventDefault();\n let actionUrl = '';\n switch (category) {\n case 'science':\n actionUrl = 'https://science.tsugutsugugo.com/yacysearch.html?query=';\n break;\n case 'philosophy':\n actionUrl = 'https://sophos.tsugutsugugo.com/yacysearch.html?query=';\n break;\n case 'tech':\n actionUrl = 'https://tech.tsugutsugugo.com/yacysearch.html?query=';\n break;\n case 'discover':\n actionUrl = 'https://web.tsugutsugugo.com/yacysearch.html?query=';\n break;\n default:\n actionUrl = 'https://science.tsugutsugugo.com/yacysearch.html?query=';\n }\n // navigation woes\n window.location.href = `${actionUrl}${encodeURIComponent(query)}`;\n };\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"App\",\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n className: \"header-bar\",\n children: /*#__PURE__*/_jsxDEV(\"img\", {\n src: \"header.png\",\n alt: \"Header\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"main\", {\n className: \"main-content\",\n children: [/*#__PURE__*/_jsxDEV(\"img\", {\n id: \"mascot-img\",\n src: \"main.png\",\n alt: \"Mascot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\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: 73,\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: 76,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n children: \"Search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"radio-options\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n htmlFor: \"science\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"radio\",\n name: \"category\",\n id: \"science\",\n value: \"science\",\n checked: category === 'science',\n onChange: e => setCategory(e.target.value)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 15\n }, this), \"Science\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n htmlFor: \"philosophy\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"radio\",\n name: \"category\",\n id: \"philosophy\",\n value: \"philosophy\",\n checked: category === 'philosophy',\n onChange: e => setCategory(e.target.value)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 15\n }, this), \"Philosophy\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n htmlFor: \"tech\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"radio\",\n name: \"category\",\n id: \"tech\",\n value: \"tech\",\n checked: category === 'tech',\n onChange: e => setCategory(e.target.value)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 15\n }, this), \"Tech\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n htmlFor: \"discover\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"radio\",\n name: \"category\",\n id: \"discover\",\n value: \"discover\",\n checked: category === 'discover',\n onChange: e => setCategory(e.target.value)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 15\n }, this), \"Discover the Web\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 71,\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: 134,\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: 135,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 5\n }, this);\n}\n_s(App, \"d7wfwqZpLVFRcVRykxoAGp7jHMM=\");\n_c = App;\nexport default App;\nvar _c;\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["React","useState","jsxDEV","_jsxDEV","form","document","querySelector","inputField","getElementById","suggestionBox","checkGrammar","text","response","fetch","method","headers","body","URLSearchParams","language","data","json","matches","length","_data$matches$0$repla","suggestion","replacements","value","innerHTML","style","display","applyCorrection","correctedText","addEventListener","App","_s","query","setQuery","category","setCategory","handleSubmit","e","preventDefault","actionUrl","window","location","href","encodeURIComponent","className","children","src","alt","fileName","_jsxFileName","lineNumber","columnNumber","id","onSubmit","type","name","placeholder","onChange","target","htmlFor","checked","_c","$RefreshReg$"],"sources":["C:/Users/ikhba/OneDrive/Documents/CIS3308/landing_page/src/App.js"],"sourcesContent":["import React, { useState } from 'react';\r\nimport './App.css';\r\nconst form = document.querySelector('.search-form');\r\n const inputField = document.getElementById(\"searchInput\");\r\n const suggestionBox = document.getElementById(\"suggestionBox\");\r\n\r\n async function checkGrammar(text) {\r\n const response = await fetch(\"https://api.languagetool.org/v2/check\", {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\r\n body: new URLSearchParams({ text: text, language: \"en-US\" })\r\n });\r\n\r\n const data = await response.json();\r\n if (data.matches.length > 0) {\r\n let suggestion = data.matches[0].replacements[0]?.value || \"Fix error\";\r\n suggestionBox.innerHTML = `Did you mean: ${suggestion}`;\r\n suggestionBox.style.display = \"block\";\r\n } else {\r\n suggestionBox.style.display = \"none\";\r\n }\r\n }\r\n\r\n function applyCorrection(correctedText) {\r\n inputField.value = correctedText;\r\n suggestionBox.style.display = \"none\";\r\n }\r\n\r\n inputField.addEventListener(\"input\", function () {\r\n if (inputField.value.length > 3) {\r\n checkGrammar(inputField.value);\r\n } else {\r\n suggestionBox.style.display = \"none\";\r\n }\r\n });\r\n\r\n \r\nfunction App() {\r\n const [query, setQuery] = useState('');\r\n const [category, setCategory] = useState('science');\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n let actionUrl = '';\r\n switch (category) {\r\n case 'science':\r\n actionUrl = 'https://science.tsugutsugugo.com/yacysearch.html?query=';\r\n break;\r\n case 'philosophy':\r\n actionUrl = 'https://sophos.tsugutsugugo.com/yacysearch.html?query=';\r\n break;\r\n case 'tech':\r\n actionUrl = 'https://tech.tsugutsugugo.com/yacysearch.html?query=';\r\n break;\r\n case 'discover':\r\n actionUrl = 'https://web.tsugutsugugo.com/yacysearch.html?query=';\r\n break;\r\n default:\r\n actionUrl = 'https://science.tsugutsugugo.com/yacysearch.html?query=';\r\n }\r\n // navigation woes\r\n window.location.href = `${actionUrl}${encodeURIComponent(query)}`;\r\n };\r\n \r\n\r\n return (\r\n