diff options
Diffstat (limited to 'pages/_app.tsx')
-rw-r--r-- | pages/_app.tsx | 45 |
1 files changed, 4 insertions, 41 deletions
diff --git a/pages/_app.tsx b/pages/_app.tsx index 08338d0..3c238b9 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -1,56 +1,19 @@ import Head from 'next/head'; -import axios from 'axios'; -import { useState, useEffect } from 'react'; - -import { userPreferences } from '../api/api'; +import { PreferencesContextWrapper } from '../components/preferencesContext'; import '../styles/global.css'; import '../styles/dark.css'; import '../styles/disk.css'; -function applyPreferences(preferences: userPreferences) { - if(typeof preferences === "undefined") return; - if(typeof preferences.darkMode !== "undefined") - document.getElementsByTagName("html")[0].classList[preferences.darkMode ? "add" : "remove"]("dark"); -} - export default function VierOpEenRijWebsite({ Component, pageProps }) { - var [gotData, setGotData] = useState(false); - var [preferences, setPreferences] = useState<userPreferences>(); - - useEffect(() => {(async() => { - if (gotData) return; - if (typeof window === "undefined") return; - if (!document.cookie.includes("token")) return; - - var local_prefs = window.localStorage.getItem("preferences"); - if (local_prefs) { - var local_prefs_json = JSON.parse(local_prefs) as userPreferences; - console.log(typeof local_prefs_json); - setPreferences(local_prefs_json); - applyPreferences(local_prefs_json); - } - - var preferencesReq = await axios.request<{ preferences: userPreferences; }>({ - method: "get", - url: `/api/user/preferences`, - headers: {"content-type": "application/json"} - }); - - window.localStorage.setItem("preferences", JSON.stringify(preferencesReq.data.preferences)); - setPreferences(preferencesReq.data.preferences); - - setGotData(true); - })()}) - - useEffect(() => applyPreferences(preferences), [preferences]); - return <div> <Head> <title>4 op een rij</title> <link rel="stylesheet" href="/font/stylesheet.css"/> </Head> - <Component {...pageProps}/> + <PreferencesContextWrapper> + <Component {...pageProps}/> + </PreferencesContextWrapper> </div> } |