react-hook-core 0.1.5 → 0.1.8

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/com.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var React = require("react");
4
+ var core_1 = require("./core");
5
+ function PageSizeSelect(p) {
6
+ var g = p.sizes;
7
+ var s = (!g || g.length === 0 ? core_1.pageSizes : g);
8
+ var opts = s.map(function (pgSize) { return React.createElement('option', { key: pgSize, value: pgSize }, pgSize); });
9
+ return React.createElement('select', { id: p.id, name: p.name, defaultValue: p.size, onChange: p.onChange }, opts);
10
+ }
11
+ exports.PageSizeSelect = PageSizeSelect;
12
+ function Search(p) {
13
+ return (React.createElement(React.Fragment, null, React.createElement("label", { className: p.className }, p.pageSizeChanged && React.createElement(PageSizeSelect, { size: p.size, sizes: p.sizes, onChange: p.pageSizeChanged, name: p.name, id: p.id }), React.createElement("input", { type: 'text', id: 'q', name: 'q', value: p.value || '', onChange: p.onChange, maxLength: p.maxLength, placeholder: p.placeholder }), p.clear && React.createElement("button", { type: 'button', hidden: !p.value, className: 'btn-remove-text', onClick: p.clear }), p.toggle && React.createElement("button", { type: 'button', className: 'btn-filter', onClick: p.toggle }), p.search && React.createElement("button", { type: 'submit', className: 'btn-search', onClick: p.search }))));
14
+ }
15
+ exports.Search = Search;
package/lib/core.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var formutil_1 = require("./formutil");
4
4
  exports.pageSizes = [12, 24, 60, 100, 120, 180, 300, 600];
