diff --git a/core/src/components/UnifiedSearch/SearchableList.vue b/core/src/components/UnifiedSearch/SearchableList.vue index 43f7ace1b64ac..33f45d062661f 100644 --- a/core/src/components/UnifiedSearch/SearchableList.vue +++ b/core/src/components/UnifiedSearch/SearchableList.vue @@ -32,6 +32,7 @@ :label="labelText" trailing-button-icon="close" :show-trailing-button="searchTerm !== ''" + @update:value="searchTermChanged" @trailing-button-click="clearSearch"> @@ -126,6 +127,9 @@ export default { this.clearSearch() this.opened = false }, + searchTermChanged(term) { + this.$emit('search-term-change', term) + }, }, } diff --git a/core/src/services/UnifiedSearchService.js b/core/src/services/UnifiedSearchService.js index e477a59eb4cf6..9e16fe1880c12 100644 --- a/core/src/services/UnifiedSearchService.js +++ b/core/src/services/UnifiedSearchService.js @@ -22,6 +22,7 @@ import { generateOcsUrl, generateUrl } from '@nextcloud/router' import axios from '@nextcloud/axios' +import { getCurrentUser } from '@nextcloud/auth' /** * Create a cancel token @@ -103,5 +104,20 @@ export async function getContacts({ searchTerm }) { const { data: { contacts } } = await axios.post(generateUrl('/contactsmenu/contacts'), { filter: searchTerm, }) + /* + * Add authenticated user to list of contacts for search filter + * If authtenicated user is searching/filtering, do not add them to the list + */ + if (!searchTerm) { + let authenticatedUser = getCurrentUser() + authenticatedUser = { + id: authenticatedUser.uid, + fullName: authenticatedUser.displayName, + emailAddresses: [], + } + contacts.unshift(authenticatedUser) + return contacts + } + return contacts } diff --git a/core/src/views/UnifiedSearchModal.vue b/core/src/views/UnifiedSearchModal.vue index 1d6b138fdb353..8d2d282049583 100644 --- a/core/src/views/UnifiedSearchModal.vue +++ b/core/src/views/UnifiedSearchModal.vue @@ -55,6 +55,7 @@