Skip to content

Commit

Permalink
further reduction
Browse files Browse the repository at this point in the history
  • Loading branch information
fuxingloh committed Aug 22, 2023
1 parent dff851a commit 6303098
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 74 deletions.
4 changes: 3 additions & 1 deletion packages/contented-preview/src/pages/_app.page.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ export default function App({ Component, pageProps }) {
<ThemeProvider>
<MenuProvider>
<Header />
<Component {...pageProps} />
<main className="bg-white text-gray-900 dark:bg-slate-900 dark:text-slate-300">
<Component {...pageProps} />
</main>
</MenuProvider>
</ThemeProvider>
</>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,59 @@
import { createContext, useState, useEffect, useContext } from 'react';
import Script from 'next/script';

/*
let mQ = window.matchMedia('(prefers-color-scheme: dark)');
let dE = document.documentElement;
let dEC = dE.classList;
function update(savedTheme) {
let theme = 'system'
try {
if (!savedTheme) {
savedTheme = window.localStorage.theme
}
if (savedTheme === 'dark') {
theme = 'dark'
dEC.add('dark')
} else if (savedTheme === 'light') {
theme = 'light'
dEC.remove('dark')
} else if (mQ.matches) {
dEC.add('dark')
} else {
dEC.remove('dark')
}
} catch {
theme = 'light'
dEC.remove('dark')
}
return theme
}
function updateWT(savedTheme) {
update(savedTheme)
dEC.add('[&_*]:!transition-none')
window.setTimeout(() => {
dEC.remove('[&_*]:!transition-none')
}, 0)
}
dE.setAttribute('data-theme', update())
new MutationObserver(([{ oldValue }]) => {
let newValue = dE.getAttribute('data-theme')
if (newValue !== oldValue) {
try {
window.localStorage.setItem('theme', newValue)
} catch {}
updateWT(newValue)
}
}).observe(dE, { attributeFilter: ['data-theme'], attributeOldValue: true })
mQ.addEventListener('change', updateWT)
window.addEventListener('storage', updateWT)
*/
const colorSchemeScript = `let mQ=window.matchMedia("(prefers-color-scheme: dark)"),dE=document.documentElement,dEC=dE.classList;function update(e){let t="system";try{e||(e=window.localStorage.theme),"dark"===e?(t="dark",dEC.add("dark")):"light"===e?(t="light",dEC.remove("dark")):mQ.matches?dEC.add("dark"):dEC.remove("dark")}catch{t="light",dEC.remove("dark")}return t}function updateWT(e){update(e),dEC.add("[&_*]:!transition-none"),window.setTimeout((()=>{dEC.remove("[&_*]:!transition-none")}),0)}dE.setAttribute("data-theme",update()),new MutationObserver((([{oldValue:e}])=>{let t=dE.getAttribute("data-theme");if(t!==e){try{window.localStorage.setItem("theme",t)}catch{}updateWT(t)}})).observe(dE,{attributeFilter:["data-theme"],attributeOldValue:!0}),mQ.addEventListener("change",updateWT),window.addEventListener("storage",updateWT);`;

const ThemeContext = createContext(undefined);

Expand All @@ -13,7 +68,12 @@ export function ThemeProvider(props) {
}
}, [theme]);

return <ThemeContext.Provider value={{ theme, setTheme }}>{props.children}</ThemeContext.Provider>;
return (
<>
<ThemeContext.Provider value={{ theme, setTheme }}>{props.children}</ThemeContext.Provider>
<Script id="theme-script" strategy="beforeInteractive" dangerouslySetInnerHTML={{ __html: colorSchemeScript }} />
</>
);
}

export function useTheme() {
Expand Down
72 changes: 0 additions & 72 deletions packages/contented-preview/src/pages/_document.page.jsx

This file was deleted.

0 comments on commit 6303098

Please sign in to comment.