diff --git a/cypress/integration/document-read-only-page.spec.ts b/cypress/integration/document-read-only-page.spec.ts
new file mode 100644
index 000000000..82940d8d3
--- /dev/null
+++ b/cypress/integration/document-read-only-page.spec.ts
@@ -0,0 +1,12 @@
+/*
+ * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+describe("Document read only page", () => {
+ it('renders the document mode', () => {
+ cy.visit('/s/test')
+ cy.getMarkdownBody().should("exist")
+ })
+})
diff --git a/cypress/integration/slideshow-only-page.spec.ts b/cypress/integration/slideshow-only-page.spec.ts
new file mode 100644
index 000000000..5de7f6381
--- /dev/null
+++ b/cypress/integration/slideshow-only-page.spec.ts
@@ -0,0 +1,12 @@
+/*
+ * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+describe("Slideshow only page", () => {
+ it('renders slide show mode', () => {
+ cy.visit('/p/test')
+ cy.getReveal().should("exist")
+ })
+})
diff --git a/src/components/document-read-only-page/document-read-only-page-content.tsx b/src/components/document-read-only-page/document-read-only-page-content.tsx
new file mode 100644
index 000000000..c0d3c0f6b
--- /dev/null
+++ b/src/components/document-read-only-page/document-read-only-page-content.tsx
@@ -0,0 +1,43 @@
+/*
+ * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import React, { Fragment } from 'react'
+import { useTranslation } from 'react-i18next'
+import { updateNoteTitleByFirstHeading } from '../../redux/note-details/methods'
+import { useNoteMarkdownContentWithoutFrontmatter } from '../../hooks/common/use-note-markdown-content-without-frontmatter'
+import { useApplicationState } from '../../hooks/common/use-application-state'
+import { useSendFrontmatterInfoFromReduxToRenderer } from '../editor-page/renderer-pane/hooks/use-send-frontmatter-info-from-redux-to-renderer'
+import { DocumentInfobar } from './document-infobar'
+import { RenderIframe } from '../editor-page/renderer-pane/render-iframe'
+import { RendererType } from '../render-page/window-post-message-communicator/rendering-message'
+
+export const DocumentReadOnlyPageContent: React.FC = () => {
+ useTranslation()
+
+ const markdownContent = useNoteMarkdownContentWithoutFrontmatter()
+ const noteDetails = useApplicationState((state) => state.noteDetails)
+ useSendFrontmatterInfoFromReduxToRenderer()
+
+ return (
+
+
+
+
+ )
+}
diff --git a/src/components/document-read-only-page/document-read-only-page.tsx b/src/components/document-read-only-page/document-read-only-page.tsx
index 0e34ade42..dcc63c3b7 100644
--- a/src/components/document-read-only-page/document-read-only-page.tsx
+++ b/src/components/document-read-only-page/document-read-only-page.tsx
@@ -4,41 +4,23 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import React, { useCallback } from 'react'
-import { useTranslation } from 'react-i18next'
-import { useParams } from 'react-router'
+import React from 'react'
import { useApplyDarkMode } from '../../hooks/common/use-apply-dark-mode'
import { useDocumentTitleWithNoteTitle } from '../../hooks/common/use-document-title-with-note-title'
-import { updateNoteTitleByFirstHeading } from '../../redux/note-details/methods'
import { MotdModal } from '../common/motd-modal/motd-modal'
import { ShowIf } from '../common/show-if/show-if'
import { AppBar, AppBarMode } from '../editor-page/app-bar/app-bar'
-import { EditorPagePathParams } from '../editor-page/editor-page'
import { useLoadNoteFromServer } from '../editor-page/hooks/useLoadNoteFromServer'
-import { RenderIframe } from '../editor-page/renderer-pane/render-iframe'
-import { DocumentInfobar } from './document-infobar'
import { ErrorWhileLoadingNoteAlert } from './ErrorWhileLoadingNoteAlert'
import { LoadingNoteAlert } from './LoadingNoteAlert'
-import { RendererType } from '../render-page/window-post-message-communicator/rendering-message'
-import { useApplicationState } from '../../hooks/common/use-application-state'
-import { useNoteMarkdownContentWithoutFrontmatter } from '../../hooks/common/use-note-markdown-content-without-frontmatter'
import { EditorToRendererCommunicatorContextProvider } from '../editor-page/render-context/editor-to-renderer-communicator-context-provider'
-import { useSendFrontmatterInfoFromReduxToRenderer } from '../editor-page/renderer-pane/hooks/use-send-frontmatter-info-from-redux-to-renderer'
import { UiNotifications } from '../notifications/ui-notifications'
+import { DocumentReadOnlyPageContent } from './document-read-only-page-content'
export const DocumentReadOnlyPage: React.FC = () => {
- useTranslation()
- const { id } = useParams()
-
useApplyDarkMode()
useDocumentTitleWithNoteTitle()
-
- const onFirstHeadingChange = useCallback(updateNoteTitleByFirstHeading, [])
const [error, loading] = useLoadNoteFromServer()
- const markdownContent = useNoteMarkdownContentWithoutFrontmatter()
- const noteDetails = useApplicationState((state) => state.noteDetails)
- useSendFrontmatterInfoFromReduxToRenderer()
-
return (
diff --git a/src/components/slide-show-page/slide-show-page-content.tsx b/src/components/slide-show-page/slide-show-page-content.tsx
new file mode 100644
index 000000000..f59b615d8
--- /dev/null
+++ b/src/components/slide-show-page/slide-show-page-content.tsx
@@ -0,0 +1,30 @@
+/*
+ * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import React from 'react'
+import { RendererType } from '../render-page/window-post-message-communicator/rendering-message'
+import { RenderIframe } from '../editor-page/renderer-pane/render-iframe'
+import { updateNoteTitleByFirstHeading } from '../../redux/note-details/methods'
+import { useTranslation } from 'react-i18next'
+import { useSendFrontmatterInfoFromReduxToRenderer } from '../editor-page/renderer-pane/hooks/use-send-frontmatter-info-from-redux-to-renderer'
+import { useNoteMarkdownContentWithoutFrontmatter } from '../../hooks/common/use-note-markdown-content-without-frontmatter'
+
+export const SlideShowPageContent: React.FC = () => {
+ const markdownContent = useNoteMarkdownContentWithoutFrontmatter()
+ useTranslation()
+ useSendFrontmatterInfoFromReduxToRenderer()
+
+ return (
+
+
+
+ )
+}
diff --git a/src/components/slide-show-page/slide-show-page.tsx b/src/components/slide-show-page/slide-show-page.tsx
index b84bd9e89..879f36e5e 100644
--- a/src/components/slide-show-page/slide-show-page.tsx
+++ b/src/components/slide-show-page/slide-show-page.tsx
@@ -5,34 +5,22 @@
*/
import React from 'react'
-import { RenderIframe } from '../editor-page/renderer-pane/render-iframe'
-import { useNoteMarkdownContent } from '../../hooks/common/use-note-markdown-content'
-import { useTranslation } from 'react-i18next'
import { useLoadNoteFromServer } from '../editor-page/hooks/useLoadNoteFromServer'
import { ShowIf } from '../common/show-if/show-if'
-import { updateNoteTitleByFirstHeading } from '../../redux/note-details/methods'
-import { RendererType } from '../render-page/window-post-message-communicator/rendering-message'
-import { useSendFrontmatterInfoFromReduxToRenderer } from '../editor-page/renderer-pane/hooks/use-send-frontmatter-info-from-redux-to-renderer'
+import { EditorToRendererCommunicatorContextProvider } from '../editor-page/render-context/editor-to-renderer-communicator-context-provider'
+import { SlideShowPageContent } from './slide-show-page-content'
+import { useDocumentTitleWithNoteTitle } from '../../hooks/common/use-document-title-with-note-title'
export const SlideShowPage: React.FC = () => {
- const markdownContent = useNoteMarkdownContent()
-
- useTranslation()
- useSendFrontmatterInfoFromReduxToRenderer()
-
const [error, loading] = useLoadNoteFromServer()
+ useDocumentTitleWithNoteTitle()
return (
-
-
-
-
-
+
+
+
+
+
)
}