diff options
author | Maksim Sukharev <antreesy.web@gmail.com> | 2025-01-18 11:20:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-18 11:20:25 +0100 |
commit | e0c1ea23307ef3c46710a29785a28c1f1b5476f0 (patch) | |
tree | 2fc7bee56dc5f323b1f8945c826bf7441d1899a5 /core | |
parent | fe43dfadd39493791a2fa65ce6e2daabcde0c481 (diff) | |
parent | 1b7be897b543ba22db608473969dc64000b52ade (diff) | |
download | nextcloud-server-e0c1ea23307ef3c46710a29785a28c1f1b5476f0.tar.gz nextcloud-server-e0c1ea23307ef3c46710a29785a28c1f1b5476f0.zip |
Merge pull request #50241 from nextcloud/perf/noid/unified-search-init
Diffstat (limited to 'core')
-rw-r--r-- | core/src/components/UnifiedSearch/UnifiedSearchModal.vue | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/core/src/components/UnifiedSearch/UnifiedSearchModal.vue b/core/src/components/UnifiedSearch/UnifiedSearchModal.vue index 7400956f96b..09d3db52835 100644 --- a/core/src/components/UnifiedSearch/UnifiedSearchModal.vue +++ b/core/src/components/UnifiedSearch/UnifiedSearchModal.vue @@ -264,6 +264,7 @@ export default defineComponent({ contacts: [], showDateRangeModal: false, internalIsVisible: this.open, + initialized: false, } }, @@ -308,6 +309,18 @@ export default defineComponent({ // Load results when opened with already filled query if (this.open) { this.focusInput() + if (!this.initialized) { + Promise.all([getProviders(), getContacts({ searchTerm: '' })]) + .then(([providers, contacts]) => { + this.providers = this.groupProvidersByApp([...providers, ...this.externalFilters]) + this.contacts = this.mapContacts(contacts) + unifiedSearchLogger.debug('Search providers and contacts initialized:', { providers: this.providers, contacts: this.contacts }) + this.initialized = true + }) + .catch((error) => { + unifiedSearchLogger.error(error) + }) + } if (this.searchQuery) { this.find(this.searchQuery) } @@ -324,18 +337,6 @@ export default defineComponent({ mounted() { subscribe('nextcloud:unified-search:add-filter', this.handlePluginFilter) - getProviders().then((providers) => { - this.providers = providers - this.externalFilters.forEach(filter => { - this.providers.push(filter) - }) - this.providers = this.groupProvidersByApp(this.providers) - unifiedSearchLogger.debug('Search providers', { providers: this.providers }) - }) - getContacts({ searchTerm: '' }).then((contacts) => { - this.contacts = this.mapContacts(contacts) - unifiedSearchLogger.debug('Contacts', { contacts: this.contacts }) - }) }, methods: { /** |