misc_pterodactyl-panel/resources/scripts/components/elements/PageContentBlock.tsx

48 lines
1.7 KiB
TypeScript
Raw Normal View History

2020-12-27 19:18:33 +00:00
import React, { useEffect } from 'react';
import ContentContainer from '@/components/elements/ContentContainer';
import { CSSTransition } from 'react-transition-group';
import tw from 'twin.macro';
import FlashMessageRender from '@/components/FlashMessageRender';
export interface PageContentBlockProps {
title?: string;
className?: string;
showFlashKey?: string;
}
const PageContentBlock: React.FC<PageContentBlockProps> = ({ title, showFlashKey, className, children }) => {
2020-12-27 19:18:33 +00:00
useEffect(() => {
if (title) {
document.title = title;
}
}, [ title ]);
return (
<CSSTransition timeout={150} classNames={'fade'} appear in>
<>
2020-09-13 17:49:57 +00:00
<ContentContainer css={tw`my-4 sm:my-10`} className={className}>
{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`}>
<a
rel={'noopener nofollow noreferrer'}
href={'https://pterodactyl.io'}
target={'_blank'}
css={tw`no-underline text-neutral-500 hover:text-neutral-300`}
>
Pterodactyl&reg;
</a>
&nbsp;&copy; 2015 - {(new Date()).getFullYear()}
</p>
</ContentContainer>
</>
</CSSTransition>
);
};
2020-07-04 16:28:03 +00:00
export default PageContentBlock;