Files
overleaf-cep/services/web/frontend/js/shared/hooks/use-tracking-changes-mode.ts
T
Domagoj Kriskovic a2712ce523 [web] Clean up boolean handling of track changes state in the frontend
GitOrigin-RevId: 640380219274e156d5bbac704d82e7ea75e1fee2
2026-09-17 11:17:51 +00:00

28 lines
820 B
TypeScript

import { useIdeReactContext } from '@/features/ide-react/context/ide-react-context'
import { useTrackChangesStateContext } from '@/features/review-panel/context/track-changes-state-context'
import { useUserContext } from '../context/user-context'
type Mode = 'view' | 'review' | 'edit'
export const useTrackingChangesMode = (): Mode => {
const trackChanges = useTrackChangesStateContext()
const user = useUserContext()
const { permissionsLevel } = useIdeReactContext()
if (permissionsLevel === 'readOnly') {
return 'view'
} else if (permissionsLevel === 'review') {
return 'review'
}
const trackChangesForCurrentUser = user?.id
? trackChanges?.onForMembers[user.id]
: trackChanges?.onForGuests
if (trackChangesForCurrentUser) {
return 'review'
} else {
return 'edit'
}
}