import { type ProjectSettings, saveProjectSettings } from '../utils/api' import { useProjectContext } from '../../../shared/context/project-context' import useScopeValue from '../../../shared/hooks/use-scope-value' export default function useSaveProjectSettings() { // projectSettings value will be undefined on mount const [projectSettings, setProjectSettings] = useScopeValue< ProjectSettings | undefined >('project', true) const { _id: projectId } = useProjectContext() return async ( key: keyof ProjectSettings, newSetting: ProjectSettings[keyof ProjectSettings] ) => { if (projectSettings) { const currentSetting = projectSettings[key] if (currentSetting !== newSetting) { await saveProjectSettings(projectId, { [key]: newSetting, }) setProjectSettings({ ...projectSettings, [key]: newSetting }) } } } }