api-core-lib 12.0.21 → 12.0.22

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/dist/client.cjs CHANGED
@@ -845,19 +845,21 @@ function useApiModule(axiosInstance, moduleConfig, options = {}) {
845
845
  const builtQueries = {};
846
846
  for (const actionName in moduleConfig.actions) {
847
847
  if (moduleConfig.actions[actionName]?.hasQuery) {
848
- const setActionQueryOptions = (updater) => {
848
+ const setActionQueryOptions = (0, import_react4.useCallback)((updater) => {
849
849
  setQueryOptions((prev) => ({ ...prev, [actionName]: typeof updater === "function" ? updater(prev[actionName] || {}) : updater }));
850
- };
850
+ }, []);
851
851
  builtQueries[actionName] = {
852
+ // `options` ستتغير، وهذا صحيح
852
853
  options: queryOptions[actionName] || {},
854
+ // `setOptions` والدوال الأخرى ستكون الآن مستقرة
853
855
  setOptions: setActionQueryOptions,
854
- setPage: (page) => setActionQueryOptions((p) => ({ ...p, page })),
855
- setLimit: (limit) => setActionQueryOptions((p) => ({ ...p, limit, page: 1 })),
856
- setSearchTerm: (search) => setActionQueryOptions((p) => ({ ...p, search, page: 1 })),
857
- setFilters: (filter) => setActionQueryOptions((p) => ({ ...p, filter, page: 1 })),
858
- setSorting: (sortBy) => setActionQueryOptions((p) => ({ ...p, sortBy })),
859
- setQueryParam: (key, value) => setActionQueryOptions((p) => ({ ...p, [key]: value, page: key !== "page" ? value : p.page })),
860
- reset: () => setActionQueryOptions({})
856
+ setPage: (0, import_react4.useCallback)((page) => setActionQueryOptions((p) => ({ ...p, page })), [setActionQueryOptions]),
857
+ setLimit: (0, import_react4.useCallback)((limit) => setActionQueryOptions((p) => ({ ...p, limit, page: 1 })), [setActionQueryOptions]),
858
+ setSearchTerm: (0, import_react4.useCallback)((search) => setActionQueryOptions((p) => ({ ...p, search, page: 1 })), [setActionQueryOptions]),
859
+ setFilters: (0, import_react4.useCallback)((filter) => setActionQueryOptions((p) => ({ ...p, filter, page: 1 })), [setActionQueryOptions]),
860
+ setSorting: (0, import_react4.useCallback)((sortBy) => setActionQueryOptions((p) => ({ ...p, sortBy })), [setActionQueryOptions]),
861
+ setQueryParam: (0, import_react4.useCallback)((key, value) => setActionQueryOptions((p) => ({ ...p, [key]: value, page: key !== "page" ? value : p.page })), [setActionQueryOptions]),
862
+ reset: (0, import_react4.useCallback)(() => setActionQueryOptions({}), [setActionQueryOptions])
861
863
  };
862
864
  }
863
865
  }
package/dist/client.js CHANGED
@@ -806,19 +806,21 @@ function useApiModule(axiosInstance, moduleConfig, options = {}) {
806
806
  const builtQueries = {};
807
807
  for (const actionName in moduleConfig.actions) {
808
808
  if (moduleConfig.actions[actionName]?.hasQuery) {
809
- const setActionQueryOptions = (updater) => {
809
+ const setActionQueryOptions = useCallback3((updater) => {
810
810
  setQueryOptions((prev) => ({ ...prev, [actionName]: typeof updater === "function" ? updater(prev[actionName] || {}) : updater }));
811
- };
811
+ }, []);
812
812
  builtQueries[actionName] = {
813
+ // `options` ستتغير، وهذا صحيح
813
814
  options: queryOptions[actionName] || {},
815
+ // `setOptions` والدوال الأخرى ستكون الآن مستقرة
814
816
  setOptions: setActionQueryOptions,
815
- setPage: (page) => setActionQueryOptions((p) => ({ ...p, page })),
816
- setLimit: (limit) => setActionQueryOptions((p) => ({ ...p, limit, page: 1 })),
817
- setSearchTerm: (search) => setActionQueryOptions((p) => ({ ...p, search, page: 1 })),
818
- setFilters: (filter) => setActionQueryOptions((p) => ({ ...p, filter, page: 1 })),
819
- setSorting: (sortBy) => setActionQueryOptions((p) => ({ ...p, sortBy })),
820
- setQueryParam: (key, value) => setActionQueryOptions((p) => ({ ...p, [key]: value, page: key !== "page" ? value : p.page })),
821
- reset: () => setActionQueryOptions({})
817
+ setPage: useCallback3((page) => setActionQueryOptions((p) => ({ ...p, page })), [setActionQueryOptions]),
818
+ setLimit: useCallback3((limit) => setActionQueryOptions((p) => ({ ...p, limit, page: 1 })), [setActionQueryOptions]),
819
+ setSearchTerm: useCallback3((search) => setActionQueryOptions((p) => ({ ...p, search, page: 1 })), [setActionQueryOptions]),
820
+ setFilters: useCallback3((filter) => setActionQueryOptions((p) => ({ ...p, filter, page: 1 })), [setActionQueryOptions]),
821
+ setSorting: useCallback3((sortBy) => setActionQueryOptions((p) => ({ ...p, sortBy })), [setActionQueryOptions]),
822
+ setQueryParam: useCallback3((key, value) => setActionQueryOptions((p) => ({ ...p, [key]: value, page: key !== "page" ? value : p.page })), [setActionQueryOptions]),
823
+ reset: useCallback3(() => setActionQueryOptions({}), [setActionQueryOptions])
822
824
  };
823
825
  }
824
826
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "api-core-lib",
3
- "version": "12.0.21",
3
+ "version": "12.0.22",
4
4
  "description": "A flexible and powerful API client library for modern web applications.",
5
5
  "type": "module",
6
6