Landing content and component update

pull/595/head
Tim Pechersky 2022-04-28 19:05:13 +01:00
rodzic ca0f858eab
commit fe57b4f336
5 zmienionych plików z 166 dodań i 762 usunięć

Wyświetl plik

@ -1,272 +0,0 @@
import React, { useEffect, useState, useLayoutEffect } from "react";
import dynamic from "next/dynamic";
import { getLayout } from "../../src/layouts/WideInfoPage";
import {
Text,
Flex,
Stack,
useMediaQuery,
useBreakpointValue,
Center,
} from "@chakra-ui/react";
import { AWS_ASSETS_PATH } from "../../src/core/constants";
import mixpanel from "mixpanel-browser";
import Link from "next/link";
import {
MIXPANEL_PROPS,
MIXPANEL_EVENTS,
} from "../../src/core/providers/AnalyticsProvider/constants";
import { useRouter } from "../../src/core/hooks";
import SplitWithImage from "../../src/components/SplitWithImage";
import RouteButton from "../../src/components/RouteButton";
const FaStoreAlt = dynamic(() =>
import("react-icons/fa").then((mod) => mod.FaStoreAlt)
);
const GiRiver = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiRiver)
);
const GiCrossedChains = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiCrossedChains)
);
const GiChainedHeart = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiChainedHeart)
);
const MdOutlineVerifiedUser = dynamic(() =>
import("react-icons/md").then((mod) => mod.MdOutlineVerifiedUser)
);
const GiRadarCrossSection = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiRadarCrossSection)
);
const GiMedallist = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiMedallist)
);
const GiRobotGolem = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiRobotGolem)
);
const CgUserlane = dynamic(() =>
import("react-icons/cg").then((mod) => mod.CgUserlane)
);
const GiChaingun = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiChaingun)
);
const GiQuickSlash = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiQuickSlash)
);
const GiConcentrationOrb = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiConcentrationOrb)
);
const GiTakeMyMoney = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiTakeMyMoney)
);
const FaGithubSquare = dynamic(() =>
import("react-icons/fa").then((mod) => mod.FaGithubSquare)
);
const GiMeshBall = dynamic(() =>
import("react-icons/gi").then((mod) => mod.GiMeshBall)
);
const VscOrganization = dynamic(() =>
import("react-icons/vsc").then((mod) => mod.VscOrganization)
);
const assets = {
cryptoTraders: `${AWS_ASSETS_PATH}/crypto+traders.png`,
lender: `${AWS_ASSETS_PATH}/lender.png`,
DAO: `${AWS_ASSETS_PATH}/DAO .png`,
NFT: `${AWS_ASSETS_PATH}/NFT.png`,
smartDevelopers: `${AWS_ASSETS_PATH}/smart+contract+developers.png`,
};
const Product = () => {
const router = useRouter();
return (
<Stack
direction={"column"}
spacing={9}
mx="7%"
overscrollBehaviorY={"contain"}
>
<SplitWithImage
key={"SplitWithImage-3"}
cta={{
colorScheme: "orange",
onClick: () => {
router.push("/whitepapers");
},
label: "NFT market report",
}}
socialButton={{
url: "https://discord.gg/K56VNUQGvA",
title: "Contact us on discord",
icon: "discord",
}}
elementName={"element1"}
colorScheme="green"
badge={`Moonstream analytics`}
bullets={[
{
text: `See how value flows into and out of every component of your economy.`,
icon: GiRiver,
color: "green.50",
bgColor: "green.900",
},
{
text: `Track inflation or deflation of your currencies.`,
icon: GiTakeMyMoney,
color: "green.50",
bgColor: "green.900",
},
{
text: `Track the concentration of wealth in your economy.`,
icon: GiConcentrationOrb,
color: "green.50",
bgColor: "green.900",
},
]}
imgURL={assets["cryptoTraders"]}
/>
<SplitWithImage
key={"SplitWithImage-2"}
socialButton={{
url: "https://discord.gg/K56VNUQGvA",
title: "Contact us on discord",
icon: "discord",
}}
elementName={"element3"}
colorScheme="orange"
badge={`Moonstream engine`}
bullets={[
{
text: `Deploy customizable and upgradable characters, items, and currencies into your economy`,
icon: GiCrossedChains,
color: "orange.50",
bgColor: "orange.900",
},
{
text: `Monitor interactions between these tokens`,
icon: GiChainedHeart,
color: "orange.50",
bgColor: "orange.900",
},
{
text: `Secure the tokens with Moonstream defense bots.`,
icon: GiChaingun,
color: "orange.50",
bgColor: "orange.900",
},
]}
imgURL={assets["lender"]}
/>
<SplitWithImage
key={"SplitWithImage-1"}
mirror
socialButton={{
url: "https://discord.gg/K56VNUQGvA",
title: "Contact us on discord",
icon: "discord",
}}
elementName={"element3"}
colorScheme="red"
badge={`Moonstream Loyalty`}
bullets={[
{
text: `Track the most active participants in your economy and easily give them rewards for their engagement.`,
icon: VscOrganization,
color: "red.50",
bgColor: "red.900",
},
{
text: `Create and distribute whitelist tokens for your pre-sales. Make them tradeable on markets like OpenSea.`,
icon: GiMedallist,
color: "red.50",
bgColor: "red.900",
},
{
text: `Manage KYC information about your community.`,
icon: CgUserlane,
color: "red.50",
bgColor: "red.900",
},
]}
imgURL={assets["DAO"]}
/>
<SplitWithImage
key={"SplitWithImage-0"}
socialButton={{
url: "https://discord.gg/K56VNUQGvA",
title: "Contact us on discord",
icon: "discord",
}}
elementName={"element3"}
colorScheme="green"
badge={`Moonstream security`}
bullets={[
{
text: `Moonstream smart contracts have been vetted in production with over $1B in value transacted.`,
icon: MdOutlineVerifiedUser,
color: "green.50",
bgColor: "green.900",
},
{
text: `Moonstream scanners constantly monitor accounts and transactions in your economy and identify threats in seconds.`,
icon: GiRadarCrossSection,
color: "green.50",
bgColor: "green.900",
},
{
text: `One-click deploy defense bots which counter attacks as soon as they are detected.`,
icon: GiRobotGolem,
color: "green.50",
bgColor: "green.900",
},
]}
imgURL={assets["smartDevelopers"]}
/>
</Stack>
);
};
export async function getStaticProps() {
const metaTags = {
title: "Moonstream.to: web3 analytics",
description:
"Moonstream brings product analytics to web3. Instantly get analytics for any smart contract you write.",
keywords:
"blockchain, crypto, data, trading, smart contracts, ethereum, solana, transactions, defi, finance, decentralized, analytics, product",
url: "https://www.moonstream.to/product",
image: `${AWS_ASSETS_PATH}/product_comic/solution.png`,
};
const assetPreload = Object.keys(assets).map((key) => {
return {
rel: "preload",
href: assets[key],
as: "image",
};
});
const preconnects = [{ rel: "preconnect", href: "https://s3.amazonaws.com" }];
const preloads = assetPreload.concat(preconnects);
return {
props: { metaTags, preloads },
};
}
Product.layoutProps = { mxDesktop: "12%" };
Product.getLayout = getLayout;
export default Product;

