Files
test/gatsby-node.js
Dmytro Tkachenko 680168f6de Init
2024-10-12 02:08:44 +03:00

81 lines
2.0 KiB
JavaScript

const path = require('path');
exports.createPages = async ({graphql, actions, reporter}) => {
const {createPage} = actions;
createPage({
path: '/',
component: path.resolve(`src/pages/HomePage/HomePage.jsx`),
context: {
pagePath: '/',
},
});
createPage({
path: '/insights/',
component: path.resolve(`src/pages/List/List.jsx`),
context: {
pagePath: '/insights/',
},
});
const result = await graphql(`
{
allDataJson {
nodes {
name
images
tags
description
sources
socialMedia {
Twitter {
Social_Media_Influence
Tweet_Bookmarks
Tweet_Bookmarks_Relative_to_Average
Tweet_Likes
Tweet_Likes_Relative_to_Average
Tweet_Quotes
Tweet_Quotes_Relative_to_Average
Tweet_Reposts
Tweet_Reposts_Relative_to_Average
Tweet_Views
Tweet_Views_Relative_to_Average
found
}
Instagram {
Post_Comments
Post_Comments_Relative_to_Average
Post_Likes
Post_Likes_Relative_to_Average
Social_Media_Influence
found
}
}
}
}
}
`);
if (result.errors) {
reporter.panicOnBuild(`Error while running GraphQL query.`);
return;
}
const productPostTemplate = path.resolve(
`src/templates/ProductPage/ProductPage.jsx`
);
result.data.allDataJson.nodes.forEach((node) => {
const path = `/insights/${node.name.replaceAll(' ', '-').toLowerCase()}`;
createPage({
path,
component: productPostTemplate,
context: {
pagePath: path,
data: node,
images: node.images,
},
});
});
};