Files
TheGame/packages/web/components/Container.tsx

76 lines
1.5 KiB
TypeScript

import { Flex, FlexProps, Stack, StackProps } from '@metafam/ds';
import { HeadComponent } from './Seo';
const PageContainer: React.FC<FlexProps> = ({ children, ...props }) => (
<Flex
w="100%"
h="100%"
p={{ base: 3, sm: 8, lg: 12 }}
direction="column"
align="center"
pos="relative"
bgImage={''}
{...props}
>
{children}
</Flex>
);
export default PageContainer;
export const FlexContainer: React.FC<StackProps> = ({ children, ...props }) => (
<Stack w="full" align="center" justify="center" spacing={[6, 8]} {...props}>
{children}
</Stack>
);
type EmbedProps = {
title: string;
description: string;
url: string;
} & FlexProps;
export const EmbedContainer: React.FC<EmbedProps> = ({
title,
description,
url,
...props
}) => (
<Flex w="100%" h="100%" direction="column" {...props}>
<HeadComponent title={title} description={description} url={url} />
<iframe
title={title}
src={url}
style={{
width: '100%',
height: '100%',
}}
/>
</Flex>
);
export const FullPageContainer: React.FC<
StackProps & { bgImageUrl?: string }
> = ({ bgImageUrl, sx, children, ...props }) => (
<FlexContainer
minH="100vh"
bg="dark"
bgImage={bgImageUrl && `url(${bgImageUrl})`}
bgPosition="center"
bgAttachment="fixed"
bgSize="cover"
overflowX="hidden"
spacing={0}
p={{ base: 4, md: 8, lg: 12 }}
sx={{
scrollSnapAlign: 'start',
scrollSnapStop: 'normal',
...sx,
}}
{...props}
>
{children}
</FlexContainer>
);