/**
 * Implement Gatsby's Node APIs in this file.
 *
 * See: https://www.gatsbyjs.com/docs/node-apis/
 */
const path = require("path")

exports.onPreInit = () => console.log("Loaded gatsby-theme-onegeo")

exports.createPages = async function ({ actions, graphql }) {
    const { data } = await graphql(`
        query getPages {
            directus {
                pages {
                    id
                    slug
                }
                news {
                    id
                    slug
                    title
                    image {
                        id
                        imageFile {
                            publicURL
                        }
                    }
                }
            }
        }
    `)

    data.directus.pages.forEach((page) => {
        actions.createPage({
            path: `/${page.slug}`,
            component: require.resolve(`./src/templates/Page.tsx`),
            context: {
                id: page.id,
            },
        })
    })

    data.directus.news.forEach((news, i) => {
        actions.createPage({
            path: `/news/${news.slug}`,
            component: require.resolve(`./src/templates/news.tsx`),
            context: {
                id: news.id,
                prev: data.directus.news.at(i - 1),
                next: data.directus.news.at(i + 1),
            },
        })
    })
}