This repository has been archived by the owner on Nov 5, 2023. It is now read-only.
/
WhatsNew.vue
64 lines (62 loc) · 2.16 KB
/
WhatsNew.vue
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
64
<template>
<div>
<div
v-for="releaseNoteEntry in changelogSortedByVersionNumber"
v-bind:key="releaseNoteEntry.version"
>
<!-- <h3 class="mt-4" v-if="hideTitle !== true">{{formatDate(releaseNoteEntry.date)}} <small class="text-dark pl-3 text-capitalize">Version {{releaseNoteEntry.version}}</small></h3> -->
<h3 class="mt-4" v-if="hideTitle !== true">{{releaseNoteEntry.version}}</h3>
<div
v-if="Array.isArray(releaseNoteEntry.notes) && releaseNoteEntry.notes.length > 0"
:class="hideTitle ? '' : 'pt-2'"
>
<div
class="media"
:class="{'mb-4' : index != releaseNoteEntry.notes.length - 1}"
v-for="(note, index) in releaseNoteEntry.notes"
v-bind:key="note.text"
>
<img class="mr-3" style="width:60px" :src="'/static/update-icons/' + note.icon" alt>
<div class="media-body" :class="{'pt-3' : !note.title, 'small': small}">
<h5
class="mt-0 mb-1"
v-if="note.title"
:style="{'fontSize': small ? '1rem' : ''}"
>{{note.title}}</h5>
<span v-html="note.text"/>
</div>
</div>
</div>
<div v-else-if="typeof releaseNoteEntry.notes === 'string'" v-html="releaseNoteEntry.notes"></div>
<div v-else class="ml-4">
<fa :icon="['far', 'thumbs-up']" class="mr-1"/>Just working on making some stuff run better.
</div>
</div>
</div>
</template>
<script>
import changelog from '~/mixins/data/changelog.js';
import versionSort from 'semver-compare';
import dateFormatMixin from '~/mixins/dateFormat';
export default {
name: 'whatsNew',
mixins: [dateFormatMixin],
props: ['limit', 'hideTitle', 'small'],
computed: {
changelogSortedByVersionNumber: function() {
let sortedChangelog = changelog.sort(function(
changelogEntryA,
changelogEntryB
) {
return versionSort(changelogEntryB.version, changelogEntryA.version);
});
return sortedChangelog.slice(0, this.limit || 10);
},
},
methods: {
formatDate: function(date) {
return this.dateFormat(date, 'MMM. D, yyyy');
},
},
};
</script>