diff --git a/components/tables/podcast/EpisodesTable.vue b/components/tables/podcast/EpisodesTable.vue index b3bac158..614bb2da 100644 --- a/components/tables/podcast/EpisodesTable.vue +++ b/components/tables/podcast/EpisodesTable.vue @@ -5,7 +5,7 @@
@@ -14,10 +14,14 @@
- @@ -43,8 +47,7 @@ export default { showFiltersModal: false, sortKey: 'publishedAt', sortDesc: false, - filterKey: 'all', - episodesFiltered: [], + filterKey: 'incomplete', episodeSortItems: [ { text: 'Pub Date', @@ -89,19 +92,28 @@ export default { handler() { this.init() } - }, - filterKey: { - handler() { - this.setEpisodesFiltered() - } - }, - sortKey: { - handler() { - this.setEpisodesFiltered() - } } }, computed: { + episodesAreFiltered() { + return this.episodesFiltered.length !== this.episodesCopy.length + }, + episodesFiltered() { + return this.episodesCopy.filter((ep) => { + var mediaProgress = this.getEpisodeProgress(ep) + if (this.filterKey === 'incomplete') { + return !mediaProgress || !mediaProgress.isFinished + } else if (this.filterKey === 'complete') { + return mediaProgress && mediaProgress.isFinished + } else if (this.filterKey === 'inProgress') { + return mediaProgress && !mediaProgress.isFinished + } else if (this.filterKey === 'all') { + console.log('Filter key is all') + return true + } + return true + }) + }, episodesSorted() { return this.episodesFiltered.sort((a, b) => { if (this.sortDesc) { @@ -128,29 +140,6 @@ export default { } }, methods: { - setEpisodesFiltered() { - this.episodesFiltered = this.episodesCopy - .filter((ep) => { - var mediaProgress = this.getEpisodeProgress(ep) - if (this.filterKey === 'incomplete') { - return !mediaProgress || !mediaProgress.isFinished - } else if (this.filterKey === 'complete') { - return mediaProgress && mediaProgress.isFinished - } else if (this.filterKey === 'inProgress') { - return mediaProgress && !mediaProgress.isFinished - } else if (this.filterKey === 'all') { - console.log('Filter key is all') - return true - } - return true - }) - .sort((a, b) => { - if (this.sortDesc) { - return String(b[this.sortKey]).localeCompare(String(a[this.sortKey]), undefined, { numeric: true, sensitivity: 'base' }) - } - return String(a[this.sortKey]).localeCompare(String(b[this.sortKey]), undefined, { numeric: true, sensitivity: 'base' }) - }) - }, setFilter(filter) { this.filterKey = filter console.log('Set filter', this.filterKey) @@ -170,7 +159,6 @@ export default { this.episodesCopy = this.episodes.map((ep) => { return { ...ep } }) - this.setEpisodesFiltered() } }, mounted() {}