import React, { useEffect, useState } from 'react'; import { ConfigContext } from './config-context'; import { useStorage } from '@/hooks/use-storage'; import type { ChartDBConfig } from '@/lib/domain/config'; export const ConfigProvider: React.FC = ({ children, }) => { const { getConfig, updateConfig: updateDataConfig } = useStorage(); const [config, setConfig] = useState(); useEffect(() => { const loadConfig = async () => { const config = await getConfig(); setConfig(config); }; loadConfig(); }, [getConfig]); const updateConfig: ConfigContext['updateConfig'] = async ({ config, updateFn, }) => { const promise = new Promise((resolve) => { setConfig((prevConfig) => { let baseConfig: ChartDBConfig = { defaultDiagramId: '' }; if (prevConfig) { baseConfig = prevConfig; } const updatedConfig = updateFn ? updateFn(baseConfig) : { ...baseConfig, ...config }; updateDataConfig(updatedConfig).then(() => { resolve(); }); return updatedConfig; }); }); return promise; }; return ( {children} ); };