00Boobs00 commited on
Commit
3054d55
·
verified ·
1 Parent(s): c85520a

Upload pages/_app.js with huggingface_hub

Browse files
Files changed (1) hide show
  1. pages/_app.js +53 -0
pages/_app.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import '@/styles/globals.css';
2
+ import Head from 'next/head';
3
+ import { useState, useEffect } from 'react';
4
+
5
+ function MyApp({ Component, pageProps }) {
6
+ const [darkMode, setDarkMode] = useState(false);
7
+
8
+ useEffect(() => {
9
+ // Check system preference or localStorage
10
+ if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
11
+ setDarkMode(true);
12
+ document.documentElement.classList.add('dark');
13
+ } else {
14
+ setDarkMode(false);
15
+ document.documentElement.classList.remove('dark');
16
+ }
17
+ }, []);
18
+
19
+ const toggleTheme = () => {
20
+ if (darkMode) {
21
+ document.documentElement.classList.remove('dark');
22
+ localStorage.theme = 'light';
23
+ setDarkMode(false);
24
+ } else {
25
+ document.documentElement.classList.add('dark');
26
+ localStorage.theme = 'dark';
27
+ setDarkMode(true);
28
+ }
29
+ };
30
+
31
+ return (
32
+ <>
33
+ <Head>
34
+ <title>Nexus Dashboard | Enterprise Analytics</title>
35
+ <meta name="description" content="Advanced analytics and project management dashboard" />
36
+ <link rel="icon" href="/favicon.ico" />
37
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet" />
38
+ </Head>
39
+ <ThemeContext.Provider value={{ darkMode, toggleTheme }}>
40
+ <Component {...pageProps} />
41
+ </ThemeContext.Provider>
42
+ </>
43
+ );
44
+ }
45
+
46
+ export const ThemeContext = React.createContext({
47
+ darkMode: false,
48
+ toggleTheme: () => {},
49
+ });
50
+
51
+ import React from 'react';
52
+
53
+ export default MyApp;