From dc0068420af8361bf05331fe6ad6ca02a8bca5e6 Mon Sep 17 00:00:00 2001 From: Tilman Vatteroth Date: Thu, 14 Oct 2021 20:00:16 +0200 Subject: [PATCH] Fix SlideShow-Only-Page and Document-Read-Only-Page Signed-off-by: Tilman Vatteroth --- .../document-read-only-page.spec.ts | 12 ++++++ .../integration/slideshow-only-page.spec.ts | 12 ++++++ .../document-read-only-page-content.tsx | 43 +++++++++++++++++++ .../document-read-only-page.tsx | 22 +--------- .../slide-show-page-content.tsx | 30 +++++++++++++ .../slide-show-page/slide-show-page.tsx | 30 ++++--------- 6 files changed, 108 insertions(+), 41 deletions(-) create mode 100644 cypress/integration/document-read-only-page.spec.ts create mode 100644 cypress/integration/slideshow-only-page.spec.ts create mode 100644 src/components/document-read-only-page/document-read-only-page-content.tsx create mode 100644 src/components/slide-show-page/slide-show-page-content.tsx 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 ( - -
- -
-
+ + + + + ) }