react-hook-core 0.1.4 → 0.1.5

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/src/useEdit.ts CHANGED
@@ -1,17 +1,13 @@
1
1
  import {useEffect, useState} from 'react';
2
- import {RouteComponentProps} from 'react-router';
3
- import {clone, makeDiff} from 'reflectx';
2
+ import {useNavigate, useParams} from 'react-router';
4
3
  import {Attributes, buildId, createEditStatus, EditStatusConfig, getModelName as getModelName2, hideLoading, initForm, LoadingService, Locale, message, messageByHttpStatus, ResourceService, showLoading, UIService} from './core';
5
4
  import {build, createModel as createModel2, EditParameter, GenericService, handleStatus, handleVersion, initPropertyNullInModel, ResultInfo} from './edit';
6
5
  import {focusFirstError, readOnly as setReadOnly} from './formutil';
7
6
  import {DispatchWithCallback, useMergeState} from './merge';
8
- import {useRouter} from './router';
7
+ import {clone, makeDiff} from './reflect';
9
8
  import {localeOf} from './state';
10
9
  import {useUpdate} from './update';
11
10
 
12
- function prepareData(data: any): void {
13
- }
14
-
15
11
  export interface BaseEditComponentParam<T, ID> {
16
12
  status?: EditStatusConfig;
17
13
  backOnSuccess?: boolean;
@@ -42,7 +38,7 @@ export interface BaseEditComponentParam<T, ID> {
42
38
  handleDuplicateKey?: (result?: ResultInfo<T>) => void;
43
39
  load?: (i: ID|null, callback?: (m: T, showM: (m2: T) => void) => void) => void;
44
40
  doSave?: (obj: T, diff?: T, version?: string, isBack?: boolean) => void;
45
- prepareCustomData?: (data: any) => void; // need to review
41
+ // prepareCustomData?: (data: any) => void; // need to review
46
42
  }
47
43
  export interface HookBaseEditParameter<T, ID, S> extends BaseEditComponentParam<T, ID> {
48
44
  refForm: any;
@@ -60,24 +56,54 @@ export interface EditComponentParam<T, ID, S> extends BaseEditComponentParam<T,
60
56
  initialize?: (id: ID|null, ld: (i: ID|null, cb?: (m: T, showF: (model: T) => void) => void) => void, setState2: DispatchWithCallback<Partial<S>>, callback?: (m: T, showF: (model: T) => void) => void) => void;
61
57
  callback?: (m: T, showF: (model: T) => void) => void;
62
58
  }
63
- export interface HookPropsEditParameter<T, ID, S, P extends RouteComponentProps> extends HookPropsBaseEditParameter<T, ID, S, P> {
59
+ export interface HookPropsEditParameter<T, ID, S, P> extends HookPropsBaseEditParameter<T, ID, S, P> {
64
60
  initialize?: (id: ID|null, ld: (i: ID|null, cb?: (m: T, showF: (model: T) => void) => void) => void, setState2: DispatchWithCallback<Partial<S>>, callback?: (m: T, showF: (model: T) => void) => void) => void;
65
61
  callback?: (m: T, showF: (model: T) => void) => void;
66
62
  }
67
- export interface HookPropsBaseEditParameter<T, ID, S, P extends RouteComponentProps> extends HookBaseEditParameter<T, ID, S> {
63
+ export interface HookPropsBaseEditParameter<T, ID, S, P> extends HookBaseEditParameter<T, ID, S> {
68
64
  props: P;
69
- prepareCustomData?: (data: any) => void;
65
+ // prepareCustomData?: (data: any) => void;
70
66
  }
71
67
  export const useEdit = <T, ID, S>(
72
68
  refForm: any,
73
69
  initialState: S,
74
70
  service: GenericService<T, ID, number|ResultInfo<T>>,
75
- p1: EditParameter,
76
- p2?: BaseEditComponentParam<T, ID>
71
+ p2: EditParameter,
72
+ p?: EditComponentParam<T, ID, S>
77
73
  ) => {
78
- return useCoreEdit(undefined, refForm, initialState, service, p1, p2);
74
+ const params = useParams();
75
+ const baseProps = useCoreEdit(refForm, initialState, service, p2, p);
76
+ useEffect(() => {
77
+ if (refForm) {
78
+ const registerEvents = (p2.ui ? p2.ui.registerEvents : undefined);
79
+ initForm(baseProps.refForm.current, registerEvents);
80
+ }
81
+ const n = baseProps.getModelName(refForm.current);
82
+ const obj: any = {};
83
+ obj[n] = baseProps.createNewModel();
84
+ baseProps.setState(obj);
85
+ let keys: string[]|undefined;
86
+ if (p && !p.keys && service && service.metadata) {
87
+ const metadata = (p.metadata ? p.metadata : service.metadata());
88
+ if (metadata) {
89
+ const meta = build(metadata);
90
+ keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
91
+ const version = (p.version ? p.version : (meta ? meta.version : undefined));
92
+ p.keys = keys;
93
+ p.version = version;
94
+ }
95
+ }
96
+ const id = buildId<ID>(params, keys);
97
+ if (p && p.initialize) {
98
+ p.initialize(id, baseProps.load, baseProps.setState, p.callback);
99
+ } else {
100
+ baseProps.load(id, p ? p.callback : undefined);
101
+ }
102
+ // eslint-disable-next-line react-hooks/exhaustive-deps
103
+ }, []);
104
+ return {...baseProps};
79
105
  };
80
- export const useEditProps = <T, ID, S, P extends RouteComponentProps>(
106
+ export const useEditProps = <T, ID, S, P>(
81
107
  props: P,
82
108
  refForm: any,
83
109
  initialState: S,
@@ -85,7 +111,8 @@ export const useEditProps = <T, ID, S, P extends RouteComponentProps>(
85
111
  p2: EditParameter,
86
112
  p?: EditComponentParam<T, ID, S>
87
113
  ) => {
88
- const baseProps = useCoreEdit<T, ID, S, P>(props, refForm, initialState, service, p2, p);
114
+ const params = useParams();
115
+ const baseProps = useCoreEdit<T, ID, S, P>(refForm, initialState, service, p2, p, props);
89
116
  useEffect(() => {
90
117
  if (refForm) {
91
118
  const registerEvents = (p2.ui ? p2.ui.registerEvents : undefined);
@@ -106,28 +133,29 @@ export const useEditProps = <T, ID, S, P extends RouteComponentProps>(
106
133
  p.version = version;
107
134
  }
108
135
  }
109
- const id = buildId<ID>(props, keys);
136
+ const id = buildId<ID>(params, keys);
110
137
  if (p && p.initialize) {
111
138
  p.initialize(id, baseProps.load, baseProps.setState, p.callback);
112
139
  } else {
113
140
  baseProps.load(id, p ? p.callback : undefined);
114
141
  }
142
+ // eslint-disable-next-line react-hooks/exhaustive-deps
115
143
  }, []);
116
144
  return {...baseProps};
117
145
  };
118
- export const useEditOneProps = <T, ID, S, P extends RouteComponentProps>(p: HookPropsEditParameter<T, ID, S, P>) => {
146
+ export const useEditOneProps = <T, ID, S, P>(p: HookPropsEditParameter<T, ID, S, P>) => {
119
147
  return useEditProps(p.props, p.refForm, p.initialState, p.service, p, p);
120
148
  };
121
149
  export const useEditOne = <T, ID, S>(p: HookBaseEditParameter<T, ID, S>) => {
122
150
  return useEdit(p.refForm, p.initialState, p.service, p, p);
123
151
  };
124
152
  export const useCoreEdit = <T, ID, S, P>(
125
- props: P|undefined,
126
153
  refForm: any,
127
154
  initialState: S,
128
155
  service: GenericService<T, ID, number|ResultInfo<T>>,
129
156
  p1: EditParameter,
130
- p?: BaseEditComponentParam<T, ID>
157
+ p?: BaseEditComponentParam<T, ID>,
158
+ props?: P
131
159
  ) => {
132
160
  /*
133
161
  const {
@@ -135,13 +163,13 @@ export const useCoreEdit = <T, ID, S, P>(
135
163
  patchable = true,
136
164
  addable = true
137
165
  } = p; */
166
+ const navigate = useNavigate();
138
167
  const addable = (p && p.patchable !== false ? true : undefined);
139
- const {goBack} = useRouter();
140
168
  const back = (event?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
141
169
  if (event) {
142
170
  event.preventDefault();
143
171
  }
144
- goBack();
172
+ navigate(-1);
145
173
  };
146
174
 
147
175
  const [running, setRunning] = useState<boolean>();
@@ -154,18 +182,6 @@ export const useCoreEdit = <T, ID, S, P>(
154
182
  };
155
183
  const baseProps = useUpdate<S>(initialState, getModelName, p1.getLocale);
156
184
 
157
- const prepareCustomData = (p && p.prepareCustomData ? p.prepareCustomData : prepareData);
158
- const updateDateState = (name: string, value: any) => {
159
- const modelName = getModelName(refForm.current);
160
- const currentState = (state as any)[modelName];
161
- if (props && (props as any).setGlobalState) {
162
- const data = (props as any).shouldBeCustomized ? prepareCustomData({ [name]: value }) : { [name]: value };
163
- (props as any).setGlobalState({ [modelName]: { ...currentState, ...data } });
164
- } else {
165
- setState({[modelName]: {...currentState, [name]: value}} as T);
166
- }
167
- };
168
-
169
185
  const { state, setState } = baseProps;
170
186
  const [flag, setFlag] = useMergeState({
171
187
  newMode: false,
@@ -462,7 +478,6 @@ export const useCoreEdit = <T, ID, S, P>(
462
478
  flag,
463
479
  running,
464
480
  setRunning,
465
- updateDateState,
466
481
  showModel,
467
482
  getModelName,
468
483
  resetState,
@@ -472,6 +487,7 @@ export const useCoreEdit = <T, ID, S, P>(
472
487
  newOnClick: create,
473
488
  save,
474
489
  onSave,
490
+ // eslint-disable-next-line no-restricted-globals
475
491
  confirm,
476
492
  validate,
477
493
  showMessage: p1.showMessage,
package/src/useSearch.ts CHANGED
@@ -1,21 +1,25 @@
1
1
  import {useEffect, useState} from 'react';
2
- import {RouteComponentProps} from 'react-router';
3
- import {useHistory, useRouteMatch} from 'react-router-dom';
4
- import {clone} from 'reflectx';
5
- import {addParametersIntoUrl, append, buildMessage, Filter, formatResults, getFieldsFromForm, getModel, handleAppend, handleSort, initFilter, mergeFilter as mergeFilter2, Pagination, removeSortStatus, showPaging, Sortable, validate} from 'search-core';
6
2
  import {error, getDecodeFromForm, getName, getRemoveError, getValidateForm, handleToggle, hideLoading, initForm, Locale, PageChange, pageSizes, removeFormError, ResourceService, SearchParameter, SearchResult, SearchService, showLoading} from './core';
7
3
  import {DispatchWithCallback, useMergeState} from './merge';
4
+ import {clone} from './reflect';
8
5
  import {buildFromUrl} from './route';
6
+ import {addParametersIntoUrl, append, buildMessage, formatResults, getFieldsFromForm, getModel, handleAppend, handleSort, initFilter, mergeFilter as mergeFilter2, Pagination, removeSortStatus, showPaging, Sortable, validate} from './search';
9
7
  import {enLocale} from './state';
10
- import {useUpdate, useUpdateWithProps} from './update';
8
+ import {useUpdate} from './update';
11
9
 
12
10
  export interface Searchable<T> extends Pagination, Sortable {
13
11
  nextPageToken?: string;
14
12
  excluding?: string[]|number[];
15
13
  list?: T[];
16
14
  }
17
- function prepareData(data: any): void {
15
+ interface Filter {
16
+ page?: number;
17
+ limit?: number;
18
+ firstLimit?: number;
19
+ fields?: string[];
20
+ sort?: string;
18
21
  }
22
+
19
23
  export const callSearch = <T, S extends Filter>(se: S, search3: (s: S, limit?: number, offset?: number|string, fields?: string[]) => Promise<SearchResult<T>>, showResults3: (s: S, sr: SearchResult<T>, lc: Locale) => void, searchError3: (err: any) => void, lc: Locale, nextPageToken?: string) => {
20
24
  const s = clone(se);
21
25
  let page = se.page;
@@ -53,7 +57,7 @@ export interface InitSearchComponentParam<T, M extends Filter, S> extends Search
53
57
  createFilter?: () => M;
54
58
  initialize?: (ld: (s: M, auto?: boolean) => void, setState2: DispatchWithCallback<Partial<S>>, com?: SearchComponentState<T, M>) => void;
55
59
  }
56
- export interface HookPropsSearchParameter<T, S extends Filter, ST, P extends RouteComponentProps> extends HookPropsBaseSearchParameter<T, S, ST, P> {
60
+ export interface HookPropsSearchParameter<T, S extends Filter, ST, P> extends HookPropsBaseSearchParameter<T, S, ST, P> {
57
61
  createFilter?: () => S;
58
62
  initialize?: (ld: (s: S, auto?: boolean) => void, setState2: DispatchWithCallback<Partial<ST>>, com?: SearchComponentState<T, S>) => void;
59
63
  }
@@ -83,7 +87,7 @@ export interface SearchComponentParam<T, M extends Filter> {
83
87
  getFilter?: () => M;
84
88
  getFields?: () => string[]|undefined;
85
89
  validateSearch?: (se: M, callback: () => void) => void;
86
- prepareCustomData?: (data: any) => void;
90
+ // prepareCustomData?: (data: any) => void;
87
91
  format?(obj: T, locale?: Locale): T;
88
92
  showResults?(s: M, sr: SearchResult<T>, lc: Locale): void;
89
93
  appendList?(results: T[], list: T[]|undefined, s: DispatchWithCallback<Partial<SearchComponentState<T, M>>>): void;
@@ -110,7 +114,7 @@ export interface HookBaseSearchParameter<T, S extends Filter, ST extends SearchC
110
114
  }
111
115
  export interface HookPropsBaseSearchParameter<T, S extends Filter, ST, P> extends HookBaseSearchParameter<T, S, ST> {
112
116
  props?: P;
113
- prepareCustomData?: (data: any) => void;
117
+ // prepareCustomData?: (data: any) => void;
114
118
  }
115
119
  export interface SearchComponentState<T, S> extends Pagination, Sortable {
116
120
  view?: string;
@@ -189,7 +193,7 @@ export const useSearch = <T, S extends Filter, ST extends SearchComponentState<T
189
193
  p2: SearchParameter,
190
194
  p?: InitSearchComponentParam<T, S, ST>,
191
195
  ) => {
192
- const baseProps = useCoreSearch(undefined, refForm, initialState, service, p2, p);
196
+ const baseProps = useCoreSearch(refForm, initialState, service, p2, p);
193
197
 
194
198
  useEffect(() => {
195
199
  const { load, setState, component } = baseProps;
@@ -204,22 +208,23 @@ export const useSearch = <T, S extends Filter, ST extends SearchComponentState<T
204
208
  const s: any = mergeFilter2(buildFromUrl<S>(), se, component.pageSizes);
205
209
  load(s, p2.auto);
206
210
  }
211
+ // eslint-disable-next-line react-hooks/exhaustive-deps
207
212
  }, []);
208
213
  return { ...baseProps };
209
214
  };
210
- export const useSearchOneProps = <T, S extends Filter, ST extends SearchComponentState<T, S>, P extends RouteComponentProps>(p: HookPropsSearchParameter<T, S, ST, P>) => {
215
+ export const useSearchOneProps = <T, S extends Filter, ST extends SearchComponentState<T, S>, P>(p: HookPropsSearchParameter<T, S, ST, P>) => {
211
216
  return useSearch(p.refForm, p.initialState, p.service, p, p);
212
217
  };
213
218
  export const useSearchOne = <T, S extends Filter, ST extends SearchComponentState<T, S>>(p: HookBaseSearchParameter<T, S, ST>) => {
214
- return useCoreSearch(undefined, p.refForm, p.initialState, p.service, p, p);
219
+ return useCoreSearch(p.refForm, p.initialState, p.service, p, p);
215
220
  };
216
221
  export const useCoreSearch = <T, S extends Filter, ST, P>(
217
- props: P|undefined,
218
222
  refForm: any,
219
223
  initialState: ST,
220
224
  service: ((s: S, limit?: number, offset?: number|string, fields?: string[]) => Promise<SearchResult<T>>) | SearchService<T, S>,
221
225
  p1: SearchParameter,
222
- p2?: SearchComponentParam<T, S>
226
+ p2?: SearchComponentParam<T, S>,
227
+ props?: P
223
228
  ) => {
224
229
  const p = mergeParam(p2);
225
230
  const [running, setRunning] = useState<boolean>();
@@ -230,28 +235,14 @@ export const useCoreSearch = <T, S extends Filter, ST, P>(
230
235
  const getModelName = (p && p.getModelName ? p.getModelName : _getModelName);
231
236
 
232
237
  // const setState2: <K extends keyof S, P>(st: ((prevState: Readonly<S>, props: Readonly<P>) => (Pick<S, K> | S | null)) | (Pick<S, K> | S | null), cb?: () => void) => void;
233
- const baseProps = (props ? useUpdateWithProps<ST, P>(props, initialState, getModelName, p1.getLocale, getRemoveError(p1), p ? p.prepareCustomData : undefined) : useUpdate<ST>(initialState, getModelName, p1.getLocale, getRemoveError(p1)));
238
+ const baseProps = useUpdate<ST>(initialState, getModelName, p1.getLocale, getRemoveError(p1));
234
239
  const { state, setState } = baseProps;
235
- const [history, match] = [useHistory(), useRouteMatch()];
236
240
 
237
241
  const _getCurrencyCode = (): string => {
238
242
  return refForm && refForm.current ? refForm.current.getAttribute('currency-code') : null;
239
243
  };
240
244
  const getCurrencyCode = p && p.getCurrencyCode ? p.getCurrencyCode : _getCurrencyCode;
241
245
 
242
- const prepareCustomData = (p && p.prepareCustomData ? p.prepareCustomData : prepareData);
243
- const updateDateState = (name: string, value: any) => {
244
- const modelName = getModelName();
245
- const currentState = (state as any)[modelName];
246
- if (props && (props as any).setGlobalState) {
247
- const data = (props as any).shouldBeCustomized ? prepareCustomData({ [name]: value }) : { [name]: value };
248
- (props as any).setGlobalState({ [modelName]: { ...currentState, ...data } });
249
- } else {
250
- setState({ [modelName]: { ...currentState, [name]: value } } as T);
251
- }
252
- setState({ [modelName]: { ...currentState, [name]: value } } as T);
253
- };
254
-
255
246
  // const p = createSearchComponentState<T, S>(p1);
256
247
  const [component, setComponent] = useMergeState<SearchComponentState<T, S>>(p);
257
248
 
@@ -261,11 +252,6 @@ export const useCoreSearch = <T, S extends Filter, ST, P>(
261
252
  setComponent({ hideFilter: x });
262
253
  };
263
254
 
264
- const add = (event: any) => {
265
- event.preventDefault();
266
- history.push(match.url + '/add');
267
- };
268
-
269
255
  const _getFields = (): string[]|undefined => {
270
256
  const { fields, initFields } = component;
271
257
  const fs = getFieldsFromForm(fields, initFields, refForm.current);
@@ -496,13 +482,11 @@ export const useCoreSearch = <T, S extends Filter, ST, P>(
496
482
  running,
497
483
  setRunning,
498
484
  getCurrencyCode,
499
- updateDateState,
500
485
  resource: p1.resource.resource(),
501
486
  setComponent,
502
487
  component,
503
488
  showMessage: p1.showMessage,
504
489
  load,
505
- add,
506
490
  search,
507
491
  sort,
508
492
  changeView,
package/src/useView.ts CHANGED
@@ -1,9 +1,8 @@
1
1
  import {useEffect, useState} from 'react';
2
- import {RouteComponentProps} from 'react-router';
2
+ import {useNavigate, useParams} from 'react-router';
3
3
  import {buildId, getModelName as getModelName2, hideLoading, initForm, LoadingService, Locale, message, messageByHttpStatus, ResourceService, showLoading, ViewParameter, ViewService} from './core';
4
4
  import {readOnly} from './formutil';
5
5
  import {DispatchWithCallback, useMergeState} from './merge';
6
- import {useRouter} from './router';
7
6
 
8
7
  export interface BaseViewComponentParam<T, ID> {
9
8
  name?: string;
@@ -26,7 +25,7 @@ export interface ViewComponentParam<T, ID, S> extends BaseViewComponentParam<T,
26
25
  initialize?: (id: ID, ld: (i: ID, cb?: (m: T, showF: (model: T) => void) => void) => void, setState2: DispatchWithCallback<Partial<S>>, callback?: (m: T, showF: (model: T) => void) => void) => void;
27
26
  callback?: (m: T, showF: (model: T) => void) => void;
28
27
  }
29
- export interface HookPropsViewParameter<T, ID, S, P extends RouteComponentProps> extends HookPropsBaseViewParameter<T, ID, S, P> {
28
+ export interface HookPropsViewParameter<T, ID, S, P> extends HookPropsBaseViewParameter<T, ID, S, P> {
30
29
  keys?: string[];
31
30
  initialize?: (id: ID, ld: (i: ID, cb?: (m: T, showF: (model: T) => void) => void) => void, setState2: DispatchWithCallback<Partial<S>>, callback?: (m: T, showF: (model: T) => void) => void) => void;
32
31
  callback?: (m: T, showF: (model: T) => void) => void;
@@ -34,13 +33,36 @@ export interface HookPropsViewParameter<T, ID, S, P extends RouteComponentProps>
34
33
  export interface HookPropsBaseViewParameter<T, ID, S, P> extends HookBaseViewParameter<T, ID, S> {
35
34
  props: P;
36
35
  }
37
- export const useViewOneProps = <T, ID, S, P extends RouteComponentProps>(p: HookPropsViewParameter<T, ID, S, P>) => {
38
- return useViewProps(p.props, p.refForm, p.initialState, p.service, p, p);
39
- };
40
36
  export const useViewOne = <T, ID, S>(p: HookBaseViewParameter<T, ID, S>) => {
41
- return useView(p.refForm, p.initialState, p.service, p, p);
37
+ return useCoreView(p.refForm, p.initialState, p.service, p, p);
42
38
  };
43
39
  export const useView = <T, ID, S>(
40
+ refForm: any,
41
+ initialState: S,
42
+ service: ((id: ID, ctx?: any) => Promise<T>)|ViewService<T, ID>,
43
+ p1: ViewParameter,
44
+ p?: ViewComponentParam<T, ID, S>
45
+ ) => {
46
+ const baseProps = useCoreView(refForm, initialState, service, p1, p);
47
+ const [, setState] = useMergeState<S>(initialState);
48
+ const params = useParams();
49
+ useEffect(() => {
50
+ if (baseProps.refForm) {
51
+ initForm(baseProps.refForm.current);
52
+ }
53
+ const id = buildId<ID>(params, p ? p.keys : undefined);
54
+ if (id) {
55
+ if (p && p.initialize) {
56
+ p.initialize(id, baseProps.load, setState, p.callback);
57
+ } else {
58
+ baseProps.load(id, p ? p.callback : undefined);
59
+ }
60
+ }
61
+ }, []);
62
+ return {...baseProps};
63
+ };
64
+
65
+ export const useCoreView = <T, ID, S>(
44
66
  refForm: any,
45
67
  initialState: S,
46
68
  service: ((id: ID, ctx?: any) => Promise<T>)|ViewService<T, ID>,
@@ -49,13 +71,13 @@ export const useView = <T, ID, S>(
49
71
  ) => {
50
72
  const [state, setState] = useMergeState<S>(initialState);
51
73
  const [running, setRunning] = useState<boolean>();
52
- const {goBack} = useRouter();
74
+ const navigate = useNavigate();
53
75
 
54
76
  const back = (event: any) => {
55
77
  if (event) {
56
78
  event.preventDefault();
57
79
  }
58
- goBack();
80
+ navigate(-1);
59
81
  };
60
82
 
61
83
  const getModelName = (f?: HTMLFormElement) => {
@@ -134,28 +156,3 @@ export const useView = <T, ID, S>(
134
156
  back
135
157
  };
136
158
  };
137
- export const useViewProps = <T, ID, S, P extends RouteComponentProps>(
138
- props: P,
139
- refForm: any,
140
- initialState: S,
141
- service: ((id: ID, ctx?: any) => Promise<T>)|ViewService<T, ID>,
142
- p1: ViewParameter,
143
- p?: ViewComponentParam<T, ID, S>
144
- ) => {
145
- const baseProps = useView(refForm, initialState, service, p1, p);
146
- const [state, setState] = useMergeState<S>(initialState);
147
- useEffect(() => {
148
- if (baseProps.refForm) {
149
- initForm(baseProps.refForm.current);
150
- }
151
- const id = buildId<ID>(props, p ? p.keys : undefined);
152
- if (id) {
153
- if (p && p.initialize) {
154
- p.initialize(id, baseProps.load, setState, p.callback);
155
- } else {
156
- baseProps.load(id, p ? p.callback : undefined);
157
- }
158
- }
159
- }, []);
160
- return {...baseProps};
161
- };
package/tsconfig.json CHANGED
@@ -7,6 +7,7 @@
7
7
  "module": "commonjs",
8
8
  "moduleResolution": "node",
9
9
  "strict": true,
10
+ "strictNullChecks": true,
10
11
  "pretty": true,
11
12
  "sourceMap": false,
12
13
  "declaration": false,