UNPKG

taro-ui-vue3

Version:

Taro UI Rewritten in Vue 3.0

46 lines (45 loc) 1.18 kB
import {h, defineComponent, mergeProps, computed} from "vue"; import {View} from "@tarojs/components"; const AtBadge = defineComponent({ name: "AtBadge", props: { dot: { type: Boolean, default: false }, value: { type: [String, Number], default: "" }, maxValue: { type: Number, default: 99 } }, setup(props, {attrs, slots}) { const formatedValue = computed(() => formatValue(props.value, props.maxValue)); function formatValue(value, maxValue) { if (value === "" || value === null || value === void 0) return ""; const numValue = +value; if (Number.isNaN(numValue)) { return value; } return numValue > maxValue ? `${maxValue}+` : numValue; } return () => h(View, mergeProps(attrs, { class: "at-badge" }), { default: () => [ slots.default && slots.default(), props.dot ? h(View, {class: "at-badge__dot"}) : formatedValue.value !== "" && h(View, { class: "at-badge__num" }, {default: () => formatedValue.value}) ] }); } }); var badge_default = AtBadge; export { badge_default as default };