81 lines
2.0 KiB
JavaScript
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,
|
|
},
|
|
});
|
|
});
|
|
};
|