« get me outta code hell

generateWikiHomepageSection.js « dependencies « content « src - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateWikiHomepageSection.js
blob: 49a474dad15dab4e4b88ae915560a8c997124281 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
export default {
  contentDependencies: [
    'generateColorStyleAttribute',
    'generateWikiHomepageActionsRow',
    'generateWikiHomepageAlbumCarouselRow',
    'generateWikiHomepageAlbumGridRow',
  ],

  extraDependencies: ['html'],

  relations: (relation, homepageSection) => ({
    colorStyle:
      relation('generateColorStyleAttribute', homepageSection.color),

    rows:
      homepageSection.rows.map(row =>
        (row.type === 'actions'
          ? relation('generateWikiHomepageActionsRow', row)
       : row.type === 'album carousel'
          ? relation('generateWikiHomepageAlbumCarouselRow', row)
       : row.type === 'album grid'
          ? relation('generateWikiHomepageAlbumGridRow', row)
          : null)),
  }),

  data: (homepageSection) => ({
    name:
      homepageSection.name,
  }),

  generate: (data, relations, {html}) =>
    html.tag('section',
      relations.colorStyle,

      [
        html.tag('h2', data.name),
        relations.rows,
      ]),
};