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

This reverts commit e2d837efe889170dc055df69eae6b4e8f86cb5fc.

GitOrigin-RevId: e2c8637ffd64fc52f1a9cb36801f8688d42d4e0c
This commit is contained in:
Domagoj Kriskovic
2024-12-09 09:05:00 +00:00
committed by Copybot
parent a16ad0b78a
commit fdc63c9f88
3 changed files with 14 additions and 60 deletions
@@ -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<string, Ranges>()
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 && (
<ReviewPanelOverviewFile
key={doc.doc.id}
doc={doc}
ranges={ranges}
/>
)
ranges && <ReviewPanelOverviewFile doc={doc} ranges={ranges} />
)
})}
</div>
@@ -24,6 +24,7 @@ import useSocketListener from '@/features/ide-react/hooks/use-socket-listener'
export type Ranges = {
docId: string
total: number
changes: Change<EditOperation>[]
comments: Change<CommentOperation>[]
}
@@ -72,6 +73,7 @@ const buildRanges = (currentDoc: DocumentContainer | null) => {
)
: ranges.comments,
docId: currentDoc.doc_id,
total: ranges.changes.length + ranges.comments.length,
}
}
@@ -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<Error>()
const [projectRanges, setProjectRanges] = useState<Map<string, Ranges>>()
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 }
}