overleaf/services/web/frontend/js/features/pdf-preview/components/detach-compile-button.js
Timothée Alby 3c01402bbd Merge pull request #7034 from overleaf/ta-pdf-detach-full
PDF Detach v2

GitOrigin-RevId: 3deb76474185f9176cde23ab32ef51b90df6e8e9
2022-04-05 12:19:23 +00:00

43 lines
1.1 KiB
JavaScript

import { memo } from 'react'
import PropTypes from 'prop-types'
import classnames from 'classnames'
import { useLayoutContext } from '../../../shared/context/layout-context'
import { useDetachCompileContext as useCompileContext } from '../../../shared/context/detach-compile-context'
import PdfCompileButtonInner from './pdf-compile-button-inner'
export function DetachCompileButton() {
const { compiling, hasChanges, startCompile } = useCompileContext()
return (
<div
className={classnames({
'btn-recompile-group': true,
'btn-recompile-group-has-changes': hasChanges,
})}
>
<PdfCompileButtonInner
startCompile={startCompile}
compiling={compiling}
/>
</div>
)
}
export function DetachCompileButtonWrapper() {
const { detachRole, detachIsLinked } = useLayoutContext(
layoutContextPropTypes
)
if (detachRole !== 'detacher' || !detachIsLinked) {
return null
}
return <DetachCompileButton />
}
const layoutContextPropTypes = {
detachRole: PropTypes.string,
detachIsLinked: PropTypes.bool,
}
export default memo(DetachCompileButtonWrapper)