Added hero component and landing page
This commit is contained in:
parent
e4c42aa5d7
commit
253198b9f9
2 changed files with 107 additions and 1 deletions
105
components/Hero/Hero.js
Normal file
105
components/Hero/Hero.js
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
import React from "react"
|
||||||
|
import Link from 'next/link'
|
||||||
|
import PropTypes from "prop-types"
|
||||||
|
import {
|
||||||
|
Box,
|
||||||
|
Button,
|
||||||
|
Flex,
|
||||||
|
Image,
|
||||||
|
Heading,
|
||||||
|
Stack,
|
||||||
|
Text,
|
||||||
|
} from "@chakra-ui/react"
|
||||||
|
import AuthButton from '../AuthButton'
|
||||||
|
import { signIn } from "next-auth/client"
|
||||||
|
|
||||||
|
export default function Hero({
|
||||||
|
title,
|
||||||
|
subtitle,
|
||||||
|
image,
|
||||||
|
ctaLink,
|
||||||
|
ctaText,
|
||||||
|
...rest
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<Flex
|
||||||
|
align="center"
|
||||||
|
justify={{ base: "center", md: "space-around", xl: "space-between" }}
|
||||||
|
direction={{ base: "column-reverse", md: "row" }}
|
||||||
|
wrap="no-wrap"
|
||||||
|
minH="70vh"
|
||||||
|
px={8}
|
||||||
|
mb={16}
|
||||||
|
{...rest}
|
||||||
|
>
|
||||||
|
<Stack
|
||||||
|
spacing={4}
|
||||||
|
w={{ base: "80%", md: "40%" }}
|
||||||
|
align={["center", "center", "flex-start", "flex-start"]}
|
||||||
|
>
|
||||||
|
<Heading
|
||||||
|
as="h1"
|
||||||
|
size="xl"
|
||||||
|
fontWeight="bold"
|
||||||
|
color="primary.800"
|
||||||
|
textAlign={["center", "center", "left", "left"]}
|
||||||
|
>
|
||||||
|
{title}
|
||||||
|
</Heading>
|
||||||
|
<Heading
|
||||||
|
as="h2"
|
||||||
|
size="md"
|
||||||
|
color="primary.800"
|
||||||
|
opacity="0.8"
|
||||||
|
fontWeight="normal"
|
||||||
|
lineHeight={1.5}
|
||||||
|
textAlign={["center", "center", "left", "left"]}
|
||||||
|
>
|
||||||
|
{subtitle}
|
||||||
|
</Heading>
|
||||||
|
<Link href={ctaLink}>
|
||||||
|
<Button
|
||||||
|
backgroundColor='teal'
|
||||||
|
borderRadius="8px"
|
||||||
|
py="4"
|
||||||
|
px="4"
|
||||||
|
lineHeight="1"
|
||||||
|
size="md"
|
||||||
|
onClick={()=>{signIn()}}
|
||||||
|
>
|
||||||
|
{ctaText}
|
||||||
|
</Button>
|
||||||
|
</Link>
|
||||||
|
<Text
|
||||||
|
fontSize="xs"
|
||||||
|
mt={2}
|
||||||
|
textAlign="center"
|
||||||
|
color="primary.800"
|
||||||
|
opacity="0.6"
|
||||||
|
>
|
||||||
|
No credit card required.
|
||||||
|
</Text>
|
||||||
|
</Stack>
|
||||||
|
<Box w={{ base: "80%", sm: "60%", md: "50%" }} mb={{ base: 12, md: 0 }}>
|
||||||
|
<Image src={image} size="100%" rounded="1rem" shadow="2xl" />
|
||||||
|
</Box>
|
||||||
|
</Flex>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
Hero.propTypes = {
|
||||||
|
title: PropTypes.string,
|
||||||
|
subtitle: PropTypes.string,
|
||||||
|
image: PropTypes.string,
|
||||||
|
ctaText: PropTypes.string,
|
||||||
|
ctaLink: PropTypes.string,
|
||||||
|
}
|
||||||
|
|
||||||
|
Hero.defaultProps = {
|
||||||
|
title: "Hero",
|
||||||
|
subtitle:
|
||||||
|
"This is the subheader section where you describe the basic benefits of your product",
|
||||||
|
image: "https://source.unsplash.com/collection/404339/800x600",
|
||||||
|
ctaText: "Create your account now",
|
||||||
|
ctaLink: "",
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
import Card from '../components/Card'
|
import Card from '../components/Card'
|
||||||
import { useSession } from 'next-auth/client'
|
import { useSession } from 'next-auth/client'
|
||||||
import { Text } from "@chakra-ui/react"
|
import { Text } from "@chakra-ui/react"
|
||||||
|
import Hero from '../components/Hero/Hero'
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
|
|
||||||
|
@ -10,7 +11,7 @@ export default function Home() {
|
||||||
|
|
||||||
<>
|
<>
|
||||||
{!session && <>
|
{!session && <>
|
||||||
<h1>Seems like you're not logged in. Log in to get started!</h1>
|
<Hero title='Cath.exe' subtitle='Your favorite CODM bot. Cath.exe is packed to the brim with commands for moderation, stats and of course, CODM.' ctaText='Sign In' image='/logo.png'/>
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
{session && <>
|
{session && <>
|
||||||
|
|
Loading…
Reference in a new issue