Files
Verso/services/web/frontend/js/features/editor-left-menu/hooks/use-root-doc-id.tsx
T
Alf EatonandCopybot 52ca103f46 Improve handling of undefined root doc id in settings (#28108)
GitOrigin-RevId: ba0c5b468b11c53440506f05af0550e55e0f3a23
2025-08-27 08:06:18 +00:00

33 lines
1.0 KiB
TypeScript

import { useCallback } from 'react'
import { useIdeReactContext } from '@/features/ide-react/context/ide-react-context'
import { useProjectContext } from '@/shared/context/project-context'
import type { ProjectSettings } from '../utils/api'
import useSaveProjectSettings from './use-save-project-settings'
export default function useRootDocId() {
const { project } = useProjectContext()
const rootDocId = project?.rootDocId
const { permissionsLevel } = useIdeReactContext()
const saveProjectSettings = useSaveProjectSettings()
const setRootDocIdFunc = useCallback(
async (newRootDocId: ProjectSettings['rootDocId']) => {
const allowUpdate = permissionsLevel !== 'readOnly'
if (allowUpdate) {
try {
await saveProjectSettings('rootDocId', newRootDocId)
} catch (err) {
// TODO: retry mechanism (max 10x before failed completely and rollback the old value)
}
}
},
[permissionsLevel, saveProjectSettings]
)
return {
rootDocId,
setRootDocId: setRootDocIdFunc,
}
}