diff --git a/src/components/ui/VnSearchbar.vue b/src/components/ui/VnSearchbar.vue
index ccf87c6d6..89a587b31 100644
--- a/src/components/ui/VnSearchbar.vue
+++ b/src/components/ui/VnSearchbar.vue
@@ -1,14 +1,16 @@
+
+
+
-
-
-
-
diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js
index b37fa1377..c89f5087e 100644
--- a/src/composables/useArrayData.js
+++ b/src/composables/useArrayData.js
@@ -69,27 +69,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
cancelRequest();
canceller = new AbortController();
-
- const filter = {
- limit: store.limit,
- };
-
- let userParams = { ...store.userParams };
-
- Object.assign(filter, store.userFilter);
-
- let where;
- if (filter?.where || store.filter?.where)
- where = Object.assign(filter?.where ?? {}, store.filter?.where ?? {});
- Object.assign(filter, store.filter);
- filter.where = where;
- const params = { filter };
-
- Object.assign(params, userParams);
- if (params.filter) params.filter.skip = store.skip;
- if (store?.order && typeof store?.order == 'string') store.order = [store.order];
- if (store.order?.length) params.filter.order = [...store.order];
- else delete params.filter.order;
+ const { params, limit } = getCurrentFilter();
store.currentFilter = JSON.parse(JSON.stringify(params));
delete store.currentFilter.filter.include;
@@ -115,7 +95,6 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
params,
});
- const { limit } = filter;
store.hasMoreData = limit && response.data.length >= limit;
if (append) {
@@ -288,6 +267,31 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
router.replace(newUrl);
}
+ function getCurrentFilter() {
+ const filter = {
+ limit: store.limit,
+ };
+
+ let userParams = { ...store.userParams };
+
+ Object.assign(filter, store.userFilter);
+
+ let where;
+ if (filter?.where || store.filter?.where)
+ where = Object.assign(filter?.where ?? {}, store.filter?.where ?? {});
+ Object.assign(filter, store.filter);
+ filter.where = where;
+ const params = { filter };
+
+ Object.assign(params, userParams);
+ if (params.filter) params.filter.skip = store.skip;
+ if (store?.order && typeof store?.order == 'string') store.order = [store.order];
+ if (store.order?.length) params.filter.order = [...store.order];
+ else delete params.filter.order;
+
+ return { filter, params, limit: filter.limit };
+ }
+
const totalRows = computed(() => (store.data && store.data.length) || 0);
const isLoading = computed(() => store.isLoading || false);
@@ -295,6 +299,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
fetch,
applyFilter,
addFilter,
+ getCurrentFilter,
addFilterWhere,
addOrder,
deleteOrder,