Wyświetl plik

@ -1,16 +1,9 @@
import React, {
useState,
useContext,
Suspense,
useEffect,
useLayoutEffect,
} from "react";
import React, { useState, Suspense, useEffect, useLayoutEffect } from "react";
import {
Fade,
Flex,
Heading,
Box,
Container,
Divider,
chakra,
Stack,
@ -19,36 +12,17 @@ import {
Grid,
Text,
GridItem,
Button,
SimpleGrid,
Image as ChakraImage,
} from "@chakra-ui/react";
import dynamic from "next/dynamic";
import Link from "next/dist/client/link";
import useUser from "../src/core/hooks/useUser";
import useModals from "../src/core/hooks/useModals";
import useRouter from "../src/core/hooks/useRouter";
import { AWS_ASSETS_PATH, DEFAULT_METATAGS } from "../src/core/constants";
import UIContext from "../src/core/providers/UIProvider/context";
import TrustedBadge from "../src/components/TrustedBadge";
import RouteButton from "../src/components/RouteButton";
import { MODAL_TYPES } from "../src/core/providers/OverlayProvider/constants";
import mixpanel from "mixpanel-browser";
import { MIXPANEL_EVENTS } from "../src/core/providers/AnalyticsProvider/constants";
const SplitWithImage = dynamic(
() => import("../src/components/SplitWithImage"),
{
ssr: false,
}
);
const FaDiscord = dynamic(() =>
import("react-icons/fa").then((mod) => mod.FaDiscord)
);
const FaGithubSquare = dynamic(() =>
import("react-icons/fa").then((mod) => mod.FaGithubSquare)
);
const HEADING_PROPS = {
fontWeight: "700",
fontSize: ["4xl", "5xl", "5xl", "5xl", "6xl", "7xl"],
@ -59,21 +33,12 @@ const assets = {
background1920: `${AWS_ASSETS_PATH}/background720.png`,
background2880: `${AWS_ASSETS_PATH}/background720.png`,
background3840: `${AWS_ASSETS_PATH}/background720.png`,
minedTransactions: `${AWS_ASSETS_PATH}/Ethereum+mined+transactions.png`,
pendingTransactions: `${AWS_ASSETS_PATH}/Ethereum+pending+transactions.png`,
priceInformation: `${AWS_ASSETS_PATH}/Price+information.png`,
socialMediaPosts: `${AWS_ASSETS_PATH}/Social+media+posts.png`,
cryptoTraders: `${AWS_ASSETS_PATH}/crypto+traders.png`,
smartDevelopers: `${AWS_ASSETS_PATH}/smart+contract+developers.png`,
cointelegraph: `${AWS_ASSETS_PATH}/featured_by/Cointelegraph_logo.png`,
forte: `${AWS_ASSETS_PATH}/featured_by/forte_logo.png`,
educativesessions: `${AWS_ASSETS_PATH}/featured_by/educative_logo.png`,
cryptoinsiders: `${AWS_ASSETS_PATH}/featured_by/crypto_insiders.png`,
cryptoslate: `${AWS_ASSETS_PATH}/featured_by/cs-media-logo-light.png`,
bitcoinLogo: `${AWS_ASSETS_PATH}/bitcoin.png`,
ethereumBlackLogo: `${AWS_ASSETS_PATH}/eth-diamond-black.png`,
ethereumRainbowLogo: `${AWS_ASSETS_PATH}/eth-diamond-rainbow.png`,
maticLogo: `${AWS_ASSETS_PATH}/matic-token-inverted-icon.png`,
lender: `${AWS_ASSETS_PATH}/lender.png`,
DAO: `${AWS_ASSETS_PATH}/DAO .png`,
NFT: `${AWS_ASSETS_PATH}/NFT.png`,
@ -82,53 +47,51 @@ const assets = {
game7io: `${AWS_ASSETS_PATH}/featured_by/game7io_logo.png`,
orangedao: `${AWS_ASSETS_PATH}/featured_by/orangedao_logo.png`,
meetup: `${AWS_ASSETS_PATH}/featured_by/meetup_logo.png`,
gnosis: `${AWS_ASSETS_PATH}/gnosis_chain_logo_no_text.png`,
immutable: `${AWS_ASSETS_PATH}/immutable_x_logo.png`,
};
const carousel_content = [
{ title: "Bitcoin coming soon!", img: assets["bitcoinLogo"] },
{ title: "Ethereum", img: assets["ethereumBlackLogo"] },
{ title: "Ethereum transaction pool", img: assets["ethereumRainbowLogo"] },
{ title: "Polygon", img: assets["maticLogo"] },
{ title: "immutable x coming soon!", img: assets["immutable"] },
{ title: "gnosis chain coming soon!", img: assets["gnosis"] },
];
const Feature = ({ image, altText, heading }) => {
const Feature = ({ image, altText, heading, description }) => {
return (
<GridItem>
<Stack
transition={"1s"}
spacing={1}
px={1}
alignItems="center"
borderRadius="12px"
borderColor="blue.700"
bgColor={"blue.800"}
borderWidth={"1px"}
// minW="250px"
_hover={{ transform: "scale(1.05)", transition: "0.42s" }}
cursor="pointer"
// mt={2}
m={[2, 3, null, 4, 8, 12]}
pb={2}
>
<ChakraImage
boxSize={["100px", "100px", "xs", null, "xs"]}
boxSize={["220px", "220px", "xs", null, "xs"]}
objectFit="contain"
src={image}
alt={altText}
/>
<chakra.span
my={12}
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
display="inline-block"
color="white"
>
<Heading textAlign="center" fontSize={["md", "md", "lg", "3xl", "4xl"]}>
{heading}
</Heading>
<chakra.span textAlign={"center"} textColor="blue.600" px={2}>
{description}
</chakra.span>
</GridItem>
</Stack>
);
};
const Homepage = () => {
const ui = useContext(UIContext);
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);
const [imageIndex, setImageIndex] = useState(0);
const router = useRouter();
const { isInit } = useUser();
const { toggleModal } = useModals();
const [
isLargerThan720px,
isLargerThan1920px,
@ -217,25 +180,6 @@ const Homepage = () => {
setBackgroundLoaded3840(true);
};
}, []);
const settings = {
infinite: true,
lazyLoad: true,
speed: 2000,
autoplay: true,
autoplaySpeed: 0,
// cssEase: "linear",
cssEase: "cubic-bezier(0.165, 0.840, 0.440, 1.000)",
// cssEase: "ease-in",
slidesToScroll: 1,
slidesToShow: ui.isMobileView ? 3 : 5,
centerMode: true,
centerPadding: 0,
// nextArrow: "",
// prevArrow: "",
beforeChange: (current, next) => setImageIndex(next),
};
return (
<Suspense fallback="">
<Fade in>
@ -302,7 +246,7 @@ const Homepage = () => {
</Heading>
<chakra.span
my={12}
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
fontSize={["md", "2xl", "3xl", "3xl", "4xl", "5xl"]}
display="inline-block"
color="blue.200"
>
@ -311,7 +255,7 @@ const Homepage = () => {
</chakra.span>
<chakra.span
my={12}
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
fontSize={["md", "2xl", "3xl", "3xl", "4xl", "5xl"]}
display="inline-block"
color="blue.200"
>
@ -332,47 +276,7 @@ const Homepage = () => {
py={0}
overflowX="hidden"
overflowY="visible"
>
{/* <Slider
{...settings}
// adaptiveHeight={true}
arrows={false}
autoplay={true}
autoplaySpeed={100}
>
{carousel_content.map((content_item, idx) => (
<Box
pt="80px"
h="auto"
w="150px"
maxW="150px"
// size="150px"
key={uuidv4()}
className={
idx === imageIndex
? "slide activeSlide"
: "slide"
}
// bgColor="blue.900"
// borderRadius="lg"
// boxShadow="lg"
>
<ChakraImage
fit="contain"
boxSize={["64px", "96px", "130px", null]}
src={content_item.img}
/>
<Text
py={2}
color="blue.300"
fontSize={["sm", "md", null]}
>
{content_item.title}
</Text>
</Box>
))}
</Slider> */}
</Box>
></Box>
</Stack>
</Flex>
</Box>
@ -426,281 +330,106 @@ const Homepage = () => {
</Flex>
</GridItem>
<GridItem
px="7%"
px={["7%", null, "12%", "15%"]}
colSpan="12"
pt={0}
pt={24}
minH="100vh"
bgColor={"blue.900"}
textColor="white"
>
<Box as={Container} maxW="7xl" mt={14} p={4}>
<Grid
templateColumns={{
base: "repeat(1, 1fr)",
sm: "repeat(2, 1fr)",
md: "repeat(2, 1fr)",
}}
gap={4}>
<GridItem>
<VStack alignItems="flex-start" spacing="20px">
<Heading
{...HEADING_PROPS}
textAlign="center"
pb={14}
pt={0}
>
Dive into Engine Features
</Heading>
<Button
colorScheme="orange"
size="md"
textColor="blue.900"
>
<a
href="https://docs.google.com/document/d/1mjfF8SgRrAZvtCVVxB2qNSUcbbmrH6dTEYSMfHKdEgc/preview"
my={12}
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
display="inline-block"
color="blue.200"
>
Call To Action
</a>
</Button>
</VStack>
</GridItem>
<GridItem>
<Flex>
<chakra.span
my={12}
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
display="inline-block"
color="blue.200"
>
Lootboxes, crafting, deck builder, you name it!
Whatever on-chain mechanics you want incorporated in
your project, contact us to help you launch it. It is
fast and secure. Or explore the features to know more.
</chakra.span>
</Flex>
</GridItem>
</Grid>
<Divider mt={12} mb={12} />
<Grid
templateColumns={{
base: "repeat(1, 1fr)",
sm: "repeat(2, 1fr)",
md: "repeat(4, 1fr)",
}}
gap={{ base: "8", sm: "12", md: "16" }}
>
<Feature
image={assets["cryptoTraders"]}
altText="mined transactions"
heading="ON-CHAIN MECHANICS"
/>
<Feature
image={assets["NFT"]}
altText="mined transactions"
heading="LOYALTY PROGRAMS"
/>
<Feature
image={assets["lender"]}
altText="mined transactions"
heading="SECURE TRANSACTIONS"
/>
<Feature
image={assets["DAO"]}
altText="mined transactions"
heading="CONTENT MANAGEMENT"
/>
</Grid>
</Box>
</GridItem>
{/* <GridItem
px="7%"
colSpan="12"
pt={0}
minH="100vh"
bgColor={"blue.1200"}
>
<Heading
{...HEADING_PROPS}
textAlign="center"
textColor="white"
mt={[12, 14, 16]}
pb={[12, 12, 12, null, 24]}
<Grid
templateColumns={{
base: "repeat(1, 1fr)",
sm: "repeat(1, 1fr)",
md: "repeat(2, 1fr)",
}}
gap={4}
>
Dive into Engine Features
</Heading>
<chakra.span textAlign={"center"} textColor="white" px={2}>
Get the full picture of your economy with automated
customizable dashboards.
</chakra.span>
<SimpleGrid
columns={[1, 2, 2, 5, null, 5]}
justifyContent="center"
>
<Link href="#more_about_analytics" shallow scroll>
<Stack
transition={"1s"}
spacing={1}
px={1}
alignItems="center"
borderRadius="12px"
borderColor="gray.100"
bgColor={"blue.700"}
borderWidth={"1px"}
_hover={{ transform: "scale(1.05)", transition: "0.42s" }}
cursor="pointer"
m={2}
pb={2}
<GridItem>
<VStack
alignItems="flex-start"
spacing="20px"
mb={[12, 12, "initial"]}
>
<ChakraImage
boxSize={["220px", "220px", "xs", null, "xs"]}
objectFit="contain"
src={assets["cryptoTraders"]}
alt="mined transactions"
/>
<Heading textAlign="center ">Analytics</Heading>
<chakra.span
textAlign={"center"}
textColor="blue.600"
px={2}
<Heading
{...HEADING_PROPS}
textAlign={["center", "center", "left"]}
alignSelf={["center", "center", "initial"]}
pb={14}
pt={0}
>
Get the full picture of your economy with automated
customizable dashboards.
</chakra.span>
</Stack>
</Link>
<Link href="#more_about_markets" shallow scroll>
<Stack
transition={"1s"}
spacing={1}
px={1}
alignItems="center"
borderRadius="12px"
borderColor="gray.100"
borderWidth={"1px"}
_hover={{ transform: "scale(1.05)", transition: "0.42s" }}
m={2}
pb={2}
>
<ChakraImage
boxSize={["220px", "220px", "xs", null, "xs"]}
objectFit="contain"
src={assets["NFT"]}
alt="mined transactions"
/>
<Heading textAlign="center ">Markets</Heading>
<chakra.span
textAlign={"center"}
textColor="blue.600"
px={2}
>
Create goods and resources for your economy. Set up
fully customizable storefronts for these items.
</chakra.span>
</Stack>
</Link>
<Link href="#more_about_bridges" shallow scroll>
<Stack
transition={"1s"}
spacing={1}
px={1}
alignItems="center"
borderRadius="12px"
borderColor="gray.100"
borderWidth={"1px"}
_hover={{ transform: "scale(1.05)", transition: "0.42s" }}
m={2}
pb={2}
>
<ChakraImage
boxSize={["220px", "220px", "xs", null, "xs"]}
objectFit="contain"
src={assets["lender"]}
alt="engine"
/>
<Heading textAlign="center ">Engine</Heading>
<chakra.span
textAlign={"center"}
textColor="blue.600"
px={2}
>
Create and manage tokens with custom mechanics specific
to your project.
</chakra.span>
</Stack>
</Link>
<Link href="#more_about_loyalty" shallow scroll>
<Stack
transition={"1s"}
spacing={1}
px={1}
alignItems="center"
borderRadius="12px"
borderColor="gray.100"
borderWidth={"1px"}
_hover={{ transform: "scale(1.05)", transition: "0.42s" }}
m={2}
pb={2}
>
<ChakraImage
boxSize={["220px", "220px", "xs", null, "xs"]}
objectFit="contain"
src={assets["DAO"]}
alt="mined transactions"
/>
<Heading textAlign="center ">{`Loyalty`}</Heading>
<chakra.span
textAlign={"center"}
textColor="blue.600"
px={2}
>
Reward the most active participants in your economy with
loyalty programs and token sale whitelists.
</chakra.span>
</Stack>
</Link>
<GridItem colSpan={[1, 2, 2, 1, null, 1]}>
<Link href="#more_about_security" shallow scroll>
<Stack
transition={"1s"}
spacing={1}
px={1}
alignItems="center"
borderRadius="12px"
borderColor="gray.100"
borderWidth={"1px"}
_hover={{
transform: "scale(1.05)",
transition: "0.42s",
Dive into Engine Features
</Heading>
<RouteButton
colorScheme="orange"
fontSize={["md", "lg", "lg", "xl", "3xl"]}
py={[4, 4, 4, 8, 8]}
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 case studies`,
page: `landing`,
section: `Dive into Engine Features`,
}
);
}
}}
m={2}
pb={2}
textColor="blue.900"
alignSelf={["center", "center", "initial"]}
href="https://docs.google.com/document/d/1mjfF8SgRrAZvtCVVxB2qNSUcbbmrH6dTEYSMfHKdEgc/preview"
>
<ChakraImage
boxSize={["220px", "220px", "xs", null, "xs"]}
objectFit="contain"
src={assets["smartDevelopers"]}
alt="mined transactions"
/>
<Heading textAlign="center ">{`Security`}</Heading>
<chakra.span
textAlign={"center"}
textColor="blue.600"
px={2}
>
Secure your economy against bad actors. Detect attacks
on your economy and defend against them.
</chakra.span>
</Stack>
</Link>
Explore case studies
</RouteButton>
</VStack>
</GridItem>
<GridItem>
<Flex>
<chakra.span
fontSize={["md", "2xl", "3xl", "3xl", "3xl", "4xl"]}
display="inline-block"
color="blue.200"
>
Lootboxes, crafting, deck builder, you name it! Whatever
on-chain mechanics you want incorporated in your
project, contact us to help you launch it. It is fast
and secure. Or explore the features to know more.
</chakra.span>
</Flex>
</GridItem>
</Grid>
<Divider mt={12} mb={12} />
<SimpleGrid
columns={[1, 2, 2, 4, null, 4]}
justifyContent="center"
w="100%"
placeContent={"space-between"}
>
<Feature
image={assets["cryptoTraders"]}
altText="mined transactions"
heading="ON-CHAIN MECHANICS"
/>
<Feature
image={assets["NFT"]}
altText="mined transactions"
heading="LOYALTY PROGRAMS"
/>
<Feature
image={assets["lender"]}
altText="mined transactions"
heading="SECURE TRANSACTIONS"
/>
<Feature
image={assets["DAO"]}
altText="mined transactions"
heading="CONTENT MANAGEMENT"
/>
</SimpleGrid>
</GridItem> */}
</GridItem>
<GridItem
px="7%"
// mt={["32px", "64px", null]}
@ -752,20 +481,19 @@ const Homepage = () => {
</Flex>
</GridItem>
<GridItem
px="7%"
// mt={["32px", "64px", null]}
px={["7%", null, "12%", "15%"]}
py={["98px", "128px", null]}
colSpan="12"
bgColor="blue.700"
textColor="white"
>
<Flex
// bg={useColorModeValue("#F9FAFB", "gray.600")}
p={50}
w="full"
w="100%"
alignItems="center"
justifyContent="center"
direction={"row"}
direction={["column", "column", "row"]}
maxW="1024px"
>
<chakra.h2
mr={[0, 12, 14]}
@ -784,65 +512,35 @@ const Homepage = () => {
{`Contact us on Discord to discuss your project and keep up with the latest updates on the Moonstream Engine.`}
</chakra.span>
</chakra.h2>
<Box
// bg={useColorModeValue("gray.50", "gray.800")}
<RouteButton
minW={["300px", "300px", "460px"]}
alignItems="center"
justifyContent="center"
border="solid transparent"
fontWeight="bold"
rounded="md"
shadow="md"
variant="solid"
colorScheme="orange"
textColor="blue.1200"
fontSize={["md", "md", "lg", "xl", "3xl"]}
py={[4, 6, 6, 8, 8]}
px={[4, 4, 4, 8, 8]}
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"}
>
<Box
maxW="7xl"
w="min-content"
mx="auto"
py={{ base: 12, lg: 16 }}
px={{ base: 4, lg: 8 }}
display={{ lg: "flex" }}
alignItems={{ lg: "center" }}
justifyContent={{ lg: "space-between" }}
>
<Stack
direction={{ base: "column", sm: "column" }}
mt={{ base: 8, lg: 0 }}
shrink={{ lg: 0 }}
>
<div></div>
{/* <Button
// mt={3}
placeSelf="center"
w={["100%", "100%", "fit-content", null]}
maxW={["280px", null, "fit-content"]}
size="lg"
>
Sign up
</Button> */}
<RouteButton
w={"280px"}
alignItems="center"
justifyContent="center"
border="solid transparent"
fontWeight="bold"
rounded="md"
shadow="md"
variant="solid"
colorScheme="orange"
textColor="blue.1200"
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={"https://discord.gg/K56VNUQGvA"}
>
Join the community on Discord
</RouteButton>
</Stack>
</Box>
</Box>
Join the community on Discord
</RouteButton>
</Flex>
</GridItem>
</Grid>

Wyświetl plik

@ -100,10 +100,7 @@ const Footer = () => (
>
<FaGithub />
</SocialButton>
<SocialButton
label={"Discord"}
href={"https://discord.gg/K56VNUQGvA"}
>
<SocialButton label={"Discord"} href={"/discordleed"}>
<FaDiscord />
</SocialButton>
</Stack>

Wyświetl plik

@ -62,7 +62,7 @@ const Feature = ({ text, icon, iconBg, bullets }) => {
);
};
const SplitWithImage = ({
const _SplitWithImage = ({
badge,
title,
body,
@ -259,5 +259,6 @@ const SplitWithImage = ({
</Container>
);
};
const SplitWithImage = chakra(_SplitWithImage);
export default chakra(SplitWithImage);
export default SplitWithImage;

Wyświetl plik

@ -36,29 +36,24 @@ export const PAGETYPE = {
export const SITEMAP = [
{
title: "Features",
path: "/features",
title: "Resources",
path: "/resources",
type: PAGETYPE.EMPTY,
children: [
{
title: "On-chain mechanics",
path: "/features/#engine",
title: "Case studies",
path: "https://docs.google.com/document/d/1mjfF8SgRrAZvtCVVxB2qNSUcbbmrH6dTEYSMfHKdEgc",
type: PAGETYPE.EXTERNAL,
},
{
title: "Whitepapers",
path: "/whitepapers",
type: PAGETYPE.CONTENT,
},
{
title: "Loyalty programs",
path: "/features/#loyalty",
type: PAGETYPE.CONTENT,
},
{
title: "Secure transactions",
path: "/features/#security",
type: PAGETYPE.CONTENT,
},
{
title: "Content management",
path: "/features/#cms",
type: PAGETYPE.CONTENT,
title: "Blog",
path: "https://blog.moonstream.to",
type: PAGETYPE.EXTERNAL,
},
],
},
@ -66,6 +61,7 @@ export const SITEMAP = [
title: "Developers",
path: "/developers",
type: PAGETYPE.EMPTY,
children: [
{
title: "Docs",
@ -79,23 +75,7 @@ export const SITEMAP = [
},
],
},
{
title: "Resources",
path: "/resources",
type: PAGETYPE.EMPTY,
children: [
{
title: "whitepapers",
path: "/whitepapers",
type: PAGETYPE.CONTENT,
},
{
title: "blog",
path: "https://blog.moonstream.to",
type: PAGETYPE.EXTERNAL,
},
],
},
{
title: "About",
path: "/about",