diff --git a/src/components/NcActions/NcActions.vue b/src/components/NcActions/NcActions.vue index 9a33923547..63dc75a585 100644 --- a/src/components/NcActions/NcActions.vue +++ b/src/components/NcActions/NcActions.vue @@ -603,6 +603,17 @@ export default { default: false, }, + /** + * This disables the internal open management, + * so the actions menu only respects the `open` prop. + * This is e.g. necessary for the NcAvatar component + * to only open the actions menu after loading it's entries has finished. + */ + manualOpen: { + type: Boolean, + default: false, + }, + /** * Force the actions to display in a three dot menu */ @@ -717,7 +728,6 @@ export default { }, emits: [ - 'update:open', 'open', 'update:open', 'close', @@ -809,7 +819,6 @@ export default { this.$emit('close') // close everything - this.opened = false this.focusIndex = 0 // focus back the menu button @@ -1074,6 +1083,7 @@ export default { placement: this.placement, boundary: this.boundariesElement, container: this.container, + ...this.manualOpen && { triggers: [] }, popoverBaseClass: 'action-item__popper', }, on: { diff --git a/src/components/NcAvatar/NcAvatar.vue b/src/components/NcAvatar/NcAvatar.vue index 07d4213969..b568991301 100644 --- a/src/components/NcAvatar/NcAvatar.vue +++ b/src/components/NcAvatar/NcAvatar.vue @@ -112,7 +112,8 @@ export default { v-click-outside="closeMenu" :class="{ 'avatardiv--unknown': userDoesNotExist, - 'avatardiv--with-menu': hasMenu + 'avatardiv--with-menu': hasMenu, + 'avatardiv--with-menu-loading': contactsMenuLoading }" :title="tooltip" :style="avatarStyle" @@ -120,7 +121,7 @@ export default { :tabindex="hasMenu ? '0' : undefined" :aria-label="avatarAriaLabel" :role="hasMenu ? 'button' : undefined" - v-on="hasMenu ? { click: toggleMenu } : {}" + @click="toggleMenu" @keydown.enter="toggleMenu"> @@ -133,20 +134,32 @@ export default { - - -