UNPKG

@wordpress/components

Version:
53 lines (42 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _rovingTabIndexContext = require("./roving-tab-index-context"); /** * WordPress dependencies */ /** * Internal dependencies */ var _default = (0, _element.forwardRef)(function RovingTabIndexItem({ children, as: Component, ...props }, forwardedRef) { const localRef = (0, _element.useRef)(); const ref = forwardedRef || localRef; const { lastFocusedElement, setLastFocusedElement } = (0, _rovingTabIndexContext.useRovingTabIndexContext)(); let tabIndex; if (lastFocusedElement) { tabIndex = lastFocusedElement === ref.current ? 0 : -1; } const onFocus = event => setLastFocusedElement(event.target); const allProps = { ref, tabIndex, onFocus, ...props }; if (typeof children === 'function') { return children(allProps); } return (0, _element.createElement)(Component, allProps, children); }); exports.default = _default; //# sourceMappingURL=roving-tab-index-item.js.map