@promoboxx/use-filter 1.6.0 → 1.7.0

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.
@@ -16,6 +16,7 @@ declare function useFilter<TFilter, TResult>(namespace: string, options: UseFilt
16
16
  setPage: (page: number | string, shouldRunImmediately?: boolean) => void;
17
17
  setPageSize: (pageSize: number | string, shouldRunImmediately?: boolean) => void;
18
18
  setSort: (sort: string | undefined, shouldRunImmediately?: boolean) => void;
19
+ setCursor: (cursor: string | null | undefined, shouldRunImmediately?: boolean) => void;
19
20
  forceRefresh: (shouldRunImmediately?: boolean) => void;
20
21
  };
21
22
  export default useFilter;
@@ -29,6 +30,8 @@ export interface FilterInfo<TFilter> {
29
30
  totalResults: number;
30
31
  totalPages: number;
31
32
  shouldRunImmediately: boolean;
33
+ cursor?: string | null;
34
+ nextCursor?: string | null;
32
35
  }
33
36
  declare type UseFilterOnChangeResult<TFilter, TResult> = void | {
34
37
  filterInfo?: Partial<Omit<FilterInfo<TFilter>, 'totalResults' | 'offset' | 'pageSize'> & {
package/dist/useFilter.js CHANGED
@@ -98,7 +98,7 @@ function useFilter(namespace, options) {
98
98
  invariant(!!response.filterInfo, '');
99
99
  invariant(previous != null, 'handleResponse called without filterInfo');
100
100
  var extra = {};
101
- var _a = response.filterInfo, page = _a.page, offset = _a.offset, totalResults = _a.totalResults, pageSize = _a.pageSize, filterInfoFromResponse = __rest(_a, ["page", "offset", "totalResults", "pageSize"]);
101
+ var _a = response.filterInfo, page = _a.page, offset = _a.offset, totalResults = _a.totalResults, pageSize = _a.pageSize, nextCursor = _a.nextCursor, filterInfoFromResponse = __rest(_a, ["page", "offset", "totalResults", "pageSize", "nextCursor"]);
102
102
  var pageSizeNumber = Number(pageSize || previous.pageSize);
103
103
  if (page != null && offset == null) {
104
104
  extra.offset = getOffsetFromPage_1.default(page, pageSizeNumber);
@@ -114,6 +114,9 @@ function useFilter(namespace, options) {
114
114
  extra.totalResults = Number(totalResults);
115
115
  extra.totalPages = Math.ceil(extra.totalResults / pageSizeNumber);
116
116
  }
117
+ if (nextCursor) {
118
+ extra.nextCursor = nextCursor;
119
+ }
117
120
  return __assign(__assign(__assign({}, previous), filterInfoFromResponse), extra);
118
121
  });
119
122
  }
@@ -198,6 +201,13 @@ function useFilter(namespace, options) {
198
201
  return __assign(__assign({}, previous), { sort: sort, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
199
202
  });
200
203
  }, []),
204
+ setCursor: react_1.useCallback(function (cursor, shouldRunImmediately) {
205
+ if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
206
+ setFilterInfoState(function (previous) {
207
+ invariant(previous != null, 'setCursor called without filterInfo');
208
+ return __assign(__assign({}, previous), { cursor: cursor, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
209
+ });
210
+ }, []),
201
211
  forceRefresh: react_1.useCallback(function (shouldRunImmediately) {
202
212
  if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
203
213
  setFilterInfoState(function (previous) {
@@ -5,6 +5,7 @@ export interface SimpleFilterInfo<TFilter> {
5
5
  page: number;
6
6
  pageSize: number;
7
7
  lastRefreshAt: number;
8
+ cursor?: string | null;
8
9
  shouldRunImmediately: boolean;
9
10
  }
10
11
  interface UseSimpleFilterOptions<TFilter> {
@@ -21,6 +22,7 @@ declare function useSimpleFilter<TFilter>(namespace: string, options: UseSimpleF
21
22
  page: number;
22
23
  pageSize: number;
23
24
  lastRefreshAt: number;
25
+ cursor?: string | null | undefined;
24
26
  };
25
27
  debouncedFilterInfo: {
26
28
  shouldRunImmediately: boolean;
@@ -30,6 +32,7 @@ declare function useSimpleFilter<TFilter>(namespace: string, options: UseSimpleF
30
32
  page: number;
31
33
  pageSize: number;
32
34
  lastRefreshAt: number;
35
+ cursor?: string | null | undefined;
33
36
  };
34
37
  updateFilter: (filter: Partial<TFilter>, shouldRunImmediately?: any) => void;
35
38
  pagingInfo: (total: string | number | null | undefined) => {
@@ -41,6 +44,7 @@ declare function useSimpleFilter<TFilter>(namespace: string, options: UseSimpleF
41
44
  setPage: (page: number | string, shouldRunImmediately?: boolean) => void;
42
45
  setPageSize: (pageSize: number | string, shouldRunImmediately?: boolean) => void;
43
46
  setSort: (sort: string, shouldRunImmediately?: boolean) => void;
47
+ setCursor: (cursor: string | null | undefined, shouldRunImmediately?: boolean) => void;
44
48
  forceRefresh: (shouldRunImmediately?: boolean) => void;
45
49
  };
46
50
  export default useSimpleFilter;
@@ -117,6 +117,10 @@ function useSimpleFilter(namespace, options) {
117
117
  if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
118
118
  setFilterInfoState(function (previous) { return (__assign(__assign({}, previous), { sort: sort, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately })); });
119
119
  }, []),
120
+ setCursor: react_1.useCallback(function (cursor, shouldRunImmediately) {
121
+ if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
122
+ setFilterInfoState(function (previous) { return (__assign(__assign({}, previous), { cursor: cursor, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately })); });
123
+ }, []),
120
124
  forceRefresh: react_1.useCallback(function (shouldRunImmediately) {
121
125
  if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
122
126
  setFilterInfoState(function (previous) { return (__assign(__assign({}, previous), { lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately })); });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promoboxx/use-filter",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "",
5
5
  "main": "dist/useFilter.js",
6
6
  "keywords": [],