UNPKG

zmp-react

Version:

Build full featured iOS & Android apps using ZMP & React

54 lines (49 loc) 1.62 kB
import _extends from "@babel/runtime/helpers/extends"; import React, { forwardRef, useRef, useImperativeHandle } from 'react'; import { classNames, getExtraAttrs, getSlots, emit } from '../shared/utils'; import { colorClasses } from '../shared/mixins'; import { zmp } from '../shared/zmp'; var ComponentName = /*#__PURE__*/forwardRef(function (props, ref) { var className = props.className, id = props.id, style = props.style, bold = props.bold, _props$close = props.close, close = _props$close === void 0 ? true : _props$close; var extraAttrs = getExtraAttrs(props); var elRef = useRef(null); useImperativeHandle(ref, function () { return { el: elRef.current }; }); var classes = classNames(className, { 'actions-button': true, 'actions-button-bold': bold }, colorClasses(props)); var mediaEl; var slots = getSlots(props); if (slots.media && slots.media.length) { mediaEl = /*#__PURE__*/React.createElement("div", { className: "actions-button-media" }, slots.media); } var onClick = function onClick(e) { if (elRef.current && close && zmp) { zmp.actions.close(zmp.$(elRef.current).parents('.actions-modal')); } emit(props, 'click', e); }; return /*#__PURE__*/React.createElement("div", _extends({ id: id, style: style, className: classes, ref: elRef }, extraAttrs, { onClick: onClick }), mediaEl, /*#__PURE__*/React.createElement("div", { className: "actions-button-text" }, slots.default)); }); ComponentName.displayName = 'zmp-actions-button'; export default ComponentName;