@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
120 lines • 5.58 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
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) { _defineProperty(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; }
import { View, Text } from '@tarojs/components';
import { useEffect, useState } from 'react';
import { Icon } from '../icon';
import { Button } from '../button';
import { get } from '../default-props';
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
export function SubmitBar(props) {
var _useState = useState(get().SubmitBar),
_useState2 = _slicedToArray(_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 = _objectWithoutProperties(_d$props, _excluded);
var _useState3 = useState({
hasTip: false,
integerStr: '',
decimalStr: '',
hasPrice: false
}),
_useState4 = _slicedToArray(_useState3, 2),
state = _useState4[0],
setState = _useState4[1];
var hasTip = state.hasTip,
integerStr = state.integerStr,
decimalStr = state.decimalStr,
hasPrice = state.hasPrice;
useEffect(function () {
setState(function (pre) {
return _objectSpread(_objectSpread({}, pre), {}, {
hasTip: typeof tip === 'string'
});
});
}, [tip]);
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__*/_jsxs(View, _objectSpread(_objectSpread({
className: "van-submit-bar ".concat(className || ''),
style: style
}, others), {}, {
children: [renderTop, /*#__PURE__*/_jsxs(View, {
className: "van-submit-bar__tip",
children: [tipIcon && /*#__PURE__*/_jsx(Icon, {
size: "12px",
name: tipIcon,
className: "van-submit-bar__tip-icon"
}), hasTip && /*#__PURE__*/_jsx(View, {
className: "van-submit-bar__tip-text",
children: tip
}), renderTip]
}), /*#__PURE__*/_jsxs(View, {
className: "bar-class van-submit-bar__bar",
children: [children, hasPrice && /*#__PURE__*/_jsxs(View, {
className: "van-submit-bar__text",
children: [/*#__PURE__*/_jsx(Text, {
children: label || '合计:'
}), /*#__PURE__*/_jsxs(Text, {
className: "van-submit-bar__price price-class",
children: [/*#__PURE__*/_jsx(Text, {
className: "van-submit-bar__currency",
children: currency
}), /*#__PURE__*/_jsx(Text, {
className: "van-submit-bar__price-integer",
children: integerStr
}), /*#__PURE__*/_jsx(Text, {
children: decimalStr
})]
}), /*#__PURE__*/_jsx(Text, {
className: "van-submit-bar__suffix-label",
children: suffixLabel
})]
}), /*#__PURE__*/_jsx(Button, {
round: true,
type: buttonType,
loading: loading,
disabled: disabled,
className: "van-submit-bar__button button-class",
onClick: onSubmit,
children: loading ? '' : buttonText
})]
}), safeAreaInsetBottom && /*#__PURE__*/_jsx(View, {
className: "van-submit-bar__safe"
})]
}));
}
export default SubmitBar;