@axzydev/axzy_ui_system 1.2.14 → 1.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -87,6 +87,7 @@ export default function ITDataTable<T extends Record<string, unknown>>({
|
|
|
87
87
|
} = useTableState({ defaultItemsPerPage });
|
|
88
88
|
|
|
89
89
|
const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
90
|
+
const hasFetchedRef = useRef(false);
|
|
90
91
|
|
|
91
92
|
const computedTotalPages = Math.ceil(totalItems / itemsPerPage) || 1;
|
|
92
93
|
|
|
@@ -101,17 +102,19 @@ export default function ITDataTable<T extends Record<string, unknown>>({
|
|
|
101
102
|
});
|
|
102
103
|
setData(response.data || []);
|
|
103
104
|
setTotalItems(response.total || 0);
|
|
105
|
+
hasFetchedRef.current = true;
|
|
104
106
|
} catch (error) {
|
|
105
107
|
console.error("ITDataTable: Error fetching data", error);
|
|
106
108
|
setData([]);
|
|
107
109
|
setTotalItems(0);
|
|
110
|
+
hasFetchedRef.current = true;
|
|
108
111
|
} finally {
|
|
109
112
|
setIsLoading(false);
|
|
110
113
|
}
|
|
111
114
|
}, [currentPage, itemsPerPage, filters, sortConfig, fetchData, externalFilters]);
|
|
112
115
|
|
|
113
116
|
useEffect(() => {
|
|
114
|
-
if (!fetchOnMount &&
|
|
117
|
+
if (!fetchOnMount && !hasFetchedRef.current) return;
|
|
115
118
|
|
|
116
119
|
if (debounceTimerRef.current) clearTimeout(debounceTimerRef.current);
|
|
117
120
|
|
|
@@ -122,7 +125,7 @@ export default function ITDataTable<T extends Record<string, unknown>>({
|
|
|
122
125
|
return () => {
|
|
123
126
|
if (debounceTimerRef.current) clearTimeout(debounceTimerRef.current);
|
|
124
127
|
};
|
|
125
|
-
}, [currentPage, itemsPerPage, sortConfig, filters, externalFilters, reloadTrigger, fetchOnMount, performFetch,
|
|
128
|
+
}, [currentPage, itemsPerPage, sortConfig, filters, externalFilters, reloadTrigger, fetchOnMount, performFetch, debounceMs]);
|
|
126
129
|
|
|
127
130
|
const renderFilterInput = (col: Column<T>) => {
|
|
128
131
|
if (!col.filter) return null;
|