@tarojs/components
Version:
39 lines (36 loc) • 1.34 kB
JavaScript
import { toRefs, computed, h } from 'vue';
import { useForwardRef } from './forwardRef.js';
function createFormsComponent(name, eventName, modelValue = 'value', classNames = []) {
const props = {
modelValue: null
};
if (name === 'taro-input') {
props.focus = Boolean;
}
return {
emits: ['tap', 'update:modelValue'],
props,
setup(props, { slots, emit }) {
const { modelValue: model, focus } = toRefs(props);
const attrs = computed(() => {
return name === 'taro-input'
? {
[modelValue]: model.value,
'auto-focus': focus.value
}
: {
[modelValue]: model.value
};
});
const forwardRef = useForwardRef();
return () => (h(`${name}-core`, Object.assign(Object.assign({ ref: forwardRef, class: ['hydrated', ...classNames] }, attrs.value), { onClick(e) {
emit('tap', e);
},
[`on${eventName}`](e) {
emit('update:modelValue', e.detail.value);
} }), slots));
}
};
}
export { createFormsComponent as default };
//# sourceMappingURL=createFormsComponent.js.map