2020-04-17 18:07:32 +00:00
|
|
|
import React from 'react';
|
|
|
|
import ContentContainer from '@/components/elements/ContentContainer';
|
|
|
|
import { CSSTransition } from 'react-transition-group';
|
2020-07-03 21:50:37 +00:00
|
|
|
import tw from 'twin.macro';
|
2020-07-10 02:56:46 +00:00
|
|
|
import FlashMessageRender from '@/components/FlashMessageRender';
|
2020-08-22 22:43:28 +00:00
|
|
|
import { Helmet } from 'react-helmet';
|
2020-04-17 18:07:32 +00:00
|
|
|
|
2020-08-23 02:05:43 +00:00
|
|
|
export interface PageContentBlockProps {
|
2020-08-22 22:43:28 +00:00
|
|
|
title?: string;
|
|
|
|
className?: string;
|
|
|
|
showFlashKey?: string;
|
|
|
|
}
|
|
|
|
|
2020-08-23 02:05:43 +00:00
|
|
|
const PageContentBlock: React.FC<PageContentBlockProps> = ({ title, showFlashKey, className, children }) => {
|
2020-08-22 22:43:28 +00:00
|
|
|
return (
|
|
|
|
<CSSTransition timeout={150} classNames={'fade'} appear in>
|
|
|
|
<>
|
2020-08-23 02:05:43 +00:00
|
|
|
{title &&
|
2020-08-22 22:43:28 +00:00
|
|
|
<Helmet>
|
2020-08-23 02:05:43 +00:00
|
|
|
<title>{title}</title>
|
2020-08-22 22:43:28 +00:00
|
|
|
</Helmet>
|
2020-07-10 02:56:46 +00:00
|
|
|
}
|
2020-09-13 17:49:57 +00:00
|
|
|
<ContentContainer css={tw`my-4 sm:my-10`} className={className}>
|
2020-08-22 22:43:28 +00:00
|
|
|
{showFlashKey &&
|
|
|
|
<FlashMessageRender byKey={showFlashKey} css={tw`mb-4`}/>
|
|
|
|
}
|
|
|
|
{children}
|
|
|
|
</ContentContainer>
|
|
|
|
<ContentContainer css={tw`mb-4`}>
|
|
|
|
<p css={tw`text-center text-neutral-500 text-xs`}>
|
|
|
|
© 2015 - 2020
|
|
|
|
<a
|
|
|
|
rel={'noopener nofollow noreferrer'}
|
|
|
|
href={'https://pterodactyl.io'}
|
|
|
|
target={'_blank'}
|
|
|
|
css={tw`no-underline text-neutral-500 hover:text-neutral-300`}
|
|
|
|
>
|
|
|
|
Pterodactyl Software
|
|
|
|
</a>
|
|
|
|
</p>
|
|
|
|
</ContentContainer>
|
|
|
|
</>
|
|
|
|
</CSSTransition>
|
|
|
|
);
|
|
|
|
};
|
2020-07-04 16:28:03 +00:00
|
|
|
|
|
|
|
export default PageContentBlock;
|