UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

97 lines (79 loc) 3.7 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var React = _interopRequireWildcard(require("react")); var _useRandomId = _interopRequireDefault(require("../../hooks/useRandomId")); var _useStateWithTimeout5 = _interopRequireDefault(require("../../hooks/useStateWithTimeout")); var _Portal = _interopRequireDefault(require("../../Portal")); var _TooltipPrimitive = require("../TooltipPrimitive"); var _DialogContent = _interopRequireDefault(require("./components/DialogContent")); var MobileDialog = function MobileDialog(_ref) { var children = _ref.children, _ref$enabled = _ref.enabled, enabled = _ref$enabled === void 0 ? true : _ref$enabled, _ref$renderInPortal = _ref.renderInPortal, renderInPortal = _ref$renderInPortal === void 0 ? true : _ref$renderInPortal, _ref$tabIndex = _ref.tabIndex, tabIndex = _ref$tabIndex === void 0 ? "0" : _ref$tabIndex, dataTest = _ref.dataTest, content = _ref.content, _ref$stopPropagation = _ref.stopPropagation, stopPropagation = _ref$stopPropagation === void 0 ? false : _ref$stopPropagation, removeUnderlinedText = _ref.removeUnderlinedText, _ref$block = _ref.block, block = _ref$block === void 0 ? false : _ref$block, lockScrolling = _ref.lockScrolling; var _useStateWithTimeout = (0, _useStateWithTimeout5.default)(false, 200), _useStateWithTimeout2 = (0, _slicedToArray2.default)(_useStateWithTimeout, 4), render = _useStateWithTimeout2[0], setRender = _useStateWithTimeout2[1], setRenderWithTimeout = _useStateWithTimeout2[2], clearRenderTimeout = _useStateWithTimeout2[3]; var _useStateWithTimeout3 = (0, _useStateWithTimeout5.default)(false, 200), _useStateWithTimeout4 = (0, _slicedToArray2.default)(_useStateWithTimeout3, 3), shown = _useStateWithTimeout4[0], setshown = _useStateWithTimeout4[1], setshownWithTimeout = _useStateWithTimeout4[2]; var mobileDialogID = (0, _useRandomId.default)(); var handleInMobile = React.useCallback(function (ev) { ev.preventDefault(); if (stopPropagation) { ev.stopPropagation(); } setRender(true); setshownWithTimeout(true); clearRenderTimeout(); }, [clearRenderTimeout, setRender, setshownWithTimeout, stopPropagation]); var handleOutMobile = React.useCallback(function (ev) { if (stopPropagation) { ev.stopPropagation(); } setshown(false); setRenderWithTimeout(false); }, [setRenderWithTimeout, setshown, stopPropagation]); if (!enabled) return children; var dialog = /*#__PURE__*/React.createElement(_DialogContent.default, { dataTest: dataTest, shown: shown, lockScrolling: lockScrolling, dialogId: mobileDialogID, onClose: handleOutMobile }, content); return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_TooltipPrimitive.StyledTooltipChildren, { onClick: handleInMobile, "aria-describedby": enabled ? mobileDialogID : undefined, tabIndex: enabled ? tabIndex : undefined, enabled: enabled, removeUnderlinedText: removeUnderlinedText, block: block }, children), enabled && render && (renderInPortal ? /*#__PURE__*/React.createElement(_Portal.default, { renderInto: "dialogs" }, dialog) : dialog)); }; var _default = MobileDialog; exports.default = _default;