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

48 lines
1.5 KiB
TypeScript
Raw Normal View History

2022-11-25 20:25:03 +00:00
import type { ReactNode } from 'react';
import { useEffect } from 'react';
import tw from 'twin.macro';
2022-11-25 20:25:03 +00:00
import ContentContainer from '@/components/elements/ContentContainer';
import FlashMessageRender from '@/components/FlashMessageRender';
export interface PageContentBlockProps {
2022-11-25 20:25:03 +00:00
children?: ReactNode;
title?: string;
className?: string;
showFlashKey?: string;
}
2022-11-25 20:25:03 +00:00
function PageContentBlock({ title, showFlashKey, className, children }: PageContentBlockProps) {
2020-12-27 19:18:33 +00:00
useEffect(() => {
if (title) {
document.title = title;
}
}, [title]);
2020-12-27 19:18:33 +00:00
return (
2022-11-25 20:25:03 +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>
</>
);
2022-11-25 20:25:03 +00:00
}
2020-07-04 16:28:03 +00:00
export default PageContentBlock;