computer-scienceangular-roadmapbackend-roadmapblockchain-roadmapdba-roadmapdeveloper-roadmapdevops-roadmapfrontend-roadmapgo-roadmaphactoberfestjava-roadmapjavascript-roadmapnodejs-roadmappython-roadmapqa-roadmapreact-roadmaproadmapstudy-planvue-roadmapweb3-roadmap
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.1 KiB
60 lines
2.1 KiB
import { Box, Container, Flex, Heading, Image, Link, Text } from '@chakra-ui/react'; |
|
import React from 'react'; |
|
|
|
type ContentPageHeaderProps = { |
|
formattedDate: string; |
|
title: string; |
|
subtitle: string; |
|
author?: { |
|
name: string; |
|
twitter: string; |
|
picture: string; |
|
}, |
|
subLink?: { |
|
text: string; |
|
url: string; |
|
} |
|
}; |
|
|
|
export function ContentPageHeader(props: ContentPageHeaderProps) { |
|
const { title, subtitle, author = null, formattedDate, subLink = null } = props; |
|
|
|
return ( |
|
<Box pt={['35px', '35px', '70px']} pb={['35px', '35px', '55px']} borderBottomWidth={1} mb='30px'> |
|
<Container maxW='container.md' position='relative' textAlign={['left', 'left', 'center']}> |
|
<Flex alignItems='center' justifyContent={['flex-start', 'flex-start', 'center']} |
|
fontSize={['12px', '12px', '14px']}> |
|
|
|
{author?.name && ( |
|
<> |
|
<Link |
|
d={['none', 'flex', 'flex']} |
|
target='_blank' |
|
href={`https://twitter.com/${author.twitter}`} |
|
alignItems='center' |
|
fontWeight={600} |
|
color='gray.500' |
|
> |
|
<Image alt={''} rounded={'full'} mr='7px' w='22px' src={author.picture} /> |
|
{author.name} |
|
</Link> |
|
<Text d={['none', 'inline', 'inline']} mx='7px' color='gray.500' as='span'>·</Text> |
|
</> |
|
)} |
|
|
|
<Text color='gray.500' as='span'>{formattedDate}</Text> |
|
{subLink?.text && ( |
|
<> |
|
<Text d={['none', 'none', 'inline']} mx='7px' color='gray.500' as='span'>·</Text> |
|
<Link d={['none', 'none', 'inline']} color='blue.500' fontWeight={500} |
|
href={subLink.url} target={'_blank'}>{subLink.text}</Link> |
|
</> |
|
)} |
|
</Flex> |
|
<Heading as='h1' color='black' fontSize={['30px', '30px', '45px']} lineHeight={['40px', '40px', '53px']} |
|
fontWeight={700} my={['5px', '5px', '10px']}>{title}</Heading> |
|
<Text fontSize={['14px', '14px', '16px']} color='gray.700'>{subtitle}</Text> |
|
</Container> |
|
</Box> |
|
); |
|
}
|
|
|