diff --git a/src/App.js b/src/App.js
new file mode 100644
index 00000000..045cb561
--- /dev/null
+++ b/src/App.js
@@ -0,0 +1,28 @@
+import React from 'react';
+import { Routes, Route } from "react-router-dom";
+import Homepage from "./pages/Homepage";
+import Settings from "./pages/Settings";
+import PersonalizationSettings from "./components/PersonalizationSettings";
+import ApplicationSettings from "./components/ApplicationSettings";
+import BookmarkSettings from "./components/BookmarkSettings";
+import ThemesSettings from "./components/ThemesSettings";
+import ProviderSettings from "./components/ProviderSettings";
+
+function App() {
+ return (
+ <>
+
+ } />
+ }>
+ }/>
+ }/>
+ }/>
+ }/>
+ }/>
+
+
+ >
+ );
+}
+
+export default App;
\ No newline at end of file
diff --git a/src/assets/functions.js b/src/assets/functions.js
new file mode 100644
index 00000000..0d8935f2
--- /dev/null
+++ b/src/assets/functions.js
@@ -0,0 +1,300 @@
+import { setValueFromLocalStorage } from '../components/HideButton';
+
+export function date() {
+ let currentDate = new Date();
+ let dateOptions = {
+ weekday: "long",
+ year: "numeric",
+ month: "long",
+ day: "numeric"
+ };
+ let date = currentDate.toLocaleDateString("en-GB", dateOptions);
+ return date;
+}
+export function fixDigits(k) {
+ if (k < 10) {
+ return "0" + k;
+ }
+ else {
+ return k;
+ }
+}
+export function greet() {
+ let currentTime = new Date();
+ let greet = Math.floor(currentTime.getHours() / 6);
+ let easterEggChance = Math.floor(Math.random() * 100);
+ let greetings = require('../messages.json');
+ let timeBased = [];
+ let easterEggs = [];
+ for (var i = 0; i < greetings.messages.length; i++) {
+ if (greetings.messages[i].easteregg === "FALSE") {
+ timeBased = timeBased.concat(greetings.messages[i]);
+ } else {
+ easterEggs = easterEggs.concat(greetings.messages[i]);
+ }
+ }
+ if (easterEggChance > 10) {
+ return timeBased[greet].message;
+ } else {
+ let easterEggText = Math.floor(Math.random() * easterEggs.length);
+ return easterEggs[easterEggText].message;
+ }
+}
+export function getApps() {
+ let applications = require('../apps.json');
+ return applications;
+}
+export function getLinks() {
+ let links = require('../links.json');
+ return links;
+}
+export function getProviders() {
+ let providers = require('../providers.json');
+ return providers;
+}
+export function getThemes() {
+ let themes = require('../themes.json');
+ return themes;
+}
+export function getPersonalData() {
+ let personaldata = require('../personaldata.json');
+ return personaldata;
+}
+export function updateTheme(e) {
+ var themes = getThemes();
+ var themeName = e.target.innerHTML.toLowerCase();
+ var index = themes.themes.findIndex(function(item, i){
+ return item.name === themeName;
+ });
+ localStorage.setItem("image-background", themes.themes[index].imagebackground);
+ localStorage.setItem("color-background", themes.themes[index].colorbackground);
+ localStorage.setItem("color-search-background", themes.themes[index].colorserachbackground);
+ localStorage.setItem("color-text-pri",themes.themes[index].colortextpri);
+ localStorage.setItem("color-text-acc", themes.themes[index].colortextacc);
+ localStorage.setItem("color-border", themes.themes[index].colorborder);
+
+ //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);
+ setTheme();
+}
+export function setTheme() {
+ if(localStorage.getItem("color-background") === null) {
+ localStorage.setItem("image-background", "");
+ localStorage.setItem("color-background", "#ffffff");
+ localStorage.setItem("color-search-background", "#22222220");
+ localStorage.setItem("color-text-pri", "#222222");
+ localStorage.setItem("color-text-acc", "#dddddd");
+ localStorage.setItem("color-border", "#dddddd");
+ } else {
+ setValueFromLocalStorage('image-background');
+ setValueFromLocalStorage('color-background');
+ setValueFromLocalStorage('color-search-background');
+ setValueFromLocalStorage('color-text-pri');
+ setValueFromLocalStorage('color-text-acc');
+ setValueFromLocalStorage('color-border');
+ setValueFromLocalStorage('content-display');
+ }
+
+}
+export function handleKeyPress(e) {
+ var sindex = 0;
+ var cycle = false;
+ var key = e.keyCode || e.which;
+ var text = e.target.value.replaceAll("+", "%2B");
+ var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);
+ var subtext = text.substr(2 + option.length);
+ if (key === 13) { // Search functions
+ search(text);
+ }
+ if (key === 9) { // Tab Completion Functions
+ e.preventDefault();
+ e.stopPropagation();
+ if (text[0] === ';') {
+ switch (option) {
+ case 't':
+ var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];
+ if (!subtext || cycle) {
+ cycle = true;
+ if (sindex > streamers.length - 1) sindex = 0;
+ document.getElementById("keywords").value = ';t ' + streamers[sindex++];
+ return;
+ }
+ for (var streamer of streamers) {
+ if (subtext === streamer.substr(0, subtext.length)) {
+ document.getElementById("keywords").value = ';t ' + streamer;
+ return;
+ }
+ }
+ break;
+ default :
+ break;
+ }
+ }
+ }
+ if(key === 32){ //Space to go to search
+ updateLabel(text);
+ }
+ sindex = 0;
+ cycle = false;
+ updateLabel(text);
+}
+export function updateLabel(text) {
+ var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);
+ if (text[0] === '/') {
+ // if (text.indexOf(' ') > -1) {
+ switch (option) {
+ case "am":
+ document.getElementById("searchType").innerHTML = "Allmusic search";
+ break;
+ case "d":
+ document.getElementById("searchType").innerHTML = "Duck Duck Go search";
+ break;
+ case "di":
+ document.getElementById("searchType").innerHTML = "Discogs search";
+ break;
+ case "i":
+ document.getElementById("searchType").innerHTML = "IMDB search";
+ break;
+ case "m":
+ document.getElementById("searchType").innerHTML = "TheMovieDB search";
+ break;
+ case "r":
+ document.getElementById("searchType").innerHTML = "Reddit search";
+ break;
+ case "q":
+ document.getElementById("searchType").innerHTML = "Qwant search";
+ break;
+ case "so":
+ document.getElementById("searchType").innerHTML = "Soundcloud search";
+ break;
+ case "s":
+ document.getElementById("searchType").innerHTML = "Spotify search";
+ break;
+ case "tv":
+ document.getElementById("searchType").innerHTML = "TheTVDB search";
+ break;
+ case "t":
+ document.getElementById("searchType").innerHTML = "Trakt search";
+ break;
+ case "y":
+ document.getElementById("searchType").innerHTML = "YouTube search";
+ break;
+ case "w":
+ document.getElementById("searchType").innerHTML = "Wikipedia search";
+ break;
+ case "p":
+ document.getElementById("searchType").innerHTML = "Plex search";
+ break;
+ case "rt":
+ document.getElementById("searchType").innerHTML = "Rotten Tomatoes search";
+ break;
+ default:
+ document.getElementById("searchType").innerHTML = "Invalid search";
+ break;
+ }
+ }else {
+ document.getElementById("searchType").innerHTML = "Google search";
+ }
+}
+export function search(text) {
+ if (text[0] === '/') {
+ if (text.indexOf(' ') > -1) {
+ let option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);
+ var subtext = text.substr(2 + option.length);
+ switch (option) {
+ case "am":
+ window.location = "https://www.allmusic.com/search/all/" + subtext;
+ break;
+ case "d":
+ window.location = "https://duckduckgo.com/?q=" + subtext;
+ break;
+ case "di":
+ window.location = "https://www.discogs.com/search/?q=" + subtext;
+ break;
+ case "i":
+ window.location = "https://www.imdb.com/find?q=" + subtext;
+ break;
+ case "m":
+ window.location = "https://www.themoviedb.org/search?query=" + subtext;
+ break;
+ case "r":
+ window.location = "https://www.reddit.com/search?q=" + subtext;
+ break;
+ case "q":
+ window.location = "https://www.qwant.com/?q=" + subtext;
+ break;
+ case "so":
+ window.location = "https://soundcloud.com/search?q=" + subtext;
+ break;
+ case "s":
+ window.location = "https://open.spotify.com/search/results/" + subtext;
+ break;
+ case "t":
+ window.location = "https://trakt.tv/search?query=" + subtext;
+ break;
+ case "tv":
+ window.location = "https://www.thetvdb.com/search?query=" + subtext;
+ break;
+ case "y":
+ window.location = "https://www.youtube.com/results?search_query=" + subtext;
+ break;
+ case "w":
+ window.location = "https://en.wikipedia.org/w/index.php?search=" + subtext;
+ break;
+ case "p":
+ window.location = "https://app.plex.tv/desktop/#!/search?query=" + subtext;
+ break;
+ case "rt":
+ window.location = "https://www.rottentomatoes.com/search?search=" + subtext;
+ break;
+ default :
+ break;
+ }
+ } else {
+ let option = text.substr(1);
+ switch (option) {
+ case "d":
+ window.location = "https://www.duckduckgo.com";
+ break;
+ case "y":
+ window.location = "https://www.youtube.com";
+ break;
+ case "r":
+ window.location = "https://reddit.com";
+ break;
+ case "s":
+ window.location = "https://open.spotify.com";
+ break;
+ default :
+ break;
+ }
+ }
+ } else if (validURL(text)) {
+ if (containsProtocol(text))
+ window.location = text;
+ else
+ window.location = "https://" + text;
+ } else {
+ window.location = "https://www.google.com/search?q=" + text;
+ }
+}
+export function validURL(str) {
+ var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
+ '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
+ '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
+ '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
+ '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
+ '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator
+ return !!pattern.test(str);
+}
+export function containsProtocol(str) {
+ var pattern = new RegExp('^(https?:\\/\\/){1}.*', 'i');
+ return !!pattern.test(str);
+}
+export function replaceAll(search, replacement) {
+ var target = this;
+ return target.split(search).join(replacement);
+};
+
+export default function main () {
+ return;
+}
\ No newline at end of file
diff --git a/src/components/AppItem.js b/src/components/AppItem.js
new file mode 100644
index 00000000..0857e0d6
--- /dev/null
+++ b/src/components/AppItem.js
@@ -0,0 +1,23 @@
+function AppItem(props) {
+
+ let classNameType = props.NSFW + "-content";
+ let hrefUrl = "https://" + props.url;
+ let iconName = "mdi-" + props.icon;
+ return (
+
+ );
+}
+
+export default AppItem;
\ No newline at end of file
diff --git a/src/components/ApplicationDetails.js b/src/components/ApplicationDetails.js
new file mode 100644
index 00000000..ad58e55a
--- /dev/null
+++ b/src/components/ApplicationDetails.js
@@ -0,0 +1,27 @@
+function ApplicationDetails(props) {
+
+ var nsfwChecked;
+ if(props.NSFW === "NSFW") {
+ nsfwChecked = true;
+ } else if(props.easterEgg === "SAFE") {
+ nsfwChecked = false;
+ } else {
+ nsfwChecked = false;
+ }
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default ApplicationDetails;
\ No newline at end of file
diff --git a/src/components/ApplicationSettings.js b/src/components/ApplicationSettings.js
new file mode 100644
index 00000000..75428d73
--- /dev/null
+++ b/src/components/ApplicationSettings.js
@@ -0,0 +1,33 @@
+import { getApps } from '../assets/functions.js';
+import ApplicationDetails from './ApplicationDetails'
+
+const ApplicationSettings = () => {
+ let apps = (getApps()).apps;
+ console.log(apps);
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ };
+ return (
+
+
+ );
+}
+
+export default ApplicationSettings;
\ No newline at end of file
diff --git a/src/components/Applications.js b/src/components/Applications.js
new file mode 100644
index 00000000..4a762208
--- /dev/null
+++ b/src/components/Applications.js
@@ -0,0 +1,25 @@
+import AppItem from './AppItem';
+import { getApps } from '../assets/functions';
+
+const Applications = () => {
+ let data = (getApps()).apps;
+ return (
+
+ Applications
+
+ {data.map((data) => (
+
+ ))}
+
+
+
+ );
+}
+
+export default Applications;
\ No newline at end of file
diff --git a/src/components/BookmarkDetails.js b/src/components/BookmarkDetails.js
new file mode 100644
index 00000000..b380dcb6
--- /dev/null
+++ b/src/components/BookmarkDetails.js
@@ -0,0 +1,12 @@
+function BookmarkDetails(props) {
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default BookmarkDetails;
\ No newline at end of file
diff --git a/src/components/BookmarkGroups.js b/src/components/BookmarkGroups.js
new file mode 100644
index 00000000..384d1b14
--- /dev/null
+++ b/src/components/BookmarkGroups.js
@@ -0,0 +1,19 @@
+import BookmarkDetails from './BookmarkDetails';
+
+function BookmarkGroups(props) {
+ let links = props.links;
+ return (
+
+
{props.category}
+ {links.map((links) => (
+
+ ))}
+
+ );
+}
+
+export default BookmarkGroups;
\ No newline at end of file
diff --git a/src/components/BookmarkSettings.js b/src/components/BookmarkSettings.js
new file mode 100644
index 00000000..c6d2c3a0
--- /dev/null
+++ b/src/components/BookmarkSettings.js
@@ -0,0 +1,31 @@
+import BookmarkGroups from './BookmarkGroups';
+import { getLinks } from '../assets/functions';
+
+const BookmarksSettings = () => {
+ let groups = (getLinks()).bookmarks;
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ };
+ return (
+
+
+ );
+}
+
+export default BookmarksSettings;
\ No newline at end of file
diff --git a/src/components/Bookmarks.js b/src/components/Bookmarks.js
new file mode 100644
index 00000000..b9719831
--- /dev/null
+++ b/src/components/Bookmarks.js
@@ -0,0 +1,22 @@
+import LinkGroups from './LinkGroups';
+import { getLinks } from '../assets/functions';
+
+function Links() {
+ let bookmarkList = (getLinks()).bookmarks;
+ return (
+
+ Bookmarks
+
+ {bookmarkList.map((bookmarkList) => (
+
+ ))}
+
+
+ );
+ }
+
+export default Links;
\ No newline at end of file
diff --git a/src/components/Header.js b/src/components/Header.js
new file mode 100644
index 00000000..5e37b9da
--- /dev/null
+++ b/src/components/Header.js
@@ -0,0 +1,46 @@
+import { useState, useEffect } from 'react';
+import { fixDigits } from "../assets/functions";
+
+function Header(props) {
+ return (
+
+ );
+}
+
+export default Header;
+
+function Clock() {
+ const [date, setDate] = useState(new Date());
+
+ function refreshClock() {
+ setDate(new Date());
+ }
+ useEffect(() => {
+ const timerId = setInterval(refreshClock, 1000);
+ return function cleanup() {
+ clearInterval(timerId);
+ };
+ }, []);
+
+ var hour = date.getHours();
+ var minutes = date.getMinutes();
+ //var seconds = date.getSeconds();
+ var midday = "AM";
+ midday = (hour >= 12) ? "PM" : "AM";
+ hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);
+ minutes = fixDigits(minutes);
+ //seconds = fixDigits(seconds);
+ let time = hour + ":" + minutes + " " + midday;
+
+ return (
+ {time}
+ );
+}
\ No newline at end of file
diff --git a/src/components/HideButton.js b/src/components/HideButton.js
new file mode 100644
index 00000000..b8783c7d
--- /dev/null
+++ b/src/components/HideButton.js
@@ -0,0 +1,49 @@
+function HideButton(props) {
+ if(props.checked === "true") {
+ return (
+
+
+ );
+ } else {
+ return (
+
+
+ );
+ }
+}
+
+export default HideButton;
+
+function udpateDisplayedItems(e) {
+ localStorage.setItem('contenttype', e.target.checked);
+ if (e.target.checked) {
+ localStorage.setItem('content-display', 'none');
+ } else {
+ localStorage.setItem('content-display', 'block');
+ }
+ setDisplayedItems();
+}
+function setDisplayedItems() {
+ if(localStorage.getItem("contenttype") === null) {
+ localStorage.setItem('contenttype', false);
+ localStorage.setItem('content-display', "block");
+ }
+ setValueFromLocalStorage('contenttype');
+ setValueFromLocalStorage('content-display');
+}
+
+export const setValueFromLocalStorage = property => {
+ let value = localStorage.getItem(property);
+ setValue(property, value);
+};
+export const setValue = (property, value) => {
+ if (value) {
+ document.documentElement.style.setProperty(`--${property}`, value);
+
+ const input = document.querySelector(`#${property}`);
+ if (input) {
+ value = value.replace('px', '');
+ input.value = value;
+ }
+ }
+};
\ No newline at end of file
diff --git a/src/components/LinkGroups.js b/src/components/LinkGroups.js
new file mode 100644
index 00000000..85e5d130
--- /dev/null
+++ b/src/components/LinkGroups.js
@@ -0,0 +1,18 @@
+import LinkItem from './LinkItem'
+
+function LinkGroups(props) {
+ let links = props.links;
+ return (
+
+
{props.category}
+ {links.map((links, index) => (
+
+ ))}
+
+ );
+}
+
+export default LinkGroups;
\ No newline at end of file
diff --git a/src/components/LinkItem.js b/src/components/LinkItem.js
new file mode 100644
index 00000000..9aeab5fb
--- /dev/null
+++ b/src/components/LinkItem.js
@@ -0,0 +1,9 @@
+function LinkItem(props) {
+ return (
+
+ );
+}
+
+export default LinkItem;
\ No newline at end of file
diff --git a/src/components/MessageInfo.js b/src/components/MessageInfo.js
new file mode 100644
index 00000000..8e8b6e44
--- /dev/null
+++ b/src/components/MessageInfo.js
@@ -0,0 +1,21 @@
+import Messages from './Messages';
+
+function MessageInfo() {
+ let greetings = (require('../messages.json')).messages;
+ console.log(greetings);
+ return (
+
+ {greetings.map((greetings, index) => (
+
+ ))}
+
+ );
+}
+
+export default MessageInfo
\ No newline at end of file
diff --git a/src/components/Messages.js b/src/components/Messages.js
new file mode 100644
index 00000000..c62b50e2
--- /dev/null
+++ b/src/components/Messages.js
@@ -0,0 +1,23 @@
+function Messages(props) {
+
+ var eeChecked;
+ if(props.easterEgg === "TRUE") {
+ eeChecked = true;
+ } else if(props.easterEgg === "FALSE") {
+ eeChecked = false;
+ } else {
+ eeChecked = false;
+ }
+ return (
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Messages;
\ No newline at end of file
diff --git a/src/components/PersonalFormInput.js b/src/components/PersonalFormInput.js
new file mode 100644
index 00000000..7af64a77
--- /dev/null
+++ b/src/components/PersonalFormInput.js
@@ -0,0 +1,17 @@
+function PersonalFromInput(props) {
+ let fname = props.fname;
+ let lname = props.lname;
+ let email = props.email;
+ return (
+
+
+ console.log()}>
+
+ console.log()}>
+
+ console.log()}>
+
+ );
+ }
+
+export default PersonalFromInput;
\ No newline at end of file
diff --git a/src/components/PersonalInfo.js b/src/components/PersonalInfo.js
new file mode 100644
index 00000000..2dff0a9e
--- /dev/null
+++ b/src/components/PersonalInfo.js
@@ -0,0 +1,15 @@
+import PersonalFormInput from './PersonalFormInput';
+import { getPersonalData } from '../assets/functions';
+
+function PersonalInfo() {
+ var personalData = getPersonalData();
+ return (
+
+ );
+}
+
+export default PersonalInfo;
\ No newline at end of file
diff --git a/src/components/PersonalizationSettings.js b/src/components/PersonalizationSettings.js
new file mode 100644
index 00000000..3adc5075
--- /dev/null
+++ b/src/components/PersonalizationSettings.js
@@ -0,0 +1,27 @@
+import PersonalInfo from './PersonalInfo';
+import MessageInfo from './MessageInfo';
+
+const PersonalizationSettings = () => {
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ };
+ return (
+
+
+ );
+};
+
+export default PersonalizationSettings;
\ No newline at end of file
diff --git a/src/components/Provider.js b/src/components/Provider.js
new file mode 100644
index 00000000..ec9dbf49
--- /dev/null
+++ b/src/components/Provider.js
@@ -0,0 +1,10 @@
+function Provider(props) {
+ return (
+
+ | {props.provider.name} |
+ {props.provider.prefix} |
+
+ );
+}
+
+export default Provider;
\ No newline at end of file
diff --git a/src/components/ProviderDetails.js b/src/components/ProviderDetails.js
new file mode 100644
index 00000000..b4a42422
--- /dev/null
+++ b/src/components/ProviderDetails.js
@@ -0,0 +1,14 @@
+function ProviderDetails(props) {
+ return (
+
+
+
+
+
+
+
+
+ );
+}
+
+export default ProviderDetails;
\ No newline at end of file
diff --git a/src/components/ProviderSettings.js b/src/components/ProviderSettings.js
new file mode 100644
index 00000000..09a90ec9
--- /dev/null
+++ b/src/components/ProviderSettings.js
@@ -0,0 +1,30 @@
+import ProviderDetails from './ProviderDetails';
+import { getProviders } from '../assets/functions';
+
+function ProviderSettings() {
+ let providers = (getProviders()).providers;
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ };
+ return (
+
+
+ );
+}
+
+export default ProviderSettings;
\ No newline at end of file
diff --git a/src/components/Search.js b/src/components/Search.js
new file mode 100644
index 00000000..33a1cc52
--- /dev/null
+++ b/src/components/Search.js
@@ -0,0 +1,13 @@
+import { handleKeyPress } from "../assets/functions";
+
+export default function Search() {
+ return (
+
+ )
+}
+// export default Search;
\ No newline at end of file
diff --git a/src/components/SettingsButton.js b/src/components/SettingsButton.js
new file mode 100644
index 00000000..dd3f0f3a
--- /dev/null
+++ b/src/components/SettingsButton.js
@@ -0,0 +1,15 @@
+import { Link } from "react-router-dom";
+import setDisplayedItems from '../assets/functions'
+
+function SettingsButton() {
+ setDisplayedItems();
+ return (
+
+
+
+
+
+ );
+}
+
+export default SettingsButton;
\ No newline at end of file
diff --git a/src/components/ThemesSettings.js b/src/components/ThemesSettings.js
new file mode 100644
index 00000000..f19a5c9b
--- /dev/null
+++ b/src/components/ThemesSettings.js
@@ -0,0 +1,27 @@
+import { getThemes, updateTheme } from "../assets/functions";
+
+function ThemesSettings() {
+ let themes = (getThemes()).themes;
+ console.log(themes[0].colorbackground);
+ return (
+
+
Themes
+
+ {themes.map((themes) => (
+
+ ))}
+
+
+ );
+}
+
+export default ThemesSettings;
\ No newline at end of file
diff --git a/src/pages/Homepage.js b/src/pages/Homepage.js
new file mode 100644
index 00000000..7c5055a7
--- /dev/null
+++ b/src/pages/Homepage.js
@@ -0,0 +1,35 @@
+import React from 'react';
+import { setTheme } from '../assets/functions';
+import Search from '../components/Search';
+import Header from '../components/Header'
+import Applications from '../components/Applications'
+import Bookmarks from '../components/Bookmarks'
+import SettingsButton from '../components/SettingsButton'
+import { date, greet } from '../assets/functions';
+
+export default function Homepage() {
+ setTheme();
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ }
\ No newline at end of file
diff --git a/src/pages/Settings.js b/src/pages/Settings.js
new file mode 100644
index 00000000..d48db725
--- /dev/null
+++ b/src/pages/Settings.js
@@ -0,0 +1,33 @@
+import HideButton from '../components/HideButton'
+import { setTheme } from "../assets/functions";
+import { Outlet, Link } from "react-router-dom";
+
+function Settings() {
+ setTheme();
+ var isChecked = localStorage.getItem("contenttype");
+ return (
+
+
+
Settings
+
+
+
+
+
+ );
+}
+
+export default Settings;
\ No newline at end of file