« get me outta code hell

generateContributionTooltip.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/generateContributionTooltip.js
blob: 3a31014d73d162829d29f6dcc7fcae02f6249140 (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
export default {
  contentDependencies: [
    'generateContributionTooltipChronologySection',
    'generateContributionTooltipExternalLinkSection',
    'generateTooltip',
  ],

  extraDependencies: ['html'],

  relations: (relation, contribution) => ({
    tooltip:
      relation('generateTooltip'),

    externalLinkSection:
      relation('generateContributionTooltipExternalLinkSection', contribution),

    chronologySection:
      relation('generateContributionTooltipChronologySection', contribution),
  }),

  slots: {
    showExternalLinks: {type: 'boolean'},
    showChronology: {type: 'boolean'},

    chronologyKind: {type: 'string'},
  },

  generate: (relations, slots, {html}) =>
    relations.tooltip.slots({
      attributes:
        {class: 'contribution-tooltip'},

      contentAttributes: {
        [html.joinChildren]:
          html.tag('span', {class: 'tooltip-divider'}),
      },

      content: [
        slots.showExternalLinks &&
          relations.externalLinkSection,

        slots.showChronology &&
          relations.chronologySection.slots({
            kind: slots.chronologyKind,
          }),
      ],
    }),
};