|
@@ -6,57 +6,64 @@ import { useCodeMirrorViewContext } from '../codemirror-editor'
|
|
|
import { useReviewPanelValueContext } from '../../context/review-panel/review-panel-context'
|
|
import { useReviewPanelValueContext } from '../../context/review-panel/review-panel-context'
|
|
|
import { isCurrentFileView } from '../../utils/sub-view'
|
|
import { isCurrentFileView } from '../../utils/sub-view'
|
|
|
import { useLayoutContext } from '@/shared/context/layout-context'
|
|
import { useLayoutContext } from '@/shared/context/layout-context'
|
|
|
-import { useIdeContext } from '@/shared/context/ide-context'
|
|
|
|
|
import classnames from 'classnames'
|
|
import classnames from 'classnames'
|
|
|
import { lazy, memo } from 'react'
|
|
import { lazy, memo } from 'react'
|
|
|
import getMeta from '@/utils/meta'
|
|
import getMeta from '@/utils/meta'
|
|
|
|
|
+import { SubView } from '../../../../../../types/review-panel/review-panel'
|
|
|
|
|
+
|
|
|
|
|
+const isReactIde: boolean = getMeta('ol-idePageReact')
|
|
|
|
|
|
|
|
type ReviewPanelViewProps = {
|
|
type ReviewPanelViewProps = {
|
|
|
parentDomNode: Element
|
|
parentDomNode: Element
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function ReviewPanelView({ parentDomNode }: ReviewPanelViewProps) {
|
|
function ReviewPanelView({ parentDomNode }: ReviewPanelViewProps) {
|
|
|
- const { subView, loadingThreads, layoutToLeft } = useReviewPanelValueContext()
|
|
|
|
|
- const { reviewPanelOpen, miniReviewPanelVisible } = useLayoutContext()
|
|
|
|
|
- const { isReactIde } = useIdeContext()
|
|
|
|
|
-
|
|
|
|
|
- const content = (
|
|
|
|
|
- <>
|
|
|
|
|
- <EditorWidgets />
|
|
|
|
|
- {isCurrentFileView(subView) ? (
|
|
|
|
|
- <CurrentFileContainer />
|
|
|
|
|
- ) : (
|
|
|
|
|
- <OverviewContainer />
|
|
|
|
|
- )}
|
|
|
|
|
- </>
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ const { subView } = useReviewPanelValueContext()
|
|
|
|
|
|
|
|
return ReactDOM.createPortal(
|
|
return ReactDOM.createPortal(
|
|
|
isReactIde ? (
|
|
isReactIde ? (
|
|
|
- <div
|
|
|
|
|
- className={classnames('review-panel-wrapper', {
|
|
|
|
|
- 'rp-state-current-file': subView === 'cur_file',
|
|
|
|
|
- 'rp-state-current-file-expanded':
|
|
|
|
|
- subView === 'cur_file' && reviewPanelOpen,
|
|
|
|
|
- 'rp-state-current-file-mini':
|
|
|
|
|
- subView === 'cur_file' && !reviewPanelOpen,
|
|
|
|
|
- 'rp-state-overview': subView === 'overview',
|
|
|
|
|
- 'rp-size-mini': miniReviewPanelVisible,
|
|
|
|
|
- 'rp-size-expanded': reviewPanelOpen,
|
|
|
|
|
- 'rp-layout-left': layoutToLeft,
|
|
|
|
|
- 'rp-loading-threads': loadingThreads,
|
|
|
|
|
- })}
|
|
|
|
|
- >
|
|
|
|
|
- {content}
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <ReviewPanelContainer />
|
|
|
) : (
|
|
) : (
|
|
|
- content
|
|
|
|
|
|
|
+ <ReviewPanelContent subView={subView} />
|
|
|
),
|
|
),
|
|
|
parentDomNode
|
|
parentDomNode
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const isReactIde: boolean = getMeta('ol-idePageReact')
|
|
|
|
|
|
|
+const ReviewPanelContainer = memo(() => {
|
|
|
|
|
+ const { subView, loadingThreads, layoutToLeft } = useReviewPanelValueContext()
|
|
|
|
|
+ const { reviewPanelOpen, miniReviewPanelVisible } = useLayoutContext()
|
|
|
|
|
+
|
|
|
|
|
+ const className = classnames('review-panel-wrapper', {
|
|
|
|
|
+ 'rp-state-current-file': subView === 'cur_file',
|
|
|
|
|
+ 'rp-state-current-file-expanded': subView === 'cur_file' && reviewPanelOpen,
|
|
|
|
|
+ 'rp-state-current-file-mini': subView === 'cur_file' && !reviewPanelOpen,
|
|
|
|
|
+ 'rp-state-overview': subView === 'overview',
|
|
|
|
|
+ 'rp-size-mini': miniReviewPanelVisible,
|
|
|
|
|
+ 'rp-size-expanded': reviewPanelOpen,
|
|
|
|
|
+ 'rp-layout-left': layoutToLeft,
|
|
|
|
|
+ 'rp-loading-threads': loadingThreads,
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ return (
|
|
|
|
|
+ <div className={className}>
|
|
|
|
|
+ <ReviewPanelContent subView={subView} />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ )
|
|
|
|
|
+})
|
|
|
|
|
+ReviewPanelContainer.displayName = 'ReviewPanelContainer'
|
|
|
|
|
+
|
|
|
|
|
+const ReviewPanelContent = memo<{ subView: SubView }>(({ subView }) => (
|
|
|
|
|
+ <>
|
|
|
|
|
+ <EditorWidgets />
|
|
|
|
|
+ {isCurrentFileView(subView) ? (
|
|
|
|
|
+ <CurrentFileContainer />
|
|
|
|
|
+ ) : (
|
|
|
|
|
+ <OverviewContainer />
|
|
|
|
|
+ )}
|
|
|
|
|
+ </>
|
|
|
|
|
+))
|
|
|
|
|
+ReviewPanelContent.displayName = 'ReviewPanelContent'
|
|
|
|
|
|
|
|
const ReviewPanelProvider = lazy(() =>
|
|
const ReviewPanelProvider = lazy(() =>
|
|
|
isReactIde
|
|
isReactIde
|