UNPKG

@react-vant-next/campaign

Version:

React Mobile UI Components based on Vant UI - Next Generation

40 lines (37 loc) 1.52 kB
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