Skip to content

Commit 1400760

Browse files
authored
Refactor dark mode context (#1)
1 parent d22de19 commit 1400760

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

resources/js/Components/Providers/DarkModeProvider.tsx renamed to resources/js/Contexts/DarkModeContext.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { createContext, PropsWithChildren, useContext, useEffect } from 'react'
22
import { useLocalStorage } from 'react-use'
33

4-
type DarkModeProviderState = {
4+
type DarkModeState = {
55
isDarkMode: boolean
66
setDarkMode: (darkMode: boolean) => void
77
}
@@ -11,7 +11,7 @@ const initialState = {
1111
setDarkMode: () => null,
1212
}
1313

14-
const DarkModeProviderContext = createContext<DarkModeProviderState>(initialState)
14+
const DarkModeContext = createContext<DarkModeState>(initialState)
1515

1616
export function DarkModeProvider({ children, ...props }: PropsWithChildren) {
1717
const [isDarkMode, setIsDarkMode] = useLocalStorage(
@@ -34,14 +34,14 @@ export function DarkModeProvider({ children, ...props }: PropsWithChildren) {
3434
}
3535

3636
return (
37-
<DarkModeProviderContext.Provider {...props} value={{ isDarkMode: !!isDarkMode, setDarkMode }}>
37+
<DarkModeContext.Provider {...props} value={{ isDarkMode: !!isDarkMode, setDarkMode }}>
3838
{children}
39-
</DarkModeProviderContext.Provider>
39+
</DarkModeContext.Provider>
4040
)
4141
}
4242

4343
export function useDarkMode() {
44-
const context = useContext(DarkModeProviderContext)
44+
const context = useContext(DarkModeContext)
4545

4646
if (context === undefined) {
4747
throw new Error('useDarkMode must be used within a DarkModeProvider')

resources/js/Pages/Account/Partials/PreferencesForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { IconFlagFR } from '@/Components/Icons/IconFlagFR'
22
import { IconFlagGB } from '@/Components/Icons/IconFlagGB'
3-
import { useDarkMode } from '@/Components/Providers/DarkModeProvider'
43
import { SettingsGrid } from '@/Components/SettingsGrid'
54
import { Button } from '@/Components/UI/Button'
65
import {
@@ -20,6 +19,7 @@ import {
2019
SelectValue,
2120
} from '@/Components/UI/Select'
2221
import { Switch } from '@/Components/UI/Switch'
22+
import { useDarkMode } from '@/Contexts/DarkModeContext'
2323
import { useFormValidation } from '@/Hooks/useFormValidation'
2424
import { useLocale } from '@/Hooks/useLocale'
2525
import { useToast } from '@/Hooks/useToast'

resources/js/app.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import { DarkModeProvider } from '@/Components/Providers/DarkModeProvider'
21
import { SidebarProvider } from '@/Components/UI/Sidebar'
2+
import { DarkModeProvider } from '@/Contexts/DarkModeContext'
33
import { DefaultLayout } from '@/Layouts/DefaultLayout'
44
import { createInertiaApp } from '@inertiajs/react'
55
import { LaravelReactI18nProvider } from 'laravel-react-i18n'
66
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers'
7-
import { ReactElement, ReactNode } from 'react'
7+
import { ReactElement } from 'react'
88
import { createRoot } from 'react-dom/client'
99
import '../css/app.css'
1010
import './bootstrap'
1111

1212
const appName = import.meta.env.VITE_APP_NAME || 'Laravel'
1313

14-
type Page = ReactNode & { default: { layout: (page: ReactElement) => ReactElement } }
14+
type Page = ReactElement & { default: { layout: (page: ReactElement) => ReactElement } }
1515

1616
createInertiaApp({
1717
title: (title) => `${title} - ${appName}`,

0 commit comments

Comments
 (0)