UNPKG

taro-ui-vue3

Version:

Taro UI Rewritten in Vue 3.0

52 lines (51 loc) 1.18 kB
import {defineComponent, computed, h, mergeProps} from "vue"; import {Text} from "@tarojs/components"; import {pxTransform} from "../utils/common"; const AtIcon = defineComponent({ name: "AtIcon", props: { prefixClass: { type: String, default: "at-icon" }, value: { type: String, default: "" }, color: { type: String, default: "" }, size: { type: [String, Number], default: 24 }, onClick: { type: Function, default: () => () => { } } }, setup(props, {attrs}) { const rootStyle = computed(() => ({ color: props.color, fontSize: `${pxTransform(parseInt(String(props.size)) * 2)}` })); const rootClass = computed(() => ({ [`${props.prefixClass}`]: true, [`${props.prefixClass}-${props.value}`]: Boolean(props.value) })); function handleClick() { props.onClick && props.onClick(arguments); } return () => h(Text, mergeProps(attrs, { class: rootClass.value, style: rootStyle.value, onTap: handleClick.bind(this) })); } }); var icon_default = AtIcon; export { icon_default as default };