react-hook-core 0.3.1 → 0.3.2
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/lib/search.js +18 -46
- package/lib/useSearch.js +0 -1
- package/package.json +1 -1
- package/src/route.ts +2 -1
- package/src/search.ts +24 -44
- package/src/useSearch.ts +4 -4
- package/tsconfig.json +2 -1
package/lib/search.js
CHANGED
|
@@ -163,7 +163,6 @@ function changePage(com, pageIndex, pageSize) {
|
|
|
163
163
|
}
|
|
164
164
|
exports.changePage = changePage;
|
|
165
165
|
function optimizeFilter(obj, searchable, fields) {
|
|
166
|
-
var sLimit = searchable.limit;
|
|
167
166
|
obj.fields = fields;
|
|
168
167
|
if (searchable.pageIndex && searchable.pageIndex > 1) {
|
|
169
168
|
obj.page = searchable.pageIndex;
|
|
@@ -171,12 +170,7 @@ function optimizeFilter(obj, searchable, fields) {
|
|
|
171
170
|
else {
|
|
172
171
|
delete obj.page;
|
|
173
172
|
}
|
|
174
|
-
|
|
175
|
-
obj.limit = searchable.limit;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
obj.limit = searchable.pageSize;
|
|
179
|
-
}
|
|
173
|
+
obj.limit = searchable.pageSize;
|
|
180
174
|
if (searchable.appendMode && searchable.initPageSize !== searchable.pageSize) {
|
|
181
175
|
obj.firstLimit = searchable.initPageSize;
|
|
182
176
|
}
|
|
@@ -418,7 +412,10 @@ function removeFormatUrl(url) {
|
|
|
418
412
|
var startParams = url.indexOf('?');
|
|
419
413
|
return startParams !== -1 ? url.substring(0, startParams) : url;
|
|
420
414
|
}
|
|
421
|
-
function
|
|
415
|
+
function getPrefix(url) {
|
|
416
|
+
return url.indexOf("?") >= 0 ? "&" : "?";
|
|
417
|
+
}
|
|
418
|
+
function addParametersIntoUrl(ft, isFirstLoad, page, fields, limit) {
|
|
422
419
|
if (!isFirstLoad) {
|
|
423
420
|
if (!fields || fields.length === 0) {
|
|
424
421
|
fields = 'fields';
|
|
@@ -426,6 +423,11 @@ function addParametersIntoUrl(ft, isFirstLoad, fields, limit) {
|
|
|
426
423
|
if (!limit || limit.length === 0) {
|
|
427
424
|
limit = 'limit';
|
|
428
425
|
}
|
|
426
|
+
if (page && page > 1) {
|
|
427
|
+
if (!ft.page || ft.page <= 1) {
|
|
428
|
+
ft.page = page;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
429
431
|
var pageIndex = ft.page;
|
|
430
432
|
if (pageIndex && !isNaN(pageIndex) && pageIndex <= 1) {
|
|
431
433
|
delete ft.page;
|
|
@@ -441,31 +443,16 @@ function addParametersIntoUrl(ft, isFirstLoad, fields, limit) {
|
|
|
441
443
|
if (typeof objValue === 'string' || typeof objValue === 'number') {
|
|
442
444
|
if (key === limit) {
|
|
443
445
|
if (objValue !== resources.limit) {
|
|
444
|
-
|
|
445
|
-
url += "?" + key + "=" + objValue;
|
|
446
|
-
}
|
|
447
|
-
else {
|
|
448
|
-
url += "&" + key + "=" + objValue;
|
|
449
|
-
}
|
|
446
|
+
url += getPrefix(url) + (key + "=" + objValue);
|
|
450
447
|
}
|
|
451
448
|
}
|
|
452
449
|
else {
|
|
453
|
-
|
|
454
|
-
url += "?" + key + "=" + objValue;
|
|
455
|
-
}
|
|
456
|
-
else {
|
|
457
|
-
url += "&" + key + "=" + objValue;
|
|
458
|
-
}
|
|
450
|
+
url += getPrefix(url) + (key + "=" + objValue);
|
|
459
451
|
}
|
|
460
452
|
}
|
|
461
453
|
else if (typeof objValue === 'object') {
|
|
462
454
|
if (objValue instanceof Date) {
|
|
463
|
-
|
|
464
|
-
url += "?" + key + "=" + objValue.toISOString();
|
|
465
|
-
}
|
|
466
|
-
else {
|
|
467
|
-
url += "&" + key + "=" + objValue.toISOString();
|
|
468
|
-
}
|
|
455
|
+
url += getPrefix(url) + (key + "=" + objValue.toISOString());
|
|
469
456
|
}
|
|
470
457
|
else {
|
|
471
458
|
if (Array.isArray(objValue)) {
|
|
@@ -480,12 +467,7 @@ function addParametersIntoUrl(ft, isFirstLoad, fields, limit) {
|
|
|
480
467
|
strs.push(subValue.toString());
|
|
481
468
|
}
|
|
482
469
|
}
|
|
483
|
-
|
|
484
|
-
url += "?" + key + "=" + strs.join(',');
|
|
485
|
-
}
|
|
486
|
-
else {
|
|
487
|
-
url += "&" + key + "=" + strs.join(',');
|
|
488
|
-
}
|
|
470
|
+
url += getPrefix(url) + (key + "=" + strs.join(','));
|
|
489
471
|
}
|
|
490
472
|
}
|
|
491
473
|
else {
|
|
@@ -493,21 +475,11 @@ function addParametersIntoUrl(ft, isFirstLoad, fields, limit) {
|
|
|
493
475
|
for (var _b = 0, keysLvl2_1 = keysLvl2; _b < keysLvl2_1.length; _b++) {
|
|
494
476
|
var key2 = keysLvl2_1[_b];
|
|
495
477
|
var objValueLvl2 = objValue[key2];
|
|
496
|
-
if (
|
|
497
|
-
|
|
498
|
-
url += "?" + key + "." + key2 + "=" + objValueLvl2.toISOString();
|
|
499
|
-
}
|
|
500
|
-
else {
|
|
501
|
-
url += "?" + key + "." + key2 + "=" + objValueLvl2;
|
|
502
|
-
}
|
|
478
|
+
if (objValueLvl2 instanceof Date) {
|
|
479
|
+
url += getPrefix(url) + (key + "." + key2 + "=" + objValueLvl2.toISOString());
|
|
503
480
|
}
|
|
504
481
|
else {
|
|
505
|
-
|
|
506
|
-
url += "&" + key + "." + key2 + "=" + objValueLvl2.toISOString();
|
|
507
|
-
}
|
|
508
|
-
else {
|
|
509
|
-
url += "&" + key + "." + key2 + "=" + objValueLvl2;
|
|
510
|
-
}
|
|
482
|
+
url += getPrefix(url) + (key + "." + key2 + "=" + objValueLvl2);
|
|
511
483
|
}
|
|
512
484
|
}
|
|
513
485
|
}
|
|
@@ -519,7 +491,7 @@ function addParametersIntoUrl(ft, isFirstLoad, fields, limit) {
|
|
|
519
491
|
var p = 'http://';
|
|
520
492
|
var loc = window.location.href;
|
|
521
493
|
if (loc.length >= 8) {
|
|
522
|
-
var ss = loc.
|
|
494
|
+
var ss = loc.substring(0, 8);
|
|
523
495
|
if (ss === 'https://') {
|
|
524
496
|
p = 'https://';
|
|
525
497
|
}
|
package/lib/useSearch.js
CHANGED
|
@@ -40,7 +40,6 @@ exports.callSearch = function (se, search3, showResults3, searchError3, lc, next
|
|
|
40
40
|
var fields = se.fields;
|
|
41
41
|
delete se['page'];
|
|
42
42
|
delete se['fields'];
|
|
43
|
-
delete se['limit'];
|
|
44
43
|
delete se['firstLimit'];
|
|
45
44
|
search3(s, limit, next, fields).then(function (sr) {
|
|
46
45
|
showResults3(s, sr, lc);
|
package/package.json
CHANGED
package/src/route.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { Filter } from "./core";
|
|
1
2
|
import * as qs from "query-string";
|
|
2
3
|
|
|
3
|
-
export function buildFromUrl<S>(modelT?: S): S {
|
|
4
|
+
export function buildFromUrl<S extends Filter>(modelT?: S): S {
|
|
4
5
|
return buildParameters<S>(window.location.search, modelT);
|
|
5
6
|
}
|
|
6
7
|
export function buildParameters<T>(url: string, model?: T): T {
|
package/src/search.ts
CHANGED
|
@@ -9,7 +9,7 @@ export class resources {
|
|
|
9
9
|
}
|
|
10
10
|
interface Filter {
|
|
11
11
|
page?: number;
|
|
12
|
-
limit
|
|
12
|
+
limit: number;
|
|
13
13
|
firstLimit?: number;
|
|
14
14
|
fields?: string[];
|
|
15
15
|
sort?: string;
|
|
@@ -40,8 +40,8 @@ export interface Sortable {
|
|
|
40
40
|
|
|
41
41
|
export interface Pagination {
|
|
42
42
|
initPageSize?: number;
|
|
43
|
-
pageSize
|
|
44
|
-
limit
|
|
43
|
+
pageSize: number;
|
|
44
|
+
// limit: number;
|
|
45
45
|
pageIndex?: number;
|
|
46
46
|
total?: number;
|
|
47
47
|
pages?: number;
|
|
@@ -192,18 +192,14 @@ export function changePage(com: Pagination, pageIndex: number, pageSize: number)
|
|
|
192
192
|
com.append = false;
|
|
193
193
|
}
|
|
194
194
|
export function optimizeFilter<S extends Filter>(obj: S, searchable: Searchable, fields?: string[]): S {
|
|
195
|
-
const sLimit = searchable.limit;
|
|
195
|
+
// const sLimit = searchable.limit;
|
|
196
196
|
obj.fields = fields;
|
|
197
197
|
if (searchable.pageIndex && searchable.pageIndex > 1) {
|
|
198
198
|
obj.page = searchable.pageIndex;
|
|
199
199
|
} else {
|
|
200
200
|
delete obj.page;
|
|
201
201
|
}
|
|
202
|
-
|
|
203
|
-
obj.limit = searchable.limit;
|
|
204
|
-
}else{
|
|
205
|
-
obj.limit = searchable.pageSize;
|
|
206
|
-
}
|
|
202
|
+
obj.limit = searchable.pageSize;
|
|
207
203
|
|
|
208
204
|
if (searchable.appendMode && searchable.initPageSize !== searchable.pageSize) {
|
|
209
205
|
obj.firstLimit = searchable.initPageSize;
|
|
@@ -216,7 +212,7 @@ export function optimizeFilter<S extends Filter>(obj: S, searchable: Searchable,
|
|
|
216
212
|
delete obj.sort;
|
|
217
213
|
}
|
|
218
214
|
if(searchable) {
|
|
219
|
-
mapObjects(obj, searchable as
|
|
215
|
+
mapObjects(obj, searchable as any);
|
|
220
216
|
}
|
|
221
217
|
return obj;
|
|
222
218
|
}
|
|
@@ -444,7 +440,10 @@ function removeFormatUrl(url: string): string {
|
|
|
444
440
|
}
|
|
445
441
|
|
|
446
442
|
|
|
447
|
-
|
|
443
|
+
function getPrefix(url: string): string {
|
|
444
|
+
return url.indexOf("?") >= 0 ? "&" : "?"
|
|
445
|
+
}
|
|
446
|
+
export function addParametersIntoUrl<S extends Filter>(ft: S, isFirstLoad?: boolean, page?: number, fields?: string, limit?: string): void {
|
|
448
447
|
if (!isFirstLoad) {
|
|
449
448
|
if (!fields || fields.length === 0) {
|
|
450
449
|
fields = 'fields';
|
|
@@ -452,6 +451,11 @@ export function addParametersIntoUrl<S extends Filter>(ft: S, isFirstLoad?: bool
|
|
|
452
451
|
if (!limit || limit.length === 0) {
|
|
453
452
|
limit = 'limit';
|
|
454
453
|
}
|
|
454
|
+
if (page && page > 1) {
|
|
455
|
+
if (!ft.page || ft.page <= 1) {
|
|
456
|
+
ft.page = page;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
455
459
|
const pageIndex = ft.page;
|
|
456
460
|
if (pageIndex && !isNaN(pageIndex) && pageIndex <= 1) {
|
|
457
461
|
delete ft.page;
|
|
@@ -466,30 +470,18 @@ export function addParametersIntoUrl<S extends Filter>(ft: S, isFirstLoad?: bool
|
|
|
466
470
|
if (typeof objValue === 'string' || typeof objValue === 'number') {
|
|
467
471
|
if (key === limit) {
|
|
468
472
|
if (objValue !== resources.limit) {
|
|
469
|
-
|
|
470
|
-
url += `?${key}=${objValue}`;
|
|
471
|
-
} else {
|
|
472
|
-
url += `&${key}=${objValue}`;
|
|
473
|
-
}
|
|
473
|
+
url += getPrefix(url) + `${key}=${objValue}`;
|
|
474
474
|
}
|
|
475
475
|
} else {
|
|
476
|
-
|
|
477
|
-
url += `?${key}=${objValue}`;
|
|
478
|
-
} else {
|
|
479
|
-
url += `&${key}=${objValue}`;
|
|
480
|
-
}
|
|
476
|
+
url += getPrefix(url) + `${key}=${objValue}`;
|
|
481
477
|
}
|
|
482
478
|
} else if (typeof objValue === 'object') {
|
|
483
479
|
if (objValue instanceof Date) {
|
|
484
|
-
|
|
485
|
-
url += `?${key}=${objValue.toISOString()}`;
|
|
486
|
-
} else {
|
|
487
|
-
url += `&${key}=${objValue.toISOString()}`;
|
|
488
|
-
}
|
|
480
|
+
url += getPrefix(url) + `${key}=${objValue.toISOString()}`;
|
|
489
481
|
} else {
|
|
490
482
|
if (Array.isArray(objValue)) {
|
|
491
483
|
if (objValue.length > 0) {
|
|
492
|
-
const strs = [];
|
|
484
|
+
const strs: string[] = [];
|
|
493
485
|
for (const subValue of objValue) {
|
|
494
486
|
if (typeof subValue === 'string') {
|
|
495
487
|
strs.push(subValue);
|
|
@@ -497,28 +489,16 @@ export function addParametersIntoUrl<S extends Filter>(ft: S, isFirstLoad?: bool
|
|
|
497
489
|
strs.push(subValue.toString());
|
|
498
490
|
}
|
|
499
491
|
}
|
|
500
|
-
|
|
501
|
-
url += `?${key}=${strs.join(',')}`;
|
|
502
|
-
} else {
|
|
503
|
-
url += `&${key}=${strs.join(',')}`;
|
|
504
|
-
}
|
|
492
|
+
url += getPrefix(url) + `${key}=${strs.join(',')}`;
|
|
505
493
|
}
|
|
506
494
|
} else {
|
|
507
495
|
const keysLvl2 = Object.keys(objValue);
|
|
508
496
|
for (const key2 of keysLvl2) {
|
|
509
497
|
const objValueLvl2 = objValue[key2];
|
|
510
|
-
if (
|
|
511
|
-
|
|
512
|
-
url += `?${key}.${key2}=${objValueLvl2.toISOString()}`;
|
|
513
|
-
} else {
|
|
514
|
-
url += `?${key}.${key2}=${objValueLvl2}`;
|
|
515
|
-
}
|
|
498
|
+
if (objValueLvl2 instanceof Date) {
|
|
499
|
+
url += getPrefix(url) + `${key}.${key2}=${objValueLvl2.toISOString()}`;
|
|
516
500
|
} else {
|
|
517
|
-
|
|
518
|
-
url += `&${key}.${key2}=${objValueLvl2.toISOString()}`;
|
|
519
|
-
} else {
|
|
520
|
-
url += `&${key}.${key2}=${objValueLvl2}`;
|
|
521
|
-
}
|
|
501
|
+
url += getPrefix(url) + `${key}.${key2}=${objValueLvl2}`;
|
|
522
502
|
}
|
|
523
503
|
}
|
|
524
504
|
}
|
|
@@ -530,7 +510,7 @@ export function addParametersIntoUrl<S extends Filter>(ft: S, isFirstLoad?: bool
|
|
|
530
510
|
let p = 'http://';
|
|
531
511
|
const loc = window.location.href;
|
|
532
512
|
if (loc.length >= 8) {
|
|
533
|
-
const ss = loc.
|
|
513
|
+
const ss = loc.substring(0, 8);
|
|
534
514
|
if (ss === 'https://') {
|
|
535
515
|
p = 'https://';
|
|
536
516
|
}
|
package/src/useSearch.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface Searchable extends Pagination, Sortable {
|
|
|
13
13
|
}
|
|
14
14
|
interface Filter {
|
|
15
15
|
page?: number;
|
|
16
|
-
limit
|
|
16
|
+
limit: number;
|
|
17
17
|
firstLimit?: number;
|
|
18
18
|
fields?: string[];
|
|
19
19
|
sort?: string;
|
|
@@ -39,7 +39,7 @@ export const callSearch = <T, S extends Filter>(se: S, search3: (s: S, limit?: n
|
|
|
39
39
|
const fields = se.fields;
|
|
40
40
|
delete se['page'];
|
|
41
41
|
delete se['fields'];
|
|
42
|
-
delete se['limit'];
|
|
42
|
+
// delete se['limit'];
|
|
43
43
|
delete se['firstLimit'];
|
|
44
44
|
search3(s, limit, next, fields).then(sr => {
|
|
45
45
|
showResults3(s, sr, lc);
|
|
@@ -74,7 +74,7 @@ export interface SearchComponentParam<T, M extends Filter> {
|
|
|
74
74
|
appendMode?: boolean;
|
|
75
75
|
pageSizes?: number[];
|
|
76
76
|
pageIndex?: number;
|
|
77
|
-
pageSize
|
|
77
|
+
pageSize: number;
|
|
78
78
|
initPageSize?: number;
|
|
79
79
|
pageMaxSize?: number;
|
|
80
80
|
ignoreUrlParam?: boolean;
|
|
@@ -303,7 +303,7 @@ export const useCoreSearch = <T, S extends Filter, ST>(
|
|
|
303
303
|
const runSearch = doSearch;
|
|
304
304
|
if (auto) {
|
|
305
305
|
setTimeout(() => {
|
|
306
|
-
runSearch((obj2 as
|
|
306
|
+
runSearch((obj2 as any), true);
|
|
307
307
|
}, 0);
|
|
308
308
|
}
|
|
309
309
|
};
|