Skip to content

Commit 53850a6

Browse files
author
Roshan Jossy
committed
update initial value of dark mode preference
1 parent 40fac57 commit 53850a6

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

src/components/navbar/Navbar.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
import dynamic from 'next/dynamic'
12
import { useRouter } from 'next/router'
23
import React from 'react'
34
import Button from '../Button'
4-
import ThemeButton from './ThemeButton'
5+
const ThemeButton = dynamic(() => import('./ThemeButton'), {
6+
ssr: false,
7+
})
58

69
export default function Navbar() {
710
const router = useRouter()
@@ -16,9 +19,7 @@ export default function Navbar() {
1619
<ThemeButton />
1720
{pathname !== '/story' && (
1821
<Button>
19-
<a href="/story">
20-
<a>Create Post </a>
21-
</a>
22+
<a href="/story">Create Post</a>
2223
</Button>
2324
)}
2425
</div>

src/components/navbar/ThemeButton.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,19 @@ import { useEffect, useState } from 'react'
22
import Button from '../Button'
33

44
export default function ThemeButton() {
5-
const [darkMode, setDarkMode] = useState<boolean | undefined>(undefined)
6-
useEffect(() => {
7-
setDarkMode(document.documentElement.classList.contains('dark'))
8-
}, [])
5+
const darkModePreference =
6+
localStorage.theme === 'dark' ||
7+
(!('theme' in localStorage) &&
8+
window.matchMedia('(prefers-color-scheme: dark)').matches)
9+
const [darkMode, setDarkMode] = useState(darkModePreference)
10+
darkModePreference && window.document.documentElement.classList.add('dark')
911
useEffect(() => {
1012
if (darkMode) {
1113
window.document.documentElement.classList.add('dark')
12-
localStorage.setItem('vidyaDarkMode', 'true')
14+
localStorage.setItem('preferenceDarkMode', 'true')
1315
} else {
1416
window.document.documentElement.classList.remove('dark')
15-
localStorage.setItem('vidyaDarkMode', 'false')
17+
localStorage.setItem('preferenceDarkMode', 'false')
1618
}
1719
}, [darkMode])
1820
const onClick = () => {

0 commit comments

Comments
 (0)