5
+ exports.size = exports.pageSizes;
5
6
  function createEditStatus(status) {
6
7
  if (status) {
7
8
  return status;
package/lib/index.js CHANGED
@@ -19,7 +19,7 @@ __export(require("./useEdit"));
19
19
  __export(require("./components"));
20
20
  __export(require("./search"));
21
21
  __export(require("./reflect"));
22
- var core_1 = require("./core");
22
+ __export(require("./com"));
23
23
  function checked(s, v) {
24
24
  if (s) {
25
25
  if (Array.isArray(s)) {
@@ -51,11 +51,3 @@ exports.Loading = function (props) {
51
51
  return (React.createElement('div', { className: 'loader-wrapper' }, React.createElement('div', { className: 'loader-sign', style: loadingStyle }, React.createElement('div', { className: 'loader' }))));
52
52
  }
53
53
  };
54
- function PageSizeSelect(p) {
55
- var g = p.sizes;
56
- var s = (!g || g.length === 0 ? core_1.pageSizes : g);
57
- var opts = s.map(function (pgSize) { return React.createElement('option', { key: pgSize, value: pgSize }, pgSize); });
58
- return React.createElement('select', { id: p.id, name: p.name, defaultValue: p.size, onChange: p.onChange }, opts);
59
- }
60
- exports.PageSizeSelect = PageSizeSelect;
61
- exports.default = PageSizeSelect;
package/lib/useSearch.js CHANGED
@@ -98,6 +98,7 @@ function mergeParam(p) {
98
98
  };
99
99
  }
100
100
  }
101
+ exports.mergeParam = mergeParam;
101
102
  exports.useSearch = function (refForm, initialState, service, p2, p) {
102
103
  var baseProps = exports.useCoreSearch(refForm, initialState, service, p2, p);
103
104
  react_1.useEffect(function () {
@@ -123,7 +124,7 @@ exports.useSearchOneProps = function (p) {
123
124
  exports.useSearchOne = function (p) {
124
125
  return exports.useCoreSearch(p.refForm, p.initialState, p.service, p, p);
125
126
  };
126
- exports.useCoreSearch = function (refForm, initialState, service, p1, p2, props) {
127
+ exports.useCoreSearch = function (refForm, initialState, service, p1, p2) {
127
128
  var p = mergeParam(p2);
128
129
  var _a = react_1.useState(), running = _a[0], setRunning = _a[1];
129
130
  var _getModelName = function () {
@@ -149,7 +150,7 @@ exports.useCoreSearch = function (refForm, initialState, service, p1, p2, props)
149
150
  return fs;
150
151
  };
151
152
  var getFields = p && p.getFields ? p.getFields : _getFields;
152
- var getFilter = function (se) {
153
+ var _getFilter = function (se) {
153
154
  if (!se) {
154
155
  se = component;
155
156
  }
@@ -167,6 +168,7 @@ exports.useCoreSearch = function (refForm, initialState, service, p1, p2, props)
167
168
  var obj3 = search_1.getModel(state, n, se, fs, se.excluding, keys, se.list, refForm.current, core_1.getDecodeFromForm(p1), lc, cc);
168
169
  return obj3;
169
170
  };
171
+ var getFilter = p && p.getFilter ? p.getFilter : _getFilter;
170
172
  var _setFilter = function (s) {
171
173
  var objSet = {};
172
174
  var n = getModelName();
@@ -225,12 +227,15 @@ exports.useCoreSearch = function (refForm, initialState, service, p1, p2, props)
225
227
  });
226
228
  doSearch(component);
227
229
  };
228
- var clearQ = function (event) {
230
+ var clearQ = function (e) {
231
+ if (e) {
232
+ e.preventDefault();
233
+ }
229
234
  var n = getModelName();
230
235
  if (n && n.length > 0) {
231
236
  var m = state[n];
232
237
  if (m) {
233
- m.keyword = '';
238
+ m.q = '';
234
239
  var setObj = {};
235
240
  setObj[n] = m;
236
241
  setState(setObj);
@@ -370,7 +375,9 @@ exports.useCoreSearch = function (refForm, initialState, service, p1, p2, props)
370
375
  toggleFilter: toggleFilter,
371
376
  doSearch: doSearch,
372
377
  pageChanged: pageChanged,
373
- pageSizeChanged: pageSizeChanged, clearKeyworkOnClick: clearQ, showResults: showResults,
378
+ pageSizeChanged: pageSizeChanged,
379
+ clearQ: clearQ,
380
+ showResults: showResults,
374
381
  getFields: getFields,
375
382
  getModelName: getModelName, format: p ? p.format : undefined
376
383
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-hook-core",
3
- "version": "0.1.5",
3
+ "version": "0.1.8",
4
4
  "description": "react",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
package/src/com.ts ADDED
@@ -0,0 +1,53 @@
1
+ import * as React from 'react';
2
+ import { Locale, pageSizes } from './core';
3
+
4
+ export interface PageSizeProps {
5
+ id?: string;
6
+ name?: string;
7
+ size?: number;
8
+ sizes?: number[];
9
+ onChange?: React.ChangeEventHandler<HTMLSelectElement>;
10
+ }
11
+ export function PageSizeSelect(p: PageSizeProps) {
12
+ const g = p.sizes;
13
+ const s = (!g || g.length === 0 ? pageSizes : g);
14
+ const opts = s.map(pgSize => React.createElement('option', { key: pgSize, value: pgSize }, pgSize));
15
+ return React.createElement('select', { id: p.id, name: p.name, defaultValue: p.size, onChange: p.onChange }, opts);
16
+ }
17
+ export interface Props {
18
+ id?: string;
19
+ name?: string;
20
+ size?: number;
21
+ sizes?: number[];
22
+ className?: string;
23
+ maxLength?: number;
24
+ value?: string;
25
+ placeholder?: string;
26
+ pageSizeChanged?: (event: any) => void;
27
+ search?: React.MouseEventHandler<HTMLElement>;
28
+ toggle?: React.MouseEventHandler<HTMLElement>;
29
+ clear?: React.MouseEventHandler<HTMLButtonElement>;
30
+ onChange?: (e: any, callback?: (() => void) | undefined, lc?: Locale | undefined) => void;
31
+ }
32
+ export function Search(p: Props) {
33
+ return (React.createElement(React.Fragment, null,
34
+ React.createElement("label", { className: p.className },
35
+ p.pageSizeChanged && React.createElement(PageSizeSelect, { size: p.size, sizes: p.sizes, onChange: p.pageSizeChanged, name: p.name, id: p.id }),
36
+ React.createElement("input", { type: 'text', id: 'q', name: 'q', value: p.value || '', onChange: p.onChange, maxLength: p.maxLength, placeholder: p.placeholder }),
37
+ p.clear && React.createElement("button", { type: 'button', hidden: !p.value, className: 'btn-remove-text', onClick: p.clear }),
38
+ p.toggle && React.createElement("button", { type: 'button', className: 'btn-filter', onClick: p.toggle }),
39
+ p.search && React.createElement("button", { type: 'submit', className: 'btn-search', onClick: p.search }))));
40
+ /*
41
+ return (
42
+ <>
43
+ <label className={p.className}>
44
+ {p.pageSizeChanged && <PageSizeSelect size={p.size} sizes={p.sizes} onChange={p.pageSizeChanged} name={p.name} id={p.id} />}
45
+ <input type='text' id='q' name='q' value={p.value || ''} onChange={p.onChange} maxLength={p.maxLength} placeholder={p.placeholder} />
46
+ {p.clear && <button type='button' hidden={!p.value} className='btn-remove-text' onClick={p.clear}/>}
47
+ {p.toggle && <button type='button' className='btn-filter' onClick={p.toggle} />}
48
+ {p.search && <button type='submit' className='btn-search' onClick={p.search} />}
49
+ </label>
50
+ </>
51
+ );
52
+ */
53
+ }
package/src/core.ts CHANGED
@@ -2,6 +2,7 @@ import { Params } from 'react-router';
2
2
  import { focusFirstElement } from './formutil';
3
3
 
4
4
  export const pageSizes = [12, 24, 60, 100, 120, 180, 300, 600];
5
+ export const size = pageSizes;
5
6
  export interface ModelMap {
6
7
  [key: string]: any;
7
8
  }
package/src/index.ts CHANGED
@@ -14,8 +14,7 @@ export * from './useEdit';
14
14
  export * from './components';
15
15
  export * from './search';
16
16
  export * from './reflect';
17
-
18
- import {pageSizes} from './core';
17
+ export * from './com';
19
18
 
20
19
  export function checked(s: string[]|string|undefined, v: string): boolean|undefined {
21
20
  if (s) {
@@ -55,17 +54,4 @@ export const Loading = (props: LoadingProps) => {
55
54
  );*/
56
55
  }
57
56
  };
58
- export interface Props {
59
- id?: string;
60
- name?: string;
61
- size?: number;
62
- sizes?: number[];
63
- onChange?: React.ChangeEventHandler<HTMLSelectElement>;
64
- }
65
- export function PageSizeSelect(p: Props) {
66
- const g = p.sizes;
67
- const s = (!g || g.length === 0 ? pageSizes : g);
68
- const opts = s.map(pgSize => React.createElement('option', { key: pgSize, value: pgSize }, pgSize));
69
- return React.createElement('select', { id: p.id, name: p.name, defaultValue: p.size, onChange: p.onChange }, opts);
70
- }
71
- export default PageSizeSelect;
57
+ export type OnClick = React.MouseEvent<HTMLElement, MouseEvent>;
package/src/useSearch.ts CHANGED
@@ -84,7 +84,7 @@ export interface SearchComponentParam<T, M extends Filter> {
84
84
  getModelName?: () => string;
85
85
  getCurrencyCode?: () => string;
86
86
  setFilter?: (s: M) => void;
87
- getFilter?: () => M;
87
+ getFilter?: (se?: Searchable<T>) => M;
88
88
  getFields?: () => string[]|undefined;
89
89
  validateSearch?: (se: M, callback: () => void) => void;
90
90
  // prepareCustomData?: (data: any) => void;
@@ -142,7 +142,7 @@ export interface SearchComponentState<T, S> extends Pagination, Sortable {
142
142
  deletable?: boolean;
143
143
  }
144
144
 
145
- function mergeParam<T, S extends Filter>(p?: SearchComponentParam<T, S>): SearchComponentParam<T, S> {
145
+ export function mergeParam<T, S extends Filter>(p?: SearchComponentParam<T, S>): SearchComponentParam<T, S> {
146
146
  if (p) {
147
147
  if (!p.sequenceNo) {
148
148
  p.sequenceNo = 'sequenceNo';
@@ -218,13 +218,12 @@ export const useSearchOneProps = <T, S extends Filter, ST extends SearchComponen
218
218
  export const useSearchOne = <T, S extends Filter, ST extends SearchComponentState<T, S>>(p: HookBaseSearchParameter<T, S, ST>) => {
219
219
  return useCoreSearch(p.refForm, p.initialState, p.service, p, p);
220
220
  };
221
- export const useCoreSearch = <T, S extends Filter, ST, P>(
221
+ export const useCoreSearch = <T, S extends Filter, ST>(
222
222
  refForm: any,
223
223
  initialState: ST,
224
224
  service: ((s: S, limit?: number, offset?: number|string, fields?: string[]) => Promise<SearchResult<T>>) | SearchService<T, S>,
225
225
  p1: SearchParameter,
226
- p2?: SearchComponentParam<T, S>,
227
- props?: P
226
+ p2?: SearchComponentParam<T, S>
228
227
  ) => {
229
228
  const p = mergeParam(p2);
230
229
  const [running, setRunning] = useState<boolean>();
@@ -260,7 +259,7 @@ export const useCoreSearch = <T, S extends Filter, ST, P>(
260
259
  };
261
260
  const getFields = p && p.getFields ? p.getFields : _getFields;
262
261
 
263
- const getFilter = (se?: Searchable<T>): S => {
262
+ const _getFilter = (se?: Searchable<T>): S => {
264
263
  if (!se) {
265
264
  se = component;
266
265
  }
@@ -278,6 +277,7 @@ export const useCoreSearch = <T, S extends Filter, ST, P>(
278
277
  const obj3 = getModel<T, S>(state, n, se, fs, se.excluding, keys, se.list, refForm.current, getDecodeFromForm(p1), lc, cc);
279
278
  return obj3;
280
279
  };
280
+ const getFilter = p && p.getFilter ? p.getFilter : _getFilter;
281
281
  const _setFilter = (s: S): void => {
282
282
  const objSet: any = {};
283
283
  const n = getModelName();
@@ -341,12 +341,15 @@ export const useCoreSearch = <T, S extends Filter, ST, P>(
341
341
  doSearch(component);
342
342
  };
343
343
 
344
- const clearQ = (event?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
344
+ const clearQ = (e?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
345
+ if (e) {
346
+ e.preventDefault();
347
+ }
345
348
  const n = getModelName();
346
349
  if (n && n.length > 0) {
347
350
  const m = (state as any)[n];
348
351
  if (m) {
349
- m.keyword = '';
352
+ m.q = '';
350
353
  const setObj: any = {};
351
354
  setObj[n] = m;
352
355
  setState(setObj);
@@ -495,7 +498,7 @@ export const useCoreSearch = <T, S extends Filter, ST, P>(
495
498
  doSearch,
496
499
  pageChanged,
497
500
  pageSizeChanged,
498
- clearKeyworkOnClick: clearQ,
501
+ clearQ,
499
502
  showResults,
500
503
  getFields,
501
504
  getModelName,
package/lib/router.js DELETED
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var react_1 = require("react");
4
- var react_router_dom_1 = require("react-router-dom");
5
- exports.useRouter = function () {
6
- var _a = [react_router_dom_1.useLocation(), react_router_dom_1.useHistory(), react_router_dom_1.useParams(), react_router_dom_1.useRouteMatch()], location = _a[0], history = _a[1], params = _a[2], match = _a[3];
7
- var navigate = function (targetUrl) {
8
- return function (e) {
9
- if (e) {
10
- e.preventDefault();
11
- }
12
- history.push(targetUrl);
13
- };
14
- };
15
- var back = function (e) {
16
- if (e) {
17
- e.preventDefault();
18
- }
19
- history.goBack();
20
- };
21
- return react_1.useMemo(function () {
22
- return ({
23
- push: history.push,
24
- replace: history.replace,
25
- pathname: location.pathname,
26
- goBack: history.goBack,
27
- match: match,
28
- location: location,
29
- history: history,
30
- params: params,
31
- navigate: navigate,
32
- back: back
33
- });
34
- }, [match, location, history, params]);
35
- };
package/src/router.ts DELETED
@@ -1,39 +0,0 @@
1
- import {useMemo} from 'react';
2
- import {useHistory, useLocation, useParams, useRouteMatch} from 'react-router-dom';
3
-
4
- export const useRouter = () => {
5
- const [location, history, params, match] = [useLocation(), useHistory(), useParams(), useRouteMatch()];
6
- /*
7
- const searchQueries = useMemo(() => {
8
- return queryString.parse(location.search, { arrayFormat: 'comma', parseNumbers: true });
9
- }, [location.search]);
10
- */
11
- const navigate = (targetUrl: string) => (e: React.MouseEvent) => {
12
- if (e) {
13
- e.preventDefault();
14
- }
15
- history.push(targetUrl);
16
- };
17
-
18
-
19
- const back = (e: React.MouseEvent) => {
20
- if (e) {
21
- e.preventDefault();
22
- }
23
- history.goBack();
24
- };
25
-
26
- return useMemo(() => ({
27
- push: history.push,
28
- replace: history.replace,
29
- pathname: location.pathname,
30
- goBack: history.goBack,
31
- match,
32
- location,
33
- history,
34
- params,
35
- // searchQueries,
36
- navigate,
37
- back
38
- }), [match, location, history, params]);
39
- };