@promoboxx/use-filter 1.5.1 → 1.5.4

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.
@@ -10,12 +10,12 @@ declare function useFilter<TFilter, TResult>(namespace: string, options: UseFilt
10
10
  data: TResult | null | undefined;
11
11
  doesFilterExist: boolean;
12
12
  filterInfo: FilterInfo<TFilter>;
13
- updateFilter: (filter: Partial<TFilter>, shouldRunImmediately?: any) => void;
14
- resetFilter: () => void;
15
- setOffset: (offset: number | string) => void;
16
- setPage: (page: number | string) => void;
17
- setSort: (sort: string | undefined) => void;
18
- forceRefresh: () => void;
13
+ updateFilter: (filter: Partial<TFilter>, shouldRunImmediately?: boolean) => void;
14
+ resetFilter: (shouldRunImmediately?: boolean) => void;
15
+ setOffset: (offset: number | string, shouldRunImmediately?: boolean) => void;
16
+ setPage: (page: number | string, shouldRunImmediately?: boolean) => void;
17
+ setSort: (sort: string | undefined, shouldRunImmediately?: boolean) => void;
18
+ forceRefresh: (shouldRunImmediately?: boolean) => void;
19
19
  };
20
20
  export default useFilter;
21
21
  export interface FilterInfo<TFilter> {
package/dist/useFilter.js CHANGED
@@ -33,7 +33,10 @@ var shallowEqual_1 = __importDefault(require("./lib/shallowEqual"));
33
33
  var store_1 = require("./store");
34
34
  function useFilter(namespace, options) {
35
35
  var _a = react_1.useState(function () {
36
- return store_1.getFilterStore().getFilter(namespace);
36
+ var existing = store_1.getFilterStore().getFilter(namespace);
37
+ var initialValue = existing
38
+ ? __assign(__assign({}, existing), { shouldRunImmediately: true }) : undefined;
39
+ return initialValue;
37
40
  }), filterInfo = _a[0], setFilterInfoState = _a[1];
38
41
  var _b = react_1.useState(function () {
39
42
  return store_1.getFilterStore().getData(namespace);
@@ -158,33 +161,38 @@ function useFilter(namespace, options) {
158
161
  return __assign(__assign({}, previous), { offset: 0, page: 1, totalResults: 1, totalPages: 1, filter: nextFilter, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
159
162
  });
160
163
  }, []),
161
- resetFilter: react_1.useCallback(function () {
162
- setFilterInfoState(__assign(__assign({}, buildDefaultFilterInfo_1.default(ctxRef.current.defaultFilterInfo)), { shouldRunImmediately: true, lastRefreshAt: new Date().getTime() }));
164
+ resetFilter: react_1.useCallback(function (shouldRunImmediately) {
165
+ if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
166
+ setFilterInfoState(__assign(__assign({}, buildDefaultFilterInfo_1.default(ctxRef.current.defaultFilterInfo)), { lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately }));
163
167
  }, []),
164
- setOffset: react_1.useCallback(function (offset) {
168
+ setOffset: react_1.useCallback(function (offset, shouldRunImmediately) {
169
+ if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
165
170
  setFilterInfoState(function (previous) {
166
171
  invariant(previous != null, 'setOffset called without filterInfo');
167
172
  var offsetNumber = Number(offset);
168
- return __assign(__assign({}, previous), { offset: offsetNumber, page: getPageFromOffset_1.default(offsetNumber, previous.pageSize), lastRefreshAt: new Date().getTime() });
173
+ return __assign(__assign({}, previous), { offset: offsetNumber, page: getPageFromOffset_1.default(offsetNumber, previous.pageSize), lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
169
174
  });
170
175
  }, []),
171
- setPage: react_1.useCallback(function (page) {
176
+ setPage: react_1.useCallback(function (page, shouldRunImmediately) {
177
+ if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
172
178
  setFilterInfoState(function (previous) {
173
179
  invariant(previous != null, 'setPage called without filterInfo');
174
180
  var pageNumber = Number(page);
175
- return __assign(__assign({}, previous), { offset: getOffsetFromPage_1.default(pageNumber, previous.pageSize), page: pageNumber, lastRefreshAt: new Date().getTime() });
181
+ return __assign(__assign({}, previous), { offset: getOffsetFromPage_1.default(pageNumber, previous.pageSize), page: pageNumber, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
176
182
  });
177
183
  }, []),
178
- setSort: react_1.useCallback(function (sort) {
184
+ setSort: react_1.useCallback(function (sort, shouldRunImmediately) {
185
+ if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
179
186
  setFilterInfoState(function (previous) {
180
187
  invariant(previous != null, 'setSort called without filterInfo');
181
- return __assign(__assign({}, previous), { sort: sort, lastRefreshAt: new Date().getTime() });
188
+ return __assign(__assign({}, previous), { sort: sort, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
182
189
  });
183
190
  }, []),
184
- forceRefresh: react_1.useCallback(function () {
191
+ forceRefresh: react_1.useCallback(function (shouldRunImmediately) {
192
+ if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
185
193
  setFilterInfoState(function (previous) {
186
194
  invariant(previous != null, 'forceRefresh called without filterInfo');
187
- return __assign(__assign({}, previous), { lastRefreshAt: new Date().getTime() });
195
+ return __assign(__assign({}, previous), { lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
188
196
  });
189
197
  }, []),
190
198
  };
@@ -13,17 +13,33 @@ interface UseSimpleFilterOptions<TFilter> {
13
13
  }
14
14
  declare function useSimpleFilter<TFilter>(namespace: string, options: UseSimpleFilterOptions<TFilter>): {
15
15
  isLoading: boolean;
16
- filterInfo: SimpleFilterInfo<TFilter>;
17
- debouncedFilterInfo: SimpleFilterInfo<TFilter>;
16
+ filterInfo: {
17
+ shouldRunImmediately: boolean;
18
+ filter: TFilter;
19
+ sort?: string | undefined;
20
+ offset: number;
21
+ page: number;
22
+ pageSize: number;
23
+ lastRefreshAt: number;
24
+ };
25
+ debouncedFilterInfo: {
26
+ shouldRunImmediately: boolean;
27
+ filter: TFilter;
28
+ sort?: string | undefined;
29
+ offset: number;
30
+ page: number;
31
+ pageSize: number;
32
+ lastRefreshAt: number;
33
+ };
18
34
  updateFilter: (filter: Partial<TFilter>, shouldRunImmediately?: any) => void;
19
35
  pagingInfo: (total: string | number | null | undefined) => {
20
36
  totalResults: number;
21
37
  totalPages: number;
22
38
  };
23
- resetFilter: (shouldRunImmediately?: any) => void;
24
- setOffset: (offset: number | string, shouldRunImmediately?: any) => void;
25
- setPage: (page: number | string, shouldRunImmediately?: any) => void;
26
- setSort: (sort: string, shouldRunImmediately?: any) => void;
27
- forceRefresh: (shouldRunImmediately?: any) => void;
39
+ resetFilter: (shouldRunImmediately?: boolean) => void;
40
+ setOffset: (offset: number | string, shouldRunImmediately?: boolean) => void;
41
+ setPage: (page: number | string, shouldRunImmediately?: boolean) => void;
42
+ setSort: (sort: string, shouldRunImmediately?: boolean) => void;
43
+ forceRefresh: (shouldRunImmediately?: boolean) => void;
28
44
  };
29
45
  export default useSimpleFilter;
@@ -32,10 +32,8 @@ function useSimpleFilter(namespace, options) {
32
32
  ctxRef.current = ctxRefValue;
33
33
  });
34
34
  var _a = react_1.useState(false), isLoading = _a[0], setIsLoading = _a[1];
35
- var _b = react_1.useState(function () {
36
- return store_1.getFilterStore().getFilter(namespace) ||
37
- buildDefaultFilterInfo(options.defaultFilterInfo);
38
- }), filterInfo = _b[0], setFilterInfoState = _b[1];
35
+ var _b = react_1.useState(function () { return (__assign(__assign({}, (store_1.getFilterStore().getFilter(namespace) ||
36
+ buildDefaultFilterInfo(options.defaultFilterInfo))), { shouldRunImmediately: true })); }), filterInfo = _b[0], setFilterInfoState = _b[1];
39
37
  var _c = react_1.useState(filterInfo), debouncedFilterInfo = _c[0], setDebouncedFilterInfo = _c[1];
40
38
  // Not sure this is needed in simple mode?
41
39
  var lastRefreshAtRef = react_1.useRef(-1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promoboxx/use-filter",
3
- "version": "1.5.1",
3
+ "version": "1.5.4",
4
4
  "description": "",
5
5
  "main": "dist/useFilter.js",
6
6
  "keywords": [],