overleaf-cep/services/web/frontend/js/features/editor-left-menu/hooks/use-save-project-settings.tsx
Tim Down 905cc5d45f Move project context out of scope value store (#26615)
* Refactor project context to not use scope store

* Fix Cypress tests for project context changes

* Fix frontend React Testing Library tests for project context changes

* Remove redundant code

* Fix some project types in tests

* Remove unused import and fix a type

* Throw an error if updating the project in the project context before joining the project

* Fix some review panel tests

* Remove unused imports

GitOrigin-RevId: 2f0c928b651f387aa980c29aef7d1ba0649790a7
2025-07-10 08:06:31 +00:00

22 lines
633 B
TypeScript

import { type ProjectSettings, saveProjectSettings } from '../utils/api'
import { useProjectContext } from '@/shared/context/project-context'
export default function useSaveProjectSettings() {
const { projectId, project, updateProject } = useProjectContext()
return async (
key: keyof ProjectSettings,
newSetting: ProjectSettings[keyof ProjectSettings]
) => {
if (project) {
const currentSetting = project[key]
if (currentSetting !== newSetting) {
await saveProjectSettings(projectId, {
[key]: newSetting,
})
updateProject({ [key]: newSetting })
}
}
}
}