From fdc63c9f8879aa8ed01e00df1f59a0b0d6a575d5 Mon Sep 17 00:00:00 2001 From: Domagoj Kriskovic Date: Fri, 6 Dec 2024 13:08:26 +0100 Subject: [PATCH] Revert "Update review entries in overview panel on collaborator changes (#22098)" (#22369) This reverts commit e2d837efe889170dc055df69eae6b4e8f86cb5fc. GitOrigin-RevId: e2c8637ffd64fc52f1a9cb36801f8688d42d4e0c --- .../components/review-panel-overview.tsx | 20 ++++--- .../context/ranges-context.tsx | 2 + .../hooks/use-project-ranges.ts | 52 ++----------------- 3 files changed, 14 insertions(+), 60 deletions(-) diff --git a/services/web/frontend/js/features/review-panel-new/components/review-panel-overview.tsx b/services/web/frontend/js/features/review-panel-new/components/review-panel-overview.tsx index 5c83014b0d..575419677d 100644 --- a/services/web/frontend/js/features/review-panel-new/components/review-panel-overview.tsx +++ b/services/web/frontend/js/features/review-panel-new/components/review-panel-overview.tsx @@ -1,6 +1,6 @@ import { FC, useMemo } from 'react' 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 { ReviewPanelOverviewFile } from './review-panel-overview-file' import ReviewPanelEmptyState from './review-panel-empty-state' @@ -9,15 +9,19 @@ import useProjectRanges from '../hooks/use-project-ranges' export const ReviewPanelOverview: FC = () => { const { t } = useTranslation() const { docs } = useFileTreeData() + const docRanges = useRangesContext() const { projectRanges, error } = useProjectRanges() const rangesForDocs = useMemo(() => { - if (docs && projectRanges) { + if (docs && docRanges && projectRanges) { const rangesForDocs = new Map() 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) { rangesForDocs.set(doc.doc.id, ranges) @@ -26,7 +30,7 @@ export const ReviewPanelOverview: FC = () => { return rangesForDocs } - }, [docs, projectRanges]) + }, [docRanges, docs, projectRanges]) const showEmptyState = useMemo((): boolean => { if (!rangesForDocs) { @@ -54,13 +58,7 @@ export const ReviewPanelOverview: FC = () => { {docs.map(doc => { const ranges = rangesForDocs.get(doc.doc.id) return ( - ranges && ( - - ) + ranges && ) })} diff --git a/services/web/frontend/js/features/review-panel-new/context/ranges-context.tsx b/services/web/frontend/js/features/review-panel-new/context/ranges-context.tsx index ea0eb78a75..2da4b34b76 100644 --- a/services/web/frontend/js/features/review-panel-new/context/ranges-context.tsx +++ b/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 = { docId: string + total: number changes: Change[] comments: Change[] } @@ -72,6 +73,7 @@ const buildRanges = (currentDoc: DocumentContainer | null) => { ) : ranges.comments, docId: currentDoc.doc_id, + total: ranges.changes.length + ranges.comments.length, } } diff --git a/services/web/frontend/js/features/review-panel-new/hooks/use-project-ranges.ts b/services/web/frontend/js/features/review-panel-new/hooks/use-project-ranges.ts index 15101c06a0..b90d12b0bc 100644 --- a/services/web/frontend/js/features/review-panel-new/hooks/use-project-ranges.ts +++ b/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 { 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() { const { _id: projectId } = useProjectContext() const [error, setError] = useState() const [projectRanges, setProjectRanges] = useState>() const [loading, setLoading] = useState(true) - const docRanges = useRangesContext() - const { socket } = useConnectionContext() useEffect(() => { setLoading(true) @@ -25,6 +21,7 @@ export default function useProjectRanges() { docId: item.id, changes: item.ranges.changes ?? [], comments: item.ranges.comments ?? [], + total: 0, // TODO }, ]) ) @@ -34,48 +31,5 @@ export default function useProjectRanges() { .finally(() => setLoading(false)) }, [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 } }