diff --git a/src/blur.js b/src/blur.ts similarity index 88% rename from src/blur.js rename to src/blur.ts index 0f674300..802e9481 100644 --- a/src/blur.js +++ b/src/blur.ts @@ -1,6 +1,6 @@ import {getActiveElement, isFocusable, eventWrapper} from './utils' -function blur(element) { +function blur(element: Element) { if (!isFocusable(element)) return const wasActive = getActiveElement(element.ownerDocument) === element diff --git a/src/focus.js b/src/focus.ts similarity index 88% rename from src/focus.js rename to src/focus.ts index ae1b8c89..7d602a9e 100644 --- a/src/focus.js +++ b/src/focus.ts @@ -1,6 +1,6 @@ import {getActiveElement, isFocusable, eventWrapper} from './utils' -function focus(element) { +function focus(element: Element) { if (!isFocusable(element)) return const isAlreadyActive = getActiveElement(element.ownerDocument) === element diff --git a/src/hover.js b/src/hover.ts similarity index 80% rename from src/hover.js rename to src/hover.ts index b347b90d..12199684 100644 --- a/src/hover.js +++ b/src/hover.ts @@ -2,19 +2,20 @@ import {fireEvent} from '@testing-library/dom' import { isLabelWithInternallyDisabledControl, getMouseEventOptions, + isDisabled, } from './utils' // includes `element` -function getParentElements(element) { +function getParentElements(element: Element) { const parentElements = [element] - let currentElement = element + let currentElement: Element | null = element while ((currentElement = currentElement.parentElement) != null) { parentElements.push(currentElement) } return parentElements } -function hover(element, init) { +function hover(element: Element, init?: MouseEventInit) { if (isLabelWithInternallyDisabledControl(element)) return const parentElements = getParentElements(element).reverse() @@ -23,32 +24,32 @@ function hover(element, init) { for (const el of parentElements) { fireEvent.pointerEnter(el, init) } - if (!element.disabled) { + if (!isDisabled(element)) { fireEvent.mouseOver(element, getMouseEventOptions('mouseover', init)) for (const el of parentElements) { fireEvent.mouseEnter(el, getMouseEventOptions('mouseenter', init)) } } fireEvent.pointerMove(element, init) - if (!element.disabled) { + if (!isDisabled(element)) { fireEvent.mouseMove(element, getMouseEventOptions('mousemove', init)) } } -function unhover(element, init) { +function unhover(element: Element, init?: MouseEventInit) { if (isLabelWithInternallyDisabledControl(element)) return const parentElements = getParentElements(element) fireEvent.pointerMove(element, init) - if (!element.disabled) { + if (!isDisabled(element)) { fireEvent.mouseMove(element, getMouseEventOptions('mousemove', init)) } fireEvent.pointerOut(element, init) for (const el of parentElements) { fireEvent.pointerLeave(el, init) } - if (!element.disabled) { + if (!isDisabled(element)) { fireEvent.mouseOut(element, getMouseEventOptions('mouseout', init)) for (const el of parentElements) { fireEvent.mouseLeave(el, getMouseEventOptions('mouseleave', init)) diff --git a/src/tab.ts b/src/tab.ts index 95a11171..5dd123e5 100644 --- a/src/tab.ts +++ b/src/tab.ts @@ -143,7 +143,10 @@ function tab({shift = false, focusTrap}: tabOptions = {}) { if (continueToTab) { if (nextElement === document.body) { - blur(previousElement) + /* istanbul ignore else */ + if (previousElement) { + blur(previousElement) + } } else { focus(nextElement) }