Skip to content

Commit ae2af38

Browse files
committed
fix: catch querySelector errors in focusableChildren()
closes #22238
1 parent d448e0e commit ae2af38

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

packages/vuetify/src/util/helpers.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
unref,
1212
watchEffect,
1313
} from 'vue'
14+
import { consoleError } from '@/util/console'
1415
import { IN_BROWSER } from '@/util/globals'
1516

1617
// Types
@@ -666,7 +667,16 @@ export function focusableChildren (el: Element, filterByTabIndex = true) {
666667
]
667668
.map(s => `${s}${filterByTabIndex ? ':not([tabindex="-1"])' : ''}:not([disabled], [inert])`)
668669
.join(', ')
669-
return ([...el.querySelectorAll(targets)] as HTMLElement[])
670+
671+
let elements
672+
try {
673+
elements = [...el.querySelectorAll(targets)] as HTMLElement[]
674+
} catch (err) {
675+
consoleError(String(err))
676+
return []
677+
}
678+
679+
return elements
670680
.filter(x => !x.closest('[inert]')) // does not have inert parent
671681
.filter(x => !!x.offsetParent || x.getClientRects().length > 0) // is rendered
672682
.filter(x => !x.parentElement?.closest('details:not([open])') ||

0 commit comments

Comments
 (0)