@promoboxx/use-filter 1.5.4 → 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.
- package/dist/useFilter.d.ts +4 -0
- package/dist/useFilter.js +21 -1
- package/dist/useSimpleFilter.d.ts +5 -0
- package/dist/useSimpleFilter.js +13 -0
- package/package.json +1 -1
package/dist/useFilter.d.ts
CHANGED
|
@@ -14,7 +14,9 @@ declare function useFilter<TFilter, TResult>(namespace: string, options: UseFilt
|
|
|
14
14
|
resetFilter: (shouldRunImmediately?: boolean) => void;
|
|
15
15
|
setOffset: (offset: number | string, shouldRunImmediately?: boolean) => void;
|
|
16
16
|
setPage: (page: number | string, shouldRunImmediately?: boolean) => void;
|
|
17
|
+
setPageSize: (pageSize: number | string, shouldRunImmediately?: boolean) => void;
|
|
17
18
|
setSort: (sort: string | undefined, shouldRunImmediately?: boolean) => void;
|
|
19
|
+
setCursor: (cursor: string | null | undefined, shouldRunImmediately?: boolean) => void;
|
|
18
20
|
forceRefresh: (shouldRunImmediately?: boolean) => void;
|
|
19
21
|
};
|
|
20
22
|
export default useFilter;
|
|
@@ -28,6 +30,8 @@ export interface FilterInfo<TFilter> {
|
|
|
28
30
|
totalResults: number;
|
|
29
31
|
totalPages: number;
|
|
30
32
|
shouldRunImmediately: boolean;
|
|
33
|
+
cursor?: string | null;
|
|
34
|
+
nextCursor?: string | null;
|
|
31
35
|
}
|
|
32
36
|
declare type UseFilterOnChangeResult<TFilter, TResult> = void | {
|
|
33
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
|
}
|
|
@@ -181,6 +184,16 @@ function useFilter(namespace, options) {
|
|
|
181
184
|
return __assign(__assign({}, previous), { offset: getOffsetFromPage_1.default(pageNumber, previous.pageSize), page: pageNumber, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
|
|
182
185
|
});
|
|
183
186
|
}, []),
|
|
187
|
+
setPageSize: react_1.useCallback(function (pageSize, shouldRunImmediately) {
|
|
188
|
+
if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
|
|
189
|
+
setFilterInfoState(function (previous) {
|
|
190
|
+
invariant(previous != null, 'setPageSize called without filterInfo');
|
|
191
|
+
var pageSizeNumber = Number(pageSize);
|
|
192
|
+
var page = getPageFromOffset_1.default(previous.offset, pageSizeNumber);
|
|
193
|
+
var offset = getOffsetFromPage_1.default(page, pageSizeNumber);
|
|
194
|
+
return __assign(__assign({}, previous), { pageSize: pageSizeNumber, offset: offset, page: page, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
|
|
195
|
+
});
|
|
196
|
+
}, []),
|
|
184
197
|
setSort: react_1.useCallback(function (sort, shouldRunImmediately) {
|
|
185
198
|
if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
|
|
186
199
|
setFilterInfoState(function (previous) {
|
|
@@ -188,6 +201,13 @@ function useFilter(namespace, options) {
|
|
|
188
201
|
return __assign(__assign({}, previous), { sort: sort, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
|
|
189
202
|
});
|
|
190
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
|
+
}, []),
|
|
191
211
|
forceRefresh: react_1.useCallback(function (shouldRunImmediately) {
|
|
192
212
|
if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
|
|
193
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) => {
|
|
@@ -39,7 +42,9 @@ declare function useSimpleFilter<TFilter>(namespace: string, options: UseSimpleF
|
|
|
39
42
|
resetFilter: (shouldRunImmediately?: boolean) => void;
|
|
40
43
|
setOffset: (offset: number | string, shouldRunImmediately?: boolean) => void;
|
|
41
44
|
setPage: (page: number | string, shouldRunImmediately?: boolean) => void;
|
|
45
|
+
setPageSize: (pageSize: number | string, shouldRunImmediately?: boolean) => void;
|
|
42
46
|
setSort: (sort: string, shouldRunImmediately?: boolean) => void;
|
|
47
|
+
setCursor: (cursor: string | null | undefined, shouldRunImmediately?: boolean) => void;
|
|
43
48
|
forceRefresh: (shouldRunImmediately?: boolean) => void;
|
|
44
49
|
};
|
|
45
50
|
export default useSimpleFilter;
|
package/dist/useSimpleFilter.js
CHANGED
|
@@ -104,10 +104,23 @@ function useSimpleFilter(namespace, options) {
|
|
|
104
104
|
var pageNumber = Number(page);
|
|
105
105
|
setFilterInfoState(function (previous) { return (__assign(__assign({}, previous), { offset: getOffsetFromPage_1.default(pageNumber, previous.pageSize), page: pageNumber, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately })); });
|
|
106
106
|
}, []),
|
|
107
|
+
setPageSize: react_1.useCallback(function (pageSize, shouldRunImmediately) {
|
|
108
|
+
if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
|
|
109
|
+
setFilterInfoState(function (previous) {
|
|
110
|
+
var pageSizeNumber = Number(pageSize);
|
|
111
|
+
var page = getPageFromOffset_1.default(previous.offset, pageSizeNumber);
|
|
112
|
+
var offset = getOffsetFromPage_1.default(page, pageSizeNumber);
|
|
113
|
+
return __assign(__assign({}, previous), { pageSize: pageSizeNumber, offset: offset, page: page, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
|
|
114
|
+
});
|
|
115
|
+
}, []),
|
|
107
116
|
setSort: react_1.useCallback(function (sort, shouldRunImmediately) {
|
|
108
117
|
if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
|
|
109
118
|
setFilterInfoState(function (previous) { return (__assign(__assign({}, previous), { sort: sort, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately })); });
|
|
110
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
|
+
}, []),
|
|
111
124
|
forceRefresh: react_1.useCallback(function (shouldRunImmediately) {
|
|
112
125
|
if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
|
|
113
126
|
setFilterInfoState(function (previous) { return (__assign(__assign({}, previous), { lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately })); });
|