From 4363afde45bc7d6696cb066c8cf9471241ce9c7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9B=90=EB=8D=94?= Date: Thu, 11 Feb 2021 21:00:12 +0900 Subject: [PATCH] feat: using custom theme provider --- pages/_app.tsx | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/pages/_app.tsx b/pages/_app.tsx index b9452e1..76ef79d 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -1,6 +1,5 @@ import Head from 'next/head' import type { AppProps } from 'next/app' -import { ThemeProvider } from 'next-themes' import dynamic from 'next/dynamic' import { useEffect, useState } from 'react' import { init } from '@utils/Sentry' @@ -17,17 +16,19 @@ import 'core-js/es/map' import '../app.css' import '@fortawesome/fontawesome-free/css/all.css' import '../github-markdown.css' +import { Theme } from '@types' init() export default function App({ Component, pageProps, err }: KoreanbotsProps): JSX.Element { const [ betaKey, setBetaKey ] = useState('') const [ footer, footerControl ] = useState(true) - const [ theme, setDefaultTheme ] = useState(undefined) - let systemColor:string + const [ theme, setTheme ] = useState('system') + let systemColor:Theme useEffect(() => { setBetaKey(localStorage.betaKey) + setTheme(localStorage.theme || 'system') console.log( '%c' + 'KOREANBOTS', 'color: #3366FF; -webkit-text-stroke: 2px black; font-size: 72px; font-weight: bold;' @@ -42,16 +43,14 @@ export default function App({ Component, pageProps, err }: KoreanbotsProps): JSX } catch (e) { systemColor = 'dark' } - if (!localStorage.detected || !['dark', 'light'].includes(localStorage.detected)) { + if (theme === 'system') { console.log(`[THEME] ${systemColor.toUpperCase()} THEME DETECTED`) - localStorage.setItem('detected', systemColor) - localStorage.setItem('theme', systemColor) - setDefaultTheme(systemColor) + setTheme(systemColor) } }, []) return ( - +
한국 디스코드봇 리스트 @@ -64,19 +63,19 @@ export default function App({ Component, pageProps, err }: KoreanbotsProps): JSX - +
{ - process.env.NEXT_PUBLIC_TESTER_KEY === Crypto.createHmac('sha256', betaKey ?? '').digest('hex') ? :
+ process.env.NEXT_PUBLIC_TESTER_KEY === Crypto.createHmac('sha256', betaKey ?? '').digest('hex') ? :

주어진 테스터키를 입력해주세요.


{ localStorage.setItem('betaKey', e.target.value); setBetaKey(e.target.value) }} />
}
{ - footer &&
) }