choo-taro-ui-vue3
Version:
Taro UI Rewritten in Vue 3.0
45 lines (37 loc) • 1.28 kB
JavaScript
import { defineComponent, toRefs, renderSlot, resolveComponent, mergeProps, withCtx, openBlock, createBlock } from 'vue';
const AtFab = defineComponent({
name: "AtFab",
emits: ["click"],
props: {
size: {
type: String,
default: "normal",
validator: (prop) => ["normal", "small"].includes(prop)
}
},
setup(props, { emit }) {
function handleClick(e) {
emit("click", e);
}
return {
...toRefs(props),
handleClick
};
}
});
// Binding optimization for webpack code-split
const _renderSlot = renderSlot, _resolveComponent = resolveComponent, _mergeProps = mergeProps, _withCtx = withCtx, _openBlock = openBlock, _createBlock = createBlock;
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_taro_view = process.env.TARO_ENV === "h5" ? _resolveComponent("taro-view") : "view";
return (_openBlock(), _createBlock(_component_taro_view, _mergeProps(_ctx.$attrs, {
class: ['at-fab', { [`at-fab--${_ctx.size}`]: _ctx.size } ],
onTap: _ctx.handleClick
}), {
default: _withCtx(() => [
_renderSlot(_ctx.$slots, "default")
]),
_: 3 /* FORWARDED */
}, 16 /* FULL_PROPS */, ["class", "onTap"]))
}
AtFab.render = _sfc_render;
export default AtFab;