diff --git a/src/mixins/RouterMixin.js b/src/mixins/RouterMixin.js index e88635ff32..c71791400a 100644 --- a/src/mixins/RouterMixin.js +++ b/src/mixins/RouterMixin.js @@ -2,6 +2,9 @@ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + +import { ROUTE_CIRCLE, ROUTE_USER_GROUP } from '../models/constants.ts' + export default { computed: { // router variables @@ -9,6 +12,13 @@ export default { return this.$route.params.selectedContact }, selectedGroup() { + const { name } = this.$route + if (name === 'circle') { + return ROUTE_CIRCLE + } + if (name === 'user_group') { + return ROUTE_USER_GROUP + } return this.$route.params.selectedGroup }, selectedCircle() { diff --git a/src/views/Contacts.vue b/src/views/Contacts.vue index 9def24512d..4896e68ab6 100644 --- a/src/views/Contacts.vue +++ b/src/views/Contacts.vue @@ -275,7 +275,7 @@ export default { methods: { async newContact() { - if (this.isCirclesView) { + if (this.selectedCircle) { emit('contacts:circles:append', this.selectedCircle.id) return } @@ -314,7 +314,14 @@ export default { // set group if it's selected already // BUT NOT if it's the _fake_ groups like all contacts and not grouped - if ([GROUP_ALL_CONTACTS, GROUP_NO_GROUP_CONTACTS].indexOf(this.selectedGroup) === -1) { + if ( + ![ + GROUP_ALL_CONTACTS, + GROUP_NO_GROUP_CONTACTS, + ROUTE_CIRCLE, + ROUTE_USER_GROUP, + ].includes(this.selectedGroup) + ) { contact.groups = [this.selectedGroup] } try { @@ -323,7 +330,9 @@ export default { await this.$router.push({ name: 'contact', params: { - selectedGroup: this.selectedGroup, + selectedGroup: this.selectedUserGroup + ? GROUP_ALL_CONTACTS + : this.selectedGroup, selectedContact: contact.key, }, })