mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-15 07:34:42 -04:00
Add slide mode with reveal.js
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
parent
29565f8f89
commit
36e445e631
70 changed files with 1225 additions and 323 deletions
|
@ -25,6 +25,7 @@ import { useSendMarkdownToRenderer } from './hooks/use-send-markdown-to-renderer
|
|||
import { useSendScrollState } from './hooks/use-send-scroll-state'
|
||||
import { useApplicationState } from '../../../hooks/common/use-application-state'
|
||||
import { Logger } from '../../../utils/logger'
|
||||
import { useEffectOnRenderTypeChange } from './hooks/use-effect-on-render-type-change'
|
||||
|
||||
export interface RenderIframeProps extends RendererProps {
|
||||
rendererType: RendererType
|
||||
|
@ -50,9 +51,8 @@ export const RenderIframe: React.FC<RenderIframeProps> = ({
|
|||
const iframeCommunicator = useEditorToRendererCommunicator()
|
||||
const resetRendererReady = useCallback(() => {
|
||||
log.debug('Reset render status')
|
||||
iframeCommunicator.unsetMessageTarget()
|
||||
setRendererStatus(false)
|
||||
}, [iframeCommunicator])
|
||||
}, [])
|
||||
const rendererReady = useIsRendererReady()
|
||||
const onIframeLoad = useForceRenderPageUrlOnIframeLoadCallback(frameReference, rendererOrigin, resetRendererReady)
|
||||
const [frameHeight, setFrameHeight] = useState<number>(0)
|
||||
|
@ -65,6 +65,12 @@ export const RenderIframe: React.FC<RenderIframeProps> = ({
|
|||
[iframeCommunicator]
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
if (!rendererReady) {
|
||||
iframeCommunicator.unsetMessageTarget()
|
||||
}
|
||||
}, [iframeCommunicator, rendererReady])
|
||||
|
||||
useEditorReceiveHandler(
|
||||
CommunicationMessageType.ON_FIRST_HEADING_CHANGE,
|
||||
useCallback(
|
||||
|
@ -123,6 +129,7 @@ export const RenderIframe: React.FC<RenderIframeProps> = ({
|
|||
}, [iframeCommunicator, rendererOrigin, rendererType])
|
||||
)
|
||||
|
||||
useEffectOnRenderTypeChange(rendererType, onIframeLoad)
|
||||
useSendScrollState(scrollState)
|
||||
useSendDarkModeStatusToRenderer(forcedDarkMode)
|
||||
useSendMarkdownToRenderer(markdownContent)
|
||||
|
@ -136,7 +143,9 @@ export const RenderIframe: React.FC<RenderIframeProps> = ({
|
|||
onLoad={onIframeLoad}
|
||||
title='render'
|
||||
{...(isTestMode() ? {} : { sandbox: 'allow-downloads allow-same-origin allow-scripts allow-popups' })}
|
||||
allowFullScreen={true}
|
||||
ref={frameReference}
|
||||
referrerPolicy={'no-referrer'}
|
||||
className={`border-0 ${frameClasses ?? ''}`}
|
||||
data-content-ready={rendererReady}
|
||||
/>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue