react-hook-core 0.4.21 → 0.4.23

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/index.js CHANGED
@@ -151,10 +151,6 @@ function datetimeToString(date) {
151
151
  return year + "-" + month + "-" + day + "T" + hours + ":" + minutes + ":" + seconds
152
152
  }
153
153
  exports.datetimeToString = datetimeToString
154
- function getNumber(event) {
155
- return parseInt(event.currentTarget.value, 10)
156
- }
157
- exports.getNumber = getNumber
158
154
  exports.scrollToFocus = function (e, isUseTimeOut) {
159
155
  try {
160
156
  var element = e.target
package/lib/search.js CHANGED
@@ -337,6 +337,57 @@ function handleToggle(target, on) {
337
337
  return off
338
338
  }
339
339
  exports.handleToggle = handleToggle
340
+ function getNumber(event) {
341
+ return parseInt(event.currentTarget.value, 10)
342
+ }
343
+ exports.getNumber = getNumber
344
+ function onPageSizeChanged(event, search, filter, setState) {
345
+ filter.page = 1
346
+ filter.limit = getNumber(event)
347
+ if (setState) {
348
+ setState(filter)
349
+ }
350
+ search()
351
+ }
352
+ exports.onPageSizeChanged = onPageSizeChanged
353
+ function onPageChanged(data, search, filter, setState) {
354
+ var page = data.page,
355
+ size = data.size
356
+ filter.page = page
357
+ filter.limit = size
358
+ if (setState) {
359
+ setState(filter)
360
+ }
361
+ search()
362
+ }
363
+ exports.onPageChanged = onPageChanged
364
+ function onSearch(event, search, filter, state, setFilter, setState) {
365
+ event.preventDefault()
366
+ removeSortStatus(state.sortTarget)
367
+ filter.page = 1
368
+ state.sortTarget = undefined
369
+ state.sortField = undefined
370
+ if (setFilter) {
371
+ setFilter(filter)
372
+ }
373
+ if (setState) {
374
+ setState(state)
375
+ }
376
+ search()
377
+ }
378
+ exports.onSearch = onSearch
379
+ function onSort(event, search, state, setState) {
380
+ var target = getSortElement(event.target)
381
+ var sort = handleSort(target, state.sortTarget, state.sortField, state.sortType)
382
+ state.sortField = sort.field
383
+ state.sortType = sort.type
384
+ state.sortTarget = target
385
+ if (setState) {
386
+ setState(state)
387
+ }
388
+ search()
389
+ }
390
+ exports.onSort = onSort
340
391
  function getSortElement(target) {
341
392
  return target.nodeName === "I" ? target.parentElement : target
342
393
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-hook-core",
3
- "version": "0.4.21",
3
+ "version": "0.4.23",
4
4
  "description": "react",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
package/src/index.ts CHANGED
@@ -199,9 +199,6 @@ export function datetimeToString(date?: Date | string): string | undefined {
199
199
  const seconds = String(d2.getSeconds()).padStart(2, "0")
200
200
  return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`
201
201
  }
202
- export function getNumber(event: ChangeEvent<HTMLSelectElement | HTMLInputElement>): number {
203
- return parseInt(event.currentTarget.value, 10)
204
- }
205
202
 
206
203
  export const scrollToFocus = (e: any, isUseTimeOut?: boolean) => {
207
204
  try {
package/src/search.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { ChangeEvent } from "react"
1
2
  import { resources, StringMap } from "./core"
2
3
  import { clone } from "./reflect"
3
4
 
@@ -371,6 +372,68 @@ export function handleToggle(target?: HTMLElement, on?: boolean): boolean {
371
372
  return off
372
373
  }
373
374
 
375
+ export function getNumber(event: ChangeEvent<HTMLSelectElement | HTMLInputElement>): number {
376
+ return parseInt(event.currentTarget.value, 10)
377
+ }
378
+ export function onPageSizeChanged<T extends Filter>(
379
+ event: ChangeEvent<HTMLSelectElement>,
380
+ search: () => void,
381
+ filter: T,
382
+ setState?: (v: React.SetStateAction<T>) => void,
383
+ ) {
384
+ filter.page = 1
385
+ filter.limit = getNumber(event)
386
+ if (setState) {
387
+ setState(filter)
388
+ }
389
+ search()
390
+ }
391
+ export function onPageChanged<T extends Filter>(data: PageChange, search: () => void, filter: T, setState?: (v: React.SetStateAction<T>) => void) {
392
+ const { page, size } = data
393
+ filter.page = page
394
+ filter.limit = size
395
+ if (setState) {
396
+ setState(filter)
397
+ }
398
+ search()
399
+ }
400
+ export function onSearch<F extends Filter, T extends Sortable>(
401
+ event: React.MouseEvent<HTMLButtonElement, MouseEvent>,
402
+ search: () => void,
403
+ filter: F,
404
+ state: T,
405
+ setFilter?: (v: React.SetStateAction<F>) => void,
406
+ setState?: (v: React.SetStateAction<T>) => void,
407
+ ): void {
408
+ event.preventDefault()
409
+ removeSortStatus(state.sortTarget)
410
+ filter.page = 1
411
+ state.sortTarget = undefined
412
+ state.sortField = undefined
413
+ if (setFilter) {
414
+ setFilter(filter)
415
+ }
416
+ if (setState) {
417
+ setState(state)
418
+ }
419
+ search()
420
+ }
421
+ export function onSort<T extends Sortable>(
422
+ event: React.MouseEvent<HTMLButtonElement, MouseEvent>,
423
+ search: () => void,
424
+ state: T,
425
+ setState?: (v: React.SetStateAction<T>) => void,
426
+ ) {
427
+ const target = getSortElement(event.target as HTMLElement)
428
+ const sort = handleSort(target, state.sortTarget, state.sortField, state.sortType)
429
+ state.sortField = sort.field
430
+ state.sortType = sort.type
431
+ state.sortTarget = target
432
+ if (setState) {
433
+ setState(state)
434
+ }
435
+ search()
436
+ }
374
437
  export function getSortElement(target: HTMLElement): HTMLElement {
375
438
  return target.nodeName === "I" ? (target.parentElement as HTMLElement) : target
376
439
  }
@@ -383,7 +446,6 @@ export function handleSort(target: HTMLElement, previousTarget?: HTMLElement, so
383
446
  }
384
447
  return s
385
448
  }
386
-
387
449
  export function sort(preField?: string, preSortType?: string, field?: string, sortType?: string): Sort {
388
450
  if (!preField || preField === "") {
389
451
  const s: Sort = {
package/src/state.ts CHANGED
@@ -16,7 +16,11 @@ export function getDecimalSeparator(ele: HTMLInputElement): string {
16
16
 
17
17
  const r1 = / |,|\$|€|£|¥|'|٬|،| /g
18
18
  const r2 = / |\.|\$|€|£|¥|'|٬|،| /g
19
- export function updateState<T>(e: ChangeEvent<HTMLInputElement, HTMLInputElement>, o: T, setObj: (v: React.SetStateAction<T>) => void) {
19
+ export function updateState<T>(
20
+ e: ChangeEvent<HTMLInputElement, HTMLInputElement> | ChangeEvent<HTMLTextAreaElement, HTMLTextAreaElement>,
21
+ o: T,
22
+ setObj: (v: React.SetStateAction<T>) => void,
23
+ ) {
20
24
  const ctrl = e.target
21
25
  const dataField = ctrl.getAttribute("data-field")
22
26
  const field = dataField ? dataField : ctrl.name
@@ -36,7 +40,7 @@ export function updateState<T>(e: ChangeEvent<HTMLInputElement, HTMLInputElement
36
40
  if (type === "text") {
37
41
  const datatype = ctrl.getAttribute("data-type")
38
42
  if (datatype === "number" || datatype === "integer") {
39
- const decimalSeparator = getDecimalSeparator(ctrl)
43
+ const decimalSeparator = getDecimalSeparator(ctrl as HTMLInputElement)
40
44
  const v0: string = ctrl.value
41
45
  const v = decimalSeparator === "," ? v0.replace(r2, "") : v0.replace(r1, "")
42
46
  const val = isNaN(v as any) ? undefined : parseFloat(v)
@@ -53,7 +57,7 @@ export function updateState<T>(e: ChangeEvent<HTMLInputElement, HTMLInputElement
53
57
  value.includes(ctrl.value) ? (value = value.filter((v: string) => v !== ctrl.value)) : value.push(ctrl.value)
54
58
  model[field] = value
55
59
  } else {
56
- const v = valueOfCheckbox(ctrl)
60
+ const v = valueOfCheckbox(ctrl as HTMLInputElement)
57
61
  model[field] = v
58
62
  }
59
63
  } else if (type === "radio") {