UNPKG

@wordpress/components

Version:
41 lines (34 loc) 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = RovingTabIndex; var _element = require("@wordpress/element"); var _rovingTabIndexContext = require("./roving-tab-index-context"); /** * WordPress dependencies */ /** * Internal dependencies */ /** * Provider for adding roving tab index behaviors to tree grid structures. * * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/components/src/tree-grid/README.md */ function RovingTabIndex(_ref) { let { children } = _ref; const [lastFocusedElement, setLastFocusedElement] = (0, _element.useState)(); // Use `useMemo` to avoid creation of a new object for the providerValue // on every render. Only create a new object when the `lastFocusedElement` // value changes. const providerValue = (0, _element.useMemo)(() => ({ lastFocusedElement, setLastFocusedElement }), [lastFocusedElement]); return (0, _element.createElement)(_rovingTabIndexContext.RovingTabIndexProvider, { value: providerValue }, children); } //# sourceMappingURL=roving-tab-index.js.map