Skip to content
Snippets Groups Projects
Page.tsx 1.86 KiB
Newer Older
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
import React from "react"
import { graphql, PageProps } from "gatsby"
import { Layout, Content, Sections } from "@onegeo/gatsby-theme-onegeo"
import { Toc } from "@onegeo/gatsby-theme-onegeo";
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed

interface ISection {
    sections_id: string[] | []
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
}
interface IPageContext {
    directus: {
        pages: {
            id: string
            title: string
            content: string
            slug: string
            sections: ISection[] | []
const PageTemplate = ({ data }: PageProps<IPageContext>) => {

    const news = data.directus.pages[0]
    const { title, content, sections, toc = false} = news
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed

    const idsSections = sections.map((section: any) => section.sections_id.id)
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed

    return (
        <Layout>
            {
                (toc) ? <Toc className="hidden md:block top-14" /> : <></>
            }
            <Content className={`${toc ? "mx-0 md:mr-72 md:ml-2" : "mx-auto" } `}>
                {title && <h1 className="text-3xl font-extrabold">{title}</h1>}
                {content && (
                    <div
                        className="text-lg leading-8 py-4 text-justify"
                        dangerouslySetInnerHTML={{ __html: content }}
                    ></div>
                )}
                {Object.keys(idsSections).length !== 0 && (
                    <Sections ids={idsSections} />
                )}
            </Content>
        </Layout>
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
    )
}

export default PageTemplate

export const query = graphql`
    query ($id: DirectusData_GraphQLStringOrFloat!) {
        directus {
            pages(filter: { id: { _eq: $id } }) {
                sections {
                    sections_id {
                        id
                    }
                }
                content
                id
                title
                slug