From ec69d5e620906c4c34e7f4c35b57b7e05e3d3bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Javier=20Villase=C3=B1or=20Castillo?= Date: Thu, 18 Apr 2024 12:57:27 -0600 Subject: [PATCH] feat(player): Make 'searchForTrackSelect_' private & use 'el' as parameter in function 'getIsFocusable' (#8697) --- src/js/component.js | 6 ++++-- src/js/spatial-navigation.js | 8 +++++--- test/unit/spatial-navigation.test.js | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/js/component.js b/src/js/component.js index e1c157796c..6b60b9596d 100644 --- a/src/js/component.js +++ b/src/js/component.js @@ -1840,8 +1840,10 @@ class Component { * @return {boolean} * If the component can be focused, will be `true`. Otherwise, `false`. */ - getIsFocusable() { - return this.el_.tabIndex >= 0 && !(this.getIsDisabled() || this.getIsExpresslyInert()); + getIsFocusable(el) { + const element = el || this.el_; + + return element.tabIndex >= 0 && !(this.getIsDisabled() || this.getIsExpresslyInert()); } /** diff --git a/src/js/spatial-navigation.js b/src/js/spatial-navigation.js index 2db104c382..08c91e2fa6 100644 --- a/src/js/spatial-navigation.js +++ b/src/js/spatial-navigation.js @@ -188,7 +188,7 @@ class SpatialNavigation extends EventTarget { // If nextFocusedElement is the 'TextTrackSettings' component if (nextFocusedElement.classList.contains('vjs-text-track-settings') && !this.isPaused_) { - this.searchForTrackSelect(); + this.searchForTrackSelect_(); } } @@ -288,7 +288,7 @@ class SpatialNavigation extends EventTarget { * or `null` if no suitable child is found. */ function searchForSuitableChild(node) { - if (component.getIsFocusable() && component.getIsAvailableToBeFocused(node)) { + if (component.getIsFocusable(node) && component.getIsAvailableToBeFocused(node)) { return node; } @@ -537,8 +537,10 @@ class SpatialNavigation extends EventTarget { /** * This gets called by 'handlePlayerBlur_' if 'spatialNavigation' is enabled. * Searches for the first 'TextTrackSelect' inside of modal to focus. + * + * @private */ - searchForTrackSelect() { + searchForTrackSelect_() { const spatialNavigation = this; for (const component of (spatialNavigation.updateFocusableComponents())) { diff --git a/test/unit/spatial-navigation.test.js b/test/unit/spatial-navigation.test.js index 9c0fbb0421..0a28a58bea 100644 --- a/test/unit/spatial-navigation.test.js +++ b/test/unit/spatial-navigation.test.js @@ -476,7 +476,7 @@ QUnit.test('should call `searchForTrackSelect()` if spatial navigation is enable Object.defineProperty(clickEvent, 'relatedTarget', {writable: false, value: element}); Object.defineProperty(clickEvent, 'currentTarget', {writable: false, value: element}); - const trackSelectSpy = sinon.spy(this.spatialNav, 'searchForTrackSelect'); + const trackSelectSpy = sinon.spy(this.spatialNav, 'searchForTrackSelect_'); const textTrackSelectComponent = new TextTrackSelect(this.player, { SelectOptions: ['Option 1', 'Option 2', 'Option 3'],