Skip to content

Commit f198626

Browse files
committed
content: generateAlbumSocialEmbedDescription: code cleanup
Also fixes #555 by scrapping hasAny altogether.
1 parent b0444ca commit f198626

File tree

1 file changed

+35
-42
lines changed

1 file changed

+35
-42
lines changed

src/content/dependencies/generateAlbumSocialEmbedDescription.js

+35-42
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,39 @@ import {accumulateSum} from '#sugar';
33
export default {
44
extraDependencies: ['language'],
55

6-
data(album) {
7-
const data = {};
8-
9-
const duration = accumulateSum(album.tracks, track => track.duration);
10-
11-
data.hasDuration = duration > 0;
12-
data.hasTracks = album.tracks.length > 0;
13-
data.hasDate = !!album.date;
14-
data.hasAny = (data.hasDuration || data.hasTracks || data.hasDuration);
15-
16-
if (!data.hasAny)
17-
return data;
18-
19-
if (data.hasDuration)
20-
data.duration = duration;
21-
22-
if (data.hasTracks)
23-
data.tracks = album.tracks.length;
24-
25-
if (data.hasDate)
26-
data.date = album.date;
27-
28-
return data;
29-
},
30-
31-
generate(data, {language}) {
32-
return language.formatString(
33-
'albumPage.socialEmbed.body' + [
34-
data.hasDuration && '.withDuration',
35-
data.hasTracks && '.withTracks',
36-
data.hasDate && '.withReleaseDate',
37-
].filter(Boolean).join(''),
38-
39-
Object.fromEntries([
40-
data.hasDuration &&
41-
['duration', language.formatDuration(data.duration)],
42-
data.hasTracks &&
43-
['tracks', language.countTracks(data.tracks, {unit: true})],
44-
data.hasDate &&
45-
['date', language.formatDate(data.date)],
46-
].filter(Boolean)));
47-
},
6+
data: (album) => ({
7+
duration:
8+
accumulateSum(album.tracks, track => track.duration),
9+
10+
tracks:
11+
album.tracks.length,
12+
13+
date:
14+
album.date,
15+
}),
16+
17+
generate: (data, {language}) =>
18+
language.encapsulate('albumPage.socialEmbed.body', workingCapsule => {
19+
const workingOptions = {};
20+
21+
if (data.duration > 0) {
22+
workingCapsule += '.withDuration';
23+
workingOptions.duration =
24+
language.formatDuration(data.duration);
25+
}
26+
27+
if (data.tracks > 0) {
28+
workingCapsule += '.withTracks';
29+
workingOptions.tracks =
30+
language.countTracks(data.tracks, {unit: true});
31+
}
32+
33+
if (data.date) {
34+
workingCapsule += '.withReleaseDate';
35+
workingOptions.date =
36+
language.formatDate(data.date);
37+
}
38+
39+
return language.$(workingCapsule, workingOptions);
40+
}),
4841
};

0 commit comments

Comments
 (0)