UNPKG

@enact/sandstone

Version:

Large-screen/TV support library for Enact, containing a variety of UI components.

43 lines (42 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.CancelDecorator = void 0; var _hoc = _interopRequireDefault(require("@enact/core/hoc")); var _Cancelable = _interopRequireDefault(require("@enact/ui/Cancelable")); var _spotlight = _interopRequireDefault(require("@enact/spotlight")); var _ViewportModule = _interopRequireDefault(require("./Viewport.module.css")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var defaultConfig = { cancel: null, shouldCancel: null }; var CancelDecorator = exports.CancelDecorator = (0, _hoc["default"])(defaultConfig, function (config, Wrapped) { var cancel = config.cancel, shouldCancel = config.shouldCancel; function handleCancel(ev, props) { var index = props.index, handler = props[cancel]; if (shouldCancel && !shouldCancel(ev, props)) { return; } if (index > 0 && handler && !document.querySelector(".".concat(_ViewportModule["default"].transitioning))) { // clear Spotlight focus var current = _spotlight["default"].getCurrent(); if (current) { current.blur(); } handler({ type: cancel, index: index - 1 }); ev.stopPropagation(); } } return (0, _Cancelable["default"])({ modal: true, onCancel: handleCancel }, Wrapped); }); var _default = exports["default"] = CancelDecorator;