|
|
|
@ -8,17 +8,63 @@ import { |
|
|
|
|
Container, |
|
|
|
|
Flex, |
|
|
|
|
Heading, |
|
|
|
|
Input, |
|
|
|
|
Link, |
|
|
|
|
Modal, |
|
|
|
|
ModalBody, |
|
|
|
|
ModalCloseButton, |
|
|
|
|
ModalContent, |
|
|
|
|
ModalOverlay, |
|
|
|
|
Stack, |
|
|
|
|
Text, |
|
|
|
|
useDisclosure |
|
|
|
|
} from '@chakra-ui/react'; |
|
|
|
|
import { ChatIcon, AtSignIcon, DownloadIcon } from '@chakra-ui/icons'; |
|
|
|
|
import { AtSignIcon, ChatIcon, DownloadIcon } from '@chakra-ui/icons'; |
|
|
|
|
import React from 'react'; |
|
|
|
|
import { SIGNUP_EMAIL_INPUT_NAME, SIGNUP_FORM_ACTION } from '../../pages/signup'; |
|
|
|
|
|
|
|
|
|
type RoadmapPageHeaderType = { |
|
|
|
|
roadmap: RoadmapType; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
function RoadmapDownloader() { |
|
|
|
|
const { isOpen, onOpen, onClose } = useDisclosure(); |
|
|
|
|
const initialRef = React.useRef(null); |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<> |
|
|
|
|
<Button |
|
|
|
|
onClick={onOpen} |
|
|
|
|
size='xs' |
|
|
|
|
py='14px' |
|
|
|
|
px='10px' |
|
|
|
|
leftIcon={<DownloadIcon />} |
|
|
|
|
display={['none', 'flex']} |
|
|
|
|
colorScheme='yellow' |
|
|
|
|
variant='solid' |
|
|
|
|
_hover={{ textDecoration: 'none' }} |
|
|
|
|
> |
|
|
|
|
Download |
|
|
|
|
</Button> |
|
|
|
|
|
|
|
|
|
<Modal initialFocusRef={initialRef} closeOnOverlayClick={true} isOpen={isOpen} onClose={onClose} isCentered> |
|
|
|
|
<ModalOverlay /> |
|
|
|
|
<ModalContent> |
|
|
|
|
<ModalCloseButton /> |
|
|
|
|
<ModalBody p={6}> |
|
|
|
|
<Heading mb='5px' fontSize='2xl'>Download Roadmap</Heading> |
|
|
|
|
<Text fontSize={'md'} color='gray.700'>Enter your email below to receive the download link.</Text> |
|
|
|
|
<form action={SIGNUP_FORM_ACTION} method='post' target='_blank' onSubmit={onClose}> |
|
|
|
|
<Input required ref={initialRef} size='md' my='10px' type='email' placeholder='Email address' name={SIGNUP_EMAIL_INPUT_NAME} /> |
|
|
|
|
<Button type='submit' colorScheme='green' size='md' width={'full'}>Send Link</Button> |
|
|
|
|
</form> |
|
|
|
|
</ModalBody> |
|
|
|
|
</ModalContent> |
|
|
|
|
</Modal> |
|
|
|
|
</> |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export function RoadmapPageHeader(props: RoadmapPageHeaderType) { |
|
|
|
|
const { roadmap } = props; |
|
|
|
|
|
|
|
|
@ -27,13 +73,13 @@ export function RoadmapPageHeader(props: RoadmapPageHeaderType) { |
|
|
|
|
pt={['25px', '20px', '45px']} |
|
|
|
|
pb={['20px', '15px', '30px']} |
|
|
|
|
borderBottomWidth={1} |
|
|
|
|
mb="30px" |
|
|
|
|
mb='30px' |
|
|
|
|
> |
|
|
|
|
<Container maxW="container.md" position="relative"> |
|
|
|
|
<Container maxW='container.md' position='relative'> |
|
|
|
|
<NewAlertBanner /> |
|
|
|
|
<Heading |
|
|
|
|
as="h1" |
|
|
|
|
color="black" |
|
|
|
|
as='h1' |
|
|
|
|
color='black' |
|
|
|
|
fontSize={['28px', '33px', '40px']} |
|
|
|
|
fontWeight={700} |
|
|
|
|
mb={['2px', '2px', '5px']} |
|
|
|
@ -41,50 +87,35 @@ export function RoadmapPageHeader(props: RoadmapPageHeaderType) { |
|
|
|
|
{roadmap.title} |
|
|
|
|
</Heading> |
|
|
|
|
<Text fontSize={['13px', '14px', '15px']}>{roadmap.description}</Text> |
|
|
|
|
<Flex justifyContent="space-between" alignItems={'center'} mt="20px"> |
|
|
|
|
<Flex justifyContent='space-between' alignItems={'center'} mt='20px'> |
|
|
|
|
<Stack isInline flex={1}> |
|
|
|
|
<Button |
|
|
|
|
d={['flex', 'flex']} |
|
|
|
|
as={Link} |
|
|
|
|
href={'/roadmaps'} |
|
|
|
|
size="xs" |
|
|
|
|
py="14px" |
|
|
|
|
px="10px" |
|
|
|
|
colorScheme="teal" |
|
|
|
|
variant="solid" |
|
|
|
|
size='xs' |
|
|
|
|
py='14px' |
|
|
|
|
px='10px' |
|
|
|
|
colorScheme='teal' |
|
|
|
|
variant='solid' |
|
|
|
|
_hover={{ textDecoration: 'none' }} |
|
|
|
|
> |
|
|
|
|
← |
|
|
|
|
<Text as="span" d={['none', 'inline']} ml="5px"> |
|
|
|
|
<Text as='span' d={['none', 'inline']} ml='5px'> |
|
|
|
|
All Roadmaps |
|
|
|
|
</Text> |
|
|
|
|
</Button> |
|
|
|
|
|
|
|
|
|
{roadmap.pdfUrl && ( |
|
|
|
|
<Button |
|
|
|
|
as={Link} |
|
|
|
|
href={roadmap.pdfUrl} |
|
|
|
|
target="_blank" |
|
|
|
|
size="xs" |
|
|
|
|
py="14px" |
|
|
|
|
px="10px" |
|
|
|
|
leftIcon={<DownloadIcon />} |
|
|
|
|
d={['none', 'flex']} |
|
|
|
|
colorScheme="yellow" |
|
|
|
|
variant="solid" |
|
|
|
|
_hover={{ textDecoration: 'none' }} |
|
|
|
|
> |
|
|
|
|
Download |
|
|
|
|
</Button> |
|
|
|
|
)} |
|
|
|
|
<RoadmapDownloader /> |
|
|
|
|
|
|
|
|
|
<Button |
|
|
|
|
as={Link} |
|
|
|
|
href={'/signup'} |
|
|
|
|
size="xs" |
|
|
|
|
py="14px" |
|
|
|
|
px="10px" |
|
|
|
|
variant="solid" |
|
|
|
|
colorScheme="yellow" |
|
|
|
|
size='xs' |
|
|
|
|
py='14px' |
|
|
|
|
px='10px' |
|
|
|
|
variant='solid' |
|
|
|
|
colorScheme='yellow' |
|
|
|
|
leftIcon={<AtSignIcon />} |
|
|
|
|
_hover={{ textDecoration: 'none' }} |
|
|
|
|
> |
|
|
|
@ -95,10 +126,10 @@ export function RoadmapPageHeader(props: RoadmapPageHeaderType) { |
|
|
|
|
as={Link} |
|
|
|
|
href={`${siteConfig.url.issue}?title=[Suggestion] ${roadmap.title}`} |
|
|
|
|
target='_blank' |
|
|
|
|
size="xs" |
|
|
|
|
py="14px" |
|
|
|
|
px="10px" |
|
|
|
|
colorScheme="green" |
|
|
|
|
size='xs' |
|
|
|
|
py='14px' |
|
|
|
|
px='10px' |
|
|
|
|
colorScheme='green' |
|
|
|
|
leftIcon={<ChatIcon />} |
|
|
|
|
_hover={{ textDecoration: 'none' }} |
|
|
|
|
> |
|
|
|
@ -109,16 +140,16 @@ export function RoadmapPageHeader(props: RoadmapPageHeaderType) { |
|
|
|
|
</Flex> |
|
|
|
|
{isInteractiveRoadmap(roadmap.id) && ( |
|
|
|
|
<Text |
|
|
|
|
mt="30px" |
|
|
|
|
mt='30px' |
|
|
|
|
mb={['-37px', '-32px', '-47px']} |
|
|
|
|
fontWeight={500} |
|
|
|
|
fontSize="14px" |
|
|
|
|
bg="white" |
|
|
|
|
fontSize='14px' |
|
|
|
|
bg='white' |
|
|
|
|
borderWidth={1} |
|
|
|
|
p="5px 7px" |
|
|
|
|
rounded="3px" |
|
|
|
|
p='5px 7px' |
|
|
|
|
rounded='3px' |
|
|
|
|
> |
|
|
|
|
<Badge pos="relative" top={'-1px'} mr="6px" colorScheme="yellow"> |
|
|
|
|
<Badge pos='relative' top={'-1px'} mr='6px' colorScheme='yellow'> |
|
|
|
|
New |
|
|
|
|
</Badge> |
|
|
|
|
Resources are here, try clicking any nodes. |
|
|
|
|