// ** React Imports import { createContext, useState, ReactNode } from 'react' // ** MUI Imports import { PaletteMode } from '@mui/material' // ** ThemeConfig Import import themeConfig from '../../configs/themeConfig' // ** Types Import import { ThemeColor, ContentWidth } from '../../core/layouts/types' export type Settings = { mode: PaletteMode themeColor: ThemeColor contentWidth: ContentWidth } export type SettingsContextValue = { settings: Settings saveSettings: (updatedSettings: Settings) => void } const initialSettings: Settings = { themeColor: 'primary', mode: themeConfig.mode, contentWidth: themeConfig.contentWidth } // ** Create Context export const SettingsContext = createContext({ saveSettings: () => null, settings: initialSettings }) export const SettingsProvider = ({ children }: { children: ReactNode }) => { // ** State const [settings, setSettings] = useState({ ...initialSettings }) const saveSettings = (updatedSettings: Settings) => { setSettings(updatedSettings) } return {children} } export const SettingsConsumer = SettingsContext.Consumer