diff --git a/webapp/components/Chat/Chat.vue b/webapp/components/Chat/Chat.vue index c02165248..fccaee5b8 100644 --- a/webapp/components/Chat/Chat.vue +++ b/webapp/components/Chat/Chat.vue @@ -365,7 +365,7 @@ export default { addRoom() { this.$emit('open-user-search') - } + }, }, } diff --git a/webapp/components/Group/AddGroupMember.vue b/webapp/components/Group/AddGroupMember.vue index 8e66c7be2..2cb71f011 100644 --- a/webapp/components/Group/AddGroupMember.vue +++ b/webapp/components/Group/AddGroupMember.vue @@ -3,33 +3,7 @@

{{ $t('group.addUser') }}

- - - + import { changeGroupMemberRoleMutation } from '~/graphql/groups.js' -import { searchUsers } from '~/graphql/Search.js' +import SelectUserSearch from '~/components/generic/SelectUserSearch/SelectUserSearch' import UserTeaser from '~/components/UserTeaser/UserTeaser.vue' -import { isEmpty } from 'lodash' export default { name: 'AddGroupMember', components: { UserTeaser, + SelectUserSearch, }, props: { groupId: { @@ -73,62 +47,34 @@ export default { }, data() { return { - users: [], id: 'search-user-to-add-to-group', - query: '', user: {}, isOpen: false, } }, - computed: { - startSearch() { - return this.query && this.query.length > 3 - }, - }, methods: { cancelModal() { - this.clear() + this.$refs.selectUserSearch.clear() this.isOpen = false }, closeModal() { - this.clear() + this.$refs.selectUserSearch.clear() this.isOpen = false }, confirmModal() { this.addMemberToGroup() this.isOpen = false - this.clear() + this.$refs.selectUserSearch.clear() }, - onFocus() {}, - onBlur() { - this.query = '' - }, - handleInput(event) { - this.query = event.target ? event.target.value.trim() : '' - }, - onDelete(event) { - const value = event.target ? event.target.value.trim() : '' - if (isEmpty(value)) { - this.clear() - } else { - this.handleInput(event) - } - }, - clear() { - this.query = '' - this.user = {} - this.users = [] - }, - onSelect(item) { - this.user = item + selectUser(user) { + this.user = user if (this.groupMembers.find((member) => member.id === this.user.id)) { this.$toast.error(this.$t('group.errors.userAlreadyMember', { name: this.user.name })) - this.clear() + this.$refs.selectUserSearch.clear() return } this.isOpen = true }, - onEnter() {}, async addMemberToGroup() { const newRole = 'usual' const username = this.user.name @@ -149,29 +95,9 @@ export default { } }, }, - apollo: { - searchUsers: { - query() { - return searchUsers - }, - variables() { - return { - query: this.query, - firstUsers: 5, - usersOffset: 0, - } - }, - skip() { - return !this.startSearch - }, - update({ searchUsers }) { - this.users = searchUsers.users - }, - fetchPolicy: 'cache-and-network', - }, - }, } +