-
Notifications
You must be signed in to change notification settings - Fork 65
/
addon-version-list.js
37 lines (36 loc) · 1.34 KB
/
addon-version-list.js
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
import { gt } from '@ember/object/computed';
import { computed } from '@ember/object';
import { inject as service } from '@ember/service';
import Component from '@ember/component';
export default Component.extend({
showAll: false,
emberVersions: service(),
showingVersions: computed('versions', 'showAll', function() {
if (this.get('showAll')) {
return this.get('versions');
}
return (this.get('versions') || []).slice(0, 10);
}),
emberVersionDataAfterOldestShowingAddonVersion: computed('emberVersions.versionData', 'showingVersions.lastObject', function() {
let oldestVersionDate = this.get('showingVersions.lastObject.released');
return this.get('emberVersions.versionData').filter(function(version) {
return version.released > oldestVersionDate;
});
}),
combinedVersions: computed(
'emberVersionDataAfterOldestShowingAddonVersion',
'showingVersions',
function() {
return (this.get('emberVersionDataAfterOldestShowingAddonVersion') || []).concat(this.get('showingVersions')).sortBy('released').reverse();
}
),
moreThan10Versions: gt('versions.length', 10),
thereAreHiddenVersions: computed('moreThan10Versions', 'showAll', function() {
return this.get('moreThan10Versions') && !this.get('showAll');
}),
actions: {
showAllVersions() {
this.set('showAll', true);
}
}
});