docs(www): update dark-mode for vite (#1118)

Co-authored-by: sanka <sanka.s@fidenz.com>
Co-authored-by: shadcn <m@shadcn.com>
This commit is contained in:
sanka
2023-08-26 16:15:34 +05:30
committed by GitHub
parent 170d3c087c
commit 613ec3583f

View File

@@ -12,18 +12,20 @@ description: Adding dark mode to your vite app.
```tsx title="components/theme-provider.tsx"
import { createContext, useContext, useEffect, useState } from "react"
type Theme = "dark" | "light" | "system"
type ThemeProviderProps = {
children: React.ReactNode
defaultTheme?: string
defaultTheme?: Theme
storageKey?: string
}
type ThemeProviderState = {
theme: string
setTheme: (theme: string) => void
theme: Theme
setTheme: (theme: Theme) => void
}
const initialState = {
const initialState: ThemeProviderState = {
theme: "system",
setTheme: () => null,
}
@@ -36,8 +38,8 @@ export function ThemeProvider({
storageKey = "vite-ui-theme",
...props
}: ThemeProviderProps) {
const [theme, setTheme] = useState(
() => localStorage.getItem(storageKey) || defaultTheme
const [theme, setTheme] = useState<Theme>(
() => (localStorage.getItem(storageKey) as Theme) || defaultTheme
)
useEffect(() => {
@@ -60,7 +62,7 @@ export function ThemeProvider({
const value = {
theme,
setTheme: (theme: string) => {
setTheme: (theme: Theme) => {
localStorage.setItem(storageKey, theme)
setTheme(theme)
},