mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
72 lines • 4.08 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["current", "total", "prevText", "nextText", "submitText", "onPrev", "onNext", "onSubmit", "prevButtonProps", "nextButtonProps", "submitButtonProps", "className"];
import React from 'react';
import { toInteger } from 'ut2';
import classNames from 'classnames';
import { Button } from 'antd-mobile';
import { prefixClass } from '../../../config';
import "./index.css";
import { useConfig } from '../../BizConfigProvider';
var prefixCls = "".concat(prefixClass, "-steps-form-submitter");
var Submitter = function Submitter(props) {
var _useConfig = useConfig(),
locale = _useConfig.locale;
var _props$current = props.current,
outCurrent = _props$current === void 0 ? 1 : _props$current,
outTotal = props.total,
_props$prevText = props.prevText,
prevText = _props$prevText === void 0 ? locale.form.common.prev : _props$prevText,
_props$nextText = props.nextText,
nextText = _props$nextText === void 0 ? locale.form.common.next : _props$nextText,
_props$submitText = props.submitText,
submitText = _props$submitText === void 0 ? locale.form.common.submit : _props$submitText,
onPrev = props.onPrev,
onNext = props.onNext,
onSubmit = props.onSubmit,
prevButtonProps = props.prevButtonProps,
nextButtonProps = props.nextButtonProps,
submitButtonProps = props.submitButtonProps,
className = props.className,
restProps = _objectWithoutProperties(props, _excluded);
var current = toInteger(outCurrent < 1 ? 1 : outCurrent);
var total = toInteger(outTotal < 1 ? 1 : outTotal);
var isFirst = current === 1;
var isLast = current === total;
var handlePrev = function handlePrev(e) {
var _prevButtonProps$onCl;
onPrev === null || onPrev === void 0 ? void 0 : onPrev();
prevButtonProps === null || prevButtonProps === void 0 ? void 0 : (_prevButtonProps$onCl = prevButtonProps.onClick) === null || _prevButtonProps$onCl === void 0 ? void 0 : _prevButtonProps$onCl.call(prevButtonProps, e);
};
var handleNext = function handleNext(e) {
var _nextButtonProps$onCl;
onNext === null || onNext === void 0 ? void 0 : onNext();
nextButtonProps === null || nextButtonProps === void 0 ? void 0 : (_nextButtonProps$onCl = nextButtonProps.onClick) === null || _nextButtonProps$onCl === void 0 ? void 0 : _nextButtonProps$onCl.call(nextButtonProps, e);
};
var handleSubmit = function handleSubmit(e) {
var _submitButtonProps$on;
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit();
submitButtonProps === null || submitButtonProps === void 0 ? void 0 : (_submitButtonProps$on = submitButtonProps.onClick) === null || _submitButtonProps$on === void 0 ? void 0 : _submitButtonProps$on.call(submitButtonProps, e);
};
return /*#__PURE__*/React.createElement("div", _objectSpread({
className: classNames(prefixCls, className)
}, restProps), !isFirst && (/*#__PURE__*/React.createElement(Button, _objectSpread(_objectSpread({
size: "large"
}, prevButtonProps), {}, {
className: classNames("".concat(prefixCls, "-prev"), prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.className),
onClick: handlePrev
}), prevText)), !isLast ? (/*#__PURE__*/React.createElement(Button, _objectSpread(_objectSpread({
size: "large",
color: "primary"
}, nextButtonProps), {}, {
className: classNames("".concat(prefixCls, "-next"), nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.className),
onClick: handleNext
}), nextText)) : (/*#__PURE__*/React.createElement(Button, _objectSpread(_objectSpread({
size: "large",
color: "primary"
}, submitButtonProps), {}, {
className: classNames("".concat(prefixCls, "-submit"), submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.className),
onClick: handleSubmit
}), submitText)));
};
export default Submitter;