2022-12-04 17:36:30 +01:00
|
|
|
import { useEffect } from 'react';
|
2023-07-21 18:08:40 +09:00
|
|
|
|
2023-09-03 16:23:40 +02:00
|
|
|
import { ConfigType } from '~/types/config';
|
2022-12-04 17:36:30 +01:00
|
|
|
import { useConfigContext } from './provider';
|
|
|
|
|
import { useConfigStore } from './store';
|
|
|
|
|
|
|
|
|
|
export const useInitConfig = (initialConfig: ConfigType) => {
|
2022-12-19 21:27:44 +01:00
|
|
|
const { setConfigName, increaseVersion } = useConfigContext();
|
2022-12-04 17:36:30 +01:00
|
|
|
const configName = initialConfig.configProperties?.name ?? 'default';
|
|
|
|
|
const initConfig = useConfigStore((x) => x.initConfig);
|
2023-07-31 22:50:45 +02:00
|
|
|
const removeConfig = useConfigStore((x) => x.removeConfig);
|
2022-12-04 17:36:30 +01:00
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
setConfigName(configName);
|
2022-12-19 21:27:44 +01:00
|
|
|
initConfig(configName, initialConfig, increaseVersion);
|
2023-07-31 22:50:45 +02:00
|
|
|
return () => {
|
|
|
|
|
removeConfig(configName);
|
|
|
|
|
};
|
2022-12-04 17:36:30 +01:00
|
|
|
}, [configName]);
|
|
|
|
|
};
|