moonstream/frontend/pages/index.js

740 wiersze
26 KiB
JavaScript
Czysty Zwykły widok Historia

2022-04-28 18:05:13 +00:00
import React, { useState, Suspense, useEffect, useLayoutEffect } from "react";
2021-07-30 11:25:17 +00:00
import {
2021-08-05 15:01:02 +00:00
Fade,
2021-07-30 11:25:17 +00:00
Flex,
Heading,
Box,
chakra,
Stack,
Link,
2022-05-05 15:35:42 +00:00
Center,
useMediaQuery,
2021-08-05 15:01:02 +00:00
Grid,
Text,
2021-08-05 15:01:02 +00:00
GridItem,
2022-04-28 18:05:13 +00:00
SimpleGrid,
2021-10-13 15:23:49 +00:00
Image as ChakraImage,
2022-05-05 15:35:42 +00:00
HStack,
VStack,
2021-07-30 11:25:17 +00:00
} from "@chakra-ui/react";
2021-08-05 15:01:02 +00:00
import useUser from "../src/core/hooks/useUser";
import useRouter from "../src/core/hooks/useRouter";
2021-11-04 16:15:42 +00:00
import { AWS_ASSETS_PATH, DEFAULT_METATAGS } from "../src/core/constants";
2021-11-01 13:55:29 +00:00
import TrustedBadge from "../src/components/TrustedBadge";
2021-11-08 11:58:29 +00:00
import RouteButton from "../src/components/RouteButton";
import MilestoneBox from "../src/components/MilestoneBox";
2022-02-21 11:48:48 +00:00
import mixpanel from "mixpanel-browser";
2022-04-11 10:10:33 +00:00
import { MIXPANEL_EVENTS } from "../src/core/providers/AnalyticsProvider/constants";
import RouterLink from "next/link";
2022-02-21 11:48:48 +00:00
2021-07-30 11:25:17 +00:00
const HEADING_PROPS = {
fontWeight: "700",
2022-02-21 11:48:48 +00:00
fontSize: ["4xl", "5xl", "5xl", "5xl", "6xl", "7xl"],
2021-07-30 11:25:17 +00:00
};
const assets = {
background720: `${AWS_ASSETS_PATH}/background720.png`,
background1920: `${AWS_ASSETS_PATH}/background720.png`,
background2880: `${AWS_ASSETS_PATH}/background720.png`,
background3840: `${AWS_ASSETS_PATH}/background720.png`,
cryptoTraders: `${AWS_ASSETS_PATH}/crypto+traders.png`,
2021-11-01 13:55:29 +00:00
cointelegraph: `${AWS_ASSETS_PATH}/featured_by/Cointelegraph_logo.png`,
2022-02-17 18:07:27 +00:00
educativesessions: `${AWS_ASSETS_PATH}/featured_by/educative_logo.png`,
2021-11-01 13:55:29 +00:00
cryptoinsiders: `${AWS_ASSETS_PATH}/featured_by/crypto_insiders.png`,
cryptoslate: `${AWS_ASSETS_PATH}/featured_by/cs-media-logo-light.png`,
cgcConference: `${AWS_ASSETS_PATH}/featured_by/cgc_conference_2022_logo.jpg`,
2022-03-15 17:15:50 +00:00
lender: `${AWS_ASSETS_PATH}/lender.png`,
2021-11-08 11:58:29 +00:00
DAO: `${AWS_ASSETS_PATH}/DAO .png`,
NFT: `${AWS_ASSETS_PATH}/NFT.png`,
2022-02-17 18:07:27 +00:00
bc101: `${AWS_ASSETS_PATH}/featured_by/blockchain101_logo.png`,
laguna: `${AWS_ASSETS_PATH}/featured_by/laguna_logo.svg`,
game7io: `${AWS_ASSETS_PATH}/featured_by/game7io_logo.png`,
orangedao: `${AWS_ASSETS_PATH}/featured_by/orangedao_logo.png`,
2022-02-21 11:48:48 +00:00
meetup: `${AWS_ASSETS_PATH}/featured_by/meetup_logo.png`,
2021-07-30 11:25:17 +00:00
};
2021-11-01 13:55:29 +00:00
const Feature = ({
title,
altText,
path,
mixpanel_url,
mixpanel_name,
image,
}) => {
2022-04-28 14:39:16 +00:00
return (
<RouterLink
href={path}
onClick={() => {
if (mixpanel.get_distinct_id()) {
mixpanel.track(`${MIXPANEL_EVENTS.BUTTON_CLICKED}`, {
full_url: mixpanel_url,
buttonName: mixpanel_name,
page: `landing`,
section: `features`,
});
}
}}
2022-04-28 18:05:13 +00:00
>
<Stack
transition={"1s"}
spacing={1}
px={1}
alignItems="center"
borderRadius="12px"
borderColor="blue.700"
bgColor={"blue.800"}
borderWidth={"1px"}
_hover={{ transform: "scale(1.05)", transition: "0.42s" }}
cursor="pointer"
m={[2, 3, null, 4, 8, 12]}
pb={2}
>
<ChakraImage
boxSize={["220px", "220px", "xs", null, "xs"]}
objectFit="contain"
src={image}
alt={altText}
/>
<Heading textAlign="center" fontSize={["md", "md", "lg", "3xl", "4xl"]}>
{title}
</Heading>
</Stack>
</RouterLink>
2022-04-28 14:39:16 +00:00
);
};
2021-07-30 11:25:17 +00:00
const Homepage = () => {
const [background, setBackground] = useState("background720");
const [backgroundLoaded720, setBackgroundLoaded720] = useState(false);
const [backgroundLoaded1920, setBackgroundLoaded1920] = useState(false);
const [backgroundLoaded2880, setBackgroundLoaded2880] = useState(false);
const [backgroundLoaded3840, setBackgroundLoaded3840] = useState(false);
2021-07-30 11:25:17 +00:00
const router = useRouter();
2021-07-30 11:25:17 +00:00
const { isInit } = useUser();
const [
isLargerThan720px,
isLargerThan1920px,
isLargerThan2880px,
isLargerThan3840px,
] = useMediaQuery([
"(min-width: 720px)",
"(min-width: 1920px)",
"(min-width: 2880px)",
"(min-width: 3840px)",
]);
2021-07-30 11:25:17 +00:00
useEffect(() => {
assets["background720"] = `${AWS_ASSETS_PATH}/background720.png`;
assets["background1920"] = `${AWS_ASSETS_PATH}/background1920.png`;
assets["background2880"] = `${AWS_ASSETS_PATH}/background2880.png`;
assets["background3840"] = `${AWS_ASSETS_PATH}/background3840.png`;
}, []);
2021-07-30 11:25:17 +00:00
2021-08-02 14:46:40 +00:00
useLayoutEffect(() => {
if (backgroundLoaded3840) {
setBackground("background3840");
2021-08-02 14:46:40 +00:00
} else if (backgroundLoaded2880) {
setBackground("background2880");
2021-08-02 14:46:40 +00:00
} else if (backgroundLoaded1920) {
setBackground("background1920");
} else {
setBackground("background720");
2021-07-30 11:25:17 +00:00
}
}, [
isLargerThan720px,
isLargerThan1920px,
isLargerThan2880px,
isLargerThan3840px,
backgroundLoaded720,
backgroundLoaded1920,
backgroundLoaded2880,
backgroundLoaded3840,
]);
2021-07-30 11:25:17 +00:00
useEffect(() => {
if (
router.nextRouter.asPath !== "/" &&
router.nextRouter.asPath.slice(0, 2) !== "/?" &&
2021-08-05 09:49:18 +00:00
router.nextRouter.asPath.slice(0, 2) !== "/#" &&
router.nextRouter.asPath.slice(0, 11) !== "/index.html"
2021-07-30 11:25:17 +00:00
) {
2021-08-05 10:03:42 +00:00
console.warn("redirect attempt..");
if (typeof window !== "undefined") {
2021-08-05 11:15:57 +00:00
console.warn("window present:", window.location.pathname);
router.replace(router.nextRouter.asPath, router.nextRouter.asPath, {
shallow: false,
});
2021-08-05 10:03:42 +00:00
}
2021-07-30 11:25:17 +00:00
}
}, [isInit, router]);
2021-08-02 14:46:40 +00:00
useLayoutEffect(() => {
const imageLoader720 = new Image();
imageLoader720.src = `${AWS_ASSETS_PATH}/background720.png`;
imageLoader720.onload = () => {
setBackgroundLoaded720(true);
};
2021-08-02 14:46:40 +00:00
}, []);
2021-08-02 14:46:40 +00:00
useLayoutEffect(() => {
const imageLoader1920 = new Image();
imageLoader1920.src = `${AWS_ASSETS_PATH}/background1920.png`;
imageLoader1920.onload = () => {
setBackgroundLoaded1920(true);
};
2021-08-02 14:46:40 +00:00
}, []);
2021-08-02 14:46:40 +00:00
useLayoutEffect(() => {
const imageLoader2880 = new Image();
imageLoader2880.src = `${AWS_ASSETS_PATH}/background2880.png`;
imageLoader2880.onload = () => {
setBackgroundLoaded2880(true);
};
2021-08-02 14:46:40 +00:00
}, []);
2021-08-02 14:46:40 +00:00
useLayoutEffect(() => {
const imageLoader3840 = new Image();
imageLoader3840.src = `${AWS_ASSETS_PATH}/background3840.png`;
imageLoader3840.onload = () => {
setBackgroundLoaded3840(true);
};
}, []);
2021-07-30 11:25:17 +00:00
return (
2021-08-06 12:24:18 +00:00
<Suspense fallback="">
<Fade in>
<Box
width="100%"
flexDirection="column"
sx={{ scrollBehavior: "smooth" }}
bgSize="cover"
2022-04-07 11:30:02 +00:00
id="page:landing"
2022-04-28 11:35:39 +00:00
bgColor={"blue.50"}
2021-07-30 11:25:17 +00:00
>
2021-08-06 12:24:18 +00:00
<Flex
direction="column"
h="auto"
position="relative"
w="100%"
overflow="initial"
pt={0}
>
2021-08-06 12:24:18 +00:00
<Suspense fallback={""}></Suspense>
<Grid
templateColumns="repeat(12,1fr)"
mt={0}
2021-08-06 12:24:18 +00:00
border="none"
boxSizing="content-box"
>
2021-08-06 12:24:18 +00:00
<GridItem
mt={0}
2022-04-28 11:35:39 +00:00
mb={0}
2021-08-06 12:24:18 +00:00
px="0"
colSpan="12"
minH="100vh"
2022-04-28 11:35:39 +00:00
bgColor={"blue.50"}
id="Header grid item"
2021-08-06 12:24:18 +00:00
>
2022-04-28 11:35:39 +00:00
<chakra.header boxSize="full" minH="100vh" mb={0}>
2021-08-06 12:24:18 +00:00
<Box
bgPos="bottom"
bgColor="transparent"
backgroundImage={`url(${assets[`${background}`]})`}
bgSize="cover"
boxSize="full"
minH="100vh"
>
<Flex align="center" justify="center" boxSize="full">
<Stack
textAlign="center"
alignItems="center"
spacing={6}
maxW={["1620px", null, null, null, "1620px", "2222px"]}
2021-11-01 13:55:29 +00:00
w="100%"
2021-08-06 12:24:18 +00:00
px="7%"
h="100%"
pt={["10vh", null, "20vh"]}
2021-07-30 11:25:17 +00:00
>
<Heading
fontSize={["lg", "4xl", "5xl", "5xl", "5xl", "6xl"]}
fontWeight="semibold"
color="white"
>
2022-05-05 15:35:42 +00:00
Build a Sustainable Game Economy in only a few clicks
2021-08-06 12:24:18 +00:00
</Heading>
<chakra.span
pt={4}
pb={4}
2021-08-06 12:24:18 +00:00
my={12}
fontSize={["md", "lg", "xl", "2xl", "3xl", "3xl"]}
2021-08-06 12:24:18 +00:00
display="inline-block"
color="white"
2021-08-06 12:24:18 +00:00
>
2022-05-05 15:35:42 +00:00
Moonstream Engine empowers web3 game designers to grow
healthy economies. Moonstream smart contracts and APIs
allow you to integrate our game mechanics with zero
effort.
2022-02-17 18:07:27 +00:00
</chakra.span>
<RouteButton
variant="orangeAndBlue"
minW={[
"200px",
"250px",
"250px",
"300px",
"350px",
"400px",
]}
fontSize={["lg", "xl", "2xl", "3xl", "4xl", "4xl"]}
onClick={() => {
if (mixpanel.get_distinct_id()) {
mixpanel.track(
`${MIXPANEL_EVENTS.BUTTON_CLICKED}`,
{
full_url: router.nextRouter.asPath,
buttonName: `Join our Discord`,
page: `landing`,
section: `front-and-center`,
}
);
}
}}
href={"/discordleed"}
isExternal
>
Join our Discord
</RouteButton>
2021-08-06 12:24:18 +00:00
</Stack>
</Flex>
</Box>
</chakra.header>
</GridItem>
2021-07-30 11:25:17 +00:00
2022-04-28 11:35:39 +00:00
<GridItem
px="7%"
py={["98px", "128px", null]}
colSpan="12"
bgColor="white.100"
minH="100vh"
2022-04-28 11:35:39 +00:00
>
<VStack align="center" justify="center" boxSize="full">
<Heading
fontSize={["lg", "4xl", "5xl", "5xl", "5xl", "6xl"]}
fontWeight="semibold"
>
Major Milestones
</Heading>
<Flex wrap="wrap" direction="row" justifyContent="center">
<MilestoneBox headingText="$3B transaction volume" />
<MilestoneBox headingText="22,000 active users" />
</Flex>
<Text
textAlign="center"
fontSize={["md", "xl", "2xl", "3xl", "3xl", "3xl"]}
>
And growing...
</Text>
<chakra.h2
fontSize={{ base: "3xl", sm: "2xl" }}
textAlign="center"
pb={4}
pt={16}
fontWeight="bold"
>
Trusted by{" "}
</chakra.h2>
<Flex wrap="wrap" direction="row" justifyContent="center">
<Suspense fallback={""}>
<TrustedBadge
scale={1.5}
name="Laguna games"
caseURL=""
ImgURL={assets["laguna"]}
boxURL="https://laguna.games/"
bgColor="blue.900"
/>
<TrustedBadge
scale={1.5}
name="game7io"
ImgURL={assets["game7io"]}
boxURL="https://game7.io/"
bgColor="blue.900"
/>
2022-04-28 11:35:39 +00:00
<TrustedBadge
scale={1.5}
name="orangedao"
ImgURL={assets["orangedao"]}
boxURL="https://lfg.orangedao.xyz/"
bgColor="blue.900"
/>
</Suspense>
</Flex>
</VStack>
2022-04-28 11:35:39 +00:00
</GridItem>
<GridItem
2022-04-28 18:05:13 +00:00
px={["7%", null, "12%", "15%"]}
2022-04-28 14:39:16 +00:00
colSpan="12"
2022-04-28 18:05:13 +00:00
pt={24}
2022-04-28 14:39:16 +00:00
minH="100vh"
bgColor={"blue.900"}
textColor="white"
>
<Heading
{...HEADING_PROPS}
textAlign="center"
pb={[3, 12, null]}
pt={0}
>
2022-05-05 15:35:42 +00:00
Features
</Heading>
2022-04-28 18:05:13 +00:00
<Grid
templateColumns={{
base: "repeat(1, 1fr)",
sm: "repeat(1, 1fr)",
md: "repeat(2, 1fr)",
}}
gap={4}
2022-02-17 18:07:27 +00:00
>
2022-04-28 18:05:13 +00:00
<GridItem>
2022-05-05 15:35:42 +00:00
<Flex>
<chakra.span
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
display="inline-block"
color="white"
2022-02-21 11:48:48 +00:00
>
2022-05-05 15:35:42 +00:00
Lootboxes, crafting recipes, deck building, you name it!
<br />
2022-05-06 17:19:46 +00:00
<br />
2022-05-05 15:35:42 +00:00
With Moonstream Engine you can deploy on-chain mechanics
with one click.
<br />
2022-05-06 17:19:46 +00:00
<br />
Read our Use Cases or explore the features to know more.
2022-05-05 15:35:42 +00:00
</chakra.span>
</Flex>
</GridItem>
<GridItem>
<Center w="100%" h="100%">
2022-04-28 18:05:13 +00:00
<RouteButton
variant="orangeAndBlue"
minW={[
"200px",
"250px",
"250px",
"300px",
"350px",
"400px",
]}
fontSize={["lg", "xl", "2xl", "3xl", "4xl", "4xl"]}
2022-04-28 18:05:13 +00:00
px={[4, 4, 4, 8, 8]}
onClick={() => {
if (mixpanel.get_distinct_id()) {
mixpanel.track(
`${MIXPANEL_EVENTS.BUTTON_CLICKED}`,
{
full_url: router.nextRouter.asPath,
buttonName: `Explore the Use Cases`,
page: `landing`,
section: `Dive into Engine Features`,
}
);
2022-04-28 18:05:13 +00:00
}
}}
href="https://docs.google.com/document/d/1mjfF8SgRrAZvtCVVxB2qNSUcbbmrH6dTEYSMfHKdEgc/preview"
2022-05-05 15:35:42 +00:00
isExternal
2022-02-21 11:48:48 +00:00
>
2022-05-05 15:35:42 +00:00
Explore the Use Cases
2022-04-28 18:05:13 +00:00
</RouteButton>
2022-05-05 15:35:42 +00:00
</Center>
2022-02-17 18:07:27 +00:00
</GridItem>
2022-04-28 18:05:13 +00:00
</Grid>
<SimpleGrid
columns={[1, 2, 2, 4, null, 4]}
justifyContent="center"
w="100%"
placeContent={"space-between"}
mx={[0, -2, -4]}
paddingTop="20px"
2022-04-28 18:05:13 +00:00
>
<Feature
title="Lootboxes"
altText="Lootboxes"
path="/features/#lootboxes"
mixpanel_name="lootboxes"
mixpanel_url={router.nextRouter.asPath}
2022-04-28 18:05:13 +00:00
image={assets["cryptoTraders"]}
/>
<Feature
title="Crafting Recipes"
altText="Crafting Recipes"
path="/features/#crafting"
mixpanel_name="crafting"
mixpanel_url={router.nextRouter.asPath}
2022-04-28 18:05:13 +00:00
image={assets["NFT"]}
/>
<Feature
title="Minigames"
altText="Minigames"
path="/features/#minigames"
mixpanel_name="minigames"
mixpanel_url={router.nextRouter.asPath}
image={assets["DAO"]}
2022-04-28 18:05:13 +00:00
/>
<Feature
title="Airdrops"
altText="Airdrops"
path="/features/#airdrops"
mixpanel_name="airdrops"
mixpanel_url={router.nextRouter.asPath}
image={assets["lender"]}
2022-04-28 18:05:13 +00:00
/>
2021-08-06 12:24:18 +00:00
</SimpleGrid>
2022-04-28 18:05:13 +00:00
</GridItem>
2022-02-17 18:07:27 +00:00
<GridItem
px={["7%", null, "12%", "15%"]}
2022-03-24 16:11:09 +00:00
py={["98px", "128px", null]}
2022-02-17 18:07:27 +00:00
colSpan="12"
2022-04-28 11:35:39 +00:00
bgColor="white.100"
minH="100vh"
2022-05-05 15:35:42 +00:00
>
<Heading {...HEADING_PROPS} textAlign="center" pb={14} pt={0}>
Our Workflow
</Heading>
<HStack alignItems="top" py={5}>
<Flex height="100%" width="25%">
<Heading
as="h2"
fontSize={["lg", "3xl", "4xl", "4xl", "4xl", "5xl"]}
display="inline-block"
fontWeight="semibold"
2022-05-05 15:35:42 +00:00
>
Step 1:
</Heading>
2022-05-05 15:35:42 +00:00
</Flex>
<Flex height="100%" width="75%">
2022-05-05 15:35:42 +00:00
<chakra.span
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
display="inline-block"
>
So you decided to build a healthy economy on the
blockchain. You are on the right path, traveler!
</chakra.span>
</Flex>
</HStack>
<HStack alignItems="top" py={5}>
2022-05-05 15:35:42 +00:00
<Flex bgColor="grey.100" width="25%" height="100%">
<Heading
as="h2"
fontSize={["lg", "3xl", "4xl", "4xl", "4xl", "5xl"]}
display="inline-block"
fontWeight="semibold"
2022-05-05 15:35:42 +00:00
>
Step 2:
</Heading>
2022-05-05 15:35:42 +00:00
</Flex>
<Flex width="75%">
<chakra.span
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
display="inline-block"
>
<Link href="/discordleed" isExternal>
<Text
as="u"
display="inline"
fontWeight="semibold"
onClick={() => {
if (mixpanel.get_distinct_id()) {
mixpanel.track(
`${MIXPANEL_EVENTS.BUTTON_CLICKED}`,
{
full_url: router.nextRouter.asPath,
buttonName: `Join our Discord`,
page: `landing`,
section: `inline-text`,
}
);
}
}}
>
Join our Discord
</Text>
</Link>{" "}
to get in touch with the team (@zomglings). Tell us about
your game and schedule a call if needed.
2022-05-05 15:35:42 +00:00
</chakra.span>
</Flex>
</HStack>
<HStack alignItems="top" py={5}>
2022-05-05 15:35:42 +00:00
<Flex bgColor="grey.100" width="25%" height="100%">
<Heading
as="h2"
fontSize={["lg", "3xl", "4xl", "4xl", "4xl", "5xl"]}
display="inline-block"
fontWeight="semibold"
2022-05-05 15:35:42 +00:00
>
Step 3:
</Heading>
2022-05-05 15:35:42 +00:00
</Flex>
<Flex width="75%">
<chakra.span
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
display="inline-block"
>
Pick game mechanics that you&apos;d like to deploy.
Moonstream Engine provides you with back-end tools to put
them on the blockchain.
<br />
<br />
2022-05-05 15:35:42 +00:00
You&apos;re at the end of your development journey now,
traveler. Time to watch your game economy grow!
</chakra.span>
</Flex>
</HStack>
</GridItem>
<GridItem
px="7%"
py={["98px", "128px", null]}
colSpan="12"
bgColor="blue.900"
textColor="white"
minH="100vh"
2022-02-17 18:07:27 +00:00
>
<Heading {...HEADING_PROPS} textAlign="center" pb={14} pt={0}>
Featured by{" "}
</Heading>
<Center>
<Flex
width="81%"
wrap="wrap"
direction="row"
justifyContent="center"
bgColor="white"
>
<Suspense fallback={""}>
<TrustedBadge
name="cointelegraph"
caseURL=""
ImgURL={assets["cointelegraph"]}
boxURL="https://cointelegraph.com/news/17-of-addresses-snapped-up-80-of-all-ethereum-nfts-since-april"
/>
<TrustedBadge
name="CryptoInsiders"
ImgURL={assets["cryptoinsiders"]}
boxURL="https://www.crypto-insiders.nl/nieuws/altcoin/17-van-ethereum-whales-bezitten-meer-dan-80-van-alle-nfts-op-de-blockchain/"
/>
<TrustedBadge
name="cryptoslate"
ImgURL={assets["cryptoslate"]}
boxURL="https://cryptoslate.com/should-investors-care-80-of-all-nfts-belong-to-17-of-addresses/"
/>
<TrustedBadge
name="educative sessions"
scale={1.5}
ImgURL={assets["educativesessions"]}
boxURL="https://youtu.be/DN8zRzJuy0M"
/>
<TrustedBadge
scale={1.5}
name="bc101"
ImgURL={assets["bc101"]}
boxURL="https://blockchain101.com/"
/>
<TrustedBadge
scale={1.5}
name="bc101"
ImgURL={assets["meetup"]}
boxURL="https://www.meetup.com/SF-Bay-Area-Data-Science-Initiative/events/283215538/"
/>
<TrustedBadge
scale={1.5}
name="cgc2022"
ImgURL={assets["cgcConference"]}
boxURL="https://www.cgc.one/"
/>
</Suspense>
</Flex>
</Center>
2022-02-17 18:07:27 +00:00
</GridItem>
2022-04-22 09:30:05 +00:00
<GridItem
2022-04-28 18:05:13 +00:00
px={["7%", null, "12%", "15%"]}
2022-04-22 09:30:05 +00:00
py={["98px", "128px", null]}
colSpan="12"
bgColor="white"
minH="100vh"
2022-04-22 09:30:05 +00:00
>
<Flex
2022-04-28 18:05:13 +00:00
w="100%"
2022-04-22 09:30:05 +00:00
alignItems="center"
justifyContent="center"
2022-04-28 18:05:13 +00:00
direction={["column", "column", "row"]}
maxW="1024px"
2022-04-22 09:30:05 +00:00
>
<chakra.span
display="block"
my={12}
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
textAlign={["justify", "left", null]}
2022-04-22 09:30:05 +00:00
mr={[0, 12, 14]}
letterSpacing="tight"
>
{`Contact us on Discord to discuss your project and keep up with the latest updates on Moonstream Engine.`}
</chakra.span>
2022-04-28 18:05:13 +00:00
<RouteButton
variant="orangeAndBlue"
minW={[
"200px",
"250px",
"250px",
"300px",
"350px",
"400px",
]}
fontSize={["lg", "xl", "2xl", "3xl", "4xl", "4xl"]}
onClick={() => {
if (mixpanel.get_distinct_id()) {
mixpanel.track(`${MIXPANEL_EVENTS.BUTTON_CLICKED}`, {
full_url: router.nextRouter.asPath,
buttonName: `Join our Discord`,
page: `landing`,
section: `bottom-line`,
});
}
}}
href={"/discordleed"}
isExternal
>
Join our Discord
</RouteButton>
2022-04-22 09:30:05 +00:00
</Flex>
</GridItem>
2021-08-06 12:24:18 +00:00
</Grid>
</Flex>
</Box>
</Fade>
</Suspense>
2021-07-30 11:25:17 +00:00
);
};
export async function getStaticProps() {
const assetPreload = Object.keys(assets).map((key) => {
return {
rel: "preload",
href: assets[key],
as: "image",
};
});
2021-08-02 12:49:09 +00:00
const preconnects = [{ rel: "preconnect", href: "https://s3.amazonaws.com" }];
2021-07-30 11:25:17 +00:00
const preloads = assetPreload.concat(preconnects);
return {
2021-11-04 16:15:42 +00:00
props: { metaTags: DEFAULT_METATAGS, preloads },
2021-07-30 11:25:17 +00:00
};
}
export default Homepage;