+
)
}
diff --git a/services/web/frontend/js/features/source-editor/components/review-panel/entries/comment-entry.tsx b/services/web/frontend/js/features/source-editor/components/review-panel/entries/comment-entry.tsx
index a01cac81a6..9871b37c3b 100644
--- a/services/web/frontend/js/features/source-editor/components/review-panel/entries/comment-entry.tsx
+++ b/services/web/frontend/js/features/source-editor/components/review-panel/entries/comment-entry.tsx
@@ -14,22 +14,29 @@ import {
import classnames from 'classnames'
import { ReviewPanelCommentEntry } from '../../../../../../../types/review-panel/entry'
import {
- DocId,
ReviewPanelCommentThreads,
+ ReviewPanelPermissions,
ThreadId,
} from '../../../../../../../types/review-panel/review-panel'
+import { DocId } from '../../../../../../../types/project-settings'
type CommentEntryProps = {
docId: DocId
entry: ReviewPanelCommentEntry
entryId: ThreadId
+ permissions: ReviewPanelPermissions
threads: ReviewPanelCommentThreads
}
-function CommentEntry({ docId, entry, entryId, threads }: CommentEntryProps) {
+function CommentEntry({
+ docId,
+ entry,
+ entryId,
+ permissions,
+ threads,
+}: CommentEntryProps) {
const { t } = useTranslation()
const {
- permissions,
gotoEntry,
toggleReviewPanel,
resolveComment,
diff --git a/services/web/frontend/js/features/source-editor/components/review-panel/hooks/use-collapse-height.ts b/services/web/frontend/js/features/source-editor/components/review-panel/hooks/use-collapse-height.ts
new file mode 100644
index 0000000000..431ce8ac96
--- /dev/null
+++ b/services/web/frontend/js/features/source-editor/components/review-panel/hooks/use-collapse-height.ts
@@ -0,0 +1,26 @@
+import { useEffect } from 'react'
+
+function useCollapseHeight(
+ elRef: React.MutableRefObject,
+ shouldCollapse: boolean
+) {
+ useEffect(() => {
+ if (elRef.current) {
+ const neededHeight = elRef.current.scrollHeight
+
+ if (neededHeight > 0) {
+ const height = shouldCollapse ? 0 : neededHeight
+ // This might result in a too big height if the element has css prop of
+ // `box-sizing` set to `content-box`. To fix that, values of props such as
+ // box-sizing, padding and border could be extracted from `height` to compensate.
+ elRef.current.style.height = `${height}px`
+ } else {
+ if (shouldCollapse) {
+ elRef.current.style.height = '0'
+ }
+ }
+ }
+ }, [elRef, shouldCollapse])
+}
+
+export default useCollapseHeight
diff --git a/services/web/frontend/js/features/source-editor/components/review-panel/overview-container.tsx b/services/web/frontend/js/features/source-editor/components/review-panel/overview-container.tsx
index 9122163bb8..32bdb3f628 100644
--- a/services/web/frontend/js/features/source-editor/components/review-panel/overview-container.tsx
+++ b/services/web/frontend/js/features/source-editor/components/review-panel/overview-container.tsx
@@ -1,41 +1,41 @@
+import Container from './container'
+import Toggler from './toggler'
+import Toolbar from './toolbar/toolbar'
+import Nav from './nav'
+import Icon from '../../../../shared/components/icon'
+import OverviewFile from './overview-file'
+import { useReviewPanelValueContext } from '../../context/review-panel/review-panel-context'
+
function OverviewContainer() {
+ const { loading, docs } = useReviewPanelValueContext()
+
return (
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
- tempor incididunt ut labore et dolore magna aliqua. Et malesuada fames ac
- turpis egestas integer eget aliquet nibh. Et leo duis ut diam quam nulla
- porttitor massa id. Risus quis varius quam quisque id diam vel quam
- elementum. Nibh venenatis cras sed felis. Sit amet commodo nulla facilisi
- nullam vehicula ipsum a arcu. Dui ut ornare lectus sit amet est placerat
- in. Aliquam ultrices sagittis orci a. Leo a diam sollicitudin tempor id eu
- nisl nunc mi. Quis ipsum suspendisse ultrices gravida dictum fusce. Ut
- etiam sit amet nisl purus in mollis nunc sed. Rhoncus est pellentesque
- elit ullamcorper dignissim cras. Faucibus turpis in eu mi bibendum. Proin
- libero nunc consequat interdum. Ac placerat vestibulum lectus mauris
- ultrices eros in cursus turpis. Ac felis donec et odio. Nullam ac tortor
- vitae purus faucibus. Consectetur lorem donec massa sapien faucibus et
- molestie. Praesent elementum facilisis leo vel fringilla est ullamcorper
- eget nulla. Adipiscing vitae proin sagittis nisl rhoncus mattis rhoncus
- urna. Cursus metus aliquam eleifend mi in nulla posuere sollicitudin
- aliquam. Eget nullam non nisi est sit amet facilisis magna. Donec
- adipiscing tristique risus nec feugiat in fermentum posuere. Gravida
- rutrum quisque non tellus orci ac auctor augue. Euismod in pellentesque
- massa placerat duis ultricies lacus. Pellentesque diam volutpat commodo
- sed egestas. Tempus iaculis urna id volutpat lacus laoreet. Lorem ipsum
- dolor sit amet consectetur. Tincidunt id aliquet risus feugiat in ante
- metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna.
- Purus in mollis nunc sed. In ante metus dictum at. Magna eget est lorem
- ipsum dolor sit. Fusce id velit ut tortor pretium viverra. Augue neque
- gravida in fermentum et sollicitudin ac. Et malesuada fames ac turpis.
- Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices.
- Varius vel pharetra vel turpis nunc eget.
-