diff --git a/src/components/ui/VnPaginate.vue b/src/components/ui/VnPaginate.vue
index 86918e545..14e3b6420 100644
--- a/src/components/ui/VnPaginate.vue
+++ b/src/components/ui/VnPaginate.vue
@@ -78,6 +78,7 @@ const arrayData = useArrayData(props.dataKey, {
exprBuilder: props.exprBuilder,
});
const store = arrayData.store;
+const hasMoreData = arrayData.hasMoreData;
onMounted(() => {
if (props.autoLoad) fetch();
@@ -96,7 +97,7 @@ const addFilter = async (filter, params) => {
async function fetch() {
await arrayData.fetch({ append: false });
- if (!arrayData.hasMoreData.value) {
+ if (!hasMoreData.value) {
isLoading.value = false;
}
emit('onFetch', store.data);
@@ -109,8 +110,8 @@ async function paginate() {
isLoading.value = true;
await arrayData.loadMore();
- if (!arrayData.hasMoreData.value) {
- if (store.userParamsChanged) arrayData.hasMoreData.value = true;
+ if (!hasMoreData.value) {
+ if (store.userParamsChanged) hasMoreData.value = true;
store.userParamsChanged = false;
endPagination();
return;
@@ -131,9 +132,7 @@ function endPagination() {
emit('onPaginate');
}
async function onLoad(index, done) {
- if (!store.data) {
- return done();
- }
+ if (!store.data) return done();
if (store.data.length === 0 || !props.url) return done(false);
@@ -141,7 +140,7 @@ async function onLoad(index, done) {
await paginate();
let isDone = false;
- if (store.userParamsChanged) isDone = !arrayData.hasMoreData.value;
+ if (store.userParamsChanged) isDone = !hasMoreData.value;
done(isDone);
}
@@ -181,13 +180,12 @@ defineExpose({ fetch, addFilter });
-