UNPKG

@taylorwhite/copacetic-frontity-theme

Version:
62 lines (55 loc) 1.99 kB
import { Box, Heading, SimpleGrid } from "@chakra-ui/core"; import { connect } from "frontity"; import React from "react"; import { FeaturedPostSection } from "../featured-post/featured-post"; import { formatPostData, splitPosts } from "../helpers"; import { Newsletter } from "../newsletter"; import ArchiveItem from "./archive-item"; import { PaginationButton } from "./pagination"; import { PatternBox } from "../styles/pattern-box"; const HomepageArchive = ({ state, libraries }) => { // Get the data of the current list. const data = state.source.get(state.router.link); const [firstThreePosts, othersPosts] = splitPosts(state, data.items); return ( <Box bg="accent.50" as="section"> <PatternBox bg="accent.100" bgAttachment="fixed" bgSize="cover" backgroundPattern={state.theme.backgroundPattern}> <FeaturedPostSection data={firstThreePosts.map(post => formatPostData(state, post))} /> <Box py={{ base: "64px", md: "80px" }} px={{ base: "24px", md: "40px" }} width={{ base: "auto", lg: "80%" }} maxWidth="1200px" mx="auto" > <Heading textAlign="center" fontSize={{ base: "4xl", md: "6xl" }} color="accent.400" > Latest Posts </Heading> <SimpleGrid mt={{ base: "64px", md: "80px" }} columns={{ base: 1, md: 2 }} spacing="40px" > {othersPosts.map(({ type, id }) => { const item = state.source[type][id]; return <ArchiveItem key={item.id} item={item} />; })} </SimpleGrid> <PaginationButton mt="40px" link="/page/2"> More posts </PaginationButton> </Box> {libraries.newsletter && ( <Newsletter showPattern={state.theme.showBackgroundPattern} backgroundPattern={state.theme.backgroundPattern} /> )} </PatternBox> </Box> ); }; export default connect(HomepageArchive);