@react-vant-next/campaign
Version:
React Mobile UI Components based on Vant UI - Next Generation
40 lines (37 loc) • 1.52 kB
JavaScript
import { jsx } from 'react/jsx-runtime';
import { ConfigProviderContext, Cell } from '@react-vant-next/ui';
import { createNamespace, mergeProps, isDef } from '@react-vant-next/utils';
import cls from 'clsx';
import { use } from 'react';
function formatValue(coupons, chosenCoupon, currency, locale) {
const coupon = coupons[+chosenCoupon];
if (coupon) {
let value = 0;
if (isDef(coupon.value)) {
({ value } = coupon);
}
else if (isDef(coupon.denominations)) {
value = coupon.denominations;
}
return `-${currency} ${(value / 100).toFixed(2)}`;
}
return coupons.length === 0
? locale.noCoupon
: locale.vanCouponCell.count(coupons.length);
}
const [bem] = createNamespace("coupon-cell");
const CouponCell = (p) => {
const props = mergeProps(p, {
border: true,
editable: true,
coupons: [],
currency: "¥",
chosenCoupon: -1,
});
const { locale } = use(ConfigProviderContext);
const selected = props.coupons[+props.chosenCoupon];
const value = formatValue(props.coupons, props.chosenCoupon, props.currency, locale);
return (jsx(Cell, { style: props.style, className: cls(bem(), props.className), value: value, title: props.title || locale.vanCouponCell.title, border: props.border, isLink: props.editable, valueClass: cls(bem("value", { selected })), onClick: props.onClick }));
};
export { CouponCell as default };
//# sourceMappingURL=CouponCell.js.map