diff --git a/package.json b/package.json index 49f0b7b82..0230cf27e 100644 --- a/package.json +++ b/package.json @@ -155,7 +155,9 @@ "^[./]" ], "importOrderSeparation": true, - "plugins": ["@trivago/prettier-plugin-sort-imports"], + "plugins": [ + "@trivago/prettier-plugin-sort-imports" + ], "importOrderSortSpecifiers": true }, "eslintConfig": { @@ -217,4 +219,4 @@ ] } } -} +} \ No newline at end of file diff --git a/src/config/provider.tsx b/src/config/provider.tsx index 1d6803b17..d0002b67d 100644 --- a/src/config/provider.tsx +++ b/src/config/provider.tsx @@ -21,8 +21,16 @@ const ConfigContext = createContext({ setConfigName: () => {}, }); -export const ConfigProvider = ({ children }: { children: ReactNode }) => { - const [configName, setConfigName] = useState(); +export const ConfigProvider = ({ + children, + config: fallbackConfig, + configName: initialConfigName, +}: { + children: ReactNode; + config?: ConfigType; + configName?: string; +}) => { + const [configName, setConfigName] = useState(initialConfigName || 'default'); const [configVersion, setConfigVersion] = useState(0); const { configs } = useConfigStore((s) => ({ configs: s.configs }), shallow); const { setPrimaryColor, setSecondaryColor, setPrimaryShade } = useColorTheme(); @@ -39,7 +47,7 @@ export const ConfigProvider = ({ children }: { children: ReactNode }) => { setConfigVersion((v) => v + 1), setConfigName: (name: string) => setConfigName(name), diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 37ed1a412..88d63c532 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -35,6 +35,7 @@ import { getServiceSidePackageAttributes, } from '../tools/server/getPackageVersion'; import { theme } from '../tools/server/theme/theme'; +import { ConfigType } from '~/types/config'; function App( this: any, @@ -43,13 +44,15 @@ function App( packageAttributes: ServerSidePackageAttributesType; editModeEnabled: boolean; defaultColorScheme: ColorScheme; + config?: ConfigType; + configName?: string; }> ) { const { Component, pageProps } = props; - const [primaryColor, setPrimaryColor] = useState('red'); - const [secondaryColor, setSecondaryColor] = useState('orange'); - const [primaryShade, setPrimaryShade] = useState(6); + const [primaryColor, setPrimaryColor] = useState(props.pageProps.config?.settings.customization.colors.primary || 'red'); + const [secondaryColor, setSecondaryColor] = useState(props.pageProps.config?.settings.customization.colors.secondary || 'orange'); + const [primaryShade, setPrimaryShade] = useState(props.pageProps.config?.settings.customization.colors.shade || 6); const colorTheme = { primaryColor, secondaryColor, @@ -123,7 +126,7 @@ function App( withGlobalStyles withNormalizeCSS > - +