Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. const path = require('path');
  2.  
  3. exports.createPages = ({ graphql, actions }) => {
  4. const { createPage } = actions;
  5.  
  6. return new Promise((resolve, reject) => {
  7. const storyblokEntry = path.resolve('src/templates/storyblok-entry.js');
  8.  
  9. resolve(
  10. graphql(
  11. `
  12. {
  13. stories: allStoryblokEntry {
  14. edges {
  15. node {
  16. id
  17. name
  18. created_at
  19. uuid
  20. slug
  21. field_component
  22. full_slug
  23. content
  24. is_startpage
  25. parent_id
  26. group_id
  27. }
  28. }
  29. }
  30. }
  31. `
  32. ).then(result => {
  33. if (result.errors) {
  34. console.log(result.errors);
  35. reject(result.errors);
  36. }
  37.  
  38. const entries = result.data.stories.edges;
  39. const contents = entries.filter(entry => {
  40. return entry.node.field_component != 'global';
  41. });
  42.  
  43. contents.forEach((entry, index) => {
  44. const pagePath = entry.node.full_slug == 'home' ? '' : `${entry.node.full_slug}/`;
  45. const global = entries.filter(globalEntry => {
  46. return globalEntry.node.field_component == 'global' && globalEntry.node.lang == entry.node.lang;
  47. });
  48. if (!global.length) {
  49. throw new Error(
  50. 'The global navigation item has not been found. Please create a content item with the content type global_navi in Storyblok.'
  51. );
  52. }
  53.  
  54. createPage({
  55. path: `/${pagePath}`,
  56. component: storyblokEntry,
  57. context: {
  58. global: global[0].node,
  59. story: entry.node,
  60. },
  61. });
  62. });
  63. })
  64. );
  65. });
  66. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement