Skip to content

Commit 8835997

Browse files
committed
fetch dark mode from local db
1 parent 5bea1a9 commit 8835997

File tree

4 files changed

+24
-3
lines changed

4 files changed

+24
-3
lines changed

package-lock.json

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"preview": "vite preview"
1111
},
1212
"dependencies": {
13+
"@uidotdev/usehooks": "^2.4.1",
1314
"clsx": "^2.1.1",
1415
"framer-motion": "^11.3.28",
1516
"react": "^18.3.1",

src/App.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { useState } from 'react';
22
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
3+
import { useLocalStorage } from '@uidotdev/usehooks';
34
import CategoryList from './components/CategoryList';
45
import TopicList from './components/TopicList';
56
import MarkdownViewer from './components/MarkdownViewer';
67
import Navbar from './components/Navbar';
78

89
const App = () => {
9-
const [isDark, setIsDark] = useState(false);
10+
const [isDark, setIsDark] = useLocalStorage('isDark', false);
1011

1112
const handleDarkToggle = () => {
1213
setIsDark(!isDark);
@@ -22,7 +23,10 @@ const App = () => {
2223
<div className='relative z-[-2] w-screen bg-white bg-[radial-gradient(60%_120%_at_50%_50%,hsla(0,0%,100%,0)_0,rgba(252,205,238,.5)_100%)]'></div>
2324
)}
2425
<Router>
25-
<Navbar handleDarkToggle={handleDarkToggle} />
26+
<Navbar
27+
isDark={isDark}
28+
handleDarkToggle={handleDarkToggle}
29+
/>
2630

2731
<Routes>
2832
<Route

src/components/Navbar.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ import { Link, useParams } from 'react-router-dom';
22
import { PlaceholdersAndVanishInput } from './ui/input-component';
33

44
type Props = {
5+
isDark: boolean;
56
handleDarkToggle: () => void;
67
};
78

8-
const Navbar = ({ handleDarkToggle }: Props) => {
9+
const Navbar = ({ isDark, handleDarkToggle }: Props) => {
910
const placeholders = [
1011
'Which Type to Use',
1112
'Function Declaration Syntax',
@@ -87,6 +88,7 @@ const Navbar = ({ handleDarkToggle }: Props) => {
8788
<label className='switch'>
8889
<input
8990
type='checkbox'
91+
checked={isDark}
9092
onClick={handleDarkToggle}
9193
/>
9294
<span className='slider'></span>

0 commit comments

Comments
 (0)