zmp-react
Version:
Build full featured iOS & Android apps using ZMP & React
48 lines (45 loc) • 1.45 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import React, { forwardRef, useRef, useImperativeHandle } from 'react';
import { classNames, getExtraAttrs, emit } from '../shared/utils';
import { colorClasses } from '../shared/mixins';
var SwipeoutButton = /*#__PURE__*/forwardRef(function (props, ref) {
var className = props.className,
id = props.id,
style = props.style,
children = props.children,
text = props.text,
confirmTitle = props.confirmTitle,
confirmText = props.confirmText,
overswipe = props.overswipe,
close = props.close,
deleteProp = props.delete,
href = props.href;
var extraAttrs = getExtraAttrs(props);
var elRef = useRef(null);
var onClick = function onClick(e) {
emit(props, 'click', e);
};
useImperativeHandle(ref, function () {
return {
el: elRef.current
};
});
var classes = classNames(className, {
'swipeout-overswipe': overswipe,
'swipeout-delete': deleteProp,
'swipeout-close': close
}, colorClasses(props));
return /*#__PURE__*/React.createElement("a", _extends({
ref: elRef,
href: href || '#',
id: id,
style: style,
"data-confirm": confirmText || undefined,
"data-confirm-title": confirmTitle || undefined,
className: classes
}, extraAttrs, {
onClick: onClick
}), children, text);
});
SwipeoutButton.displayName = 'zmp-swipeout-button';
export default SwipeoutButton;