UNPKG

@r3l/app

Version:
126 lines (106 loc) 4.66 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TooltipContainer; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _reactRedux = require("react-redux"); var _propTypes = _interopRequireDefault(require("prop-types")); var _dripsy = require("dripsy"); var _setupTooltips = require("./mobile/setupTooltips"); var _reactTooltip = _interopRequireDefault(require("react-tooltip")); var _styled = require("../styled"); var _excluded = ["children", "name", "data", "info", "inline"]; function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var InfoImage = require("../../../public/img/info.png"); var isNative = process.env.WEB !== 'true'; var AbsoluteWrapper = (0, _dripsy.styled)(_styled.Text)({ position: 'absolute', top: 0, left: 0, bottom: 0, right: 0, overflow: 'hidden', zIndex: 1000 }); TooltipContainer.propTypes = { name: _propTypes.default.string, data: _propTypes.default.object, children: _propTypes.default.object, info: _propTypes.default.bool, inline: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.number]) }; function TooltipContainer(_ref) { var children = _ref.children, name = _ref.name, data = _ref.data, info = _ref.info, inline = _ref.inline, rest = (0, _objectWithoutProperties2.default)(_ref, _excluded); (0, _react.useEffect)(function () { if (_reactTooltip.default.rebuild) _reactTooltip.default.rebuild(); }, [data, name, children]); (0, _react.useEffect)(function () { return data.shouldRegister && initTooltip(); }, [data.shouldRegister, initTooltip]); var dispatch = (0, _reactRedux.useDispatch)(); var el = (0, _react.useRef)(); var _setupMobileTooltips = (0, _setupTooltips.setupMobileTooltips)({ tooltips: [{ name: name, el: el, data: data }], dispatch: dispatch }), toggleTooltip = _setupMobileTooltips.toggleTooltip, initTooltip = _setupMobileTooltips.initTooltip; var Wrapper = children && _styled.View || AbsoluteWrapper; return info ? /*#__PURE__*/_react.default.createElement(_styled.Text, { ref: el // onLongPress={() => toggleTooltip(name)} , onPress: data.desktopOnly || !isNative ? null : function () { return toggleTooltip(name); } }, /*#__PURE__*/_react.default.createElement(_styled.Image, (0, _extends2.default)({ dataSet: { tip: JSON.stringify({ type: 'TEXT', props: data }), for: 'mainTooltip', place: data.position, 'event-off': 'click' }, source: InfoImage, resizeMode: 'contain', sx: { height: 2, width: 2 }, inline: inline }, rest))) : /*#__PURE__*/_react.default.createElement(Wrapper, { ref: el, dataSet: { tip: JSON.stringify({ type: 'TEXT', props: data }), for: 'mainTooltip', place: data.position, 'event-off': 'click' }, onLongPress: function onLongPress() { return toggleTooltip(name); }, onPress: data.desktopOnly || !isNative ? null : function () { return toggleTooltip(name); } }, children); } //# sourceMappingURL=tooltip.component.js.map