@promoboxx/use-filter 1.5.2 → 1.6.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 +1 -0
- package/dist/useFilter.js +14 -1
- package/dist/useSimpleFilter.d.ts +19 -2
- package/dist/useSimpleFilter.js +11 -4
- package/package.json +1 -1
package/dist/useFilter.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ 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;
|
|
18
19
|
forceRefresh: (shouldRunImmediately?: boolean) => void;
|
|
19
20
|
};
|
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
|
-
|
|
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);
|
|
@@ -178,6 +181,16 @@ function useFilter(namespace, options) {
|
|
|
178
181
|
return __assign(__assign({}, previous), { offset: getOffsetFromPage_1.default(pageNumber, previous.pageSize), page: pageNumber, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
|
|
179
182
|
});
|
|
180
183
|
}, []),
|
|
184
|
+
setPageSize: react_1.useCallback(function (pageSize, shouldRunImmediately) {
|
|
185
|
+
if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
|
|
186
|
+
setFilterInfoState(function (previous) {
|
|
187
|
+
invariant(previous != null, 'setPageSize called without filterInfo');
|
|
188
|
+
var pageSizeNumber = Number(pageSize);
|
|
189
|
+
var page = getPageFromOffset_1.default(previous.offset, pageSizeNumber);
|
|
190
|
+
var offset = getOffsetFromPage_1.default(page, pageSizeNumber);
|
|
191
|
+
return __assign(__assign({}, previous), { pageSize: pageSizeNumber, offset: offset, page: page, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately });
|
|
192
|
+
});
|
|
193
|
+
}, []),
|
|
181
194
|
setSort: react_1.useCallback(function (sort, shouldRunImmediately) {
|
|
182
195
|
if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
|
|
183
196
|
setFilterInfoState(function (previous) {
|
|
@@ -13,8 +13,24 @@ interface UseSimpleFilterOptions<TFilter> {
|
|
|
13
13
|
}
|
|
14
14
|
declare function useSimpleFilter<TFilter>(namespace: string, options: UseSimpleFilterOptions<TFilter>): {
|
|
15
15
|
isLoading: boolean;
|
|
16
|
-
filterInfo:
|
|
17
|
-
|
|
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;
|
|
@@ -23,6 +39,7 @@ declare function useSimpleFilter<TFilter>(namespace: string, options: UseSimpleF
|
|
|
23
39
|
resetFilter: (shouldRunImmediately?: boolean) => void;
|
|
24
40
|
setOffset: (offset: number | string, shouldRunImmediately?: boolean) => void;
|
|
25
41
|
setPage: (page: number | string, shouldRunImmediately?: boolean) => void;
|
|
42
|
+
setPageSize: (pageSize: number | string, shouldRunImmediately?: boolean) => void;
|
|
26
43
|
setSort: (sort: string, shouldRunImmediately?: boolean) => void;
|
|
27
44
|
forceRefresh: (shouldRunImmediately?: boolean) => void;
|
|
28
45
|
};
|
package/dist/useSimpleFilter.js
CHANGED
|
@@ -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
|
-
|
|
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);
|
|
@@ -106,6 +104,15 @@ function useSimpleFilter(namespace, options) {
|
|
|
106
104
|
var pageNumber = Number(page);
|
|
107
105
|
setFilterInfoState(function (previous) { return (__assign(__assign({}, previous), { offset: getOffsetFromPage_1.default(pageNumber, previous.pageSize), page: pageNumber, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately })); });
|
|
108
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
|
+
}, []),
|
|
109
116
|
setSort: react_1.useCallback(function (sort, shouldRunImmediately) {
|
|
110
117
|
if (shouldRunImmediately === void 0) { shouldRunImmediately = false; }
|
|
111
118
|
setFilterInfoState(function (previous) { return (__assign(__assign({}, previous), { sort: sort, lastRefreshAt: new Date().getTime(), shouldRunImmediately: shouldRunImmediately })); });
|