mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2025-07-31 02:00:07 +02:00

* 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
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { useCallback } from 'react'
|
|
import { useProjectContext } from '@/shared/context/project-context'
|
|
import { type ProjectSettings, saveUserSettings } from '../utils/api'
|
|
import useSaveProjectSettings from './use-save-project-settings'
|
|
|
|
export default function useSetSpellCheckLanguage() {
|
|
const { project } = useProjectContext()
|
|
const spellCheckLanguage = project?.spellCheckLanguage
|
|
const saveProjectSettings = useSaveProjectSettings()
|
|
|
|
return useCallback(
|
|
(newSpellCheckLanguage: ProjectSettings['spellCheckLanguage']) => {
|
|
const allowUpdate =
|
|
spellCheckLanguage != null &&
|
|
newSpellCheckLanguage !== spellCheckLanguage
|
|
|
|
if (allowUpdate) {
|
|
// Save project settings is created from hooks because it will save the value on
|
|
// both server-side and client-side (project context)
|
|
saveProjectSettings('spellCheckLanguage', newSpellCheckLanguage)
|
|
|
|
// For user settings, we only need to save it on server-side,
|
|
// so we import the function directly without hooks
|
|
saveUserSettings('spellCheckLanguage', newSpellCheckLanguage)
|
|
}
|
|
},
|
|
[spellCheckLanguage, saveProjectSettings]
|
|
)
|
|
}
|