2021-09-30 11:29:25 +00:00
|
|
|
import { memo, Suspense } from 'react'
|
2022-03-23 09:20:30 +00:00
|
|
|
import classNames from 'classnames'
|
2021-09-30 11:29:25 +00:00
|
|
|
import PdfLogsViewer from './pdf-logs-viewer'
|
|
|
|
import PdfViewer from './pdf-viewer'
|
2021-10-06 08:33:24 +00:00
|
|
|
import LoadingSpinner from '../../../shared/components/loading-spinner'
|
2021-10-12 08:47:46 +00:00
|
|
|
import PdfHybridPreviewToolbar from './pdf-preview-hybrid-toolbar'
|
2022-03-31 11:22:36 +00:00
|
|
|
import { useDetachCompileContext as useCompileContext } from '../../../shared/context/detach-compile-context'
|
2021-10-12 08:47:46 +00:00
|
|
|
|
2021-09-03 09:06:28 +00:00
|
|
|
function PdfPreviewPane() {
|
2022-03-23 09:20:30 +00:00
|
|
|
const { pdfUrl } = useCompileContext()
|
|
|
|
const classes = classNames('pdf', 'full-size', {
|
|
|
|
'pdf-empty': !pdfUrl,
|
|
|
|
})
|
2021-09-30 11:29:25 +00:00
|
|
|
return (
|
2022-03-23 09:20:30 +00:00
|
|
|
<div className={classes}>
|
2022-03-25 09:45:50 +00:00
|
|
|
<PdfHybridPreviewToolbar />
|
2021-10-06 08:33:24 +00:00
|
|
|
<Suspense fallback={<LoadingPreview />}>
|
2021-09-30 11:29:25 +00:00
|
|
|
<div className="pdf-viewer">
|
|
|
|
<PdfViewer />
|
|
|
|
</div>
|
|
|
|
</Suspense>
|
2021-10-15 09:39:56 +00:00
|
|
|
<PdfLogsViewer />
|
2021-09-30 11:29:25 +00:00
|
|
|
</div>
|
|
|
|
)
|
2021-09-03 09:06:28 +00:00
|
|
|
}
|
|
|
|
|
2021-10-06 08:33:24 +00:00
|
|
|
function LoadingPreview() {
|
|
|
|
return (
|
|
|
|
<div className="pdf-loading-spinner-container">
|
2022-04-07 08:58:48 +00:00
|
|
|
<LoadingSpinner delay={500} />
|
2021-10-06 08:33:24 +00:00
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default memo(PdfPreviewPane)
|