Skip to content

Commit 00a84d2

Browse files
susnuxAndyScherzinger
authored andcommitted
refactor: use eventbus for updated filters
prevent filters not applied if `filtersChanged` was set before file list mounted. Signed-off-by: Ferdinand Thiessen <[email protected]>
1 parent 6376db5 commit 00a84d2

File tree

3 files changed

+7
-15
lines changed

3 files changed

+7
-15
lines changed

apps/files/src/eventbus.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ declare module '@nextcloud/event-bus' {
1212
'files:favorites:added': Node
1313
'files:favorites:removed': Node
1414

15+
'files:filters:changed': undefined
16+
1517
'files:node:created': Node
1618
'files:node:deleted': Node
1719
'files:node:moved': { node: Node, oldSource: string }

apps/files/src/store/filters.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: AGPL-3.0-or-later
44
*/
55
import type { FilterUpdateChipsEvent, IFileListFilter, IFileListFilterChip } from '@nextcloud/files'
6-
import { subscribe } from '@nextcloud/event-bus'
6+
import { emit, subscribe } from '@nextcloud/event-bus'
77
import { getFileListFilters } from '@nextcloud/files'
88
import { defineStore } from 'pinia'
99
import { computed, ref } from 'vue'
@@ -20,7 +20,6 @@ function isFileListFilterWithUi(value: IFileListFilter): value is Required<IFile
2020
export const useFiltersStore = defineStore('filters', () => {
2121
const chips = ref<Record<string, IFileListFilterChip[]>>({})
2222
const filters = ref<IFileListFilter[]>([])
23-
const filtersChanged = ref(false)
2423

2524
/**
2625
* Currently active filter chips
@@ -77,7 +76,7 @@ export const useFiltersStore = defineStore('filters', () => {
7776
* @private
7877
*/
7978
function onFilterUpdate() {
80-
filtersChanged.value = true
79+
emit('files:filters:changed')
8180
}
8281

8382
/**
@@ -122,7 +121,6 @@ export const useFiltersStore = defineStore('filters', () => {
122121
chips,
123122
filters,
124123
filtersWithUI,
125-
filtersChanged,
126124

127125
// getters / computed
128126
activeChips,

apps/files/src/views/FilesList.vue

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -433,10 +433,6 @@ export default defineComponent({
433433
&& this.currentFolder && (this.currentFolder.permissions & Permission.SHARE) !== 0
434434
},
435435
436-
filtersChanged() {
437-
return this.filtersStore.filtersChanged
438-
},
439-
440436
showCustomEmptyView() {
441437
return !this.loading && this.isEmptyDir && this.currentView?.emptyView !== undefined
442438
},
@@ -496,13 +492,6 @@ export default defineComponent({
496492
// Also refresh the filtered content
497493
this.filterDirContent()
498494
},
499-
500-
filtersChanged() {
501-
if (this.filtersChanged) {
502-
this.filterDirContent()
503-
this.filtersStore.filtersChanged = false
504-
}
505-
},
506495
},
507496
508497
async mounted() {
@@ -512,6 +501,9 @@ export default defineComponent({
512501
// reload on settings change
513502
subscribe('files:config:updated', this.fetchContent)
514503
504+
// filter content if filter were changed
505+
subscribe('files:filters:changed', this.filterDirContent)
506+
515507
// Finally, fetch the current directory contents
516508
await this.fetchContent()
517509
if (this.fileId) {

0 commit comments

Comments
 (0)