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.

87 lines (70 loc) 3.37 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 _randomID = _interopRequireDefault(require("../../utils/randomID")); 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$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; 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, _react.useMemo)(function () { return (0, _randomID.default)("mobileDialogID"); }, []); var handleInMobile = (0, _react.useCallback)(function (ev) { ev.preventDefault(); if (stopPropagation) { ev.stopPropagation(); } setRender(true); setshownWithTimeout(true); clearRenderTimeout(); }, [clearRenderTimeout, setRender, setshownWithTimeout, stopPropagation]); var handleOutMobile = (0, _react.useCallback)(function () { setshown(false); setRenderWithTimeout(false); }, [setRenderWithTimeout, setshown]); if (!enabled) return children; return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_TooltipPrimitive.StyledTooltipChildren, { onClick: handleInMobile, "aria-describedby": enabled ? mobileDialogID : undefined, tabIndex: enabled ? tabIndex : undefined, enabled: enabled, removeUnderlinedText: removeUnderlinedText }, children), enabled && render && /*#__PURE__*/_react.default.createElement(_Portal.default, { renderInto: "dialogs" }, /*#__PURE__*/_react.default.createElement(_DialogContent.default, { dataTest: dataTest, shown: shown, dialogId: mobileDialogID, onClose: handleOutMobile }, content))); }; var _default = MobileDialog; exports.default = _default;