@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.
- package/dist/useFilter.d.ts +6 -6
- package/dist/useFilter.js +19 -11
- package/dist/useSimpleFilter.d.ts +23 -7
- package/dist/useSimpleFilter.js +2 -4
- package/package.json +1 -1
package/dist/useFilter.d.ts
CHANGED
|
@@ -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?:
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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;
|
|
21
37
|
totalPages: number;
|
|
22
38
|
};
|
|
23
|
-
resetFilter: (shouldRunImmediately?:
|
|
24
|
-
setOffset: (offset: number | string, shouldRunImmediately?:
|
|
25
|
-
setPage: (page: number | string, shouldRunImmediately?:
|
|
26
|
-
setSort: (sort: string, shouldRunImmediately?:
|
|
27
|
-
forceRefresh: (shouldRunImmediately?:
|
|
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;
|
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);
|