taro-ui-vue3
Version:
Taro UI Rewritten in Vue 3.0
71 lines (70 loc) • 1.71 kB
JavaScript
import {h, defineComponent, mergeProps} from "vue";
import {Text, View} from "@tarojs/components";
import AtActivityIndicator from "../activity-indicator";
import AtButton from "../button";
const AtLoadMore = defineComponent({
name: "AtLoadMore",
props: {
noMoreTextStyle: {
type: String,
default: ""
},
moreBtnStyle: {
type: String,
default: ""
},
status: {
type: String,
default: "more"
},
loadingText: {
type: String,
default: "\u52A0\u8F7D\u4E2D"
},
moreText: {
type: String,
default: "\u67E5\u770B\u66F4\u591A"
},
noMoreText: {
type: String,
default: "\u6CA1\u6709\u66F4\u591A"
},
onClick: {
type: Function,
default: () => () => {
}
}
},
setup(props, {attrs}) {
function handleClick() {
props.onClick && props.onClick(arguments);
}
return () => h(View, mergeProps(attrs, {
class: "at-load-more"
}), {
default: () => [
props.status === "loading" ? h(AtActivityIndicator, {
mode: "center",
content: props.loadingText
}) : props.status === "more" ? h(View, {
class: "at-load-more__cnt"
}, {
default: () => [
h(AtButton, {
full: true,
style: props.moreBtnStyle,
onClick: handleClick.bind(this)
}, {default: () => props.moreText})
]
}) : h(Text, {
class: "at-load-more__tip",
style: props.noMoreTextStyle
}, {default: () => props.noMoreText})
]
});
}
});
var load_more_default = AtLoadMore;
export {
load_more_default as default
};