« get me outta code hell

generateAlbumInfoPage.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/generateAlbumInfoPage.js
blob: f5dc6bfdaaacf0eea7e5d31742566dbdac51f91c (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
export default {
  contentDependencies: [
    'generateAlbumInfoPageContent',
    'generateAlbumNavLinks',
    'generateAlbumSidebar',
    'generateAlbumSocialEmbed',
    'generateAlbumStyleRules',
    'generateColorStyleRules',
    'generatePageLayout',
  ],

  extraDependencies: ['language'],

  relations(relation, album) {
    return {
      layout: relation('generatePageLayout'),
      albumNavLinks: relation('generateAlbumNavLinks', album, null),

      content: relation('generateAlbumInfoPageContent', album),
      sidebar: relation('generateAlbumSidebar', album, null),
      socialEmbed: relation('generateAlbumSocialEmbed', album),
      albumStyleRules: relation('generateAlbumStyleRules', album),
      colorStyleRules: relation('generateColorStyleRules', album.color),
    };
  },

  data(album) {
    return {
      name: album.name,
    };
  },

  generate(data, relations, {language}) {
    return relations.layout
      .slots({
        title: language.$('albumPage.title', {album: data.name}),
        styleRules: [
          relations.albumStyleRules,
          relations.colorStyleRules,
        ],

        cover: relations.content.cover,
        mainContent: relations.content.main.content,

        navLinkStyle: 'hierarchical',
        navLinks: [
          {auto: 'home'},
          {
            auto: 'current',
            accent:
              relations.albumNavLinks.slots({
                showTrackNavigation: true,
                showExtraLinks: true,
              }),
          },
        ],
        navContent: '(Chronology links here)',

        ...relations.sidebar,

        // socialEmbed: relations.socialEmbed,
      });
  },
};