1 line
26 KiB
JSON
1 line
26 KiB
JSON
{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n class: \"fade\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n class: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n placeholder: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n class: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n class: classType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.length; i++) {\n var linkLists = props.links;\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n links: linkLists\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n var items = [];\n console.log(props);\n\n for (var i = 0; i < props.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.url,\n class: \"theme_color-border theme_text-select\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg == \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes();\n var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour == 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes);\n seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c9 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","unstable_createPortal","Homepage","date","greet","Search","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","linkLists","LinkItem","console","log","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","seconds","getSeconds","midday","time","applications"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n <main id=\"container\" class=\"fade\">\n <div>\n <div>\n <Search />\n </div>\n <div>\n <Header\n date={date()}\n greet={greet()}\n />\n </div>\n <div>\n <Applications />\n </div>\n <div>\n <Bookmarks />\n </div>\n </div>\n </main>\n );\n}\n\nfunction Search() {\n return (\n <section id=\"search\">\n <div class=\"abackground\">\n <input name=\"keywords\" type=\"text\" class=\"keyword\" id=\"keywords\" size=\"50\" placeholder=\"\" />\n <label id=\"searchType\" class=\"Input-label\">Google search</label>\n </div>\n </section>\n )\n}\n\nfunction Header(props) {\n return (\n <section id=\"header\">\n <div id=\"greeting_block\">\n <h1 id=\"header_greet\">{props.greet}</h1>\n </div>\n <div id=\"date_block\">\n <h2 id=\"header_date\">{props.date}</h2>\n <Clock />\n </div>\n </section>\n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n <App\n key={i}\n name={appList.apps[i].name}\n url={appList.apps[i].url}\n icon={appList.apps[i].icon}\n NSFW={appList.apps[i].NSFW}\n />\n );\n }\n return (\n <section id=\"apps\">\n <h3>Applications</h3>\n <div id=\"apps_loop\">\n {items}\n </div>\n </section>\n );\n}\n\nfunction App(props) {\n let classType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n <div>\n <a href={hrefUrl} class={classType}>\n <div class=\"apps_item\">\n <div class=\"apps_icon\">\n <span class=\"iconify icon\" data-icon={iconName}></span>\n </div>\n <div class=\"apps_text\">\n <span id=\"app-name\">{props.name}</span>\n <span id=\"app-address\">{props.url}</span>\n </div>\n </div>\n </a>\n </div>\n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n <LinkGroups\n key={i}\n category={bookmarkList.bookmarks[i].category}\n links={bookmarkList.bookmarks[i].links}\n />\n );\n }\n return (\n <section id=\"links\">\n <h3>Bookmarks</h3>\n <div id=\"links_loop\">\n <div id=\"links_item\">\n {items}\n </div>\n </div>\n </section>\n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.length; i++) {\n var linkLists = props.links;\n items.push(\n <LinkItem\n key={i}\n links={linkLists}\n />\n );\n }\n return (\n <div>\n <h4>{props.category}</h4>\n {items}\n </div>\n );\n}\n\nfunction LinkItem(props) {\n var items = [];\n console.log(props);\n for (var i = 0; i < props.length; i++) {\n items.push(\n <a href={props.url} class=\"theme_color-border theme_text-select\">{props.name}</a>\n );\n }\n return (\n <div>\n {items}\n </div>\n );\n}\n\nReactDOM.render(\n <Homepage />,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg == \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour == 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n <h2 id=\"clock\">{time}</h2>\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\n"]},"metadata":{},"sourceType":"module"} |