Merge pull request #43271 from nextcloud/fix/a11y/status-return-focus

fix(user_status): Fix losing focus to body when closing user status modal
pull/43321/head
Pytal 2024-02-02 05:36:24 +07:00 committed by GitHub
commit 995ccb5046
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 29 additions and 7 deletions

@ -43,7 +43,9 @@
</NcButton>
<!-- Status management modal -->
<SetStatusModal v-if="isModalOpen" @close="closeModal" />
<SetStatusModal v-if="isModalOpen"
:inline="inline"
@close="closeModal" />
</component>
</template>

@ -22,6 +22,7 @@
<template>
<NcModal size="normal"
:name="$t('user_status', 'Set status')"
:set-return-focus="setReturnFocus"
@close="closeModal">
<div class="set-status-modal">
<!-- Status selector -->
@ -108,6 +109,18 @@ export default {
},
mixins: [OnlineStatusMixin],
props: {
/**
* Whether the component should be rendered as a Dashboard Status or a User Menu Entries
* true = Dashboard Status
* false = User Menu Entries
*/
inline: {
type: Boolean,
default: false,
},
},
data() {
return {
clearAt: null,
@ -156,6 +169,13 @@ export default {
return this.$t('user_status', 'Reset status')
},
setReturnFocus() {
if (this.inline) {
return undefined
}
return document.querySelector('[aria-controls="header-menu-user-menu"]') ?? undefined
},
},
watch: {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long