@@ -3,46 +3,39 @@ import {accumulateSum} from '#sugar';
3
3
export default {
4
4
extraDependencies : [ 'language' ] ,
5
5
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
+ } ) ,
48
41
} ;
0 commit comments