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
  | 
import {empty} from '#sugar';
export default {
  relations(relation, album) {
    return {
      socialEmbed:
        relation('generateSocialEmbed'),
      description:
        relation('generateAlbumSocialEmbedDescription', album),
    };
  },
  data(album) {
    const data = {};
    data.hasHeading = !empty(album.groups);
    if (data.hasHeading) {
      const firstGroup = album.groups[0];
      data.headingGroupName = firstGroup.name;
      data.headingGroupDirectory = firstGroup.directory;
    }
    data.hasImage = album.hasCoverArt;
    if (data.hasImage) {
      data.imagePath = album.coverArtworks[0].path;
    }
    data.albumName = album.name;
    return data;
  },
  generate: (data, relations, {absoluteTo, language}) =>
    language.encapsulate('albumPage.socialEmbed', embedCapsule =>
      relations.socialEmbed.slots({
        title:
          language.$(embedCapsule, 'title', {
            album: data.albumName,
          }),
        description: relations.description,
        headingContent:
          (data.hasHeading
            ? language.$(embedCapsule, 'heading', {
                group: data.headingGroupName,
              })
            : null),
        headingLink:
          (data.hasHeading
            ? absoluteTo('localized.groupGallery', data.headingGroupDirectory)
            : null),
        imagePath:
          (data.hasImage
            ? data.imagePath
            : null),
      })),
};
  |