mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-23 03:27:05 -04:00
fix: Move content into to frontend directory
Doing this BEFORE the merge prevents a lot of merge conflicts. Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
parent
4e18ce38f3
commit
762a0a850e
1051 changed files with 0 additions and 35 deletions
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
.cover-button {
|
||||
min-width: 200px;
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import React from 'react'
|
||||
import { Button } from 'react-bootstrap'
|
||||
import { Trans, useTranslation } from 'react-i18next'
|
||||
import { useApplicationState } from '../../../hooks/common/use-application-state'
|
||||
import { ShowIf } from '../../common/show-if/show-if'
|
||||
import { SignInButton } from '../../landing-layout/navigation/sign-in-button'
|
||||
import './cover-buttons.module.scss'
|
||||
import { cypressId } from '../../../utils/cypress-attribute'
|
||||
import Link from 'next/link'
|
||||
|
||||
export const CoverButtons: React.FC = () => {
|
||||
useTranslation()
|
||||
const userExists = useApplicationState((state) => !!state.user)
|
||||
const anyAuthProviderActivated = useApplicationState((state) => state.config.authProviders.length > 0)
|
||||
|
||||
if (userExists) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='mb-5'>
|
||||
<SignInButton className='cover-button' variant='success' size='lg' />
|
||||
<ShowIf condition={anyAuthProviderActivated}>
|
||||
<span className='m-2'>
|
||||
<Trans i18nKey='common.or' />
|
||||
</span>
|
||||
</ShowIf>
|
||||
<Link href='/n/features' passHref={true}>
|
||||
<Button {...cypressId('features-button')} className='cover-button' variant='primary' size='lg'>
|
||||
<Trans i18nKey='landing.intro.exploreFeatures' />
|
||||
</Button>
|
||||
</Link>
|
||||
</div>
|
||||
)
|
||||
}
|
40
frontend/src/components/intro-page/intro-custom-content.tsx
Normal file
40
frontend/src/components/intro-page/intro-custom-content.tsx
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import React, { useEffect } from 'react'
|
||||
import { RenderIframe } from '../editor-page/renderer-pane/render-iframe'
|
||||
import { RendererType } from '../render-page/window-post-message-communicator/rendering-message'
|
||||
import { fetchFrontPageContent } from './requests'
|
||||
import { Logger } from '../../utils/logger'
|
||||
import { useAsync } from 'react-use'
|
||||
import { AsyncLoadingBoundary } from '../common/async-loading-boundary'
|
||||
|
||||
const logger = new Logger('Intro Content')
|
||||
|
||||
/**
|
||||
* Fetches the content for the customizable part of the intro page and renders it.
|
||||
*/
|
||||
export const IntroCustomContent: React.FC = () => {
|
||||
const { value, error, loading } = useAsync(async () => (await fetchFrontPageContent()).split('\n'), [])
|
||||
|
||||
useEffect(() => {
|
||||
if (error) {
|
||||
logger.error('Error while loading custom intro content', error)
|
||||
}
|
||||
}, [error])
|
||||
|
||||
return (
|
||||
<AsyncLoadingBoundary loading={loading} error={error} componentName={'custom intro content'}>
|
||||
<RenderIframe
|
||||
frameClasses={'w-100 overflow-y-hidden'}
|
||||
markdownContentLines={value as string[]}
|
||||
rendererType={RendererType.INTRO}
|
||||
forcedDarkMode={true}
|
||||
adaptFrameHeightToContent={true}
|
||||
/>
|
||||
</AsyncLoadingBoundary>
|
||||
)
|
||||
}
|
25
frontend/src/components/intro-page/requests.ts
Normal file
25
frontend/src/components/intro-page/requests.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import { defaultConfig } from '../../api/common/default-config'
|
||||
|
||||
/**
|
||||
* Get the intro.md contents from the public directory.
|
||||
*
|
||||
* @return The content of intro.md
|
||||
* @throws {Error} if the content can't be fetched
|
||||
*/
|
||||
export const fetchFrontPageContent = async (): Promise<string> => {
|
||||
const response = await fetch('public/intro.md', {
|
||||
...defaultConfig,
|
||||
method: 'GET'
|
||||
})
|
||||
if (response.status !== 200) {
|
||||
throw new Error('Error fetching intro content')
|
||||
}
|
||||
|
||||
return await response.text()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue