diff --git a/web_src/js/components/DiscussionTree.vue b/web_src/js/components/DiscussionTree.vue
index 835d16137d4de..33678a07963e1 100644
--- a/web_src/js/components/DiscussionTree.vue
+++ b/web_src/js/components/DiscussionTree.vue
@@ -2,12 +2,14 @@
import DiscussionTreeItem from './DiscussionTreeItem.vue';
import {discussionTreeStore} from '../modules/stores.js';
import {setFileFolding} from '../features/file-fold.js';
+import {debounce} from 'lodash';
export default {
components: {DiscussionTreeItem},
data: () => {
return {
- store: discussionTreeStore()
+ localSearchInput: '',
+ store: discussionTreeStore(),
};
},
computed: {
@@ -15,6 +17,9 @@ export default {
const result = [];
for (const file of this.store.files) {
// Split file into directories
+ const filterEnabled = this.store.searchInput.length !== 0;
+
+ if (filterEnabled && !file.Name.includes(this.store.searchInput)) continue;
const names = file.Name.split('/');
let index = 0;
let parent = null;
@@ -99,13 +104,19 @@ export default {
}
},
},
+ watch: {
+ localSearchInput: debounce(function (value) {
+ this.store.searchInput = value;
+ }, 33);
+ }
};