diff --git a/src/@core/components/customizer/index.tsx b/src/@core/components/customizer/index.tsx
index d80c9c3..d6f0392 100644
--- a/src/@core/components/customizer/index.tsx
+++ b/src/@core/components/customizer/index.tsx
@@ -40,7 +40,7 @@ import DirectionLtr from '@core/svg/DirectionLtr'
import DirectionRtl from '@core/svg/DirectionRtl'
// Config Imports
-import primaryColorConfig from '@configs/primaryColorConfig'
+import primaryColorConfig, { DEFAULT_PRIMARY_COLOR_PALETTE_ID } from '@configs/primaryColorConfig'
// Hook Imports
import { useSettings } from '@core/hooks/useSettings'
@@ -62,6 +62,8 @@ const getLocalePath = (pathName: string, locale: string) => {
return segments.join('/')
}
+const defaultPrimaryColor =
+ primaryColorConfig.find(item => item.id === DEFAULT_PRIMARY_COLOR_PALETTE_ID)?.main ?? primaryColorConfig[0].main
type DebouncedColorPickerProps = {
settings: Settings
@@ -74,7 +76,7 @@ const DebouncedColorPicker = (props: DebouncedColorPickerProps) => {
const { settings, isColorFromPrimaryConfig, handleChange } = props
// States
- const [debouncedColor, setDebouncedColor] = useState(settings.primaryColor ?? primaryColorConfig[0].main)
+ const [debouncedColor, setDebouncedColor] = useState(settings.primaryColor ?? defaultPrimaryColor)
// Hooks
useDebounce(() => handleChange('primaryColor', debouncedColor), 200, [debouncedColor])
@@ -82,12 +84,16 @@ const DebouncedColorPicker = (props: DebouncedColorPickerProps) => {
return (
<>
{
navbarContentWidth: themeConfig.navbar.contentWidth,
contentWidth: themeConfig.contentWidth,
footerContentWidth: themeConfig.footer.contentWidth,
- primaryColorPaletteId: primaryColorConfig[0].id
+ primaryColor: primaryColorConfig.find(item => item.id === DEFAULT_PRIMARY_COLOR_PALETTE_ID)?.main ?? primaryColorConfig[0].main,
+ primaryColorPaletteId: DEFAULT_PRIMARY_COLOR_PALETTE_ID
+
}
const updatedInitialSettings = {
diff --git a/src/components/layout/shared/ThemeColorDropdown.tsx b/src/components/layout/shared/ThemeColorDropdown.tsx
index 07f8fe7..259ffe9 100644
--- a/src/components/layout/shared/ThemeColorDropdown.tsx
+++ b/src/components/layout/shared/ThemeColorDropdown.tsx
@@ -16,6 +16,7 @@ import MenuItem from '@mui/material/MenuItem'
import Divider from '@mui/material/Divider'
import Typography from '@mui/material/Typography'
import Box from '@mui/material/Box'
+import { DEFAULT_PRIMARY_COLOR_PALETTE_ID } from '@configs/primaryColorConfig'
// Config Imports
import primaryColorConfig from '@configs/primaryColorConfig'
@@ -52,8 +53,11 @@ const ThemeColorDropdown = () => {
}, [settings.mode])
// Get selected palette
- const selectedPaletteId = settings.primaryColorPaletteId || primaryColorConfig[0].id
- const selectedPalette = primaryColorConfig.find(p => p.id === selectedPaletteId) || primaryColorConfig[0]
+ // const selectedPaletteId = settings.primaryColorPaletteId || primaryColorConfig[0].id
+ // const selectedPalette = primaryColorConfig.find(p => p.id === selectedPaletteId) || primaryColorConfig[0]
+ const defaultPalette = primaryColorConfig.find(p => p.id === DEFAULT_PRIMARY_COLOR_PALETTE_ID) || primaryColorConfig[0]
+ const selectedPaletteId = settings.primaryColorPaletteId || DEFAULT_PRIMARY_COLOR_PALETTE_ID
+ const selectedPalette = primaryColorConfig.find(p => p.id === selectedPaletteId) || defaultPalette
const handleClose = () => {
setOpen(false)
@@ -72,7 +76,13 @@ const ThemeColorDropdown = () => {
handleClose()
if (settings.primaryColorPaletteId !== paletteId) {
- updateSettings({ primaryColorPaletteId: paletteId })
+ const palette = primaryColorConfig.find(item => item.id === paletteId)
+
+ updateSettings({
+ primaryColorPaletteId: paletteId,
+ ...(palette?.main && { primaryColor: palette.main })
+ })
+
}
}
diff --git a/src/components/theme/index.tsx b/src/components/theme/index.tsx
index b4a6e91..f292892 100644
--- a/src/components/theme/index.tsx
+++ b/src/components/theme/index.tsx
@@ -10,6 +10,7 @@ import { AppRouterCacheProvider } from '@mui/material-nextjs/v14-appRouter'
import CssBaseline from '@mui/material/CssBaseline'
import type {} from '@mui/material/themeCssVarsAugmentation' //! Do not remove this import otherwise you will get type errors while making a production build
import type {} from '@mui/lab/themeAugmentation' //! Do not remove this import otherwise you will get type errors while making a production build
+import { DEFAULT_PRIMARY_COLOR_PALETTE_ID } from '@configs/primaryColorConfig'
// Third-party Imports
import { useMedia } from 'react-use'
@@ -96,8 +97,11 @@ const CustomThemeProvider = (props: Props) => {
}
// Get selected palette
- const selectedPaletteId = settings.primaryColorPaletteId || primaryColorConfig[0].id
- const selectedPalette = primaryColorConfig.find(p => p.id === selectedPaletteId) || primaryColorConfig[0]
+ // const selectedPaletteId = settings.primaryColorPaletteId || primaryColorConfig[0].id
+ // const selectedPalette = primaryColorConfig.find(p => p.id === selectedPaletteId) || primaryColorConfig[0]
+ const defaultPalette = primaryColorConfig.find(p => p.id === DEFAULT_PRIMARY_COLOR_PALETTE_ID) || primaryColorConfig[0]
+ const selectedPaletteId = settings.primaryColorPaletteId || DEFAULT_PRIMARY_COLOR_PALETTE_ID
+ const selectedPalette = primaryColorConfig.find(p => p.id === selectedPaletteId) || defaultPalette
// Merge the primary color scheme override with the core theme
const theme = useMemo(() => {
diff --git a/src/configs/primaryColorConfig.ts b/src/configs/primaryColorConfig.ts
index 9fced7a..90860d7 100644
--- a/src/configs/primaryColorConfig.ts
+++ b/src/configs/primaryColorConfig.ts
@@ -12,6 +12,7 @@ export type PrimaryColorConfig = {
light: ColorPalette
dark: ColorPalette
}
+export const DEFAULT_PRIMARY_COLOR_PALETTE_ID = 'palette-6'
// Primary color config object
const primaryColorConfig: PrimaryColorConfig[] = [
@@ -100,16 +101,16 @@ const primaryColorConfig: PrimaryColorConfig[] = [
id: 'palette-6',
paletteKey: 'green',
name: 'Green Palette',
- main: '#97AE48',
+ main: '#7f9c1c',
light: {
- main: '#97AE48',
+ main: '#7f9c1c',
light: '#C1CF8B',
- dark: '#758543'
+ dark: '#97AE48'
},
dark: {
- main: '#97AE48',
+ main: '#7f9c1c',
light: '#C1CF8B',
- dark: '#758543'
+ dark: '#97AE48'
}
},
]