use-save-project-settings.tsx 633 B

12345678910111213141516171819202122
  1. import { type ProjectSettings, saveProjectSettings } from '../utils/api'
  2. import { useProjectContext } from '@/shared/context/project-context'
  3. export default function useSaveProjectSettings() {
  4. const { projectId, project, updateProject } = useProjectContext()
  5. return async (
  6. key: keyof ProjectSettings,
  7. newSetting: ProjectSettings[keyof ProjectSettings]
  8. ) => {
  9. if (project) {
  10. const currentSetting = project[key]
  11. if (currentSetting !== newSetting) {
  12. await saveProjectSettings(projectId, {
  13. [key]: newSetting,
  14. })
  15. updateProject({ [key]: newSetting })
  16. }
  17. }
  18. }
  19. }