import React from "react"; import Layout from "../components/Layout"; import { graphql } from "gatsby"; import { AllGhostPostDescription } from "../models/all-post-description.model"; import { PaginationContext } from "../models/pagination.model"; import { MetaData } from "../components/meta"; import PostCard from "../components/PostCard"; import Pagination from "../components/Pagination"; import classNames from "classnames"; import url from "url"; import CtaMini from "../components/CtaMini"; type IndexPageProps = { data: { allGhostPost: AllGhostPostDescription; ghostSettings: { title: string; description: string; cover_image: string; }; site: { siteMetadata: { siteUrl; siteTitle; siteDescription; coverUrl; }; }; }; location: any; pageContext?: PaginationContext; }; const IndexPage: React.FC = ({ data, location, pageContext, }) => { const { allGhostPost, ghostSettings, site: { siteMetadata: { siteTitle, siteUrl, siteDescription, coverUrl }, }, } = data; return (

{allGhostPost.edges.map(({ node }, i) => { return ; })}
{/* Pagination */}
); }; export default IndexPage; export const indexPageQuery = graphql` query($limit: Int!, $skip: Int!) { allGhostPost( sort: { fields: [featured, published_at], order: [DESC, DESC] } filter: { slug: { ne: "data-schema" } } limit: $limit skip: $skip ) { edges { ...AllGhostPostsDescription } } ghostSettings { title description cover_image } site { siteMetadata { siteUrl siteTitle siteDescription coverUrl } } } `;