UNPKG

@atlaskit/drawer

Version:

A drawer is a panel that slides in from the left side of the screen.

44 lines (43 loc) • 1.74 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactFocusLock = _interopRequireDefault(require("react-focus-lock")); /** * __Focus lock__ * * Thin wrapper around react-focus-lock. */ var FocusLock = function FocusLock(_ref) { var _ref$isFocusLockEnabl = _ref.isFocusLockEnabled, isFocusLockEnabled = _ref$isFocusLockEnabl === void 0 ? true : _ref$isFocusLockEnabl, _ref$autoFocusFirstEl = _ref.autoFocusFirstElem, autoFocusFirstElem = _ref$autoFocusFirstEl === void 0 ? true : _ref$autoFocusFirstEl, _ref$shouldReturnFocu = _ref.shouldReturnFocus, shouldReturnFocus = _ref$shouldReturnFocu === void 0 ? true : _ref$shouldReturnFocu, children = _ref.children; var getFocusTarget = function getFocusTarget() { if (typeof shouldReturnFocus === 'boolean') { return shouldReturnFocus; } return false; }; var onDeactivation = function onDeactivation() { if (typeof shouldReturnFocus !== 'boolean') { window.setTimeout(function () { var _shouldReturnFocus$cu; shouldReturnFocus === null || shouldReturnFocus === void 0 || (_shouldReturnFocus$cu = shouldReturnFocus.current) === null || _shouldReturnFocus$cu === void 0 || _shouldReturnFocus$cu.focus(); }, 0); } }; return /*#__PURE__*/_react.default.createElement(_reactFocusLock.default, { disabled: !isFocusLockEnabled, autoFocus: autoFocusFirstElem, returnFocus: getFocusTarget(), onDeactivation: onDeactivation }, children); }; var _default = exports.default = FocusLock;