Procházet zdrojové kódy

[web] use updateProject for saving trackChangesState

GitOrigin-RevId: eecb2b78ff18547e8b3653fdff2d380d295c367f
Domagoj Kriskovic před 2 měsíci
rodič
revize
9cf1085fbb

+ 13 - 7
services/web/frontend/js/features/review-panel/context/track-changes-state-context.tsx

@@ -6,7 +6,6 @@ import {
   useContext,
   useEffect,
   useMemo,
-  useState,
 } from 'react'
 import useSocketListener from '@/features/ide-react/hooks/use-socket-listener'
 import { useConnectionContext } from '@/features/ide-react/context/connection-context'
@@ -48,16 +47,23 @@ export const TrackChangesStateProvider: FC<React.PropsWithChildren> = ({
 }) => {
   const permissions = usePermissionsContext()
   const { socket } = useConnectionContext()
-  const { projectId, project, features } = useProjectContext()
+  const { projectId, project, updateProject, features } = useProjectContext()
   const user = useUserContext()
   const { setWantTrackChanges } = useEditorPropertiesContext()
 
-  // TODO: update project.trackChangesState instead?
-  const [trackChangesValue, setTrackChangesValue] = useState<
-    ProjectMetadata['trackChangesState']
-  >(project?.trackChangesState ?? false)
+  const trackChangesValue: ProjectMetadata['trackChangesState'] =
+    project?.trackChangesState ?? false
 
-  useSocketListener(socket, 'toggle-track-changes', setTrackChangesValue)
+  useSocketListener(
+    socket,
+    'toggle-track-changes',
+    useCallback(
+      (newValue: ProjectMetadata['trackChangesState']) => {
+        updateProject({ trackChangesState: newValue })
+      },
+      [updateProject]
+    )
+  )
 
   useEffect(() => {
     setWantTrackChanges(