Explorar el Código

Revert "Update review entries in overview panel on collaborator changes (#22098)" (#22369)

This reverts commit e2d837efe889170dc055df69eae6b4e8f86cb5fc.

GitOrigin-RevId: e2c8637ffd64fc52f1a9cb36801f8688d42d4e0c
Domagoj Kriskovic hace 1 año
padre
commit
6a6ef776d5

+ 9 - 11
services/web/frontend/js/features/review-panel-new/components/review-panel-overview.tsx

@@ -1,6 +1,6 @@
 import { FC, useMemo } from 'react'
 import { FC, useMemo } from 'react'
 import { useFileTreeData } from '@/shared/context/file-tree-data-context'
 import { useFileTreeData } from '@/shared/context/file-tree-data-context'
-import { Ranges } from '../context/ranges-context'
+import { Ranges, useRangesContext } from '../context/ranges-context'
 import { useTranslation } from 'react-i18next'
 import { useTranslation } from 'react-i18next'
 import { ReviewPanelOverviewFile } from './review-panel-overview-file'
 import { ReviewPanelOverviewFile } from './review-panel-overview-file'
 import ReviewPanelEmptyState from './review-panel-empty-state'
 import ReviewPanelEmptyState from './review-panel-empty-state'
@@ -9,15 +9,19 @@ import useProjectRanges from '../hooks/use-project-ranges'
 export const ReviewPanelOverview: FC = () => {
 export const ReviewPanelOverview: FC = () => {
   const { t } = useTranslation()
   const { t } = useTranslation()
   const { docs } = useFileTreeData()
   const { docs } = useFileTreeData()
+  const docRanges = useRangesContext()
 
 
   const { projectRanges, error } = useProjectRanges()
   const { projectRanges, error } = useProjectRanges()
 
 
   const rangesForDocs = useMemo(() => {
   const rangesForDocs = useMemo(() => {
-    if (docs && projectRanges) {
+    if (docs && docRanges && projectRanges) {
       const rangesForDocs = new Map<string, Ranges>()
       const rangesForDocs = new Map<string, Ranges>()
 
 
       for (const doc of docs) {
       for (const doc of docs) {
-        const ranges = projectRanges.get(doc.doc.id)
+        const ranges =
+          doc.doc.id === docRanges.docId
+            ? docRanges
+            : projectRanges.get(doc.doc.id)
 
 
         if (ranges) {
         if (ranges) {
           rangesForDocs.set(doc.doc.id, ranges)
           rangesForDocs.set(doc.doc.id, ranges)
@@ -26,7 +30,7 @@ export const ReviewPanelOverview: FC = () => {
 
 
       return rangesForDocs
       return rangesForDocs
     }
     }
-  }, [docs, projectRanges])
+  }, [docRanges, docs, projectRanges])
 
 
   const showEmptyState = useMemo((): boolean => {
   const showEmptyState = useMemo((): boolean => {
     if (!rangesForDocs) {
     if (!rangesForDocs) {
@@ -54,13 +58,7 @@ export const ReviewPanelOverview: FC = () => {
           {docs.map(doc => {
           {docs.map(doc => {
             const ranges = rangesForDocs.get(doc.doc.id)
             const ranges = rangesForDocs.get(doc.doc.id)
             return (
             return (
-              ranges && (
-                <ReviewPanelOverviewFile
-                  key={doc.doc.id}
-                  doc={doc}
-                  ranges={ranges}
-                />
-              )
+              ranges && <ReviewPanelOverviewFile doc={doc} ranges={ranges} />
             )
             )
           })}
           })}
         </div>
         </div>

+ 2 - 0
services/web/frontend/js/features/review-panel-new/context/ranges-context.tsx

@@ -24,6 +24,7 @@ import useSocketListener from '@/features/ide-react/hooks/use-socket-listener'
 
 
 export type Ranges = {
 export type Ranges = {
   docId: string
   docId: string
+  total: number
   changes: Change<EditOperation>[]
   changes: Change<EditOperation>[]
   comments: Change<CommentOperation>[]
   comments: Change<CommentOperation>[]
 }
 }
@@ -72,6 +73,7 @@ const buildRanges = (currentDoc: DocumentContainer | null) => {
           )
           )
         : ranges.comments,
         : ranges.comments,
     docId: currentDoc.doc_id,
     docId: currentDoc.doc_id,
+    total: ranges.changes.length + ranges.comments.length,
   }
   }
 }
 }
 
 

+ 3 - 49
services/web/frontend/js/features/review-panel-new/hooks/use-project-ranges.ts

@@ -1,17 +1,13 @@
-import { useCallback, useEffect, useState } from 'react'
-import { Ranges, useRangesContext } from '../context/ranges-context'
+import { useEffect, useState } from 'react'
+import { Ranges } from '../context/ranges-context'
 import { useProjectContext } from '@/shared/context/project-context'
 import { useProjectContext } from '@/shared/context/project-context'
 import { getJSON } from '@/infrastructure/fetch-json'
 import { getJSON } from '@/infrastructure/fetch-json'
-import useSocketListener from '@/features/ide-react/hooks/use-socket-listener'
-import { useConnectionContext } from '@/features/ide-react/context/connection-context'
 
 
 export default function useProjectRanges() {
 export default function useProjectRanges() {
   const { _id: projectId } = useProjectContext()
   const { _id: projectId } = useProjectContext()
   const [error, setError] = useState<Error>()
   const [error, setError] = useState<Error>()
   const [projectRanges, setProjectRanges] = useState<Map<string, Ranges>>()
   const [projectRanges, setProjectRanges] = useState<Map<string, Ranges>>()
   const [loading, setLoading] = useState(true)
   const [loading, setLoading] = useState(true)
-  const docRanges = useRangesContext()
-  const { socket } = useConnectionContext()
 
 
   useEffect(() => {
   useEffect(() => {
     setLoading(true)
     setLoading(true)
@@ -25,6 +21,7 @@ export default function useProjectRanges() {
                 docId: item.id,
                 docId: item.id,
                 changes: item.ranges.changes ?? [],
                 changes: item.ranges.changes ?? [],
                 comments: item.ranges.comments ?? [],
                 comments: item.ranges.comments ?? [],
+                total: 0, // TODO
               },
               },
             ])
             ])
           )
           )
@@ -34,48 +31,5 @@ export default function useProjectRanges() {
       .finally(() => setLoading(false))
       .finally(() => setLoading(false))
   }, [projectId])
   }, [projectId])
 
 
-  useEffect(() => {
-    if (!docRanges?.docId) {
-      return
-    }
-
-    setProjectRanges(prevProjectRanges => {
-      if (!prevProjectRanges) {
-        return prevProjectRanges
-      }
-
-      const updatedProjectRanges = new Map(prevProjectRanges)
-      updatedProjectRanges.set(docRanges.docId, docRanges)
-      return updatedProjectRanges
-    })
-  }, [docRanges])
-
-  useSocketListener(
-    socket,
-    'accept-changes',
-    useCallback((docId: string, entryIds: string[]) => {
-      setProjectRanges(prevProjectRanges => {
-        if (!prevProjectRanges) {
-          return prevProjectRanges
-        }
-
-        const ranges = prevProjectRanges.get(docId)
-        if (!ranges) {
-          return prevProjectRanges
-        }
-        const updatedProjectRanges = new Map(prevProjectRanges)
-
-        updatedProjectRanges.set(docId, {
-          ...ranges,
-          changes: ranges.changes.filter(
-            change => !entryIds.includes(change.id)
-          ),
-        })
-
-        return updatedProjectRanges
-      })
-    }, [])
-  )
-
   return { projectRanges, error, loading }
   return { projectRanges, error, loading }
 }
 }