@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
128 lines (127 loc) • 6.35 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SubmitBar = SubmitBar;
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _components = require("@tarojs/components");
var _react = require("react");
var _icon = require("../icon");
var _button = require("../button");
var _defaultProps = require("../default-props");
var _jsxRuntime = require("react/jsx-runtime");
var _excluded = ["tipIcon", "tip", "label", "currency", "suffixLabel", "buttonType", "price", "loading", "disabled", "buttonText", "safeAreaInsetBottom", "renderTop", "renderTip", "decimalLength", "onSubmit", "children", "style", "className"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function SubmitBar(props) {
var _useState = (0, _react.useState)((0, _defaultProps.get)().SubmitBar),
_useState2 = (0, _slicedToArray2.default)(_useState, 1),
d = _useState2[0];
var _d$props = _objectSpread(_objectSpread({}, d), props),
tipIcon = _d$props.tipIcon,
tip = _d$props.tip,
label = _d$props.label,
_d$props$currency = _d$props.currency,
currency = _d$props$currency === void 0 ? '¥' : _d$props$currency,
suffixLabel = _d$props.suffixLabel,
_d$props$buttonType = _d$props.buttonType,
buttonType = _d$props$buttonType === void 0 ? 'danger' : _d$props$buttonType,
price = _d$props.price,
loading = _d$props.loading,
disabled = _d$props.disabled,
buttonText = _d$props.buttonText,
_d$props$safeAreaInse = _d$props.safeAreaInsetBottom,
safeAreaInsetBottom = _d$props$safeAreaInse === void 0 ? true : _d$props$safeAreaInse,
renderTop = _d$props.renderTop,
renderTip = _d$props.renderTip,
decimalLength = _d$props.decimalLength,
onSubmit = _d$props.onSubmit,
children = _d$props.children,
style = _d$props.style,
className = _d$props.className,
others = (0, _objectWithoutProperties2.default)(_d$props, _excluded);
var _useState3 = (0, _react.useState)({
hasTip: false,
integerStr: '',
decimalStr: '',
hasPrice: false
}),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
state = _useState4[0],
setState = _useState4[1];
var hasTip = state.hasTip,
integerStr = state.integerStr,
decimalStr = state.decimalStr,
hasPrice = state.hasPrice;
(0, _react.useEffect)(function () {
setState(function (pre) {
return _objectSpread(_objectSpread({}, pre), {}, {
hasTip: typeof tip === 'string'
});
});
}, [tip]);
(0, _react.useEffect)(function () {
var priceStrArr = typeof price === 'number' && (price / 100).toFixed(decimalLength).split('.');
setState(function (pre) {
return _objectSpread(_objectSpread({}, pre), {}, {
hasPrice: typeof price === 'number',
integerStr: priceStrArr && priceStrArr[0],
decimalStr: decimalLength && priceStrArr ? ".".concat(priceStrArr[1]) : ''
});
});
}, [decimalLength, price]);
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, _objectSpread(_objectSpread({
className: "van-submit-bar ".concat(className || ''),
style: style
}, others), {}, {
children: [renderTop, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
className: "van-submit-bar__tip",
children: [tipIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.Icon, {
size: "12px",
name: tipIcon,
className: "van-submit-bar__tip-icon"
}), hasTip && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
className: "van-submit-bar__tip-text",
children: tip
}), renderTip]
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
className: "bar-class van-submit-bar__bar",
children: [children, hasPrice && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
className: "van-submit-bar__text",
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Text, {
children: label || '合计:'
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Text, {
className: "van-submit-bar__price price-class",
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Text, {
className: "van-submit-bar__currency",
children: currency
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Text, {
className: "van-submit-bar__price-integer",
children: integerStr
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Text, {
children: decimalStr
})]
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Text, {
className: "van-submit-bar__suffix-label",
children: suffixLabel
})]
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
round: true,
type: buttonType,
loading: loading,
disabled: disabled,
className: "van-submit-bar__button button-class",
onClick: onSubmit,
children: loading ? '' : buttonText
})]
}), safeAreaInsetBottom && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
className: "van-submit-bar__safe"
})]
}));
}
var _default = SubmitBar;
exports.default = _default;