Skip to content

Commit

Permalink
feat(player): Make 'searchForTrackSelect_' private & use 'el' as para…
Browse files Browse the repository at this point in the history
…meter in function 'getIsFocusable' (#8697)
  • Loading branch information
CarlosVillasenor authored Apr 18, 2024
1 parent 21b4a52 commit ec69d5e
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
6 changes: 4 additions & 2 deletions src/js/component.js
Original file line number Diff line number Diff line change
Expand Up @@ -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());
}

/**
Expand Down
8 changes: 5 additions & 3 deletions src/js/spatial-navigation.js
Original file line number Diff line number Diff line change
Expand Up @@ -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_();
}
}

Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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())) {
Expand Down
2 changes: 1 addition & 1 deletion test/unit/spatial-navigation.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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'],
Expand Down

0 comments on commit ec69d5e

Please sign in to comment.